Несколько документов на основании одного

0. mvxyz 263 10.06.19 10:00 Сейчас в теме
На основании одного документа создаем несколько документов с табличными частями, заполненными по некоторому алгоритму. Весь код в статье.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. oleg-x 15 10.06.19 10:31 Сейчас в теме
(0)Вроде в разделе вопросы, а вопроса то и нет)
2. mvxyz 263 10.06.19 12:16 Сейчас в теме
(1) Это не вопрос, это ответ. В разделе "Вопросы" ссылку на статью не нашел.
3. alexruzh67 14.06.19 04:47 Сейчас в теме
Для нас актуально создание документов перемещения из документа чек ККМ.
4. mvxyz 263 14.06.19 12:34 Сейчас в теме
(3) Принцип общий. Попробуйте.
5. dadel 10 16.10.19 09:25 Сейчас в теме
Пробую по аналогии делать заполнение нескольких.
У меня пример должен создать 4 документа сгруппированных по году на основании документа планирования на 4 года вперед.
Все вроде работает, но только до открытия форм.
При открытии форм в отладчике вижу заполнение каждой сохраненным объектом, данные есть в формах, но в результате открывается только одна форма заполненная и три пустых...
Что не так пока не вкурю.
Костылем пока сделал сразу запись созданных документов и открывается только первый при этом сделал (при открытии не иду в проверку ОткрытьФормуЕщеОдногоДокументаПриНеобходимости()).
Что не так, пока не смог разобраться...
6. dadel 10 16.10.19 09:30 Сейчас в теме
И у меня заполнение документа не из самой копии происходит, как в предложенном варианте, а из регистров по ссылке на основание. Сделал в создаваемых копиях запись ссылки на основание в дополнительные свойства объекта и уже при заполнении её передаю в параметры запроса. То же самое с период - год у меня условие - так же не занимаюсь перезаполнением табчасти по нужному году, а в допсвойства объекта передаю массив с оставшимися годам в копиюоставшиеся и в копиютек только нужный период один. Далее так же по этому одному накладываю условие при заполнении.
7. avant2004 08.05.20 14:59 Сейчас в теме
Спасибо за рабочий пример. бы добавил еще одно условие в процедуру ОткрытьФормуЕщеОдногоДокументаПриНеобходимости() - "И Параметры.Ключ.Пустая()". Иначе по непонятной причине уже записанные документы при открытии вываливаются в ошибку (почему-то у них не очищается реквизит АдресЕщеОдногоДокумента).
Но есть здесь один нехороший момент. Если нужно заполнять реквизит "ДокументОснование" , то ссылкой его можно заполнить только один раз (в первом документе), т.к. для последующих документов идет работа с объектом, из которого невозможно получить ссылку.
8. kznsky 10.05.20 18:34 Сейчас в теме
Очень помогла ваша публикация в решении похожей задачи, спасибо!

Но само создание нескольких документов на основании решил по другому алгоритму. Может кому пригодится:

При создании документа на основании заказа в обработке заполнения собираю информацию о складах в массив СкладыЗаказа, так же как в вашем примере. Первый документ заполняю стандартной обработкой только, при заполнении ТЧ товары по условию, отбираю только те строки в которых СтрокаТч.Склад = СкладыЗаказа[0]

После проверяю надо ли создавать новый документ и создаю его программно.Но в обработку заполнения в качестве параметра передаю не ДокОснование, а структуру в которой первый элемент - ДокОснование, второй - СкладыЗаказа, третий индекс склада в СкладыЗаказа по которому надо заполнять ТЧ товары.

Проверка необходимости создания нового документа: Если СкладыЗаказа.Количество() > ИндексСклада+1

При вызове обработки заполнения проверяю, что приходит в качестве параметра.

Если это Тип("ДокументСсылка.Заказ"), то установить ДокОснование = ДанныеЗаполнения и ИндексСклада = 0.

Если же приходит структура, то ДокОснование = ДанныеЗаполнения.ДокОснование, ИндексСклада = ДанныеЗаполнения.ИндексСклада.

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

Таким образом получилось избежать передачи документа в XML через временное хранилище и никаких проблем с документом основания для структуры подчиненности.
Оставьте свое сообщение
Вопросы с вознаграждением