Книга знаний

1С:Предприятие / Приемы программирования / Обмен данными, УРБД

Конвертация шапки документа в табличную часть

Конвертация шапки документа в табличную часть с помощью конфигурации "Конвертация данных 2.0".Автор статьи: Михей | Редакторы: acsent, magolubev
Последняя редакция №3 от 04.03.21 | История
URL: http://kb.mista.ru/article.php?id=435

Ключевые слова: Конвертация данных


Столкнулся как то спроблемой конвертации реквизитов шапки одного документа в табличную часть
другого документа.
Если кто знает в УПП есть документ "Взаимозачет" который содержит табличную часть "СуммыДолга".
Вот в его ТЧ и надо было
сконвертировать документ из нетиповой конфигурации "Перезачет", в нем есть два реквизита
"КонтрагентС" и "КонтрагентНа" и реквизит "СуммаДолга".
Задача в том чтобы эти реквизиты шапки перейшли в ТЧ "СуммыДолга" документа "Взаимозачет".

Решение:

1. Создаем ПКО Перезачет->Взаимозачет.
2. Создаем ПКС конвертации простых типов (Дата и Номер документа):
                 ДатаДок -> Дата
                 НомерДок -> Номер
3. Создаем ПКГС только с заполненным Приемником "СуммыДолга" (табличная часть документа
Взаимозачет).
4. В обработчике ПередОбработкой ПКГС  заполняем встроенную переменную КоллекцияОбъектов (тип
ТаблицаЗначений) значениями с шапки:
                       
                  КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
                  КоллекцияОбъектов.НоваяКолонка("Контрагент");
                  КоллекцияОбъектов.НоваяКолонка("ДоговорКонтрагента");
                  КоллекцияОбъектов.НоваяКолонка("СуммаУвеличение");
                  КоллекцияОбъектов.НоваяКолонка("СуммаУменьшение");
             
                  КоллекцияОбъектов.НоваяСтрока();
              КоллекцияОбъектов.Контрагент         = Источник.КонтрагентC;  
              КоллекцияОбъектов.ДоговорКонтрагента = Источник.КонтрагентC.Договор;
              КоллекцияОбъектов.СуммаУвеличение    = 0;
              КоллекцияОбъектов.СуммаУменьшение    = Источник.СуммаДолга;

              КоллекцияОбъектов.НоваяСтрока();
              КоллекцияОбъектов.Контрагент         = Источник.КонтрагентНа;  
              КоллекцияОбъектов.ДоговорКонтрагента =
Источник.КонтрагентНа.Договор;
              КоллекцияОбъектов.СуммаУвеличение    = Источник.СуммаДолга;
              КоллекцияОбъектов.СуммаУменьшение    = 0;    
   
5. Создаем четыре (в моем случае) ПКС табличной части с пустыми источниками:

                        -> Контрагент
                        -> ДоговорКонтрагента
                        -> СуммаУвеличение
                        -> СуммаУменьшение

6. Все правило конвертации готово!

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика