КД2 Добавление строки в табличную часть приемника из шапки приемника

1. кольщик 04.03.23 08:44 Сейчас в теме
Всем доброго дня!
С обменами практически не работал, поэтому не пойму как решить такую схему обмена.
Делаю через КД2. Есть 2 базы 1с БП И ЗУП. В каждой есть по похожему документу. У документов есть реквизит УИД(Уникальный идентификатор) - не типовой. Поиск документа идет по нему.
В базе источника создается первый документ, которому присваивается новый УИД. На основании его создается второй с этим же УИДом, на основании второго третий итд. В документах меняются только даты начала и окончания. То есть при синхронизации, после создания новых документов в источнике, они регистрируются к обмену, по УИД находится тот документ в ЗУП и в нем меняются даты.
Но мне нужно не только это.
В приемнике есть даты, номер, он же номер приказа и ТЧ со старыми датами нач и кон и старым номером приказа.
Так вот нужно чтобы при синхронизации, если грузится первый документ источника, то просто создавался документ в приемнике. А если грузится второй, третий итд, то в приемнике брались текущие данные из шапки (дата нач, дата кон, номер приказа), переносились новой строкой в ТЧ и в шапку писались уже новые данные.
Такое вообще возможно?
Думал можно использовать объект коллекции в Перед загрузкой но это получается ТЧ и если пишу в получении номера Значение = объект.Номер, то программа ругается, что нет такого Объект... Видимо перед загрузкой еще нет объекта. А после загрузки дата в шапке уже сменится на новую и ее тянуть смысла нет.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 04.03.23 08:55 Сейчас в теме
(1) Передавать данные через Параметры
3. кольщик 04.03.23 09:25 Сейчас в теме
(2) Немного не понял. Мне нужно дату начала взять из шапки приемника добавить новой строкой в ТЧ тоже приемника. Получается в параметр передавать из приемника в приемник?
4. RustamZz 04.03.23 09:38 Сейчас в теме
(3) Из источника передавать новые дату, номер в параметры. А уже когда грузите - сортируйте куда писать.
5. starjevschik 04.03.23 11:28 Сейчас в теме
В правилах выгрузки сделать формирование структуры, которая будет содержать правильный образ документа в приемнике. Выгрузка произвольным запросом и там написать нужный алгоритм. Сразу изо всех документов-источников, какие должны попасть в выгрузку. Потом из этой структуры сделать уже документ в приемнике, как надо.
6. кольщик 04.03.23 13:40 Сейчас в теме
(5) Ну вот есть в ЗУП документ с номером КМ13-03-05/2. 03 это месяц, 05 порядковый номер всех документов этого типа за месяц. У него в ТЧ есть строка с номером КМ13-03-05/1. Получается сроки документа менялись 1 раз. Плюс может быть перенос с одного месяца на другой. В БП получается есть 2 документа, второй создан на основании первого. В БП своя нумерация, номер приказа в БП из ЗУП не передается. Я В БП создаю третий документ на основании второго. И что я должен засунуть в структуру? 3 документа. Так у меня нет проблем с синхронизацией других данных документа. Мне при выгрузке, после того как документ нашелся, надо как то нужно получить его текущий номер, что он сейчас КМ13-03-05/2, добавить строку в ТЧ с этим номером, а в шапку присвоить уже номер КМ13-03-05/3.
Сори, если я сильно туплю. Если есть ссылки на хорошую литературу по теме, буду очень признателен.
7. nomad_irk 72 04.03.23 15:19 Сейчас в теме
(6)
И что я должен засунуть в структуру?

Значения полей, поиска по которым в базе приемнике однозначно определится документ.
8. starjevschik 04.03.23 17:11 Сейчас в теме
(6)
Так у меня нет проблем с синхронизацией других данных документа.

так конвертация так устроена, что иногда для одной маленькой галки приходится переделать вообще все. Селяви.
Я бы делал полностью структуру конечного документа, а на стороне получателя уже решал, что с ней делать, то ли новый документ, то ли дописать существующий, то ли еще что.
9. svilsa 12 05.03.23 12:54 Сейчас в теме
Да, такое похоже, можно сделать через КоллекцияОбъектов. Надо создать ПКГС - правило конвертации группы свойств и в источнике ничего не указывать, а в приемнике - табличную часть ЗУП. И в обработчике "Перед обработкой" в этой группе нужно получить коллекцию строк табличной части. Вот пример кода для совсем других целей, но по аналогии:
Запрос = Новый Запрос;
Запрос.Текст = 
	"ВЫБРАТЬ
	|	ОсновнойОстатки.Субконто1 КАК ФизЛицо,
	|	-ОсновнойОстатки.СуммаОстаток КАК СуммаВзаиморасчетов
	|ИЗ
	|	РегистрБухгалтерии.Основной.Остатки(&Дата, Счет В ИЕРАРХИИ (&Счет70), , ) КАК ОсновнойОстатки";

Запрос.УстановитьПараметр("Дата", Новый Граница(конецДня(Источник.дата), ВидГраницы.Включая));
Запрос.УстановитьПараметр("Счет70", ПланыСчетов.Основной.А70);

РезультатЗапроса = Запрос.Выполнить();

КоллекцияОбъектов = РезультатЗапроса.Выгрузить();
Показать


Вот тут в ответе в теме есть и скриншот: https://forum.infostart.ru/forum9/topic273424/
10. кольщик 08.03.23 10:09 Сейчас в теме
Всем спасибо! Разобрался как передавать параметры перед и использовать параметры после загрузки и всё получилось.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот