Помощь - Поиск - Пользователи - Календарь
Полная версия: Групповое оформелние заказов поставщику
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 8.x" > (8.х) Конфигурирование на платформе "1С:Предприятие 8.x"
Allight
Управление торговлей 10.3.3
Продолжаю осваивать программирование в 1С aua.gif
Ситуация такая: у нас каждая номенклатура привязана к определенному поставщику. Для этого в справочник Номенклатура
добавлен реквизит Контрагент. Информация о поставщике попадает в табличную часть Заказа покупателя в
реквизит Поставщик. В форму документа Заказ покупателя я добавил кнопку Сформировать заказ потавщику:
предполагается, что на основании Заказа покупателя будут автоматически формироваться сразу несколько
заказов поставщику. При нажатии кнопки включается такая-вот процедура:
Код
Процедура ЗаказПоставщикуНажатие(Элемент)

ДанныеДляЗаказаПоставщику=ЭтотОбъект.Товары.Выгрузить();
ДанныеДляЗаказаПоставщику.Свернуть("Поставщик, Номенклатура",
"Количество, КоличествоМест, Сумма, СуммаНДС");
Для каждого Поставщик из ДанныеДляЗаказаПоставщику Цикл
НовДок=Документы.ЗаказПоставщику.СоздатьДокумент();
НовДок.Дата=ТекущаяДата();
НовДок.Контрагент=ДанныеДляЗаказаПоставщику.Поставщик;
НовДок.ВалютаДокумента=ЭтотОбъект.ВалютаДокумента;
НовДок.КратностьВзаиморасчетов=ЭтотОбъект.КратностьВзаиморасчетов;
НовДок.КурсВзаиморасчетов=ЭтотОбъект.КурсВзаиморасчетов;
НовДок.СуммаВключаетНДС=ЭтотОбъект.СуммаВключаетНДС;
НовДок.Организация=ЭтотОбъект.Организация;
НоваяСтрочка=НовДок.Товары.Добавить();
НоваяСтрочка.Номенклатура=ДанныеДляЗаказаПоставщику.Номенклатура;
НовДок.Записать();
КонецЦикла;

КонецПроцедуры


Но ничего не получается, программа пишет, что в строке
"НовДок.Контрагент=ДанныеДляЗаказаПоставщику.Поставщик"
Поле агрегатного объекта не обнаружено(Поставщик). Понимаю, что накосячил, но в силу своей малой компетентности не знаю, где.
BabySG
Вы обращаетесь к СТРОКЕ с именем ПОСТАВЩИК из таблицы ДанныеДляЗаказаПоставщику. Посмотрите на свой цикл ДЛЯ КАЖДОГО ИЗ
Stack_G
Т.е.:
Код

Процедура ЗаказПоставщикуНажатие(Элемент)

ДанныеДляЗаказаПоставщику=ЭтотОбъект.Товары.Выгрузить();
ДанныеДляЗаказаПоставщику.Свернуть("Поставщик, Номенклатура",
"Количество, КоличествоМест, Сумма, СуммаНДС");
Для каждого СтрокаТЗ из ДанныеДляЗаказаПоставщику Цикл
НовДок=Документы.ЗаказПоставщику.СоздатьДокумент();
НовДок.Дата=ТекущаяДата();
НовДок.Контрагент=СтрокаТЗ.Поставщик;
НовДок.ВалютаДокумента=ЭтотОбъект.ВалютаДокумента;
НовДок.КратностьВзаиморасчетов=ЭтотОбъект.КратностьВзаиморасчетов;
НовДок.КурсВзаиморасчетов=ЭтотОбъект.КурсВзаиморасчетов;
НовДок.СуммаВключаетНДС=ЭтотОбъект.СуммаВключаетНДС;
НовДок.Организация=ЭтотОбъект.Организация;
НоваяСтрочка=НовДок.Товары.Добавить();
НоваяСтрочка.Номенклатура=СтрокаТЗ.Номенклатура;
НовДок.Записать();
КонецЦикла;

КонецПроцедуры



Но если у тебя в ТЧ заказа покупателя несколько строк с одинаковым поставщиком, то по твоему алгоритму создастся несколько заказов одному поставщику... а нужно один заказ поставщику с несколькими строками.
BabySG
Надо делать сортировку по поставщику и следить за ним...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2009 Invision Power Services, Inc.