Для тех, кто хорошо знаком, как создать внешнюю печатную форму, этот материал может оказаться интересным. Остальным рекомендую изучить «Внешние печатные формы в восьмерке» //infostart.ru/public/16952/
Для НЕ ПРОГРАММИСТОВ! Хотите свою печатную форму, а программировать не хотите? Нет ничего невозможного. Пишите. Договоримся.
Многие печатные формы в 1С 8 автоматом проставляют ФИО руководителя в разделе Подписи. При этом руководитель берется из Реестра сведений «Ответственные лица организаций». Но в реальных условиях требуется часто подписывать документ заместителю руководителя. Обычно в таких случаях автоматически внесенное значение «пербивается» вручную нужным, что совсем не удобно, особенно, когда документов более десятка в день.
Что делают некоторые программисты? Создают внешнюю печатную форму, в которой «намертво» в макет впечатан заместитель. Если заместителей несколько, то и печатных форм столько же. Понятно, что когда меняется заместитель, приходиться добавлять форму с новым заместителем.
Предлагаемая форма на примере документа «Акт об оказании производственных услуг» позволяет произвольным образом менять физическое лицо для подписи, с указанием должности и доверенности (в некоторых документах требуется доверенность, на основании которой зам может подписывать документы за руководителя).

Первоначально я полагал, что заместитель может быть один. К сожалению в «Ответственные лица организаций» нет возможности указать ответственное лицо «Заместитель», не меняя конфигурацию. Поэтому использовал ответственное лицо «Уполномоченный представитель» вместо заместителя.
Первоначально я полагал, что заместитель может быть один. К сожалению в «Ответственные лица организаций» нет возможности указать ответственное лицо «Заместитель», не меняя конфигурацию. Поэтому использовал ответственное лицо «Уполномоченный представитель» вместо заместителя.
Но когда выяснилось, что заместителей, подписывающих один и тот же тип документа, может быть несколько, пришлось использовать дополнительную форму.


После активного изучения вопроса «как привинтить форму к печатной форме» в интернете и исходных кодах, использовал следующий вариант:
Функция Печать() Экспорт
Форма = ПолучитьФорму("ВыборОтветственногоЛица");
Если Форма.Открыта() тогда
Форма.Закрыть("Да");
Иначе
Тест = Форма.ОткрытьМодально();
Если (Тест <> "Да") Тогда
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
Возврат ПечатьАктаОбОказанииУслуг();
КонецФункции // Печать
Для указания доверенности использовал поле «Комментарий» (Вкладка «Прочее» поле «Дополнительная информация») в справочнике «Физические лица». При этом комментарий должен иметь вначале ключевое слово «ДОВЕРЕННОСТЬ:». По нему определяется, что это не произвольный комментарий, а именно доверенность.

Для сохранения настроек (чтобы не вводить каждый раз ФЛ) добавил реквизиты ФизЛицо, Должность и ВариантОЛ, которые сохраняю при выходе из формы.
Процедура ПриОткрытии()
ФизЛицо = ВосстановитьЗначение("ФизЛицо");
Должность = ВосстановитьЗначение("Должность");
ВариантОЛ = ВосстановитьЗначение("ВариантОЛ");
АктивностьСписков();
КонецПроцедуры
Процедура ПриЗакрытии()
СохранитьЗначение("ФизЛицо", ФизЛицо);
СохранитьЗначение("Должность", Должность);
СохранитьЗначение("ВариантОЛ", ВариантОЛ);
КонецПроцедуры
Поле ВариантОЛ назначается переключателями «Руководитель», «Заместитель» (привет от «Уполномоченного представителя») и «Другой». При активном «Другой» становятся доступны поля «Физическое лицо» и «Должность».
Когда стал делать аналогичную форму для счета-фактуры, меня ожидал сюрприз. Так как формы ВыборОтветственногоЛица и в Акте и в Счете-Фактуре были идентичны, то 1С сохранил настройки формы по одному адресу. Теперь не нужно было выбирать Ответственное лицо для каждого вида печатной формы! Достаточно один раз указать, и для данного пользователя это значение подхватывалось на всех печатных формах, имеющих форму ВыборОтветственногоЛица.
При переносе логики формирования печати из стандартных модулей, достаточно в Модуле объекта добавить
Функция ОтветственныеЛицаОрганизаций(Организация, ДатаСреза, Исполнитель = Неопределено) // Переопределенная функция из общих модулей, возвращающая УполномоченныйПредставительДолжность, УполномоченныйПредставительДоверенность, УполномоченныйПредставительФизЛицо Функция ФИОФизЛица() // Иванов И. И. Функция ДоверенностьФизЛица() Процедура ВернутьПодписиРуководителей(ДанныеДляПечати, Организация, Дата)
А в самой функции, возвращающей ТабличныйДокумент, заменить присвоение ОбластьМакета.Параметры.ФИОРуководителя = Руководитель; на свое, добавив должность и доверенность:
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
ДанныеДляПечати = Новый Структура();
ВернутьПодписиРуководителей(ДанныеДляПечати, Шапка.Организация, СсылкаНаОбъект.Дата);
ОбластьМакета.Параметры.Заполнить(ДанныеДляПечати);
ТабДокумент.Вывести(ОбластьМакета);
Следует обратить внимание, что в одних стандартных печатных формах руководитель обозначен как параметр ФИОРуководителя, в других – по-другому. Когда будете писать свой макет, указывайте параметры:
ФИОРуководителя ДолжностьРуководителя ДоверенностьРуководителя ФИОГлавногоБухгалтера
Желаю успехов в написании своих красивых и удобных внешних печатных форм!
Вступайте в нашу телеграмм-группу Инфостарт
