Документ РеализацияТоваров

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

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

В итоге, документ корректно создаётся, проводится, на основе его проводится и корректно создаётся ПоступлениеТовара включая ДокументОснование как РеализацияТовара. Но сам документ РеализацияТоваров не принимает реквизит ДокуменОснование как ЗаказНаряд.
 
1. Какой тип имеет ЭтотОбъект.Ссылка в данном контексте (посмотреть в отладчике). Где именно выполняется данный код?
2. В отладчике посмотреть значение реквизита Реализация.ДокументОснование после строки его присваивания (Реализация.ДокументОснование = ЭтотОбъект.Ссылка;)
3. В отладчике пройтись до конца заполнения и записи реализации и отслеживать где может затираться данный реквизит.
4. Есть нехорошее предчувствие. Что есть Основание в данном контексте? Это случаем не создание (заполнение) самого ЗН или какого другого документа? Записан ли данный документ при этом? Если не записан, то Ссылка будет пустой. Надо делать после записи документа основания.

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

Сердечно благодарю Александра Яблочкина по оказанную помошь и поддержку.
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С