Как перенести реквизит ДокументОснование у документа СчетФактураПолученный

1. sidalexsandr 3 27.02.22 19:11 Сейчас в теме
Переношу при помощи Конвертации данных 2.1 из Комплексной автоматизации 2.4 в Бухгалтерию предприятия 3 документ СчетФактураПолученный и не получается перенести реквизит ДокументОснование. Дело в том что в комплексной автоматизации это ТабличнаяЧасть, а в Бухгалтерии это просто реквизит.

Вопрос: как из документа СчетФактураПолученный изтабличной части ДокументыОснования выбрать первый документ ПоступлениеТоваровУслуг и присвоить ссылку на полученный документ в документе СчетФактураПолученный реквизиту ДокументОснование?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starjevschik 27.02.22 19:13 Сейчас в теме
В ПКС
Значение = Источник.ДокументыОснования[0].Документ;

ну еще неплохо бы проверку на наличие строки.
Gadzhalik; +1 Ответить
3. sidalexsandr 3 27.02.22 19:15 Сейчас в теме
(2) Спасибо, а как написать проверку на наличие строки?
6. starjevschik 27.02.22 19:36 Сейчас в теме
(3) если тогда иначе конец. Программиста наймите, конвертация штука иногда непростая...
4. sidalexsandr 3 27.02.22 19:20 Сейчас в теме
Вот на всякий случай скрины из конвертации данных 2.1
Прикрепленные файлы:
5. sidalexsandr 3 27.02.22 19:21 Сейчас в теме
(4) Это источник.
Сейчас приемник
Прикрепленные файлы:
7. sidalexsandr 3 28.02.22 10:39 Сейчас в теме
(6) Если оператор я знаю.
Правильно ли я понял что проверить на заполненость можно так
Если ЗначениеЗаполнено(Источник.ДокументыОснования[0].Документ) Тогда
Значение = Источник.ДокументыОснования[0].Документ;
КонецЕсли;
8. sidalexsandr 3 28.02.22 11:09 Сейчас в теме
Написал
Если Источник.ДокументыОснования.Количество()>0 тогда
    Значение = Источник.ДокументыОснования[0].ДокументОсновние
КонецЕсли;


При выгрузке в базе источнике выдает ошибку
Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1562)}: Ошибка в обработчике события ПередВыгрузкой (свойства)
ПКО = СчетФактураПолученный (Документ: Счет-фактура полученный)
ПКС = 17 (--> ДокументОснование)
Объект = Счет-фактура полученный 007 от 26.01.2022 22:48:43 (Счет-фактура полученный)
СвойствоПриемника = ДокументОснование ()
Обработчик = ПередВыгрузкойСвойства
ОписаниеОшибки = Поле объекта не обнаружено (ДокументОсновние)
ПозицияМодуля = <Неизвестный модуль>(2)
КодСообщения = 55
9. sidalexsandr 3 28.02.22 11:28 Сейчас в теме
Исправил Если Источник.ДокументыОснования.Количество()>0 тогда
    Значение = Источник.ДокументыОснования[0].ДокументОснование;
КонецЕсли;


Ошибок нет, но теперь в загруженной счетфактуре полученный поле Документы-основания не заполнено.

Вопрос: что ещё делать чтобы заполнилось поле Документы-основания счет фактурой полученный?
10. sidalexsandr 3 28.02.22 11:58 Сейчас в теме
Написал
Если Источник.ДокументыОснования.Количество()>0 тогда
    Значение = Источник.ДокументыОснования[0].ДокументОснование;
	Сообщить("ДОКУМЕНТ ОСНОВАНИЯ = " + Значение);
КонецЕсли;


Выдало ДОКУМЕНТ ОСНОВАНИЯ = Приобретение товаров и услуг ПТPT-000025 от 26.01.2022 22:48:42

Теперь понятно почему не присваивается ДокументОснование. Сейчас ДокументОснование берётся из базы источника.

Вопрос: а как сделать чтобы по документу источника находился соответствующий документ базы приемника и найденный по uid документ базы приемника присваивался реквизиту ДокументОснование в базе приемника?
11. sidalexsandr 3 28.02.22 12:20 Сейчас в теме
Дело в том что в базе источнике и базе приемнике ДокументОснования называется по разному, вот:
Источник = ДокументСсылка.ПриобретениеТоваровУслуг
Приемник = ДокументСсылка.ПоступлениеТоваровУслуг
12. 603692 3 28.02.22 13:48 Сейчас в теме
(11) Должно быть Правило переноса этого типа документа, а в переносе документаОснования указать по правилу
13. sidalexsandr 3 28.02.22 16:10 Сейчас в теме
(12) Написал
Если Источник.ДокументыОснования.Количество()>0 тогда
    Значение = Источник.ДокументыОснования[0].ДокументОснование;
    Если ТипЗнч(Значение) = Тип("ДокументСсылка.ПриобретениеТоваровУслуг") Тогда
           ИмяПравила - "ПоступлениеТоваровУслуг";
    КонецЕсли;
    Сообщить("ДОКУМЕНТ ОСНОВАНИЯ = " + Значение);
КонецЕсли;


Выдает ошибку
Ошибка в обработчике события ПередВыгрузкой (свойства)
ПКО = СчетФактураПолученный (Документ: Счет-фактура полученный)
ПКС = 17 (--> ДокументОснование)
Объект = Счет-фактура полученный 007 от 26.01.2022 22:48:43 (Счет-фактура полученный)
СвойствоПриемника = ДокументОснование ()
Обработчик = ПередВыгрузкойСвойства
ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {<Неизвестный модуль>(4,17)}: Неопознанный оператор
ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8742)
КодСообщения = 55
14. sidalexsandr 3 28.02.22 17:26 Сейчас в теме
Посмотрел в Бухгалтерии предприятия 3 есть табличная часть ДокументыОснования с реквизитом ДокументОснование.
Далее в конвертации данных сопоставил эти табличные части ДокументыОснования. В итоге ничего в Бухгалтерии предприятия не появилось.
Написал запрос ВЫБРАТЬ
    СчетФактураПолученный.Ссылка КАК Ссылка,
    СчетФактураПолученный.Номер КАК Номер,
    СчетФактураПолученный.Дата КАК Дата,
    СчетФактураПолученный.ДокументыОснования.(
        ДокументОснование.Ссылка КАК ДокументОснованиеСсылка
    ) КАК ДокументыОснования
ИЗ
    Документ.СчетФактураПолученный КАК СчетФактураПолученный
Показать


Запрос выводит пустую колонку ДокументыОснования

Вопрос: что дальше делать?
15. sidalexsandr 3 01.03.22 10:23 Сейчас в теме
Оставьте свое сообщение

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