О решении.
Доработка позволяет печатать установленный перечь печатных форм документа одним нажатием мыши. Также имеется функция выводить печатные формы в одном окне, чтобы не переключаться между несколькими окнами.
Функция доступна из окна выбора комплекта печати. Галочка "На один документ". В этом окне будут выведенны все печатные формы комплекта в установленном количестве экземпляров.
Механизм позволяет печатать как встроенные, так и внешние печатные формы, а также встроенные формы, подмененные внешними.
Решение отлажено на УТ 10.3 (10.3.29.1)\ платформа 8.3.8.1652.
Предполагаю, что доработка подойдет для многих решений 1С на обычных формах (БП 2.0, ЗП 2,5 и др.) при небольшой подгонке.
Реализация решения.
Сразу хочу отметить, что это ДОРАБОТКА. Соответственно требует включение возможности изменения в конфигурации.
Реализация выполнена с минимальными изменениями типового кода (по мнению автора)!
Для переноса изменений следует перенести изменения из файла публикации в вашу конфигурацию.
Если у вас нет опыта такого рода работы, обратитесь к специалистам.
Затрагиваемы объекты. Привожу для типовых конфигураций, дабы при включении возможности изменения конфигурации не снимать с "замочка" все объекты.
- Общий модуль "РаботаСДиалогами".
- Саму конфигурацию(корневой объект).
Дополнительные объекты.
- Документ, в котором требуется использование комплекта печати.
- Форма документа, в котором требуется использование комплекта печати.
В конфигурацию будут добавлены:
- Общий модуль.
- Справочник.
- Общая форма.
После переноса объектов из файла публикации(cf). Нужно зайти в форму документа, И добавить процедуру.
//+КомплектПечати
Процедура КП_ДействиеКомплектПечати(Элемент)
КП_УправлениеКомплектамиПечати.ОткрытьФормуВыбораПечатныхФормОбъекта(ЭтотОбъект, ЭтаФорма);
КонецПроцедуры
В Модуле объекта документа нужно найти процедуру Печать и внести следующие изменения.
1. В модуль документа в процедуре Печать добавить параметр ТабДок
Было:
Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт
Нужно, чтобы стало так:
Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь, ТабДок = Ложь) Экспорт
2. Перед строкой вызова печати вставить следующий код:
Было:
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект));
Нужно, чтобы стало так:
//+КомплектыПечати
Если ТабДок Тогда
ТабДок = ТабДокумент;
Возврат;
КонецЕсли;
//-КомплектыПечати
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект));
Как пользоваться.
После всех манипуляций в конфигураторе, если вы все сделали правильно, можно пользоваться доработкой.
1. Заходим в справочник "Комплекты печати" (все функции - справочники). Можно вывести в нужный вам интерфейс.
В нем задаем имя комплекта, выбираем из списка объект назначения (документ). Табличная часть будет автоматически заполнена списком печатных форм выбранного документа. Напротив нужной печатной формы ставим галочку и устанавливаем количество экземпляров. И в завершении в шапке ставим галочку "использовать". Сохраняем и закрываем.
Галочка "использовать" позволяет изымать комплект из списка печати комплектов. Допустим, когда мы корректируем комплект или он уже не актуален.
2. Заходим в документ, который хотим распечатать. Если для документа нет комплектов, кнопки "Печать комплектов" в нем не будет. Она формируется программой в зависимости от наличия используемых комплектов, не помеченных на удаление.
3. В форме документа нажимаем на кнопку "Печать комплекта". Откроется привычное окно с перечнем комплектов печати.
Выбираем нужный и нажимаем "Печать". В зависимости от галочки "На принтер" комплект либо пойдет сразу на печать, либо будет открыт предпросмотр.
Если установлена галочка "На один документ", при предпросмотре все печатные формы одного комплекта будут выведены в одном окне.
Версия 1.2
В версии 1.2 добавлена возможность настраивать порядок печати. Таким образом, при печати комплекта из накладной и акта в двух экземплярах каждой, можно распечатать ни два акта и две накладных, а в любой последовательности. Например чередуя акт и накладную.