Имя: Пароль:
1C
1С v8
Как добить модуль, чтобы в макете внешней печатной форме печатался вес и объем товара УТ11
0 VID1234
 
12.12.19
11:45
Создал ВПФ, но знаний по написанию модуля не хватает, подскажите, что прописать в модуле, чтобы отображался вес и объем, выше итоговой суммы, колонки не обязательны, просто суммарный объем и вес
1 Uzyf
 
12.12.19
12:36
Ну ты и спросил, покажи код модуля и макет хоть
2 bolero
 
12.12.19
12:41
(1) код модуля там километровый, парсер устанет, да и читать никто не будет.

Сам тоже хочу вес-объем в счете, но как подумаю, что эту колбасу потом поддерживать при обновлениях - все откладываю на потом.

Засада в том, что нельзя расширением вклиниться в середину вывода макета. Либо в начало, либо в конец, либо полностью копировать, а потом при обновлениях сопровождать.
3 hhhh
 
12.12.19
12:44
(2) там же в последних платформах уже есть вклиниться в середину
4 Uzyf
 
12.12.19
12:49
(2) добавляешь данные к запросу, в модуле есть "заполнитьзначения", расширяешь макет необходимыми параметрами - профит
5 unbred
 
12.12.19
12:50
(0) у тебя своя Печать() или БСП?
6 VID1234
 
