Общее количество и вес в печатной форме Реализация товаров и услуг УТ11 Управляемые формы , 1С:Предприятие 8.3 (8.3.13.1513) УТ11 3,1(3.1.3.4)
14.09.21, 10:08
Общительный
Группа: Пользователи
Сообщений: 14
Спасибо сказали: 1 раз
Рейтинг: 0
Вес пропустим, как сделать количество итого ?
вот функция заполнения печатной формы
тыц Функция ЗаполнитьТабличныйДокументРасходнаяНакладная(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати, КомплектыПечати, ПараметрыПечати, ПараметрыВывода)
Перем КомплектПечатиПоСсылке;
КодЯзыкаПечать = ПараметрыВывода.КодЯзыкаДляМногоязычныхПечатныхФорм;
ДанныеПечати = ДанныеДляПечати.РезультатПоШапке.Выбрать();
ВыборкаПоДокументам = ДанныеДляПечати.РезультатПоТабличнойЧасти.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Если ПараметрыПечати <> Неопределено И ПараметрыПечати.Свойство("ОтображатьСкидки" ) Тогда
ОтображатьСкидки = ПараметрыПечати.ОтображатьСкидки;
Иначе
ОтображатьСкидки = (Константы.ОтображениеСкидокВПечатныхФормахДокументовПродажи.Получить()
<> Перечисления.ВариантыВыводаСкидокВПечатныхФормах.НеВыводитьСкидки);
КонецЕсли ;
КолонкаКодов = ФормированиеПечатныхФорм.ИмяДополнительнойКолонки();
ВыводитьКоды = ЗначениеЗаполнено(КолонкаКодов);
ИспользоватьРучныеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьРучныеСкидкиВПродажах" );
ИспользоватьАвтоматическиеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьАвтоматическиеСкидкиВПродажах" );
ПоказыватьНДС = Константы.ВыводитьДопКолонкиНДС.Получить();
ПервыйДокумент = Истина ;
Пока ДанныеПечати.Следующий() Цикл
Отказ = Ложь ;
ПодготовкаДляПечатиКомплектов(ДанныеПечати, КомплектыПечати, КомплектПечатиПоСсылке, Отказ);
Если Отказ Тогда
Продолжить;
КонецЕсли ;
СтруктураПоиска = Новый Структура("Ссылка" , ДанныеПечати.Ссылка);
НайденСледующий = ВыборкаПоДокументам.НайтиСледующий(СтруктураПоиска);
Если ТипЗнч(ДанныеПечати.Ссылка) = Тип("ДокументСсылка.РеализацияУслугПрочихАктивов" )
ИЛИ ТипЗнч(ДанныеПечати.Ссылка) = Тип("ДокументСсылка.ВыкупВозвратнойТарыКлиентом" )
ИЛИ ТипЗнч(ДанныеПечати.Ссылка) = Тип("ДокументСсылка.ПередачаТоваровМеждуОрганизациями" ) Тогда
ИспользоватьРучныеСкидки = Ложь ;
ИспользоватьАвтоматическиеСкидки = Ложь ;
КонецЕсли ;
Если ТипЗнч(ДанныеПечати.Ссылка) = Тип("ДокументСсылка.РеализацияУслугПрочихАктивов" ) Тогда
ВыводитьКоды = Ложь ;
КонецЕсли ;
Если НайденСледующий Тогда
ВыборкаПоТоварам = ВыборкаПоДокументам.Выбрать();
ЗаголовокСкидки = ФормированиеПечатныхФорм.НужноВыводитьСкидки(ВыборкаПоТоварам, ИспользоватьРучныеСкидки Или ИспользоватьАвтоматическиеСкидки, КодЯзыкаПечать);
ЕстьСкидки = ЗаголовокСкидки.ЕстьСкидки;
ЕстьНДС = ДанныеПечати.УчитыватьНДС;
ВыборкаПоТоварам.Сбросить();
Иначе
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='В документе %1 отсутствуют товары. Печать накладной не требуется';uk='У документі %1 відсутні товари. Друк накладної не потрібний'" ),
ДанныеПечати.Ссылка
);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
Текст,
ДанныеПечати.Ссылка
);
Продолжить;
КонецЕсли ;
Макет = УправлениеПечатью.ПолучитьМакет("Обработка.ПечатьОбщихФорм.ПФ_MXL_РасходнаяНакладная" , КодЯзыкаПечать);
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли ;
ПервыйДокумент = Ложь ;
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1 ;
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок" );
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьМакета, ДанныеПечати.Ссылка);
ТекстЗаголовка = ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(ДанныеПечати, НСтр("ru='Расходная накладная';uk='Видаткова накладна'" ,КодЯзыкаПечать), КодЯзыкаПечать);
СтруктураДанныхШапки = Новый Структура;
СтруктураДанныхШапки.Вставить("ТекстЗаголовка" , ТекстЗаголовка);
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхШапки);
ТабличныйДокумент.Вывести(ОбластьМакета);
СведенияОПоставщике = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Организация, ДанныеПечати.Дата,,ДанныеПечати.БанковскийСчетОрганизации);
СведенияОПокупателе = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Получатель, ДанныеПечати.Дата,,ДанныеПечати.БанковскийСчетКонтрагента);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик" );
ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование" ,,КодЯзыкаПечать);
РеквизитыПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "НомерСчета,Банк,МФО,/,ЮридическийАдрес,Телефоны,/,КодПоЕДРПОУ,КодПоДРФО,ИНН,НомерСвидетельства,/,ИнформацияОСтатусеПлательщикаНалогов," ,,КодЯзыкаПечать);
СтруктураДанныхПоставщик = Новый Структура;
СтруктураДанныхПоставщик.Вставить("ПредставлениеПоставщика" , ПредставлениеПоставщика);
СтруктураДанныхПоставщик.Вставить("Поставщик" , ДанныеПечати.Организация);
СтруктураДанныхПоставщик.Вставить("РеквизитыПоставщика" , РеквизитыПоставщика);
СтруктураДанныхПоставщик.Вставить("Склад" , ДанныеПечати.Ссылка.Склад);
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПоставщик);
ТабличныйДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель" );
ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование" ,,КодЯзыкаПечать);
РеквизитыПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ФактическийАдрес,Телефоны," ,,КодЯзыкаПечать);
Склад = ДанныеПечати.Ссылка.Склад;
СтруктураДанныхПокупатель = Новый Структура;
СтруктураДанныхПокупатель.Вставить("ПредставлениеПолучателя" , ПредставлениеПолучателя);
СтруктураДанныхПокупатель.Вставить("Получатель" , ДанныеПечати.Получатель);
СтруктураДанныхПокупатель.Вставить("РеквизитыПокупателя" , РеквизитыПокупателя);
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПокупатель);
Запрос2 = Новый Запрос(
"ВЫБРАТЬ
| РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
| РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| РасчетыСКлиентамиОстаткиИОбороты.Регистратор КАК Регистратор
|ИЗ
| РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(, , Регистратор, Движения, ) КАК РасчетыСКлиентамиОстаткиИОбороты
|ГДЕ
| РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент = &Контрагент
| И РасчетыСКлиентамиОстаткиИОбороты.Период = &Регистратор" );
Запрос2 .УстановитьПараметр("Контрагент" , ДанныеПечати.Получатель);
Запрос2 .УстановитьПараметр("Регистратор" , ДанныеПечати.Дата);
Результат2 = Запрос2 .Выполнить();
ВыборкаДетальныеЗаписи2 = Результат2 .Выбрать();
Если ВыборкаДетальныеЗаписи2 .Следующий() Тогда
КонечныйДолг = ВыборкаДетальныеЗаписи2 .СуммаКонечныйОстаток;
Если КонечныйДолг < 0 Тогда
ОбластьМакета.Параметры.ДолгИнфа = "Передоплата контрагента з урахуванням цієї накладної становить " + (-1 )*КонечныйДолг + " грн." ;
Иначе
ОбластьМакета.Параметры.ДолгИнфа = "Заборгованість контрагента з урахуванням цієї накладної становить " + КонечныйДолг + " грн." ;
КонецЕсли ;
Иначе
ОбластьМакета.Параметры.ДолгИнфа = "" ;
КонецЕсли ;
ТабличныйДокумент.Вывести(ОбластьМакета);
СписокДополнительныхПараметров = "ДоговорНаименованиеДляПечати," ;
Если ДанныеПечати.ПечататьЗаказ Тогда
СписокДополнительныхПараметров = СписокДополнительныхПараметров + "Заказ," ;
КонецЕсли ;
СписокДополнительныхПараметров = СписокДополнительныхПараметров + "АдресДоставки," ;
МассивСтруктурСтрок = ФормированиеПечатныхФорм.ДополнительнаяИнформация(ДанныеПечати, СписокДополнительныхПараметров, КодЯзыкаПечать);
ОбластьМакета = Макет.ПолучитьОбласть("ДопИнформация" );
Для каждого СтруктураСтроки Из МассивСтруктурСтрок Цикл
ОбластьМакета.Параметры.Заполнить(СтруктураСтроки);
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЦикла ;
СуффиксОбластиСтроки = ?(ЕстьСкидки, "СоСкидкой" , "" ) + ?(ЕстьНДС И ПоказыватьНДС, "СНДС" , "" );
СуффиксОбластиКолонки = ?(ЕстьСкидки И ЕстьНДС И ПоказыватьНДС, "СоСкидкойСНДС" , ?(ЕстьСкидки Или (ЕстьНДС И ПоказыватьНДС), "СоСкидкойИлиСНДС" , "" ));
ОбластьКолонкаТовар = Макет.Область("ПерваяКолонкаТовара" );
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки
+ ?(ВыводитьКоды, 0 , Макет.Область("КолонкаКодов" ).ШиринаКолонки)
;
ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|НомерСтроки" );
ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|КолонкаКодов" );
ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|Товар" + СуффиксОбластиКолонки);
ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|Данные" + СуффиксОбластиКолонки);
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ОбластьКодов.Параметры.ИмяКолонкиКодов = КолонкаКодов;
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли ;
ЗаполнитьЗначенияСвойств(ОбластьДанных.Параметры, ФормированиеПечатныхФорм.СформироватьЗаголовкиДляСуммовыхПоказателей(ДанныеПечати, КодЯзыкаПечать));
Если ЕстьСкидки Тогда
СтруктураЗаголовокСкидки = Новый Структура("Скидка, СуммаБезСкидки" ,
ЗаголовокСкидки.Скидка,
ЗаголовокСкидки.СуммаСкидки);
ОбластьДанных.Параметры.Заполнить(СтруктураЗаголовокСкидки);
КонецЕсли ;
ТабличныйДокумент.Присоединить(ОбластьТовар);
ТабличныйДокумент.Присоединить(ОбластьДанных);
ОбластьНомераСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "|НомерСтроки" );
ОбластьКодовСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "|КолонкаКодов" );
ОбластьТоварСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "|Товар" + СуффиксОбластиКолонки);
ОбластьДанныхСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "|Данные" + СуффиксОбластиКолонки);
ИспользоватьНаборы = Ложь ;
Если ОбщегоНазначенияУТКлиентСервер.ЕстьРеквизитОбъекта(ВыборкаПоДокументам, "ЭтоНабор" ) Тогда
ИспользоватьНаборы = Истина ;
ОбластьНомераСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Набор" + "|НомерСтроки" );
ОбластьНомераСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Комплектующие" + "|НомерСтроки" );
ОбластьКодовСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Набор" + "|КолонкаКодов" );
ОбластьКодовСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Комплектующие" + "|КолонкаКодов" );
ОбластьТоварСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Набор" + "|Товар" + СуффиксОбластиКолонки);
ОбластьТоварСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Комплектующие" + "|Товар" + СуффиксОбластиКолонки);
ОбластьДанныхСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Набор" + "|Данные" + СуффиксОбластиКолонки);
ОбластьДанныхСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Комплектующие" + "|Данные" + СуффиксОбластиКолонки);
КонецЕсли ;
Сумма = 0 ;
СуммаНДС = 0 ;
ВсегоСкидок = 0 ;
НомерСтроки = 0 ;
ВсегоБезСкидок = 0 ;
ПустыеДанные = НаборыСервер.ПустыеДанные();
Пока ВыборкаПоТоварам.Следующий() Цикл
Если НаборыСервер.ИспользоватьОбластьНабор(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
ОбластьКодовСтроки = ОбластьКодовСтрокиНабор;
ОбластьНомераСтроки = ОбластьНомераСтрокиНабор;
ОбластьДанныхСтроки = ОбластьДанныхСтрокиНабор;
ОбластьТоварСтроки = ОбластьТоварСтрокиНабор;
ИначеЕсли НаборыСервер.ИспользоватьОбластьКомплектующие(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
ОбластьКодовСтроки = ОбластьКодовСтрокиКомплектующие;
ОбластьНомераСтроки = ОбластьНомераСтрокиКомплектующие;
ОбластьДанныхСтроки = ОбластьДанныхСтрокиКомплектующие;
ОбластьТоварСтроки = ОбластьТоварСтрокиКомплектующие;
Иначе
ОбластьКодовСтроки = ОбластьКодовСтрокиСтандарт;
ОбластьНомераСтроки = ОбластьНомераСтрокиСтандарт;
ОбластьДанныхСтроки = ОбластьДанныхСтрокиСтандарт;
ОбластьТоварСтроки = ОбластьТоварСтрокиСтандарт;
КонецЕсли ;
Если НаборыСервер.ВыводитьТолькоЗаголовок(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки" , Неопределено );
Иначе
НомерСтроки = НомерСтроки + 1 ;
УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки" , НомерСтроки);
КонецЕсли ;
ТабличныйДокумент.Вывести(ОбластьНомераСтроки);
Если ВыводитьКоды Тогда
СтруктураДанныхКоды = Новый Структура("Артикул" , ВыборкаПоТоварам[КолонкаКодов]);
ОбластьКодовСтроки.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(ОбластьКодовСтроки);
КонецЕсли ;
ПрефиксИПостфикс = НаборыСервер.ПолучитьПрефиксИПостфикс(ВыборкаПоТоварам, ИспользоватьНаборы);
ОбластьТоварСтроки.Параметры.Заполнить(ВыборкаПоТоварам);
Если ТипЗнч(ДанныеПечати.Ссылка) = Тип("ДокументСсылка.РеализацияУслугПрочихАктивов" ) Тогда
Товар = ВыборкаПоТоварам.Содержание;
СтруктураДанныхТовар = Новый Структура("Товар" , Товар);
ОбластьТоварСтроки.Параметры.Заполнить(СтруктураДанныхТовар);
Иначе
Товар = ПрефиксИПостфикс.Префикс + НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаПоТоварам.ТоварНаименованиеПолное,
ВыборкаПоТоварам.Характеристика,
,
,
,
ВыборкаПоТоварам.ЭтоВозвратнаяТара,
КодЯзыкаПечать) + ПрефиксИПостфикс.Постфикс;
СтруктураДанныхТовар = Новый Структура("Товар" , Товар);
ОбластьТоварСтроки.Параметры.Заполнить(СтруктураДанныхТовар);
КонецЕсли ;
ТабличныйДокумент.Присоединить(ОбластьТоварСтроки);
Если ЗаголовокСкидки.ЕстьСкидки Тогда
СтруктураДанныхСуммаСкидки = Новый Структура("СуммаСкидки" ,
?(ЗаголовокСкидки.ТолькоНаценка,- ВыборкаПоТоварам.СуммаСкидки,ВыборкаПоТоварам.СуммаСкидки));
ОбластьДанныхСтроки.Параметры.Заполнить(СтруктураДанныхСуммаСкидки);
КонецЕсли ;
Если НаборыСервер.ВыводитьТолькоЗаголовок(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
ОбластьДанныхСтроки.Параметры.Заполнить(ПустыеДанные);
Иначе
ОбластьДанныхСтроки.Параметры.Заполнить(ВыборкаПоТоварам);
КонецЕсли ;
ТабличныйДокумент.Присоединить(ОбластьДанныхСтроки);
Если Не НаборыСервер.ИспользоватьОбластьКомплектующие(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
Сумма = Сумма + ВыборкаПоТоварам.Сумма;
СуммаНДС = СуммаНДС + ВыборкаПоТоварам.СуммаНДС;
Если ЕстьСкидки Тогда
ВсегоСкидок = ВсегоСкидок + ВыборкаПоТоварам.СуммаСкидки;
ВсегоБезСкидок = ВсегоБезСкидок + ВыборкаПоТоварам.СуммаБезСкидки;
КонецЕсли ;
КонецЕсли ;
КонецЦикла ;
ОбластьНомера = Макет.ПолучитьОбласть("ПодвалТаблицы" + СуффиксОбластиСтроки + "|НомерСтроки" );
ОбластьКодов = Макет.ПолучитьОбласть("ПодвалТаблицы" + СуффиксОбластиСтроки + "|КолонкаКодов" );
ОбластьТовар = Макет.ПолучитьОбласть("ПодвалТаблицы" + СуффиксОбластиСтроки + "|Товар" + СуффиксОбластиКолонки);
ОбластьДанных = Макет.ПолучитьОбласть("ПодвалТаблицы" + СуффиксОбластиСтроки + "|Данные" + СуффиксОбластиКолонки);
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли ;
ТабличныйДокумент.Присоединить(ОбластьТовар);
СтруктураДанныхВсегоСкидки = Новый Структура;
Если ЕстьСкидки Тогда
СтруктураДанныхВсегоСкидки.Вставить("ВсегоСкидок" , ?(ЗаголовокСкидки.ТолькоНаценка,-ВсегоСкидок, ВсегоСкидок));
СтруктураДанныхВсегоСкидки.Вставить("ВсегоБезСкидок" , ВсегоБезСкидок);
КонецЕсли ;
СтруктураДанныхВсегоСкидки.Вставить("Всего" , ФормированиеПечатныхФорм.ФорматСумм(Сумма));
ОбластьДанных.Параметры.Заполнить(СтруктураДанныхВсегоСкидки);
ТабличныйДокумент.Присоединить(ОбластьДанных);
Область = Макет.ПолучитьОбласть("ПодвалНДС" );
СтруктураДанныхПодвалНДС = Новый Структура;
СтруктураДанныхПодвалНДС.Вставить("ВсегоНДС" , СуммаНДС);
Если ЕстьНДС Тогда
СтруктураДанныхПодвалНДС.Вставить("НДС" , ?(ДанныеПечати.ЦенаВключаетНДС, НСтр("ru='В том числе НДС:';uk='У тому числі ПДВ:'" ,КодЯзыкаПечать), НСтр("ru='Сумма НДС:';uk='Сума ПДВ:'" ,КодЯзыкаПечать)));
Если Не ДанныеПечати.ЦенаВключаетНДС Тогда
Область.Параметры.Заполнить(СтруктураДанныхПодвалНДС);
ТабличныйДокумент.Вывести(Область);
СтруктураДанныхПодвалНДС = Новый Структура;
СтруктураДанныхПодвалНДС.Вставить("НДС" , НСтр("ru='Всего с НДС:';uk='Всього із ПДВ:'" ,КодЯзыкаПечать));
СтруктураДанныхПодвалНДС.Вставить("ВсегоНДС" , Сумма + СуммаНДС);
КонецЕсли ;
Иначе
СтруктураДанныхПодвалНДС.Вставить("НДС" , НСтр("ru='Без налога (НДС)';uk='Без податку (ПДВ)'" ,КодЯзыкаПечать));
КонецЕсли ;
Область.Параметры.Заполнить(СтруктураДанныхПодвалНДС);
ТабличныйДокумент.Присоединить(Область);
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью" );
СуммаКПрописи = Сумма + ?(ДанныеПечати.ЦенаВключаетНДС, 0 , СуммаНДС);
СтруктураДанныхСуммаПрописью = Новый Структура;
ИтоговаяСтрока = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Всего наименований %1, на сумму %2';uk='Всього найменувань %1, на суму %2'" ,КодЯзыкаПечать),
ВыборкаПоТоварам.Количество(),
ФормированиеПечатныхФорм.ФорматСумм(СуммаКПрописи, ДанныеПечати.Валюта));
СтруктураДанныхСуммаПрописью.Вставить("ИтоговаяСтрока" , ИтоговаяСтрока);
СтруктураДанныхСуммаПрописью.Вставить("СуммаПрописью" , РаботаСКурсамиВалют.СформироватьСуммуПрописью(СуммаКПрописи, ДанныеПечати.Валюта, , КодЯзыкаПечать));
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхСуммаПрописью);
ТабличныйДокумент.Вывести(ОбластьМакета);
Если ЗначениеЗаполнено(ДанныеПечати.МестоСоставленияДокумента) Тогда
ОбластьМакета = Макет.ПолучитьОбласть("МестоСоставления" );
СтруктураДанныхМестоСоставления = Новый Структура;
СтруктураДанныхМестоСоставления.Вставить("МестоСоставления" , СокрЛП(ДанныеПечати.МестоСоставленияДокумента));
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхМестоСоставления);
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЕсли ;
ОбластьМакета = Макет.ПолучитьОбласть("Подписи" );
ОбластьМакета.Параметры.Заполнить(ФормированиеПечатныхФорм.СведенияОбОтветсвенныхЛицах(ДанныеПечати, КодЯзыкаПечать));
ТабличныйДокумент.Вывести(ОбластьМакета);
ЗавершениеДляПечатиКомплектов(КомплектыПечати, КомплектПечатиПоСсылке, ТабличныйДокумент, НомерСтрокиНачало);
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
КонецЦикла ;
КонецФункции
#КонецОбласти
Простите за пост такой, думал код уйдет под спойлер,
Сообщение отредактировал Vofka - 14.09.21, 11:18
15.09.21, 14:07
Общительный
Группа: Пользователи
Сообщений: 14
Спасибо сказали: 1 раз
Рейтинг: 0
seregapplk @ Сегодня, 9:38
,
Подскажите что не так
ох жесть какая
Сумма = 0 ;
СуммаНДС = 0 ;
ВсегоСкидок = 0 ;
НомерСтроки = 0 ;
ВсегоБезСкидок = 0 ;
ИтогКоличество = 0 ;
ИтогВес = 0 ;
Пока ВыборкаПоТоварам.Следующий() Цикл
ИтогКоличество = ИтогКоличество + ВыборкаПоТоварам.Количество;
ИтогВес = ИтогВес + ВыборкаПоТоварам.Номенклатура.Вес;
КонецЦикла ;
ОбластьПодвалТаблицы.Параметры.ИтогВес = ИтогВес;
ОбластьПодвалТаблицы.Параметры.ИтогКоличество = ИтогКоличество;
ПустыеДанные = НаборыСервер.ПустыеДанные();
{Обработка.ПечатьОбщихФорм.МодульМенеджера(1017,1)}: Переменная не определена (ОбластьПодвалТаблицы)
<<?>>ОбластьПодвалТаблицы.Параметры.ИтогВес = ИтогВес; (Проверка: Сервер)
{Обработка.ПечатьОбщихФорм.МодульМенеджера(1018,1)}: Переменная не определена (ОбластьПодвалТаблицы)
<<?>>ОбластьПодвалТаблицы.Параметры.ИтогКоличество = ИтогКоличество; (Проверка: Сервер)
[необходимо зарегистрироваться для просмотра ссылки]
[необходимо зарегистрироваться для просмотра ссылки]
15.09.21, 16:35
Общительный
Группа: Пользователи
Сообщений: 14
Спасибо сказали: 1 раз
Рейтинг: 0
Пока ВыборкаПоТоварам.Следующий() Цикл
ИтогКоличество = ИтогКоличество + ВыборкаПоТоварам.Количество;
ИтогВес = ИтогВес + ВыборкаПоТоварам.Номенклатура.Вес;
КонецЦикла ;
ОбластьПодвалТаблицы = макет.ПолучитьОбласть("ПодвалТаблицы" );
ОбластьПодвалТаблицы.Параметры.ИтогВес = ИтогВес;
ОбластьПодвалТаблицы.Параметры.ИтогКоличество = ИтогКоличество;
ругается
{Обработка.ПечатьОбщихФорм.МодульМенеджера(1019)}: Поле объекта не обнаружено (ИтогКоличество)
ОбластьПодвалТаблицы.Параметры.ИтогКоличество = ИтогКоличество;
Как правильно присоединить?
sava1 @ Сегодня, 15:22
,
нет, только через присоединить.
Сообщение отредактировал Vofka - 16.09.21, 10:47
16.09.21, 9:29
Общительный
Группа: Пользователи
Сообщений: 14
Спасибо сказали: 1 раз
Рейтинг: 0
все считает, через сообщить выводит,
не могу вывести правильно в товар на форму
с этим кодом пусто в строке товары
Код Сумма = 0 ;
СуммаНДС = 0 ;
ВсегоСкидок = 0 ;
НомерСтроки = 0 ;
ВсегоБезСкидок = 0 ;
ПустыеДанные = НаборыСервер.ПустыеДанные();
ИтогКоличество = 0 ;
ИтогВес = 0 ;
Пока ВыборкаПоТоварам.Следующий() Цикл
ИтогКоличество = ИтогКоличество + ВыборкаПоТоварам.Количество;
ИтогВес = ИтогВес + ВыборкаПоТоварам.Номенклатура.Вес;
КонецЦикла ;
Сообщить(ИтогКоличество);
Сообщить(ИтогВес);
СуффиксОбластиСтроки = ?(ЕстьСкидки, "СоСкидкой" , "" ) + ?(ЕстьНДС И ПоказыватьНДС, "СНДС" , "" );
СуффиксОбластиКолонки = ?(ЕстьСкидки И ЕстьНДС И ПоказыватьНДС, "СоСкидкойСНДС" , ?(ЕстьСкидки Или (ЕстьНДС И ПоказыватьНДС), "СоСкидкойИлиСНДС" , "" ));
ОбластьКолонкаТовар = Макет.Область("ПерваяКолонкаТовара" );
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки
+ ?(ВыводитьКоды, 0 , Макет.Область("КолонкаКодов" ).ШиринаКолонки)
;
ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|НомерСтроки" );
ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|КолонкаКодов" );
ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|Товар" + СуффиксОбластиКолонки);
ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|Данные" + СуффиксОбластиКолонки);
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ОбластьКодов.Параметры.ИмяКолонкиКодов = КолонкаКодов;
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли ;
ЗаполнитьЗначенияСвойств(ОбластьДанных.Параметры, ФормированиеПечатныхФорм.СформироватьЗаголовкиДляСуммовыхПоказателей(ДанныеПечати, КодЯзыкаПечать));
Если ЕстьСкидки Тогда
СтруктураЗаголовокСкидки = Новый Структура("Скидка, СуммаБезСкидки" ,
ЗаголовокСкидки.Скидка,
ЗаголовокСкидки.СуммаСкидки);
ОбластьДанных.Параметры.Заполнить(СтруктураЗаголовокСкидки);
КонецЕсли ;
ТабличныйДокумент.Присоединить(ОбластьТовар);
ТабличныйДокумент.Присоединить(ОбластьДанных);
ОбластьНомераСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "|НомерСтроки" );
ОбластьКодовСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "|КолонкаКодов" );
ОбластьТоварСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "|Товар" + СуффиксОбластиКолонки);
ОбластьДанныхСтрокиСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "|Данные" + СуффиксОбластиКолонки);
ИспользоватьНаборы = Ложь ;
Если ОбщегоНазначенияУТКлиентСервер.ЕстьРеквизитОбъекта(ВыборкаПоДокументам, "ЭтоНабор" ) Тогда
ИспользоватьНаборы = Истина ;
ОбластьНомераСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Набор" + "|НомерСтроки" );
ОбластьНомераСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Комплектующие" + "|НомерСтроки" );
ОбластьКодовСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Набор" + "|КолонкаКодов" );
ОбластьКодовСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Комплектующие" + "|КолонкаКодов" );
ОбластьТоварСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Набор" + "|Товар" + СуффиксОбластиКолонки);
ОбластьТоварСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Комплектующие" + "|Товар" + СуффиксОбластиКолонки);
ОбластьДанныхСтрокиНабор = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Набор" + "|Данные" + СуффиксОбластиКолонки);
ОбластьДанныхСтрокиКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбластиСтроки + "Комплектующие" + "|Данные" + СуффиксОбластиКолонки);
КонецЕсли ;
Сумма = 0 ;
СуммаНДС = 0 ;
ВсегоСкидок = 0 ;
НомерСтроки = 0 ;
ВсегоБезСкидок = 0 ;
ПустыеДанные = НаборыСервер.ПустыеДанные();
ИтогКоличество = 0 ;
ИтогВес = 0 ;
Пока ВыборкаПоТоварам.Следующий() Цикл
ИтогКоличество = ИтогКоличество + ВыборкаПоТоварам.Количество;
ИтогВес = ИтогВес + ВыборкаПоТоварам.Номенклатура.Вес;
КонецЦикла ;
Сообщить(ИтогКоличество);
Сообщить(ИтогВес);
Пока ВыборкаПоТоварам.Следующий() Цикл
Если НаборыСервер.ИспользоватьОбластьНабор(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
ОбластьКодовСтроки = ОбластьКодовСтрокиНабор;
ОбластьНомераСтроки = ОбластьНомераСтрокиНабор;
ОбластьДанныхСтроки = ОбластьДанныхСтрокиНабор;
ОбластьТоварСтроки = ОбластьТоварСтрокиНабор;
ИначеЕсли НаборыСервер.ИспользоватьОбластьКомплектующие(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
ОбластьКодовСтроки = ОбластьКодовСтрокиКомплектующие;
ОбластьНомераСтроки = ОбластьНомераСтрокиКомплектующие;
ОбластьДанныхСтроки = ОбластьДанныхСтрокиКомплектующие;
ОбластьТоварСтроки = ОбластьТоварСтрокиКомплектующие;
Иначе
ОбластьКодовСтроки = ОбластьКодовСтрокиСтандарт;
ОбластьНомераСтроки = ОбластьНомераСтрокиСтандарт;
ОбластьДанныхСтроки = ОбластьДанныхСтрокиСтандарт;
ОбластьТоварСтроки = ОбластьТоварСтрокиСтандарт;
КонецЕсли ;
Если НаборыСервер.ВыводитьТолькоЗаголовок(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки" , Неопределено );
Иначе
НомерСтроки = НомерСтроки + 1 ;
УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки" , НомерСтроки);
КонецЕсли ;
ТабличныйДокумент.Вывести(ОбластьНомераСтроки);
Если ВыводитьКоды Тогда
СтруктураДанныхКоды = Новый Структура("Артикул" , ВыборкаПоТоварам[КолонкаКодов]);
ОбластьКодовСтроки.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(ОбластьКодовСтроки);
КонецЕсли ;
ПрефиксИПостфикс = НаборыСервер.ПолучитьПрефиксИПостфикс(ВыборкаПоТоварам, ИспользоватьНаборы);
ОбластьТоварСтроки.Параметры.Заполнить(ВыборкаПоТоварам);
Если ТипЗнч(ДанныеПечати.Ссылка) = Тип("ДокументСсылка.РеализацияУслугПрочихАктивов" ) Тогда
Товар = ВыборкаПоТоварам.Содержание;
СтруктураДанныхТовар = Новый Структура("Товар" , Товар);
ОбластьТоварСтроки.Параметры.Заполнить(СтруктураДанныхТовар);
Иначе
Товар = ПрефиксИПостфикс.Префикс + НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаПоТоварам.ТоварНаименованиеПолное,
ВыборкаПоТоварам.Характеристика,
,
,
,
ВыборкаПоТоварам.ЭтоВозвратнаяТара,
КодЯзыкаПечать) + ПрефиксИПостфикс.Постфикс;
СтруктураДанныхТовар = Новый Структура("Товар" , Товар);
ОбластьТоварСтроки.Параметры.Заполнить(СтруктураДанныхТовар);
КонецЕсли ;
ТабличныйДокумент.Присоединить(ОбластьТоварСтроки);
Если ЗаголовокСкидки.ЕстьСкидки Тогда
СтруктураДанныхСуммаСкидки = Новый Структура("СуммаСкидки" ,
?(ЗаголовокСкидки.ТолькоНаценка,- ВыборкаПоТоварам.СуммаСкидки,ВыборкаПоТоварам.СуммаСкидки));
ОбластьДанныхСтроки.Параметры.Заполнить(СтруктураДанныхСуммаСкидки);
КонецЕсли ;
Если НаборыСервер.ВыводитьТолькоЗаголовок(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
ОбластьДанныхСтроки.Параметры.Заполнить(ПустыеДанные);
Иначе
ОбластьДанныхСтроки.Параметры.Заполнить(ВыборкаПоТоварам);
КонецЕсли ;
ТабличныйДокумент.Присоединить(ОбластьДанныхСтроки);
Если Не НаборыСервер.ИспользоватьОбластьКомплектующие(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
Сумма = Сумма + ВыборкаПоТоварам.Сумма;
СуммаНДС = СуммаНДС + ВыборкаПоТоварам.СуммаНДС;
Если ЕстьСкидки Тогда
ВсегоСкидок = ВсегоСкидок + ВыборкаПоТоварам.СуммаСкидки;
ВсегоБезСкидок = ВсегоБезСкидок + ВыборкаПоТоварам.СуммаБезСкидки;
КонецЕсли ;
КонецЕсли ;
КонецЦикла ;
Сообщение отредактировал Vofka - 16.09.21, 10:48
16.09.21, 11:52
Общительный
Группа: Пользователи
Сообщений: 14
Спасибо сказали: 1 раз
Рейтинг: 0
seregapplk @ Сегодня, 10:29
,
все разобрался, я протупил)) Всем Спасибо огромное!
ИтогВес = ИтогВес + ВыборкаПоТоварам.Номенклатура.Вес;
получаем вес по количеству строк,
как получить вес по количеству номенклатуры?
Не нашли ответа на свой вопрос?
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!