Документ РеализацияТоваров
Читают тему
Вход в личный кабинет
Для получения доступа к форуму необходимо
авторизоваться
или
зарегистрироваться
на сайте.
{{ formTitle ? formTitle : 'Заказ обратного звонка' }}
{{ formDescription }}
Сообщить об ошибке
Хотел спросить вас как художник художников. Когда в модуле документа ЗаказНаряд создаю документ РеализацияТоваров и нужно что бы в ДокументОснование был этот ЗаказНаряд, чтобы в дереве ЗаказНаряда потом отражалась вся цепочка документов. Но сталкнудлся с такой проблемой: присвоить документ ЗаказНаряд реквизиту ДокументОснование нет возможности. Т.е. где-то стоит пометка которая влияет на вид выбранного документа и ели он не соответствует то его и не присваивает. Человеки подскажите, ткните пальцем куда нужно стукнуть.
ЗЫ
В Конфигураторе в документе РеализацияТоваров в реквизите ДокументОснование в ТипеДанных уже поставил ЗаказНаряд. И в ВводНаОсновании то же поставил. Но не помогло.
ЗЗЫ
Приз. Очень нужно.
В Конфигураторе в документе РеализацияТоваров в реквизите ДокументОснование в ТипеДанных уже поставил ЗаказНаряд. И в ВводНаОсновании то же поставил.
Как я понял ввод на основании осуществляется не штатными средствами через верхнюю панель ввода на основании, а программно?
Приведите фрагмент кода ввода на основании. Как создается новый документ реализации товаров, как он заполняется при этом.
Реализация = Документы.РеализацияТоваров.СоздатьДокумент();
Реализация.Автор = ПараметрыСеанса.Пользователь;
Реализация.ВалютаДокумента = Константы.ВалютаРегламентированногоУчетаОрганизаций.Получить();
Реализация.ДокументОснование = ЭтотОбъект.Ссылка;
Реализация.Контрагент = НашКонтрагент;
Реализация.СкладКомпании = ТекущийСклад;
Реализация.Организация = ТекущийСклад.Организация;
Реализация.ОтгрузкаЗН=ложь;
Реализация.КурсВалютыВзаиморасчетов = 1;
Реализация.КурсВалютыУпр = 1;
Реализация.КурсДокумента = 1;
Реализация.РегламентированныйУчет = Истина;
Реализация.ТипЦен = обПраво(ПланыВидовХарактеристик.ПраваИНастройки.ОсновнойТипЦенПродажи);
Реализация.ХозОперация = Справочники.ХозОперации.РеализацияТоваров;
Реализация.ОтгрузкаЗН=Истина;
Реализация.Комментарий = "Создан - "+ТекущаяДата()+", автоматический на основании ЗН / - "+Основание;
// Затем идёт заполнение таблиц товаром и т.д.
Реализация.Записать(РежимЗаписиДокумента.Проведение);
В итоге, документ корректно создаётся, проводится, на основе его проводится и корректно создаётся ПоступлениеТовара включая ДокументОснование как РеализацияТовара. Но сам документ РеализацияТоваров не принимает реквизит ДокуменОснование как ЗаказНаряд.
2. В отладчике посмотреть значение реквизита Реализация.ДокументОснование после строки его присваивания (Реализация.ДокументОснование = ЭтотОбъект.Ссылка;)
3. В отладчике пройтись до конца заполнения и записи реализации и отслеживать где может затираться данный реквизит.
4. Есть нехорошее предчувствие. Что есть Основание в данном контексте? Это случаем не создание (заполнение) самого ЗН или какого другого документа? Записан ли данный документ при этом? Если не записан, то Ссылка будет пустой. Надо делать после записи документа основания.
А вообще то так не красиво делать. Данную логику надо прописать в процедуре ОбработкаЗаполнения модуля реализации товаров. В противном случае данный программный ввод будет отличатся от штатного ввода на основании. Логичнее было бы эту логику прописывать в ОбработкаЗаполнения модуля реализации товаров (проанализировав на основании чего осуществляется ввод. А программное создание реализации товаров будет выглядеть так
Реализация = Документы.РеализацияТоваров.СоздатьДокумент();
Реализация.Заполнить(ЭтотОбъект.Ссылка);
Реализация.Записать(РежимЗаписиДокумента.Проведение);
ЭтотОбъект - это и есть как раз ЗаказНаряд, он записан и проведён, его проведение происходит раньше чем последующих документов.
Вся суть в том что этому реквизиту ничего как раз не присваивается, он Неопределённый, и остаётся им на всём протяжении кода. (проверено пошагово отладкой) Присваивалась хотя бы пустая ссылка - было бы сразу ясно. Если присваивать не ЗаказНаряд, а например документ СчётНаОплату то ДокументОснование прекрасно заполняется. Следовательно, ошибка в типе документа. В коде есть возможность описать тип документа который будет присваиваться реквизиту ДокументОснование, но грамотёшки у меня маловато и в справочной литературе ничего не нашёл. Процедуру ОбработкаЗаполнения переделал конструктором - не помогло. Код выполняется в процедуре ПриЗаписи в модуле ЗаказНаряд.
Прикрепленные файлы
Если хоть на СФ взглянуть ... иначе теряюсь в догадках что там переписано.
Реализация.ХозОперация = Справочники.ХозОперации.РеализацияТоваров;
Сердечно благодарю Александра Яблочкина по оказанную помошь и поддержку.