КД: Перенос одного документа в несколько документов #765485


#0 by Reclaim
Здравствуйте! Суть вопроса: Есть документ в УПП, есть две табличные части, на 3 реквизитах которых базируется перенос. Переносим этот документ в УТ, у которого эти три реквизита находятся в реквизитах документа, а не табличной части. Проблема: Т.к. в УПП реквизиты находятся в табличных частях, то соответственно строк с этими реквизитами может быть много. И в зависимости от того, сколько этих реквизитах в строках ТЧ, нужно создать столько же документов в УТ (т.е. может быть нужно создать как 1 документ, так и 8 и более). Кто-нибудь такое реализовал? Поделитесь опытом
#1 by ИсчадиеADO
В пвд выбирай тч и передавай в качестве входящих данных реквизит
#2 by ИсчадиеADO
Соответственно у тебя 2 проблемы: распределить суммы и что подставлять при конвертации по ссылке
#3 by Reclaim
А можно немного подробнее? И если можно с каким-нибудь примером кода. Не совсем понял как это будет происходить на деле... Нужно сделать что-то в это роде? И таким образом занесутся реквизиты в таблицу значений, из которой я смогу вытащить нужные мне данные? А вот как и что подставлять при конвертации по ссылке пока не понял. Если можно и тут разжевать
#4 by ИсчадиеADO
поиска по ссылке не будет. Что и как переносить при конвертации по ссылке ты должен решить сам тк никто не знает твоих вводных. Подробнее не могу, сорри, с телефона
#5 by Reclaim
Если будет сегодня возможность расписать подробнее, то буду очень благодарен. Но и за наводку большое спасибо!
#6 by sonne666
В ПВД к цикле заполняешь структуру ВходящиеДанные и выгружаешь по правилу: ВыгрузитьПоПравилу(,, ВходящиеДанные,, <ИмяПКО>); Поля этой структуры должны совпадать со свойствами приемника из ПКО этого объекта (у них должен стоять флаг "Получить из входящих данных"). Непонятно, в каких случаях эти доки будешь переносить по ссылке. Если из одного документа создаешь 8, то какой укажешь вместо ссылки?
#7 by Reclaim
А вот это очень хороший вопрос... Пока точно не решил как это лучше сделать
#8 by Reclaim
Пишу вот такой код в ПВД, чтобы получить реквизит и ТЧ из входящих данных (Ставлю галки "Получить из входящих данных" у ПГКС и у реквизитов этой ТЧ): 1С ругается на реквизит: Ошибка получения свойства подчиненного объекта из входящих данных     ПКО                    =  ПланированиеАктивностей  (Документ: (АП) Планирование активностей)     ОписаниеОшибки         =  Поле объекта не обнаружено (Процент) Не пойму почему не находится поле у объекта... И ПВД я выгружаю "стандартной выборкой" или "произвольным алгоритмом"?
#9 by Reclaim
ПВД немного подправил, получилось вот так: Но теперь лезет вот такая ошибка: Ошибка получения коллекции подчиненных объектов из входящих данных     ПКО                    =  ПланированиеАктивностей  (Документ: (АП) Планирование активностей)     ПКГС                   =  4  ( --> Номенклатура)     Объект                 =  (АП) Планирование активностей 000000001 от 28.01.2016 11:13:23  ((АП) Планирование активностей)     ОписаниеОшибки         =  Получение элемента по индексу для значения не определено Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(7991)}: Ошибка получения коллекции подчиненных объектов из входящих данных     ПКГС                   =  4  ( --> Номенклатура)     Объект                 =  (АП) Планирование активностей 000000001 от 28.01.2016 11:13:23  ((АП) Планирование активностей)     ОписаниеОшибки         =  Получение элемента по индексу для значения не определено Подскажите, что это может быть?
#10 by sonne666
у вас табличная часть "Номенклатура" и ее реквизит "Номенклатура"? Выложи картинку с ПКС этого документа.
#11 by sonne666
У ПКГС Номенклатура должна стоять галочка "Получить из входящих данных", у реквизитов ТЧ такой галочки быть не должно. Может, в каких-то документах получается пустая таблица значений Номенклатура для выгрузки? Вот КД и не может получить коллекцию объектов, т.к. ее нет.
#12 by Reclaim
Вопрос решил. Создаем ПКО: не указываем источник, указываем необходимый приемник. Создаем необходимые ПКС, на каждом ставим "Получить из входящих данных". При переносе ТЧ ставим "Получить из входящих данных" только у самой ТЧ, реквизиты не трогаем. Создаем ПВД, указываем "Произвольный алгоритм" выборки. В обработчике "Перед обработкой" пишем код: V8 = Новый COMОбъект("V83.ComConnector");
#13 by Reclaim
Может кому-то пригодится
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С