mr_vidocq
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ув. форумчане, есть вопросик по корректировке модуля,т.е ели есть в накладной "тара" -видТМЦ тогда ее(тару) надо вывести в отдельную секцию("СтрокаТ"),чтобы она не печаталась вместе с товаром,а если тары в накл. вообще нет, то и чтобы секция не печаталась вот процедура печати накладной: Код: // =============================== Процедура ПечатьНакладной() ЕстьСкидка = ?(Константа.ИспользоватьСкидку <> Да, 0, 1); //Проведемо аналіз залишку взеєморозрахунків Если Регистр.Взаиморасчеты.СводныйОстаток(Клиент.ТекущийЭлемент(),,"СуммаОсн") <> 0 Тогда Борг = Регистр.Взаиморасчеты.СводныйОстаток(Клиент.ТекущийЭлемент(),,"СуммаОсн")+Итог("СуммаСНДС"); Иначе Борг = 0; КонецЕсли; Таб.ВывестиСекцию("Шапка"); Ном = 1; ТабТМЦ = СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(ТабТМЦ); ТабТМЦ.Свернуть("Група,ТМЦ,Ед,ЦенаБезНДС,Залишок","Кво,СуммаБезНДС,СуммаБезСкидки"); ТабТМЦ.Сортировать("+Група"); ТабТМЦ.ВыбратьСтроки(); ПоперГрупа = ""; Пока ТабТМЦ.ПолучитьСтроку()=1 Цикл НоваГрупа = ТабТМЦ.Група; Если ПоперГрупа <>НоваГрупа Тогда ПоперГрупа = НоваГрупа; Таб.ВывестиСекцию("Група") КонецЕсли; Таб.ВывестиСекцию("Строка"); Если ТабТМЦ.ТМЦ.Вид = Перечисление.ВидыТМЦ.Комплект Тогда Таб.ВывестиСекцию("вСоставе"); Состав = СоздатьОбъект("Справочник.СоставКомплекта"); Состав.ИспользоватьВладельца(ТабТМЦ.ТМЦ); Состав.ВыбратьЭлементы(); Пока Состав.ПолучитьЭлемент()=1 Цикл СоставКво = ТабТМЦ.Кво*Состав.Кво; Таб.ВывестиСекцию("Комплектующая"); КонецЦикла; КонецЕсли; Ном = Ном+1; КонецЦикла; Если (ЕстьСкидка = 1) и (Итог("Скидка") > 0) Тогда Таб.ВывестиСекцию("Скидка"); КонецЕсли; Таб.ВывестиСекцию("Дно"); КонецПроцедуры | а я сделал вот так Код: // =============================== Процедура ПечатьНакладной() ЕстьСкидка = ?(Константа.ИспользоватьСкидку <> Да, 0, 1); //Проведемо аналіз залишку взеєморозрахунків Если Регистр.Взаиморасчеты.СводныйОстаток(Клиент.ТекущийЭлемент(),,"СуммаОсн") <> 0 Тогда Борг = Регистр.Взаиморасчеты.СводныйОстаток(Клиент.ТекущийЭлемент(),,"СуммаОсн")+Итог("СуммаСНДС"); Иначе Борг = 0; КонецЕсли; Таб.ВывестиСекцию("Шапка"); Ном = 1; ТабТМЦ = СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(ТабТМЦ); ТабТМЦ.Свернуть("Група,ТМЦ,Ед,ЦенаБезНДС,Залишок","Кво,СуммаБезНДС,СуммаБезСкидки"); ТабТМЦ.Сортировать("+Група"); ТабТМЦ.ВыбратьСтроки(); ПоперГрупа = ""; Пока ТабТМЦ.ПолучитьСтроку()=1 Цикл НоваГрупа = ТабТМЦ.Група; Если ПоперГрупа <>НоваГрупа Тогда ПоперГрупа = НоваГрупа; Таб.ВывестиСекцию("Група") КонецЕсли; Таб.ВывестиСекцию("Строка"); Если ТабТМЦ.ТМЦ.Вид = Перечисление.ВидыТМЦ.Комплект Тогда Таб.ВывестиСекцию("вСоставе"); Состав = СоздатьОбъект("Справочник.СоставКомплекта"); Состав.ИспользоватьВладельца(ТабТМЦ.ТМЦ); Состав.ВыбратьЭлементы(); Пока Состав.ПолучитьЭлемент()=1 Цикл СоставКво = ТабТМЦ.Кво*Состав.Кво; Таб.ВывестиСекцию("Комплектующая"); КонецЦикла; КонецЕсли; Ном = Ном+1; КонецЦикла; //******************************************************** // выводим тару в отдельную сецию ТабТМЦ.ВыбратьСтроки(); Пока ТабТМЦ.ПолучитьСтроку()=1 Цикл Если ТабТМЦ.ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Тара Тогда Таб.ВывестиСекцию("СтрокаТ"); КонецЕсли; КонецЦикла; //******************************************************** Если (ЕстьСкидка = 1) и (Итог("Скидка") > 0) Тогда Таб.ВывестиСекцию("Скидка"); КонецЕсли; Таб.ВывестиСекцию("Дно"); КонецПроцедуры | и высвечивает вот такую ошибку : Код: Если ТабТМЦ.ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Тара Тогда {Документ.ТранспортнаНакладна.Форма.Модуль(422)}: Поле агрегатного объекта не обнаружено (ВидТМЦ) | где и в чем искать ошибку? |