М-11 Универсальная печатная форма с дополнительными параметрами





Решил объединить популярные печатные формы М-11 в одну обработку и вот что получилось:
1. для Документов "ТребованиеНакладная", "ОтчетПроизводстваЗаСмену", "ПередачаМатериаловВЭксплуатацию", "ОтчетПроизводстваЗаСмену"
2. Указать доп.параметры печатной формы: Имя "МАКЕТ", Значение (тип "СТРОКА") может принимать следующие:
    — "М11"                — выводится на печать "М-11 ТребованиеНакладная"
    — "ТребованиеНакладная" — выводится на печать "ТребованиеНакладная"
    — "АктСписания"         — выводится на печать "Печать_АктаСписания"
    — без параметров выводится  "М-11 ТребованиеНакладная"
3. в зависимости от доп.параметров выводится на печать "М11", "ТребованиеНакладная", "АктСписания"

Внешняя печатная форма «М-11» для типовой БУХГАЛТЕРИИ, ред.2.0  для Документов «ТребованиеНакладная», «ОтчетПроизводстваЗаСмену», «ПередачаМатериаловВЭксплуатацию», «ОтчетПроизводстваЗаСмену»выводится на печать «М11», «ТребованиеНакладная», «АктСписания», в зависимости от доп.параметров (имя «МАКЕТ», Значение — тпи «СТРОКА»).

Вот с доп.пареметрами сложноватько — надо указать, что Макет и далее:

    — «М11» — выводится на печать «М-11 ТребованиеНакладная»

   — «ТребованиеНакладная» — выводится на печать «ТребованиеНакладная»

   — «АктСписания» — выводится на печать «Печать_АктаСписания»

   — без параметров выводится «М-11 ТребованиеНакладная»

Для НЕКУРЯЩИХ пользователей привожу код функции ПЕЧАТЬ():

Функция Печать() Экспорт

Если ТипЗнч(СсылкаНаОбъект) = Тип(«ДокументСсылка.ТребованиеНакладная») Тогда
Если ДополнительныеПараметры.Макет = «М11» Тогда
ТабДокумент = ПечатьМ11_ТребованиеНакладная();
ИначеЕсли ДополнительныеПараметры.Макет = «ТребованиеНакладная» Тогда
ТабДокумент = Печать_ТребованиеНакладная();
ИначеЕсли ДополнительныеПараметры.Макет = «АктСписания» Тогда
ТабДокумент = Печать_АктаСписания(СсылкаНаОбъект);
Иначе
ТабДокумент = ПечатьМ11_ТребованиеНакладная();
Конецесли;
ИначеЕсли ТипЗнч(СсылкаНаОбъект) = Тип(«ДокументСсылка.ОтчетПроизводстваЗаСмену») Тогда
Если ДополнительныеПараметры.Макет = «М11» Тогда
ТабДокумент = ПечатьМ11_ОтчетПроизводстваЗаСмену();
ИначеЕсли ДополнительныеПараметры.Макет = «АктСписания» Тогда
ТабДокумент = Печать_АктаСписания(СсылкаНаОбъект);
Иначе
ТабДокумент = ПечатьМ11_ОтчетПроизводстваЗаСмену();
КонецЕсли;
ИначеЕсли ТипЗнч(СсылкаНаОбъект) = Тип(«ДокументСсылка.ПередачаМатериаловВЭксплуатацию») Тогда
ТабДокумент = ПечатьМ11_ПередачаМатериаловВЭксплуатацию();
Иначе
Возврат Неопределено;
Конецесли;
Возврат ТабДокумент;

КонецФункции

Кто подскажет как это автоматизировать — тому спасибо и бантик на макушку! 🙂

2 Comments

  1. AleksSF

    Чего-то не вкурил.

    Это что, запрос на разработку?

    На публикацию никак не тянет. На готовое решение тем более.

    Reply
  2. IgorQ

    А к реализации товаров и услуг можно присоединить?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *