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