12.12.19
12:59
Процедура ЗаполнитьТабличныйДокументСчетаНаОплату(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати, ПараметрыПечати)
    
    Перем КомплектПечатиПоСсылке;
    
    ШаблоныОшибок = Новый Структура;
    ШаблоныОшибок.Вставить("Товары", НСтр("ru = 'В документе %1 отсутствуют товары. Печать счета на оплату не требуется'"));
    ШаблоныОшибок.Вставить("ЗаменяющиеТовары", НСтр("ru = 'В документе %1 отсутствуют заменяющие товары. Печать счета на оплату не требуется'"));
    ШаблоныОшибок.Вставить("Этапы", НСтр("ru = 'В документе %1 отсутствуют этапы оплаты. Печать счета на оплату не требуется'"));
    
    ИспользоватьРучныеСкидки         = ПолучитьФункциональнуюОпцию("ИспользоватьРучныеСкидкиВПродажах");
    ИспользоватьАвтоматическиеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьАвтоматическиеСкидкиВПродажах");
    СтруктураИмяДопКолонки = Новый Структура("ИмяКолонкиКодов", ФормированиеПечатныхФорм.ИмяДополнительнойКолонки());    
    
    ДанныеПечати = ДанныеДляПечати.РезультатПоШапке.Выбрать();
    ЭтапыОплаты = ДанныеДляПечати.РезультатПоЭтапамОплаты.Выгрузить();
    Товары = ДанныеДляПечати.РезультатПоТабличнойЧасти.Выгрузить();
    
    ЭтапыЗалоговойТары = ЭтапыОплаты.НайтиСтроки(Новый Структура("ЭтоЗалогЗаТару", Истина));
    ТолькоЗалогЗаТару = ЭтапыЗалоговойТары.Количество() = ЭтапыОплаты.Количество() И ЭтапыЗалоговойТары.Количество() > 0;
    
    Если Товары.Колонки.Найти("Содержание")=Неопределено Тогда
        ЕстьСодержание = Ложь;
    Иначе
        ЕстьСодержание = Истина;
    КонецЕсли;
    
    ПоказыватьНДС = Константы.ВыводитьДопКолонкиНДС.Получить();
    ПервыйДокумент = Истина;
    
    Пока ДанныеПечати.Следующий() Цикл
        
        Отказ = Ложь;
        
        СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);
        
        ТаблицаТовары = Товары.НайтиСтроки(СтруктураПоиска);
        ТаблицаЭтапыОплаты = ЭтапыОплаты.НайтиСтроки(СтруктураПоиска);
        
        ПроверкаЗаполненияДокумента(ДанныеПечати, ТаблицаТовары, ТаблицаЭтапыОплаты, ШаблоныОшибок, Отказ);
        Если Отказ Тогда
            Продолжить;
        КонецЕсли;
        
        Если ПервыйДокумент Тогда
            ПервыйДокумент = Ложь;
        Иначе
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        
        НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
        
        ЗаголовокСкидки = ФормированиеПечатныхФорм.НужноВыводитьСкидки(ТаблицаТовары, ИспользоватьРучныеСкидки Или ИспользоватьАвтоматическиеСкидки);
        ЕстьСкидки = ЗаголовокСкидки.ЕстьСкидки;
        
        СуффиксОбласти = ?(ДанныеПечати.УчитыватьНДС И НЕ ТолькоЗалогЗаТару И ПоказыватьНДС, "СНДС", "") + ?(ЕстьСкидки, "СоСкидкой", "");
        
        Макет = Новый ТабличныйДокумент;
        ЗаполнитьРеквизитыШапкиСчетаНаОплату(ДанныеПечати, Макет, ТабличныйДокумент, ТаблицаЭтапыОплаты, ТаблицаТовары);
        
        Если ДанныеПечати.ЧастичнаяОплата ИЛИ ТипЗнч(ДанныеПечати.ДокументОснование) = Тип("ДокументСсылка.ОтчетКомитенту") Тогда
            
            ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицыЧастичнаяОплата");
            ОбластьШапкаТаблицы.Параметры.Заполнить(СтруктураИмяДопКолонки);
            ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы);
            
            ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаблицыЧастичнаяОплата");
            ОбластьСтрокаТаблицы.Параметры.Заполнить(ДанныеПечати);
            ОбластьСтрокаТаблицы.Параметры.НомерСтроки = 1;
            ТабличныйДокумент.Вывести(ОбластьСтрокаТаблицы);
            
            ОбластьИтого = Макет.ПолучитьОбласть("ПодвалТаблицыЧастичнаяОплата");
            СтруктураДанныхИтого = Новый Структура;
            СтруктураДанныхИтого.Вставить("Всего", ДанныеПечати.СуммаДокумента);
            ОбластьИтого.Параметры.Заполнить(СтруктураДанныхИтого);
            ОбластьИтого.Параметры.Заполнить(ДанныеПечати);
            ТабличныйДокумент.Присоединить(ОбластьИтого);
            
                        // Вывести ИтогоНДС
            СоответствиеСтавокНДС = Новый Соответствие;
            Если ДанныеПечати.УчитыватьНДС И НЕ ТолькоЗалогЗаТару Тогда
                ОбластьИтогоНДС = Макет.ПолучитьОбласть("ПодвалТаблицыНДС");
                Для Каждого СтрокаТовара Из ТаблицаТовары Цикл
                    СуммаНДС = СоответствиеСтавокНДС[СтрокаТовара.СтавкаНДС];
                    Если СуммаНДС = Неопределено Тогда
                        СуммаНДС = СтрокаТовара.СуммаНДС;
                    Иначе
                        СуммаНДС = СуммаНДС + СтрокаТовара.СуммаНДС;
                    КонецЕсли;
                    СоответствиеСтавокНДС.Вставить(СтрокаТовара.СтавкаНДС, СуммаНДС);
                КонецЦикла;
                Для Каждого ТекСтавкаНДС Из СоответствиеСтавокНДС Цикл
                    СтруктураДанныхИтогоНДС = Новый Структура;
                    СтруктураДанныхИтогоНДС.Вставить("НДС", ФормированиеПечатныхФорм.ТекстНДСПоСтавке(ТекСтавкаНДС.Ключ, ДанныеПечати.ЦенаВключаетНДС));
                    Если ЗначениеЗаполнено(ТекСтавкаНДС.Значение) Тогда
                        СтруктураДанныхИтогоНДС.Вставить("ВсегоНДС", ФормированиеПечатныхФорм.ФорматСумм(ТекСтавкаНДС.Значение /100 * ДанныеПечати.ПроцентОплаты));
                    Иначе
                        СтруктураДанныхИтогоНДС.Вставить("ВсегоНДС","-");
                    КонецЕсли;
                    ОбластьИтогоНДС.Параметры.Заполнить(СтруктураДанныхИтогоНДС);
                    ТабличныйДокумент.Вывести(ОбластьИтогоНДС);
                КонецЦикла;
                ОбластьПодвалСНДС = Макет.ПолучитьОбласть("ПодвалТаблицыВсего");
                СтруктураДанныхПодвалСНДС = Новый Структура("ВсегоСНДС", ФормированиеПечатныхФорм.ФорматСумм(ДанныеПечати.СуммаДокумента));
                ОбластьПодвалСНДС.Параметры.Заполнить(СтруктураДанныхПодвалСНДС);
                ТабличныйДокумент.Вывести(ОбластьПодвалСНДС);
            КонецЕсли;
            
            // Вывести Сумму прописью
            ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописьюЧастичныйСчет");
            СуммаПрописью = НСтр("ru='Всего на сумму %СуммаПрописью%'");
            СуммаПрописью = СтрЗаменить(СуммаПрописью, "%СуммаПрописью%", РаботаСКурсамиВалют.СформироватьСуммуПрописью(ДанныеПечати.СуммаДокумента, ДанныеПечати.Валюта));
            СтруктураДанныхСуммаПрописью = Новый Структура("СуммаПрописью", СуммаПрописью);
            ОбластьМакета.Параметры.Заполнить(СтруктураДанныхСуммаПрописью);
            ТабличныйДокумент.Вывести(ОбластьМакета);
            
                    Иначе
        
            // Таблица "Товары"
            ОбластьШапкаТаблицы          = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбласти);
            ОбластьСтрокаТаблицыСтандарт = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбласти);
            ОбластьПодвалТаблицы         = Макет.ПолучитьОбласть("ПодвалТаблицы" + СуффиксОбласти);
            ОбластьПодвалНДС             = Макет.ПолучитьОбласть("ПодвалТаблицыНДС");
            
            ИспользоватьНаборы = Ложь;
            Если Товары.Колонки.Найти("ЭтоНабор") <> Неопределено Тогда
                ИспользоватьНаборы = Истина;
                
                ОбластьСтрокаТаблицыНабор         = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбласти + "Набор");
                ОбластьСтрокаТаблицыКомплектующие = Макет.ПолучитьОбласть("СтрокаТаблицы" + СуффиксОбласти + "Комплектующие");
            КонецЕсли;
            
            ПустыеДанные = НаборыСервер.ПустыеДанные();
            ВыводШапки = 0;
            
            Если ДанныеПечати.УчитыватьНДС И НЕ ТолькоЗалогЗаТару Тогда
                СуффиксОбластиПодвал = "СНДС" + ?(ЕстьСкидки, "СоСкидкой", "");
                ОбластьПодвалСНДС = Макет.ПолучитьОбласть("ПодвалТаблицыВсего" + СуффиксОбластиПодвал);
            КонецЕсли;
            
            Если ЕстьСкидки Тогда
                СтруктураЗаголовокСкидки = Новый Структура("Скидка, СуммаБезСкидки",
                    ЗаголовокСкидки.Скидка,
                    ЗаголовокСкидки.СуммаСкидки);
                ОбластьШапкаТаблицы.Параметры.Заполнить(СтруктураЗаголовокСкидки);
            КонецЕсли;
            ОбластьШапкаТаблицы.Параметры.Заполнить(СтруктураИмяДопКолонки);
            ОбластьСуммаПрописью = Макет.ПолучитьОбласть(?(ДанныеПечати.СчетКВозврату, "СуммаПрописьюКВозврату", "СуммаПрописью"));
            
            МассивПроверкиВывода = Новый Массив;
            
            Сумма = 0;
            СуммаНДС = 0;
            ВсегоСкидок = 0;
            ВсегоБезСкидок = 0;
            НомерСтроки = 0;
            СоответствиеСтавокНДС = Новый Соответствие;
            Для Каждого СтрокаТовары Из ТаблицаТовары Цикл
                
                Если НаборыСервер.ИспользоватьОбластьНабор(СтрокаТовары, ИспользоватьНаборы) Тогда
                    ОбластьСтрокаТаблицы = ОбластьСтрокаТаблицыНабор;
                ИначеЕсли НаборыСервер.ИспользоватьОбластьКомплектующие(СтрокаТовары, ИспользоватьНаборы) Тогда
                    ОбластьСтрокаТаблицы = ОбластьСтрокаТаблицыКомплектующие;
                Иначе
                    ОбластьСтрокаТаблицы = ОбластьСтрокаТаблицыСтандарт;
                КонецЕсли;
                
                Если НаборыСервер.ВыводитьТолькоЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда
                    НомерСтрокиПечать = "";
                Иначе
                    НомерСтроки = НомерСтроки + 1;
                    НомерСтрокиПечать = НомерСтроки;
                КонецЕсли;
                
                Если НомерСтроки = 0 И ВыводШапки <> 2 Тогда
                    ВыводШапки = 1;
                КонецЕсли;
                
                ПрефиксИПостфикс = НаборыСервер.ПолучитьПрефиксИПостфикс(СтрокаТовары, ИспользоватьНаборы);
                
                ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
                ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = СтрокаТовары.ЭтоВозвратнаяТара;
                Если ЕстьСодержание Тогда
                    ДополнительныеПараметрыПолученияНаименованияДляПечати.Содержание = СтрокаТовары.Содержание;
                КонецЕсли;
                
                Товар = ПрефиксИПостфикс.Префикс
                        + НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
                                                            СтрокаТовары.НаименованиеПолное,
                                                            СтрокаТовары.Характеристика,
                                                            ,
                                                            , // Серия
                                                            ДополнительныеПараметрыПолученияНаименованияДляПечати)
                        + ПрефиксИПостфикс.Постфикс;
                        
                СтруктураДанныхСтроки = Новый Структура;
                СтруктураДанныхСтроки.Вставить("Товар", Товар);
                СтруктураДанныхСтроки.Вставить("НомерСтроки", НомерСтрокиПечать);
                ОбластьСтрокаТаблицы.Параметры.Заполнить(СтрокаТовары);
                Если ЗаголовокСкидки.ЕстьСкидки Тогда
                    СтруктураДанныхСтроки.Вставить("СуммаСкидки",
                        ?(ЗаголовокСкидки.ТолькоНаценка,- СтрокаТовары.СуммаСкидки,СтрокаТовары.СуммаСкидки));
                КонецЕсли;
                
                Если ЗначениеЗаполнено(СтруктураИмяДопКолонки.ИмяКолонкиКодов) Тогда
                    СтруктураДанныхСтроки.Вставить("Артикул", СтрокаТовары[СтруктураИмяДопКолонки.ИмяКолонкиКодов]);
                КонецЕсли;
                
                ОбластьСтрокаТаблицы.Параметры.Заполнить(СтруктураДанныхСтроки);
                
                Если НаборыСервер.ВыводитьТолькоЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда
                    ОбластьСтрокаТаблицы.Параметры.Заполнить(ПустыеДанные);
                КонецЕсли;
                
                МассивПроверкиВывода.Очистить();
                МассивПроверкиВывода.Добавить(ОбластьСтрокаТаблицы);
                Если НомерСтроки = ТаблицаТовары.Количество() Тогда
                    МассивПроверкиВывода.Добавить(ОбластьПодвалТаблицы);
                    МассивПроверкиВывода.Добавить(ОбластьПодвалНДС);
                    МассивПроверкиВывода.Добавить(ОбластьСуммаПрописью);
                КонецЕсли;
                
                Если ТабличныйДокумент.ПроверитьВывод(МассивПроверкиВывода) Тогда
                    Если (НомерСтроки = 1 И ВыводШапки = 0) ИЛИ (НомерСтроки = 0 И ВыводШапки = 1) Тогда
                        ВыводШапки = 2;
                        ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы);
                    КонецЕсли;
                Иначе
                    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                    ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы);
                КонецЕсли;
                
                ТабличныйДокумент.Вывести(ОбластьСтрокаТаблицы);
                
                Если Не НаборыСервер.ИспользоватьОбластьКомплектующие(СтрокаТовары, ИспользоватьНаборы) Тогда
                    
                    Сумма = Сумма + СтрокаТовары.Сумма;
                    СуммаНДС = СуммаНДС + СтрокаТовары.СуммаНДС;
                    
                    Если ЕстьСкидки Тогда
                        ВсегоСкидок = ВсегоСкидок + СтрокаТовары.СуммаСкидки;
                        ВсегоБезСкидок = ВсегоБезСкидок + СтрокаТовары.СуммаБезСкидки;
                    КонецЕсли;
                
                    Если ДанныеПечати.УчитыватьНДС И НЕ ТолькоЗалогЗаТару Тогда
                        СуммаНДСПоСтавке = СоответствиеСтавокНДС[СтрокаТовары.СтавкаНДС];
                        Если СуммаНДСПоСтавке = Неопределено Тогда
                            СуммаНДСПоСтавке = 0;
                        КонецЕсли;
                        СоответствиеСтавокНДС.Вставить(СтрокаТовары.СтавкаНДС, СуммаНДСПоСтавке + СтрокаТовары.СуммаНДС);
                    КонецЕсли;
                
                КонецЕсли;
                
            КонецЦикла;
            
            СтруктураДанныхВсегоСкидки = Новый Структура;
            
            // Подвал таблицы "Товары"
            Если ЕстьСкидки Тогда
                СтруктураДанныхВсегоСкидки.Вставить("ВсегоСкидок", ?(ЗаголовокСкидки.ТолькоНаценка,-ВсегоСкидок, ВсегоСкидок));
                СтруктураДанныхВсегоСкидки.Вставить("ВсегоБезСкидок", ВсегоБезСкидок);
                Если ДанныеПечати.УчитыватьНДС И НЕ ТолькоЗалогЗаТару Тогда
                    СтруктураДанныхВсегоСкидки.Вставить("ВсегоСуммаНДС", СуммаНДС);
                КонецЕсли;
            КонецЕсли;
            СтруктураДанныхВсегоСкидки.Вставить("Всего", ФормированиеПечатныхФорм.ФорматСумм(Сумма));
            ОбластьПодвалТаблицы.Параметры.Заполнить(СтруктураДанныхВсегоСкидки);
            ТабличныйДокумент.Вывести(ОбластьПодвалТаблицы);
            
            // Область "ПодвалТаблицыНДС"
            Если ДанныеПечати.УчитыватьНДС И НЕ ТолькоЗалогЗаТару Тогда
                
                Для Каждого ТекСтавкаНДС Из СоответствиеСтавокНДС Цикл
                    СтруктураДанныхПодвалНДС = Новый Структура;
                    СтруктураДанныхПодвалНДС.Вставить("НДС", ФормированиеПечатныхФорм.ТекстНДСПоСтавке(ТекСтавкаНДС.Ключ, ДанныеПечати.ЦенаВключаетНДС));
                    СтруктураДанныхПодвалНДС.Вставить("ВсегоНДС", ФормированиеПечатныхФорм.ФорматСумм(ТекСтавкаНДС.Значение, ,"-"));
                    ОбластьПодвалНДС.Параметры.Заполнить(СтруктураДанныхПодвалНДС);
                    ТабличныйДокумент.Вывести(ОбластьПодвалНДС);
                    
                КонецЦикла;
                СтруктураДанныхПодвалВсегоСНДС = Новый Структура;
                СтруктураДанныхПодвалНДС.Вставить("ВсегоСНДС", ФормированиеПечатныхФорм.ФорматСумм(Сумма + ?(ДанныеПечати.ЦенаВключаетНДС, 0, СуммаНДС)));
                ОбластьПодвалСНДС.Параметры.Заполнить(СтруктураДанныхПодвалНДС);
                ТабличныйДокумент.Вывести(ОбластьПодвалСНДС);
                
            Иначе
                СтруктураДанныхПодвалНДС = Новый Структура;
                СтруктураДанныхПодвалНДС.Вставить("НДС", НСтр("ru='Без налога (НДС)'"));
                СтруктураДанныхПодвалНДС.Вставить("ВсегоНДС", "-");
                ОбластьПодвалНДС.Параметры.Заполнить(СтруктураДанныхПодвалНДС);
                ТабличныйДокумент.Вывести(ОбластьПодвалНДС);
            КонецЕсли;
            
            // Вывести Сумму прописью
            СуммаКПрописи = Сумма + ?(ДанныеПечати.ЦенаВключаетНДС, 0, СуммаНДС);
            ИтоговаяСтрока = НСтр("ru='Всего наименований %Количество%, на сумму %Сумма%'");
            ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, "%Количество%", НомерСтроки);
            ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, "%Сумма%",      ФормированиеПечатныхФорм.ФорматСумм(СуммаКПрописи, ДанныеПечати.Валюта));
              //VID++++++++++++++++++
                 //Вес_           = 0;
                 //Объем_       = 0;
             //++++++++++++++++++++

            //   //VID(
            //            ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописьют");
            //ОбластьМакета.Параметры.ВесТовара = ВыборкаСтрокаТаблицыСтандарт.Количество*ЕдиницаИзмерения.Вес;
            //ТабличныйДокумент.Вывести(ОбластьМакета);
            ОбластьСуммаПрописью.Параметры.ВесТовара = ВыборкаСтрокаТаблицыСтандарт.Количество*ЕдиницаИзмерения.Вес;
            ОбластьСуммаПрописью.Параметры.ОбъемТовара = ТвойОбъем;
