Есть Объект нет Ссылки
Возможно для знающих вопрос окажется элементарным, но все же
обмен из БП 3.0 в БП 2.0, документ "Реализация товаров и услуг"
при записи должен на основании создаваться "Счет на оплату"
Конвертация данных 2.1
Правило конвертации объекта: РеализацияТоваровУслуг
Обработчик: После загрузки
но вот беда - Ссылка то ничего не содержит!
Счет получается пустой!
Как быть в таком ситуации?
Как заполнить документ стандартно процедурой заполнения?
не имея ссылки
обмен из БП 3.0 в БП 2.0, документ "Реализация товаров и услуг"
при записи должен на основании создаваться "Счет на оплату"
Конвертация данных 2.1
Правило конвертации объекта: РеализацияТоваровУслуг
Обработчик: После загрузки
Если Не ОбъектНайден И НЕ ЗначениеЗаполнено(Объект.СчетНаОплатуПокупателю) Тогда
ОбъектСчетаНаОплату = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
ОбъектСчетаНаОплату.Заполнить(Объект.ПолучитьСсылкуНового());
ОбъектСчетаНаОплату.Дата = Объект.Дата;
ОбъектСчетаНаОплату.Записать();
Объект.СчетНаОплатуПокупателю = ОбъектСчетаНаОплату.Ссылка;
КонецЕсли;
Показатьно вот беда - Ссылка то ничего не содержит!
Счет получается пустой!
Как быть в таком ситуации?
Как заполнить документ стандартно процедурой заполнения?
не имея ссылки
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Создавать заранее документ из КД. Возможно потребуется ВыгрузитьПоПравилу, если самого документа счёт в 3.0 сейчас нет, а в 2.0 он нужен.
их надо связать между собой (через реквизит)
и счета нужны не всем, а порядка 50 контрагентам из 4000
и счета нужны не всем, а порядка 50 контрагентам из 4000
ОбъектСчетаНаОплату.Дата = Объект.Дата;
ОбъектСчетаНаОплату.Записать();
Объект.СчетНаОплатуПокупателю = ОбъектСчетаНаОплату.Ссылка;
правда при таком решении вопроса следует, наверно, устанавливать у объект режим ОбменДанными,Загрузка = истина
Тогда в Заполнить() лучше передавать заполненную структуру, а не пытаться сделать ссылку. Ссылку передавать бесполезно, объекта всё равно в базе нет.
Заполнить() это стандартная обработка модуля
там сразу стоит проверка на ТипЗнч(Основание) = Тип("ДокументСсылка.РеализацияТоваровУслуг")
и из него же Основание, берется тч Товары
только вот ссылка еще не сформирована
и ТЧ.Товары.Количество() = 0
там сразу стоит проверка на ТипЗнч(Основание) = Тип("ДокументСсылка.РеализацияТоваровУслуг")
и из него же Основание, берется тч Товары
только вот ссылка еще не сформирована
и ТЧ.Товары.Количество() = 0
чтобы создать документ на основании реализации эту самую реализацию нужно записать в базу.
То есть до создания документа счет на оплату покупателю.
То есть должна быть строка "Объект.Записать(РежимЗаписиДокумента.Запись)"
То есть до создания документа счет на оплату покупателю.
То есть должна быть строка "Объект.Записать(РежимЗаписиДокумента.Запись)"
ну так самый простой вариант - это принудительно записывать документ реализации в обработчике "После загрузки".
то есть после строчки
Если Не ОбъектНайден И НЕ ЗначениеЗаполнено(Объект.СчетНаОплатуПокупателю) Тогда
следует строчка
Объект.Записать(режимзаписидокумента.Запись);
в идеале неплохо сообщить объекту что запись будет в режиме обмена, но если времени полно то можно на это забить.
то есть после строчки
Если Не ОбъектНайден И НЕ ЗначениеЗаполнено(Объект.СчетНаОплатуПокупателю) Тогда
следует строчка
Объект.Записать(режимзаписидокумента.Запись);
в идеале неплохо сообщить объекту что запись будет в режиме обмена, но если времени полно то можно на это забить.
Процедура ОбработкаЗаполнения(Основание)
Если ТипЗнч(Основание) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
<...>
ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.ОтчетКомитентуОПродажах") Тогда
<...>
ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.АктОбОказанииПроизводственныхУслуг") Тогда
<...>
КонецЕсли;
КонецПроцедуры // ОбработкаЗаполнения()
Показатьнету иных типов основания
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот