Имя: Пароль:
1C
1С v8
ЗУП 3.1 Добавить свой пункт меню (свою печатную форму) в кнопку печати документа
0 Антиквар
 
27.08.19
00:39
Всем привет!
Вопрос мне казалось забитый, но что-то не могу разобраться, и в инете инфы не нашел.
В ЗУП 3.1 есть документ Увольнение. В нем есть кнопка Печать. У этой кнопки много пунктов подменю (много печатных форм).
Среди стандартных пунктов есть один самописный (своя печатная форма), её нужно отредактировать, а также добавить ещё одну печатную форму.
Стал разбираться, откуда вообще эта кнопка Печать заполняется. Понял, что в модуле менеджера документа Увольнение есть процедура:
ДобавитьКомандыПечати()
В этой процедуре вроде как и происходит заполнение пунктов меню с привязкой к обработке печати.
Но ни в основной конфигурации, ни в расширении эта процедура не дополнена самописной печатной формой. Откуда она тогда берется в меню печати?
Значит я ничего не понял видимо, откуда это меню берется...
1 Chameleon1980
 
27.08.19
04:28
Дополнительные (внешние) печатные формы. Смотри справочник с названием похожим на дополнительные (внешние) отчёты и обработки
2 Uzyf
 
27.08.19
06:58
Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.СписаниеИзЭксплуатации"); //Указываем документ к которому делаем внешнюю печ. форму
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Акт на списание (МБ-8) с выводом комиссии"); //имя под которым обработка будет зарегистрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", "Акт на списание (МБ-8) с выводом комиссии");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Акт на списание (МБ-8) с выводом комиссии", "АктНаСписаниеМБ8", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    Возврат ПараметрыРегистрации;
    
КонецФункции

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

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

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

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

КонецПроцедуры
    
Функция ПечатьМБ8(МассивОбъектов, ОбъектыПечати)
3 ИУБиПовиц
 
27.08.19
08:38
Администрирование печ формы и обработки - дополнительные отчеты и обработки. Находите там свою печ форму - сохраняете с другим именем - делаете что нужно и загружаете отдельным отчетом.
Это кстати не только в ЗуП так:)
4 Фрэнки
 
27.08.19
08:43
если на конфигурацию смотрел с наскока, то может еще не увидел, что там Расширение установлено?

Тогда на процедуру может быть повешено заимствование в Расширение и там дописано.

Ну или как уже выше заметили, при наличии в ВПФ дополнительныеДобавитьКомандыПечати дополняются и оттуда тоже.
Вообще, может быть микс и оттуда и оттуда
5 Антиквар
 
27.08.19
09:56
Спасибо большое, буду разбираться.
(4) Расширения есть, я в первом посте написал, что в расширении не нашел, но смотрел только документ Увольнение, которого в расширении вообще нет, а также общие модули смотрел, там тоже ничего связанного с печатью не нашел. Наверное внешние печатные формы задействованы. Спасибо.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.