//VID)
            


            // VID Вывести Вес Объем++++++++++++++++++
            //ОбластьМакета.Параметры.ВесОбъем = "Объем = " + Объем_ + " куб. м.;   Вес = " + Вес_ + " кг.";
             // VID++++++++++++

            СтруктураДанныхСуммаПрописью = Новый Структура;
            Если ДанныеПечати.СчетКВозврату Тогда
                
                СуммаКВозврату = ДанныеПечати.СуммаКВозврату;
                СуммаИтого = СуммаКПрописи-СуммаКВозврату;
                Если СуммаИтого < 0 Тогда
                    СуммаИтого = 0;
                КонецЕсли;
                СтруктураДанныхСуммаПрописью.Вставить("СуммаВозврата", ФормированиеПечатныхФорм.ФорматСумм(СуммаКВозврату, ДанныеПечати.Валюта));
                СтруктураДанныхСуммаПрописью.Вставить("СуммаИтогоКОплате", ФормированиеПечатныхФорм.ФорматСумм(СуммаИтого, ДанныеПечати.Валюта, "0"));
                СтруктураДанныхСуммаПрописью.Вставить("СуммаПрописью", РаботаСКурсамиВалют.СформироватьСуммуПрописью(СуммаИтого, ДанныеПечати.Валюта));
            Иначе
                
                СтруктураДанныхСуммаПрописью.Вставить("СуммаПрописью", РаботаСКурсамиВалют.СформироватьСуммуПрописью(СуммаКПрописи, ДанныеПечати.Валюта));
            КонецЕсли;
            
            СтруктураДанныхСуммаПрописью.Вставить("ИтоговаяСтрока", ИтоговаяСтрока);
            ОбластьСуммаПрописью.Параметры.Заполнить(СтруктураДанныхСуммаПрописью);
            
            
            ТабличныйДокумент.Вывести(ОбластьСуммаПрописью);
        КонецЕсли;
        ЗаполнитьРеквизитыПодвалаСчетаНаОплату(ДанныеПечати, Макет, ТабличныйДокумент, ТаблицаЭтапыОплаты, СоответствиеСтавокНДС, ПараметрыПечати);
        
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
        
    КонецЦикла;
    
КонецПроцедуры
7 VID1234
 
12.12.19
13:00
Извините, что сразу не ответил, у меня внешняя печатная форма, созданная на основе внутренней макет тоже скопирован с конфигуратора.
8 VID1234
 
12.12.19
13:03
БСП!
9 VID1234
 
12.12.19
13:07
(1) А как макет загрузить сюда. Где кнопка возможности прикрепления изображения?
10 Uzyf
 
12.12.19
13:10
(9) только ссылкой
11 VID1234
 
12.12.19
13:14
(10) ок, сейчас сделаю
12 Uzyf
 
12.12.19
13:17
(11)
ОбластьСуммаПрописью.Параметры.ВесТовара = ВыборкаСтрокаТаблицыСтандарт.Количество*ЕдиницаИзмерения.Вес;
ОбластьСуммаПрописью.Параметры.ОбъемТовара = ТвойОбъем;

Ну заполнил параметры, в макет тоже добавил "ВесТовара" и "ОбъемТовара"?
13 VID1234
 
12.12.19
13:18
https://dropmefiles.com/BIcYE  - макет, место добавления параметров обведен
14 VID1234
 
12.12.19
13:21
(12) параметры не определены, как их определить или ссылку нужно прописать
15 VID1234
 
12.12.19
13:24
опять же ВыборкаСтрокаСаблицыСтандарт - это тоже не определено, как выбрать вес с номенклатуры и умножить его на количество товаров которое указано в таблице
16 Uzyf
 
12.12.19
13:27
(13) Макет = Новый ТабличныйДокумент;
ЗаполнитьРеквизитыШапкиСчетаНаОплату(ДанныеПечати, Макет, ТабличныйДокумент, ТаблицаЭтапыОплаты, ТаблицаТовары);
17 Uzyf
 
12.12.19
13:28
(16) тут выбирается стандартный макет
Макет = УправлениеПечатью.МакетПечатнойФормы("Обработка.ПечатьСчетовНаОплату.ПФ_MXL_СчетНаОплату");
Ты это не переделывал?
18 Rema Dan
 
12.12.19
13:28
(0) Я подобное считал в УТ через функционал типовых модулей ОбработкаТабличнойЧасти: https://pastebin.com/wnCy4kgX
19 VID1234
 
12.12.19
13:57
(17) переделал, у меня макет подтягивается с внешней обработки!
20 Uzyf
 
12.12.19
13:57
В общем можно так сделать
ТвойМакет = ПолучитьМакет("ТвойМакет");
ОбластьВесОбъем = ТвойМакет.ПолучитьОбласть("ВесОбъем");
ОбластьВесОбъем.Параметры.ВесТовара = ВыборкаСтрокаТаблицыСтандарт.Количество*ЕдиницаИзмерения.Вес;
ОбластьВесОбъем.Параметры.ОбъемТовара = ТвойОбъем;
ТабличныйДокумент.Вывести(ОбластьВесОбъем);
21 Uzyf
 
12.12.19
13:58
(19) и че заполняются параметры?
22 VID1234
 
12.12.19
14:00
(21) Да все заполняется, как и с внутренней, только изначально в конфигураторе вес и объем не указывается в счете, поэтому я и заморачиваюсь.
23 Uzyf
 
12.12.19
14:04
(22) а, так ты их вообще их не находил, я думал ты спрашиваешь как вывести
24 VID1234
 
12.12.19
14:06
да я вообще их не выводил
{ВнешняяОбработка.СчетНаОплатуВнешний.МодульОбъекта(457,39)}: Переменная не определена (ВыборкаСтрокаТаблицыСтандарт)
ОбластьВесОбъем.Параметры.ВесТовара = <<?>>ВыборкаСтрокаТаблицыСтандарт.Количество*ЕдиницаИзмерения.Вес; (Проверка: Сервер)
{ВнешняяОбработка.СчетНаОплатуВнешний.МодульОбъекта(457,79)}: Переменная не определена (ЕдиницаИзмерения)
ОбластьВесОбъем.Параметры.ВесТовара = ВыборкаСтрокаТаблицыСтандарт.Количество*<<?>>ЕдиницаИзмерения.Вес; (Проверка: Сервер)
{ВнешняяОбработка.СчетНаОплатуВнешний.МодульОбъекта(458,41)}: Переменная не определена (ТвойОбъем)
ОбластьВесОбъем.Параметры.ОбъемТовара = <<?>>ТвойОбъем; (Проверка: Сервер)
25 VID1234
 
