Как программно создать документ ПоступлениеТоваровУслуг в БП3.0
Всем здравствуйте!
В БП3.0 внешней обработкой создается документ ПоступлениеТоваровУслуг.
Как-то так:
После открытия формы документа видим, что реквизит ДоговорКонтрагента - недоступен.
Перевыбор Контрагента ничего не меняет.
Подскажите, пожалуйста, кто в теме: что ещё следует указать при создании нового документа ПоступлениеТоваровУслуг, чтобы договор был доступен?
В БП3.0 внешней обработкой создается документ ПоступлениеТоваровУслуг.
Как-то так:
&НаСервере
Процедура СформироватьНаСервере()
ТЗДок = Новый ТаблицаЗначений;
ТЗДок = ЭтотОбъект.ТЗ.Выгрузить();
Для каждого стр из ТЗДок Цикл
Док = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
Док.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.Товары;
Док.Дата = ОбщегоНазначенияКлиентСервер.СтрокаВДату(стр.ДатаДок);
Док.ДатаВходящегоДокумента = ОбщегоНазначенияКлиентСервер.СтрокаВДату(стр.ДатаДок);
Док.НомерВходящегоДокумента = СокрЛП(стр.НомерДок);
Док.Организация = Объект.Организация;
Док.Контрагент = стр.Контрагент;
Док.Записать();
КонецЦикла;
ПоказатьПосле открытия формы документа видим, что реквизит ДоговорКонтрагента - недоступен.
Перевыбор Контрагента ничего не меняет.
Подскажите, пожалуйста, кто в теме: что ещё следует указать при создании нового документа ПоступлениеТоваровУслуг, чтобы договор был доступен?
Найденные решения
(1) лучше добавить строку после создания объекта
док.Заполнить(неопределено);
тем самым инициировать стандартную процедуру заполнения документа..
там же надо и налогообложение заполнять, и валюту учета..может еще какие то служебные реквизиты.
либо создать документ руками, проанализировать все реквизиты которые в нем есть и программно устанавливать такие же значения.
А вы по сути пустой объект создали и всего 6 реквизитов установили, явно чтото упустили.
док.Заполнить(неопределено);
тем самым инициировать стандартную процедуру заполнения документа..
там же надо и налогообложение заполнять, и валюту учета..может еще какие то служебные реквизиты.
либо создать документ руками, проанализировать все реквизиты которые в нем есть и программно устанавливать такие же значения.
А вы по сути пустой объект создали и всего 6 реквизитов установили, явно чтото упустили.
Спасибо всем за оперативные советы!
Особенное спасибо 4. Boneman за подсказку применить функцию док.Заполнить(неопределено);
Вот так теперь норм:
Заполнить(Неопределено) должно быть после Док.Контрагент.
Особенное спасибо 4. Boneman за подсказку применить функцию док.Заполнить(неопределено);
Вот так теперь норм:
Для каждого стр из ТЗДок Цикл
Док = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
Док.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.Товары;
Док.Дата = ОбщегоНазначенияКлиентСервер.СтрокаВДату(стр.ДатаДок);
Док.ДатаВходящегоДокумента = ОбщегоНазначенияКлиентСервер.СтрокаВДату(стр.ДатаДок);
Док.НомерВходящегоДокумента = СокрЛП(стр.НомерДок);
Док.Организация = Объект.Организация;
Док.Контрагент = стр.Контрагент;
Док.Заполнить(Неопределено); //!!!!!!!!!!!!!
Док.Записать();
КонецЦикла;
ПоказатьЗаполнить(Неопределено) должно быть после Док.Контрагент.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) лучше добавить строку после создания объекта
док.Заполнить(неопределено);
тем самым инициировать стандартную процедуру заполнения документа..
там же надо и налогообложение заполнять, и валюту учета..может еще какие то служебные реквизиты.
либо создать документ руками, проанализировать все реквизиты которые в нем есть и программно устанавливать такие же значения.
А вы по сути пустой объект создали и всего 6 реквизитов установили, явно чтото упустили.
док.Заполнить(неопределено);
тем самым инициировать стандартную процедуру заполнения документа..
там же надо и налогообложение заполнять, и валюту учета..может еще какие то служебные реквизиты.
либо создать документ руками, проанализировать все реквизиты которые в нем есть и программно устанавливать такие же значения.
А вы по сути пустой объект создали и всего 6 реквизитов установили, явно чтото упустили.
Если 1 пост не поможет, попробуйте создавать не новый документ, а копировать какой нибудь существующий программно, в котором всё норм. Нужные поля в тч перезаполнить. Кроме этого посмотрите какие обработчики привязаны к элементу формы Договор и что при этом происходит.
Спасибо всем за оперативные советы!
Особенное спасибо 4. Boneman за подсказку применить функцию док.Заполнить(неопределено);
Вот так теперь норм:
Заполнить(Неопределено) должно быть после Док.Контрагент.
Особенное спасибо 4. Boneman за подсказку применить функцию док.Заполнить(неопределено);
Вот так теперь норм:
Для каждого стр из ТЗДок Цикл
Док = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
Док.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.Товары;
Док.Дата = ОбщегоНазначенияКлиентСервер.СтрокаВДату(стр.ДатаДок);
Док.ДатаВходящегоДокумента = ОбщегоНазначенияКлиентСервер.СтрокаВДату(стр.ДатаДок);
Док.НомерВходящегоДокумента = СокрЛП(стр.НомерДок);
Док.Организация = Объект.Организация;
Док.Контрагент = стр.Контрагент;
Док.Заполнить(Неопределено); //!!!!!!!!!!!!!
Док.Записать();
КонецЦикла;
ПоказатьЗаполнить(Неопределено) должно быть после Док.Контрагент.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот