Имя: Пароль:
1C
1С v8
Не работает внешняя печатная форма.
0 Alive
 
24.02.20
09:34
Всем доброго времени суток! Очень надеюсь на вашу помочь в решение следующей проблемы. Конфа "Управление учебным центром", платформа 8.3.15.1700.
Создала внешнюю печатную форму, подцепила ее к документу. На форме документ появилась соответствующая кнопка для печати, но когда на нее наживаешь, печать не происходит. Не запускается процедура по печати. Проверяла, указать в процедуре Печать первой строкой Сообщить("Тест"), ничего не выводит.
Прилагаю Код внешней печатной формы:


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

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

Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.Акт");
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "АктЮрЛицо");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ИСТИНА);
    ПараметрыРегистрации.Вставить("Информация", "АктЮрЛицо");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "АктЮрЛицо", "ПФ_MXL_Макет_АктЮрЛицо", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    Возврат ПараметрыРегистрации;
КонецФункции


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

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


Функция ПечатьАкт(МассивОбъектов, ОбъектыПечати)
    
    ТабДокумент = Новый ТабличныйДокумент;
    
    ТабДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Акт";
    Макет = ПолучитьМакет("Макет_АктЮрЛицо");
1 Alive
 
24.02.20
09:38
В Функции ПечатьАкт указала не то наименование Макета, на самом деле там такое же наименование, как и в Процедуре печать(). (0)
2 Dimeric
 
24.02.20
13:29
(0)Причин может быть масса.

Поробуй отладкой пройтись
3 Alive
 
24.02.20
15:32
А как запустить отладку, если даже функция Печать не запускается?( Сообщение же не выводится.
4 Cthulhu
 
24.02.20
16:37
//ДобавитьКоманду(ТаблицаКоманд, "АктЮрЛицо", "ПФ_MXL_Макет_АктЮрЛицо", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
ДобавитьКоманду(ТаблицаКоманд, "АктЮрЛицо", "ПФ_MXL_Макет_АктЮрЛицо", ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Истина, "ПечатьMXL");
5 Cthulhu
 
24.02.20
18:36
а не то же самое, пардон...
на второй взгляд - мататень с типами в ТЗ команд - из-за чего она (тз) скорее всего кривая.
БСП же позволяет и параметры регистрации и тз команд получать без рисков ошибиться.
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Назначение.Добавить("Документ.Акт");
Команда = ПараметрыРегистрации.Команды.Добавить();
//Команда.Представление = ...; Команда.Идентификатор = ...; Команда.Использование = ...; Команда.Модификатор = ; и т.п. ...
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.