12.12.19
14:08
Область ВесОбъем я сейчас сделал, Параметр ВесОбъем тоже, но а в модуле я не указал сам параметр, оператора то создал, а откуда ему и как получить данные прога не знает, а я тем более)))))
26 Uzyf
 
12.12.19
14:10
(25) понятно, начал с конца
27 Uzyf
 
12.12.19
14:20
(24) а че у единицы измерения есть вес?
28 Uzyf
 
12.12.19
14:25
А вообще почитай (18) по ссылке, там вроде бы то что тебе надо
29 hhhh
 
12.12.19
14:27
(25) такую фигню никто в голове держать не будет. Еще голову забивать, когда всегда можно глянуть в конфигураторе. Поэтому тебе нужно ждать человека, который только вот-вот на неделе занимался этой задачей и еще помнит, что откуда брал.
30 VID1234
 
12.12.19
15:49
Если у кого нибудь будут идеи, то прошу помощи.
31 rozer76
 
13.12.19
07:56
Все не читал, но ЕдиницаИзмерения.Вес это неправильно. Расчет сложнее - см модуль менеджера УпаковкиЕдиницыИзмерения и поищи ссылки на функции расчета по конфе - например в отчетах сслылок много когда текс запроса кодом модифицируется и подставляется дикий запрос расчета объема и веса из вышеуказанного модуля менеджера. Это будет универсально -а вдруг захотят упаковки использовать...
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший