Ошибка в печатной форме метод объекта не обнаружен в УНФ

1. shemyl696 24.06.23 15:32 Сейчас в теме
Добрый день, понадобилось сделать печатную форму макета в документе заказ покупателя, есть нужный макет в другом документе.-заказ на производство. Принято решение вызвать этот добавить команду печать макета в документе заказ покупателя. Выдает ошибку -{Документ.ЗаказПокупателя.МодульМенеджера(16006)}: Метод объекта не обнаружен (СформироватьТребованиеНаСклад1)
Документы.ЗаказНаПроизводство.СформироватьТребованиеНаСклад1(ПечатнаяФорма, МассивОбъектов, ОбъектыПечати);
Хотя в документе заказ на производство есть аналогичный механизм рабочий печать макета сдельный наряд. Не могу понять почему не отрабатывает корректно.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. user1880116 24.06.23 16:46 Сейчас в теме
(1)
Не могу понять почему
А ты там вообще кем? Про области видимости методов, про экспорт там какой-то слышала?
2. Gendelf 24.06.23 16:39 Сейчас в теме
6. shemyl696 24.06.23 22:22 Сейчас в теме
(2)
Функция СформироватьТребованиеНаСклад1(ОписаниеПечатнойФормы, МассивОбъектов, ОбъектыПечати)  Экспорт
    Перем ПервыйДокумент, НомерСтрокиНачало;
    
    ТабличныйДокумент    = ОписаниеПечатнойФормы.ТабличныйДокумент;
    Макет                = УправлениеПечатью.МакетПечатнойФормы(ОписаниеПечатнойФормы.ПолныйПутьКМакету);
    ДанныеПечати        = Новый Структура;
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    ЗаказНаПроизводство.Ссылка КАК Ссылка,
    |    ЗаказНаПроизводство.Номер КАК Номер,
    |    ЗаказНаПроизводство.Дата КАК ДатаДокумента,
    |    ЗаказНаПроизводство.Организация КАК Организация,
    |    ЗаказНаПроизводство.Ответственный КАК Исполнитель,
    |    ЗаказНаПроизводство.ЗаказПокупателя КАК Заказ,
    |    ЗаказНаПроизводство.Старт КАК ДатаЗапуска,
    |    ЗаказНаПроизводство.Финиш КАК ДатаВыпуска,
    |    ЗаказНаПроизводство.СтруктурнаяЕдиница КАК Подразделение,
    |    ЗаказНаПроизводство.Организация.Префикс КАК Префикс,
    |    ЗаказНаПроизводство.Продукция.(
    |        НомерСтроки КАК НомерСтроки,
    |        ВЫБОР
    |            КОГДА (ВЫРАЗИТЬ(ЗаказНаПроизводство.Продукция.Номенклатура.НаименованиеПолное КАК СТРОКА(100))) = """"
    |                ТОГДА ЗаказНаПроизводство.Продукция.Номенклатура.Наименование
    |            ИНАЧЕ ЗаказНаПроизводство.Продукция.Номенклатура.НаименованиеПолное
    |        КОНЕЦ КАК ПредставлениеНоменклатуры,
    |        Номенклатура.Артикул КАК Артикул,
    |        Номенклатура.Код КАК Код,
    |        Характеристика КАК Характеристика,
    |        ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |        Количество КАК Количество
    |    ) КАК ТаблицаПродукция,
    |    ЗаказНаПроизводство.Запасы.(
    |        НомерСтроки КАК НомерСтроки,
    |        ВЫБОР
    |            КОГДА (ВЫРАЗИТЬ(ЗаказНаПроизводство.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(100))) = """"
    |                ТОГДА ЗаказНаПроизводство.Запасы.Номенклатура.Наименование
    |            ИНАЧЕ ЗаказНаПроизводство.Запасы.Номенклатура.НаименованиеПолное
    |        КОНЕЦ КАК ПредставлениеНоменклатуры,
    |        Номенклатура.Артикул КАК Артикул,
    |        Номенклатура.Код КАК Код,
    |        Характеристика КАК Характеристика,
    |        ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |        Количество КАК Количество
    |    ) КАК ТаблицаЗапасы
    |ИЗ
    |    Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство
    |ГДЕ
    |    ЗаказНаПроизводство.Ссылка В(&МассивОбъектов)
    |
    |УПОРЯДОЧИТЬ ПО
    |    Ссылка,
    |    НомерСтроки";
    
    Шапка = Запрос.Выполнить().Выбрать();
    Пока Шапка.Следующий() Цикл
        
        ПечатьДокументовУНФ.ПередНачаломФормированияДокумента(ТабличныйДокумент, ПервыйДокумент, НомерСтрокиНачало,
            ДанныеПечати);
        
        //::: Заголовок
        ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

        НомерДокумента = ПечатьДокументовУНФ.ПолучитьНомерНаПечатьСУчетомДатыДокумента(Шапка.ДатаДокумента,
            Шапка.Номер, Шапка.Префикс);
        ДатаДокумента = Формат(Шапка.ДатаДокумента, "ДЛФ=DD");
        ДанныеПечати.Вставить("ТекстЗаголовка", СтрШаблон(НСтр("ru ='Требование на склад № %1 от %2'"), НомерДокумента,
            ДатаДокумента));

        ОбластьЗаголовок.Параметры.Заполнить(ДанныеПечати);
        ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьЗаголовок,
            Шапка.Ссылка);

        ТабличныйДокумент.Вывести(ОбластьЗаголовок);

        // ::: Шапка документа
        ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
        ОбластьШапка.Параметры.Заполнить(Шапка);
        ТабличныйДокумент.Вывести(ОбластьШапка);
        
        // ::: Табличная часть "Продукция"
        ОбластьМакетаШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
        ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка");
        ОбластьМакетаИтого = Макет.ПолучитьОбласть("Итого");
        
        ДанныеПечати.Вставить("ОписаниеТаблицы", НСтр("ru ='Продукция, работа'"));
        ДанныеПечати.Вставить("ОписаниеЗапасов", НСтр("ru ='Наименование, характеристика продукции'"));
        
        ОбластьМакетаШапкаТаблицы.Параметры.Заполнить(ДанныеПечати);
        ТабличныйДокумент.Вывести(ОбластьМакетаШапкаТаблицы);
        
        ТаблицаПродукция = Шапка.ТаблицаПродукция.Выгрузить();
        ПараметрыНоменклатуры = Новый Структура;
        
        Для каждого СтрокаТабличнойЧастиПродукция Из ТаблицаПродукция Цикл
            
            ДанныеПечати.Очистить();
            ДанныеПечати.Вставить("НомерСтроки", СтрокаТабличнойЧастиПродукция.НомерСтроки);
            
            ПараметрыНоменклатуры.Очистить();
            ПараметрыНоменклатуры.Вставить("Содержание", Неопределено);
            ПараметрыНоменклатуры.Вставить("ПредставлениеНоменклатуры", СтрокаТабличнойЧастиПродукция.ПредставлениеНоменклатуры);
            ПараметрыНоменклатуры.Вставить("ПредставлениеХарактеристики", СтрокаТабличнойЧастиПродукция.Характеристика);
            ПараметрыНоменклатуры.Вставить("ПредставлениеАртикула", СтрокаТабличнойЧастиПродукция.Артикул);
            ПараметрыНоменклатуры.Вставить("НеобходимоВыделитьКакСоставНабора", Ложь);
            
            ДанныеПечати.Вставить("ПредставлениеНоменклатуры", ПечатьДокументовУНФ.ПредставлениеНоменклатуры(ПараметрыНоменклатуры));
            ДанныеПечати.Вставить("ПредставлениеКодаНоменклатуры", ПечатьДокументовУНФ.ПредставлениеКодаНоменклатуры(СтрокаТабличнойЧастиПродукция));
            
            ДанныеПечати.Вставить("Количество", СтрокаТабличнойЧастиПродукция.Количество);
            ДанныеПечати.Вставить("ЕдиницаИзмерения", СтрокаТабличнойЧастиПродукция.ЕдиницаИзмерения);
            
            ОбластьМакетаСтрока.Параметры.Заполнить(ДанныеПечати);
            ТабличныйДокумент.Вывести(ОбластьМакетаСтрока);
            
        КонецЦикла;
        
        ТабличныйДокумент.Вывести(ОбластьМакетаИтого);
        
        // ::: Табличная часть "Запасы" (Материалы)
        ДанныеПечати.Очистить();
        ДанныеПечати.Вставить("ОписаниеТаблицы", НСтр("ru ='Потребность в материалах'"));
        ДанныеПечати.Вставить("ОписаниеЗапасов", НСтр("ru ='Наименование, характеристика материала'"));
        
        ОбластьМакетаШапкаТаблицы.Параметры.Заполнить(ДанныеПечати);
        ТабличныйДокумент.Вывести(ОбластьМакетаШапкаТаблицы);
        
        ТаблицаЗапасы = Шапка.ТаблицаЗапасы.Выгрузить();
        Для Каждого СтрокаТабличнойЧастиЗапасы Из ТаблицаЗапасы Цикл

            ДанныеПечати.Очистить();
            ДанныеПечати.Вставить("НомерСтроки", СтрокаТабличнойЧастиЗапасы.НомерСтроки);

            ПараметрыНоменклатуры.Очистить();
            ПараметрыНоменклатуры.Вставить("Содержание", Неопределено);
            ПараметрыНоменклатуры.Вставить("ПредставлениеНоменклатуры",
                СтрокаТабличнойЧастиЗапасы.ПредставлениеНоменклатуры);
            ПараметрыНоменклатуры.Вставить("ПредставлениеХарактеристики", СтрокаТабличнойЧастиЗапасы.Характеристика);
            ПараметрыНоменклатуры.Вставить("ПредставлениеАртикула", СтрокаТабличнойЧастиЗапасы.Артикул);
            ПараметрыНоменклатуры.Вставить("НеобходимоВыделитьКакСоставНабора", Ложь);

            ДанныеПечати.Вставить("ПредставлениеНоменклатуры", ПечатьДокументовУНФ.ПредставлениеНоменклатуры(
                ПараметрыНоменклатуры));
            ДанныеПечати.Вставить("ПредставлениеКодаНоменклатуры", ПечатьДокументовУНФ.ПредставлениеКодаНоменклатуры(
                СтрокаТабличнойЧастиЗапасы));

            ДанныеПечати.Вставить("Количество", СтрокаТабличнойЧастиЗапасы.Количество);
            ДанныеПечати.Вставить("ЕдиницаИзмерения", СтрокаТабличнойЧастиЗапасы.ЕдиницаИзмерения);

            ОбластьМакетаСтрока.Параметры.Заполнить(ДанныеПечати);
            ТабличныйДокумент.Вывести(ОбластьМакетаСтрока);

        КонецЦикла;
        
        ТабличныйДокумент.Вывести(ОбластьМакетаИтого);
        
        //::: Подписи
        ОбластьПодписи = Макет.ПолучитьОбласть("Подписи");
        ОбластьПодписи.Параметры.Заполнить(Шапка);
        ТабличныйДокумент.Вывести(ОбластьПодписи);
        
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, Шапка.Ссылка);
        
    КонецЦикла;
    
    Возврат ТабличныйДокумент;
    
КонецФункции
Показать
7. shemyl696 24.06.23 22:23 Сейчас в теме
(2)
Начало процедуры печать
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    ОписаниеПечатнойФормы = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ТребованиеНаСклад1");
    Если ОписаниеПечатнойФормы <> Неопределено Тогда
        
        ОписаниеПечатнойФормы.ТабличныйДокумент = Новый ТабличныйДокумент;
        ОписаниеПечатнойФормы.ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказНаПроизводство_ТребованиеНаСклад1";
        ОписаниеПечатнойФормы.ПолныйПутьКМакету = "Документ.ЗаказНаПроизводство.ПФ_MXL_ТребованиеНаСклад1";
        ОписаниеПечатнойФормы.СинонимМакета = НСтр("ru ='Спецификация товара'");
        
        СформироватьТребованиеНаСклад1(ОписаниеПечатнойФормы, МассивОбъектов, ОбъектыПечати);
        
    КонецЕсли;
Показать
8. shemyl696 24.06.23 22:24 Сейчас в теме
(2)
вот в заказе покупателя
вызываю, пишет-печатная форма не доступна
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    Перем Ошибки;
    
    ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ЗаказПокупателя");
    Если ПечатнаяФорма <> Неопределено Тогда
        
        ПечатнаяФорма.ТабличныйДокумент = Новый ТабличныйДокумент;
        ПечатнаяФорма.ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_ЗаказПокупателя";
        ПечатнаяФорма.ПолныйПутьКМакету = "Документ.ЗаказПокупателя.ПФ_MXL_ЗаказПокупателя";
        ПечатнаяФорма.СинонимМакета = НСтр("ru ='Заказ покупателя'");
        
        СформироватьЗаказПокупателя(ПечатнаяФорма, МассивОбъектов, ОбъектыПечати, Ошибки);
        
    КонецЕсли;
    
    ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ТребованиеНаСклад1");
    Если ПечатнаяФорма <> Неопределено Тогда
        
        ПечатнаяФорма.ТабличныйДокумент = Новый ТабличныйДокумент;
        ПечатнаяФорма.ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_ПФ_MXL_ТребованиеНаСклад1"<wbr;
        ПечатнаяФорма.ПолныйПутьКМакету = "Документ.ЗаказНаПроизводство.ПФ_MXL_ТребованиеНаСклад1";
        ПечатнаяФорма.СинонимМакета = НСтр("ru ='Спецификация товара'");
        
        //Документы.ЗаказНаПроизводство.СформироватьТребованиеНаСклад1(ПечатнаяФорма, МассивОбъектов, ОбъектыПечати);
        Документы.ЗаказНаПроизводство.СформироватьТребованиеНаСклад1(ПечатнаяФорма, МассивОбъектов, ОбъектыПечати);
    КонецЕсли;
Показать
4. polax 24.06.23 17:28 Сейчас в теме
(1) Ну сделаешь ты экспорт, появится метод, но он же нерабочий в заказе покупателя. Посмотри запрос в функции. Там обращение к полям Заказа на производство. Ну и т.д. Если ты этого не понимаешь, нанимай программиста
5. user1826630 24.06.23 19:03 Сейчас в теме
(4) А че, если где-то есть процедура с такими же буквами в названии - она не сработает???
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот