Имя: Пароль:
1C
1С v8
индекс находится за границами массива (внешняя печатная форма)
0 bfss-732
 
28.07.21
22:15
Привет всем! Помогите понять, в чем проблема?
Индекс находится за границами массива
{ОбщийМодуль.УправлениеПечатьюУТВызовСервераЛокализация.Модуль(201)}:    ТипДокументов = ТипЗнч(ОбъектыПечати[0]);
{ВнешняяОбработка.ТранспортнаяНакладная_ТН_1529_2200.МодульОбъекта(180)}:        СтруктураВозврата = УправлениеПечатьюУТВызовСервераЛокализация.ПолучитьТранспортныеНакладныеНаПечать(МассивОбъектов);
{ВнешняяОбработка.ТранспортнаяНакладная_ТН_1529_2200.МодульОбъекта(159)}:        НСтр("ru = 'Транспортная накладная (ФХП)';                
{ОбщийМодуль.УправлениеПечатью.Модуль(1635)}:    ВнешняяОбработкаОбъект.Печать(
{ОбщаяФорма.ПечатьДокументов.Форма(492)}:        УправлениеПечатью.ПечатьПоВнешнемуИсточнику(
{ОбщаяФорма.ПечатьДокументов.Форма(43)}:        КоллекцияПечатныхФорм = СформироватьПечатныеФормы(Параметры.ИменаМакетов, Отказ);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(234)}:    ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, Форма);
{ОбщийМодуль.УправлениеПечатьюКлиент.Модуль(143)}:        ВыполнитьОбработкуОповещения(ОписаниеПроцедурыЗавершения, СписокДокументов);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(32)}:        УправлениеПечатьюКлиент.ПроверитьПроведенностьДокументов(ОписаниеОповещения, ОбъектыНазначения, Форма);
{ОбщийМодуль.ДополнительныеОтчетыИОбработкиКлиент.Модуль(482)}:        МодульУправлениеПечатьюСлужебныйКлиент.ВыполнитьОткрытиеПечатнойФормы(
{ОбщийМодуль.ДополнительныеОтчетыИОбработкиКлиент.Модуль(260)}:        ВыполнитьОткрытиеПечатнойФормы(ВыполняемаяКоманда, Форма, ВыполняемаяКоманда.ОбъектыПечати);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(95)}:            МодульДополнительныеОтчетыИОбработкиКлиент.ВыполнитьНазначаемуюКомандуПечати(ОписаниеКоманды, Форма);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(20)}:    ВыполнитьПодключаемуюКомандуПечатиЗавершение(Истина, ПараметрыВыполнения);
{ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(246)}:            ВыполнитьОбработкуОповещения(Обработчик, ПараметрКоманды);
{ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(64)}:    ПродолжитьВыполнениеКоманды(ПараметрыВыполнения);
{Документ.ТранспортнаяНакладная.Форма.ФормаСписка.Форма(64)}:    ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
1 Волшебник
 
модератор
28.07.21
22:18
удачи
2 Волшебник
 
модератор
28.07.21
22:19
ОбъектыПечати - пустой массив, в нём нет элемента [0]
3 bfss-732
 
28.07.21
22:20
(2) Вот именно, что есть товарищъ Волшебник.
4 bfss-732
 
28.07.21
22:21
Внешняя печатка работает через отладку, как встраиваешь в программу, так ошибка
5 bfss-732
 
28.07.21
22:22
(2) Хотя, я  ж смотрю, через отладку внешней ПФ... А как увидеть, когда она встроена?
6 bfss-732
 
28.07.21
22:23
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область СлужебныеПроцедурыИФункции

#Область Печать

Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТранспортнаяНакладная") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
                        КоллекцияПечатныхФорм,
                        "ТранспортнаяНакладная", НСтр("ru = 'Транспортная накладная'"),
                        СформироватьПечатнуюФормуТранспортнойНакладной(МассивОбъектов, ОбъектыПечати));
    КонецЕсли;
    
    ФормированиеПечатныхФорм.ЗаполнитьПараметрыОтправки(ПараметрыВывода.ПараметрыОтправки, МассивОбъектов, КоллекцияПечатныхФорм);
    
КонецПроцедуры

Функция СформироватьПечатнуюФормуТранспортнойНакладной(МассивОбъектов, ОбъектыПечати, КомплектыПечати = Неопределено) Экспорт
    
    ТипДокументов = ТипЗнч(МассивОбъектов[0]);

    Если ТипДокументов <> Тип("ДокументСсылка.ТранспортнаяНакладная") Тогда
        
        СтруктураВозврата = УправлениеПечатьюУТВызовСервераЛокализация.ПолучитьТранспортныеНакладныеНаПечать(МассивОбъектов);
        ТранспортныеНакладныеНаПечать = СтруктураВозврата.ТранспортныеНакладныеНаПечать;
        
        Для Каждого Документ Из СтруктураВозврата.МассивДокументовБезНакладных Цикл
            
            Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                    НСтр("ru = 'Для документа %1 не создана ""Транспортная накладная"". Печать документа ""Транспортная накладная"" невозможна.'"),
                    Документ);
                ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
                    Текст,
                    Документ)
                    
        КонецЦикла    
            
    Иначе
        ТранспортныеНакладныеНаПечать = МассивОбъектов;    
    КонецЕсли;
    
    ТаблицаНакладныхНаПечать = Новый ТаблицаЗначений;
    ОписаниеТипаТранспортнаяНакладная = Новый ОписаниеТипов("ДокументСсылка.ТранспортнаяНакладная");
    ОписаниеТипаЧисло = Новый ОписаниеТипов("Число");
    ТаблицаНакладныхНаПечать.Колонки.Добавить("ТранспортнаяНакладная", ОписаниеТипаТранспортнаяНакладная);
    ТаблицаНакладныхНаПечать.Колонки.Добавить("ПорядковыйНомер", ОписаниеТипаЧисло);
    
    ПорядковыйНомер = 0;
    Для Каждого Накладная Из ТранспортныеНакладныеНаПечать Цикл
        СтрокаТаблицы = ТаблицаНакладныхНаПечать.Добавить();    
        СтрокаТаблицы.ТранспортнаяНакладная = Накладная;
        СтрокаТаблицы.ПорядковыйНомер = ПорядковыйНомер;
        ПорядковыйНомер = ПорядковыйНомер  + 1;
    КонецЦикла;
    
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.АвтоМасштаб = Истина;
    ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТРАНСПОРТНАЯ_НАКЛАДНАЯ";
        
    УстановитьПривилегированныйРежим(Истина);
    
    МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени("Документ.ТранспортнаяНакладная");
    ДанныеДляПечати = МенеджерОбъекта.ПолучитьДанныеДляПечатнойФормыТранспортнаяНакладная(ТаблицаНакладныхНаПечать);
        
    ЗаполнитьТабличныйДокументТН(
            ТабличныйДокумент,
            ДанныеДляПечати,
            ОбъектыПечати,
            КомплектыПечати);

    Возврат ТабличныйДокумент;
    
КонецФункции

Процедура ЗаполнитьТабличныйДокументТН(ТабличныйДокумент, СтруктураДанных, ОбъектыПечати, КомплектыПечати)
    
    Макет1529 = УправлениеПечатью.МакетПечатнойФормы("Обработка.ПечатьТранспортнойНакладной.ПФ_MXL_ТранспортнаяНакладная_ru");
    Макет2200 = УправлениеПечатью.МакетПечатнойФормы("Обработка.ПечатьТранспортнойНакладной.ПФ_MXL_ТранспортнаяНакладная_2200_ru");
    
    Макет1529.КодЯзыка = Метаданные.Языки.Русский.КодЯзыка;
    Макет2200.КодЯзыка = Метаданные.Языки.Русский.КодЯзыка;
    
    ТаблицаДанныхДляПечати = СтруктураДанных.ТаблицаРезультата;
    ДанныеСсылкиДокументов = СтруктураДанных.РезультатИменаТоваров.Выбрать();
        
    ПервыйДокумент = Истина;
    
    Для Каждого ДанныеПечати Из ТаблицаДанныхДляПечати Цикл
        
        Если ДействуетПостановлениеНомер2200(ДанныеПечати.Дата) Тогда
            Макет = Макет2200;
        Иначе
            Макет = Макет1529;
        КонецЕсли;
        
        Если Не ПервыйДокумент Тогда
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
            
        ПервыйДокумент    = Ложь;
        НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
        
        // Если ТТН с доставкой и нашли связанные с доставкой ошибки - перейдем к следующему документу.
        СтруктураЗаданиеНаПеревозку = Новый Структура("НеНайденоЗаданиеНаПеревозку,
                                                      |БолееОдногоВхожденияВЗаданияНаПеревозку,
                                                      |РаспоряжениеНеПроведено",
                                                      Ложь,Ложь,Ложь);
        ЕстьОшибкиДоставки = Ложь;
        ЗаполнитьЗначенияСвойств(СтруктураЗаданиеНаПеревозку,ДанныеПечати);
        
        Если СтруктураЗаданиеНаПеревозку.НеНайденоЗаданиеНаПеревозку Тогда
            Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                НСтр("ru = 'Для документа %1 не найдено задание на перевозку.
                    |Печать формы 1-Т для документов с доставкой возможна после включения документа в задание на перевозку.'"),
                ДанныеПечати.Ссылка);
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
                Текст,
                ДанныеПечати.Ссылка);
            ЕстьОшибкиДоставки = Истина;
        КонецЕсли;
        
        Если СтруктураЗаданиеНаПеревозку.БолееОдногоВхожденияВЗаданияНаПеревозку Тогда
            Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                НСтр("ru = 'Невозможно напечатать форму 1-Т для %1, т.к. найдено более одного задания на перевозку,
                    |в которые включен этот документ.'"),
                ДанныеПечати.Ссылка);
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
                Текст,
                ДанныеПечати.Ссылка);
            ЕстьОшибкиДоставки = Истина;
        КонецЕсли;
        
        Если СтруктураЗаданиеНаПеревозку.РаспоряжениеНеПроведено Тогда
            Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                НСтр("ru = 'Документ %1 не проведен. Печать товарно - транспортной накладной не будет выполнена.'"),
                ДанныеПечати.Ссылка);
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
                Текст,
                ДанныеПечати.Ссылка);
            ЕстьОшибкиДоставки = Истина;
        КонецЕсли;
        
        Если ЕстьОшибкиДоставки Тогда
            Продолжить;
        КонецЕсли;
        
        Если ДанныеПечати.ЕстьНепроведенныеДокументыОснования Тогда
            
            Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                НСтр("ru = 'В документе %1 присутствуют непроведенные документы-основания. Печать транспортной накладной невозможна.'"),
                ДанныеПечати.Ссылка);
            
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
                Текст,
                ДанныеПечати.Ссылка);
                
            Продолжить;
            
        КонецЕсли;
                
        ОбластьМакета = Макет.ПолучитьОбласть("ГоризонтальнаяЛицеваяСторона");
        ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьМакета, ДанныеПечати.Ссылка);
        
        ОбластьМакетаОборотная = Макет.ПолучитьОбласть("ГоризонтальнаяОборотнаяСторона");
        
        СведенияОГрузополучателе  = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Грузополучатель,  ДанныеПечати.Дата);
        СведенияОГрузоотправитель = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Грузоотправитель, ДанныеПечати.Дата);
        СведенияОПеревозчике      = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Перевозчик, ДанныеПечати.Дата);
        СведенияОВодителе         = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Водитель, ДанныеПечати.Дата);
        
        ПредставлениеГрузоотправителя = "";
        ПредставлениеПеревозчика      = "";
        Перевозчик                    = "";
        Грузоотправитель              = "";
        
        РеквизитыМакета = Новый Структура;
        РеквизитыМакета.Вставить("Пункт0_4", ДанныеПечати.Дата);
        РеквизитыМакета.Вставить("Пункт0_5", ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ДанныеПечати.Номер));
        
        Если ЗначениеЗаполнено(ДанныеПечати.Грузополучатель) Тогда
            Если СведенияОГрузополучателе.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо
                Или СведенияОГрузополучателе.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ИндивидуальныйПредприниматель Тогда
                РеквизитыМакета.Вставить("Пункт2_1", ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе,
                    "ПолноеНаименование,ИНН,ЮридическийАдрес"));
            Иначе
                РеквизитыМакета.Вставить("Пункт2_2", ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе,
                    "ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны"));
            КонецЕсли;
        КонецЕсли;
        
        Если ЗначениеЗаполнено(ДанныеПечати.Грузоотправитель) Тогда
            Если СведенияОГрузоотправитель.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо
             Или СведенияОГрузоотправитель.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ИндивидуальныйПредприниматель Тогда
                ПредставлениеГрузоотправителя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель,
                    "ПолноеНаименование,ИНН,ЮридическийАдрес");
                РеквизитыМакета.Вставить("Пункт1_1", ПредставлениеГрузоотправителя);
                Грузоотправитель = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование");
            Иначе
                ПредставлениеГрузоотправителя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель,
                    "ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны");
                РеквизитыМакета.Вставить("Пункт1_2", ПредставлениеГрузоотправителя);
                Грузоотправитель = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование");
            КонецЕсли;
        КонецЕсли;

        
        СтруктураПоиска = Новый Структура("ПорядковыйНомер", ДанныеПечати.ПорядковыйНомер);
        
        ИменаТоваров = "";
        Пока ДанныеСсылкиДокументов.НайтиСледующий(СтруктураПоиска) Цикл                                
            ИменаТоваров = ИменаТоваров + ДанныеСсылкиДокументов.НаименованиеВидаНоменклатуры + ", ";
        КонецЦикла;            
        
        Если СтрДлина(ИменаТоваров) >= 2 Тогда
            ИменаТоваров = Лев(ИменаТоваров, СтрДлина(ИменаТоваров) - 2);
        КонецЕсли;
        
        РеквизитыМакета.Вставить("Пункт3_1", ИменаТоваров);
        РеквизитыМакета.Вставить("Пункт6_1", ДанныеПечати.ПунктПогрузки);
        РеквизитыМакета.Вставить("Пункт7_1", ДанныеПечати.ПунктРазгрузки);
        
        МассаБруттоСтрока = НСтр("ru = '%МассаБрутто% кг'", Метаданные.Языки.Русский.КодЯзыка);
        МассаБруттоСтрока = СтрЗаменить(МассаБруттоСтрока, "%МассаБрутто%", ДанныеПечати.МассаБрутто);
        
        РеквизитыМакета.Вставить("Пункт6_5", МассаБруттоСтрока);
        
        ОбластьМакета.Параметры.Заполнить(РеквизитыМакета);
        
        ТабличныйДокумент.Вывести(ОбластьМакета);
        ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        
        РеквизитыМакета.Очистить();
        
        Если ЗначениеЗаполнено(ДанныеПечати.Перевозчик) Тогда
            Если СведенияОПеревозчике.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо
             Или СведенияОПеревозчике.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ИндивидуальныйПредприниматель Тогда
                ПредставлениеПеревозчика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПеревозчике,
                    "ПолноеНаименование,ФактическийАдрес,Телефоны");
                Перевозчик = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПеревозчике, "ПолноеНаименование");
                РеквизитыМакета.Вставить("Пункт10_1", ПредставлениеПеревозчика);
            Иначе
                ПредставлениеПеревозчика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПеревозчике,
                    "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны");
                Перевозчик = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПеревозчике, "ПолноеНаименование");
                РеквизитыМакета.Вставить("Пункт10_2", ПредставлениеПеревозчика);
            КонецЕсли;
        КонецЕсли;
        
        ПредставлениеВодителя = ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(ДанныеПечати.Водитель, ДанныеПечати.Дата);
        
        РеквизитыМакета.Вставить("Пункт10_3", ПредставлениеВодителя);
        
        ГрузоподъемностьВТоннахАвтомобиля      = Формат(ДанныеПечати.ГрузоподъемностьВТоннахАвтомобиля,"");
        ВместимостьВКубическихМетрахАвтомобиля = Формат(ДанныеПечати.ВместимостьВКубическихМетрахАвтомобиля,"");
        
        ИнформацияОбАвтомобиле = ""
            + ?(ПустаяСтрока(ДанныеПечати.ТипАвтомобиля),"",Строка(ДанныеПечати.ТипАвтомобиля) + ", ")
            + ?(ПустаяСтрока(ДанныеПечати.МаркаАвтомобиля),"",ДанныеПечати.МаркаАвтомобиля  + ", ")
            + ?(ПустаяСтрока(ГрузоподъемностьВТоннахАвтомобиля),"",ГрузоподъемностьВТоннахАвтомобиля + " " + НСтр("ru = 'т'", Метаданные.Языки.Русский.КодЯзыка)  + ", ")
            + ?(ПустаяСтрока(ВместимостьВКубическихМетрахАвтомобиля),"",ВместимостьВКубическихМетрахАвтомобиля + " " + НСтр("ru = 'куб. м'", Метаданные.Языки.Русский.КодЯзыка));
        
        ИнформацияОбАвтомобиле = СокрЛП(ИнформацияОбАвтомобиле);
        
        Пока Прав(ИнформацияОбАвтомобиле,1) = "," Цикл
            ИнформацияОбАвтомобиле = Лев(ИнформацияОбАвтомобиле, СтрДлина(ИнформацияОбАвтомобиле)-1)
        КонецЦикла;
        
        ОтветственноеЛицо = СтрШаблон(НСтр("ru = '%1 %2'"), ДанныеПечати.ДолжностьКладовщика, ДанныеПечати.Кладовщик);

        РеквизитыМакета.Вставить("Пункт11_1", ИнформацияОбАвтомобиле);
        РеквизитыМакета.Вставить("Пункт11_2", ДанныеПечати.ГосНомерАвтомобиля);
        
        СведенияОПлательщике = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Плательщик, ДанныеПечати.Дата,,ДанныеПечати.БанковскийСчетПлательщика);

        РеквизитыМакета.Вставить("Пункт15_6", ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПлательщике,
            "ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет"));
                
        РеквизитыМакета.Вставить("Пункт16_1", Грузоотправитель);
        РеквизитыМакета.Вставить("Пункт16_2", Перевозчик);
        РеквизитыМакета.Вставить("Пункт16_3", ОтветственноеЛицо);
        
        РеквизитыМакета.Вставить("Пункт16_11", ДанныеПечати.Дата);
        РеквизитыМакета.Вставить("Пункт16_21", ДанныеПечати.Дата);
        
        ОбластьМакетаОборотная.Параметры.Заполнить(РеквизитыМакета);
        
        ТабличныйДокумент.Вывести(ОбластьМакетаОборотная);
        
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
        
    КонецЦикла;
    
КонецПроцедуры

Функция ДействуетПостановлениеНомер2200(ДатаДокумента)
    
    НачалоПрименения = '20210101';
    
    Если ДатаДокумента < НачалоПрименения Тогда
        Возврат Ложь;
    Иначе
        Возврат Истина;
    КонецЕсли;
    
КонецФункции

#КонецОбласти

#КонецОбласти

#КонецЕсли
7 bfss-732
 
28.07.21
22:23
&НаКлиенте
Процедура ВыполнитьПечать(Команда)
    ТабДок = ВыполнитьНаСервере();
    ТабДок.Показать();
    //ТабличныйДокумент.Показать();
    

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

&НаСервере
Функция ВыполнитьНаСервере()
    МассивОбъектов = Новый Массив;
    МассивОбъектов.Добавить(Объект.Ссылка);
    СтруктураТипов = Новый Соответствие;
    СтруктураТипов.Вставить("Документ.ТранспортнаяНакладная", МассивОбъектов);
    СтруктураТипов.Вставить("Документ.ПеремещениеТоваров", МассивОбъектов);

    //КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("ТранспортнаяНакладная_ТН_1529_2200");
    ОбъектыПечати = Новый СписокЗначений;
    ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
    
    ОбъектОбработка = РеквизитФормыВЗначение("Объект");    
    Возврат ОбъектОбработка.СформироватьПечатнуюФормуТранспортнойНакладной(СтруктураТипов, МассивОбъектов, ОбъектыПечати, ПараметрыВывода);
    
    
КонецФункции
8 hhhh
 
28.07.21
22:31
(7) объекты печати действително пустой

   ОбъектыПечати = Новый СписокЗначений;

элементов нет у списка значений.

товарищъ Волшебник прав
9 bfss-732
 
28.07.21
22:33
(8) Так это для отладки так делается
10 серый КТУЛХУ
 
28.07.21
23:12
(5): есть способ. идешь в epf-ки перед тем как добавлять ее в впф базы данных, и там в модуле объекта:
1.1. В экспортную функцию "СведенияОВнешнейОбработке" модуля ВПФ в самом начале - вставляешь перед возвратом:
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
1.2. В процедуру "Печать" иодуля ВПФ в самом начале - вставляешь блок:
    ОтладкаАдрес = "тут полный путь к твоему epf-файлу";
    ОтлаживаемаяОбработкаВПФ = ВнешниеОбработки.Создать(ОтладкаАдрес,БезопасныйРежим());
    ОтлаживаемаяОбработкаВПФ.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
    Возврат;
2. В таком виде - добавляешь ВПФ в базу данных.
3. Комментируешь в самом epf-файле код п.1.1-1.2
.... и теперь отлаживаешь этот epf-файл с кодом, который полностью такой же как во внедренной впф - и который вызывается при использовании загруженного в базу варианта впф - с использованием тех самых бсп-механизмов (используешь в предприятии впф - оно передает управление в эту epf-ку, отлаживай на здоровье).
....... только когда уже отладишь окончательно - не забудь стереть (а лучше - закоментировать) код п.п.1.1-1.2 и заново пере-залить epf-ку в впф базы данных. на этот раз она уже "без дураков" будет строго изнктре колбасить.
11 bfss-732
 
28.07.21
23:18
(10) 3. непонял
12 bfss-732
 
28.07.21
23:19
Сначала добавдяешь 1.1 и 1.2, а в пункте 3. коммментируешь
13 серый КТУЛХУ
 
29.07.21
13:45
(12): добавляешь код в файл - с этим кодом импортируешь его в ВПФ - потом комментируешь код.
результат - БСП вызывает импортированную - она вызывает сам файл - его отлаживаешь.
14 Droning1C
 
30.07.21
07:38
Дата регистрации:     11 июля 2019; Стаж: 2 года 19 дней
Сообщений:     442
Тем:     63
15 bolder
 
30.07.21
07:41
(2) Как в воду смотрел )))
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший