Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
27 сен 2024, 22:26

Печатная форма, ошибка УправлениеПечатью

Автор divaterwch, 05 сен 2024, 11:07

0 Пользователей и 1 гость просматривают эту тему.

divaterwch

Всем доброго!

Создаю первую печатную форму, но появляется ошибка

{ВнешняяОбработка.ЗаказВнешний.Форма.Форма.Форма(49,7)}: Переменная не определена (УправлениеПечатью)
    Если <<?>>УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(   //Ошибка; не определена переменная Управление печатью (Проверка: Сервер)

Как ее пофиксить? Помогите, только начинаю и делаю все наощупь

Полный код:

Функция СведенияОВнешнейОбработке () Экспорт

          ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг"); //документ к которому делаем внешнюю печ. форму
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Счет на оплату (шаблон)"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", "Эту ВПФ мы сделали для того что бы посмотреть возможности БСП ");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Заказ внешний (шаблон)", "ЗаказВнешний", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
   
    Возврат ПараметрыРегистрации;   
   
КонецФункции         

Функция ПолучитьТаблицуКоманд()
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    Возврат Команды;
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
   
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
   
КонецПроцедуры                           

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

                           
КонецЕсли;                           
КонецПроцедуры // Печать(   
                       
Функция   СформироватьПечатнуюФорму (СсылкаНаОбъект, ОбъектыПечати)     
   
    ТабличныйДокумент = Новый ТабличныйДокумент;
    МакетОбработки = МакетОбработки.Получить ("МакетЗаказа");   
   
    ОбластьШапки = МакетОбработки.ПолучитьОбласть ("Шапка");
   
    ОбластьШапки.Параметры.НомерРеализации = СсылкаНаОбъект.Номер;
    ОбластьШапки.Параметры.ДатаРеализации = Формат (СсылкаНаОбъект.Дата,"ДЛФ=DD");
   
    ТабличныйДокумент.Вывести(ОбластьШапки);
   
    ОбластьСтроки = МакетОбработки.ПолучитьОбласть ("СтрокаТЧ");
    Для каждого ТекущаяСтрока Из СсылкаНаОбъект.Товары Цикл
   
        ОбластьСтроки.Параметры.Товар = ТекущаяСтрока.Номенклатура;
        ОбластьСтроки.Параметры.Товар.Цена = ТекущаяСтрока.Цена;
        ОбластьСтроки.Параметры.Количество = ТекущаяСтрока.Количество;
        ОбластьСтроки.Параметры.Сумма = ТекущаяСтрока.Сумма;
       
        ТабличныйДокумент.Вывести(ОбластьСтроки);
       
    КонецЦикла;
   
   
    ОбластьПодвала = МакетОбработки.ПолучитьОбласть ("Подвал");
   
    ОбластьПодвала.Параметры.Ответственный = СсылкаНаОбъект.Ответственный;
    ОбластьПодвала.Параметры.СуммаИтого = СсылкаНаОбъект.Товары.Итог("Сумма");
   
    Возврат ТабличныйДокумент   
КонецФункции //СформироватьПечатнуюФорму 

LexaK

divaterwch, так как вы ни чего не умеете, то самое простое,
возьмите в своей базе УЖЕ РАОЧУЮ ВПФ, сохраните ее под другим именем
аккуратно измените в ней макет, код для своей ПФ и пользуйтесь!
если помогло нажмите: Спасибо!

divaterwch

LexaK, а у меня и нет рабочей ВПФ, в этом и суть. Хотелось бы как раз сделать шаблон

LexaK

divaterwch, то что вы запускаете, где-то же взяли? (не сами же написали)
проверяйте что берете, версии платформы, версии БСП,
1С она такая разная, то что отлично работает в одной базе - у вас вообще не будет работать!
если помогло нажмите: Спасибо!

fruitella

Попробуй так

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

Похожие темы (5)

Рейтинг@Mail.ru

Поиск