На каждую строку табличной части - свой документ

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. ponaroshku 22.07.16 11:59 Сейчас в теме
Добрый день!

Задача: на каждую строку табличной части создавать свой документ в базе-приемнике (в базе приемнике нет ТЧ, все данные из документа-источника сделаны реквизитами документа-приемника, поэтому требуется такая реализация)

Сделала я произвольный алгоритм, запросом выгребла все нужные данные, все замечательно работало до подключения данных правил в план обмена - произвольный алгоритм перестал выполняться

При попытке выгружать документ-объект - выгружает всю ТЧ

Нашла много примеров, когда из двух ТЧ требуется "склеить" один документ, но ни одного примера реализации с похожим алгоритмом.

Подскажите, как такое реализовать?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. pm74 203 22.07.16 12:20 Сейчас в теме
(1)
Для Каждого СтрТаб Из  ТаблицаИсходногоДокумента  Цикл 
МояТаблица=  ..тут формируем нужную таблицу
ИсходящиеДанные=Новый Структура; 
    ИсходящиеДанные.Вставить("Товары",МояТаблица);
    ВыгрузитьПоПравилу(ДокументИсточник,,ИсходящиеДанные,,"НазваниеПКО");
КонецЦикла;
Показать

посмотрите еще тут http://infostart.ru/public/402469/
4. ponaroshku 22.07.16 12:58 Сейчас в теме
(2) я написала аналогично в ПВД в событие "перед выгрузкой", в итоге выгружает все равно 1 раз документ, не зависимо от количество строк в тч (в моем примере их 2)

Хотя при отладке правила через "Универсальный обмен" заходит 2 раза


(3) есть, там на 2 тч разбивают в одном документе. Мне же надо из 1 документа получать 2 (если в документе 2 строки в тч)
5. pm74 203 22.07.16 13:03 Сейчас в теме
(4) ponaroshku, в пко в источнике для таблицы должно быть пусто + флаг получать из входящих данных
+ поиск документа не по ГУИД тут есть одна проблема для поиска по Номер+Дата нужно Номер получить заранее при выгрузке данных , проще всего как то видоизменить номер источника
8. ponaroshku 25.07.16 04:39 Сейчас в теме
(5) я ищу по гуиду + реквизит в табличной части, идентификатор "секции", прописала свое правила в полях поиска

(6) мне кажется, это не совсем то

(7) пойдет проблема, если в ТЧ источника удалят документ
9. PhoenixAOD 62 25.07.16 05:17 Сейчас в теме
(8) ponaroshku, по сути все 3 варианта удачные, вот это
пойдет проблема, если в ТЧ источника удалят документ
меня очень смущает, выгрузку делаете каждый день? но как вариант, создать и в источнике и в приемнике, реквизит, или еще чего такого, где будет гуид источника хранится как строка, и если очистили док, по этому гуиду находить в приемнике нужные доки и помечать на удаление, ну или перезаписываться если требуется
11. ponaroshku 25.07.16 09:36 Сейчас в теме
(9) каждый день
(10)
В источнике есть реквизит, по нему можно идентифицировать строку (перегружается из совсем сторонней базы, не 1С)

например:

Документ 1
СтрокаТЧ1 ИдентификаторСтроки1
СтрокаТЧ2 ИдентификаторСтроки2

В полях поиска я прописала условие:
|ИЗ
| РегистрСведений.СоответствиеОбъектовДляОбмена КАК СоответствиеОбъектовДляОбмена
|ГДЕ
| СоответствиеОбъектовДляОбмена.УзелОбмена = &УзелОбмена
| И СоответствиеОбъектовДляОбмена.СсылкаВДругойИБ = &СсылкаВДругойИБ";


СсылкаВДругойИБ = УникальныйИдентификатор_документа1 + ";" + ИдентификаторСтроки1;

Собственно, после загрузки делаю запись в этот регистр



Вообще да, я добилась, что выгружается каждая строка, воспользовавшись решением (6)
(4) ponaroshku, Надо установить не запоминать выгруженные объекты



Теперь проблема при повторной загрузке, но это уже легче должно быть
10. pm74 203 25.07.16 07:50 Сейчас в теме
(8)
Задача: на каждую строку табличной части создавать свой документ

я ищу по гуиду + реквизит в табличной части

Не совсем понял это как ? Вы как то хитро формируете свой ГУИД в приемнике ?
по поводу удаления строк ТЧ - проверка при загрузке
6. tusv 212 22.07.16 14:16 Сейчас в теме
(4) ponaroshku, Надо установить не запоминать выгруженные объекты
или присвоить КлючВыгружаемыхДанных
7. vovan_victory 65 22.07.16 14:40 Сейчас в теме
(4) ponaroshku, а если при загрузке перед записью документа читать таб. часть, создавать из нее документы, а сам источник просто не записывать или записать его с одной строкой, а остальные после создания отдельных документов,удалить. Как раз для новых документов нужны данные для заполнения..

Заполнить шапку нового документа можно на основании исходного через
ЗаполнитьЗначенияСвойств(НовыйДокумент,ИсходныйДокумент);
3. vovan_victory 65 22.07.16 12:26 Сейчас в теме
(1) ponaroshku, по моему, в демо базе КД есть такой пример. Называется что то типа "один в два"
Оставьте свое сообщение

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