При оформлении первичных учетных документов часто возникает задача: передать право подписи за руководителя другому сотруднику на основании приказа или доверенности. В типовой конфигурации «1С:Управление производственным предприятием 1.3» пользователи нередко настраивают регистр сведений УполномоченныеЛицаОрганизаций, однако в печатных формах кассовых ордеров (КО-1, КО-2) или авансовых отчетов (АО-1) по-прежнему выводится руководитель организации. Разберем архитектурные причины такого поведения программы и рассмотрим доступные способы решения этой задачи.
Проанализируем архитектуру конфигурации «УПП 1.3» и выясним, как разделены механизмы подписей:
УполномоченныеЛицаОрганизаций — исторически предназначен исключительно для торговых документов и документов по учету НДС (товарная накладная ТОРГ-12, акт об оказании услуг, счет-фактура, УПД) в соответствии со ст. 169 НК РФ. Данные из этого регистра привязаны к конкретному пользователю системы и считываются процедурами формирования торговых документов.ОтветственныеЛицаОрганизаций — используется для регламентированной отчетности, кассовых документов и авансовых отчетов. В общих модулях (например, ФормированиеПечатныхФорм) алгоритмы заполнения бланков жестко обращаются к регистру ответственных лиц с отбором по значениям перечисления: Руководитель, ГлавныйБухгалтер, Кассир. Проверка наличия прав у текущего пользователя в регистре уполномоченных лиц в этих модулях программно не заложена.Если право подписи передается официально на длительный срок (например, на время отпуска или командировки руководителя), рассмотрим стандартную возможность периодического регистра сведений:
ОтветственныеЛицаОрганизаций.И.о. генерального директора (Приказ № 15 от 01.10.2023)).Обратите внимание: данный способ меняет ответственное лицо для всей организации в целом, то есть подмена затронет все документы всех пользователей за указанный интервал времени.
Чтобы не создавать отдельный файл внешней обработки под каждый документ, воспользуемся штатным механизмом подсистемы дополнительных отчетов и обработок платформы 1С:
.epf).ВнешниеОбработки при регистрации файла заполним табличную часть Принадлежность печатной формы, указав сразу несколько видов документов: РасходныйКассовыйОрдер, ПриходныйКассовыйОрдер, АвансовыйОтчет.Печать() модуля обработки программно свяжем вывод подписантов с регистром УполномоченныеЛицаОрганизаций.Посмотрим на пример фрагмента кода выборки уполномоченного лица в функции печати:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УполномоченныеЛица.УполномоченноеЛицо КАК ФИО,
| УполномоченныеЛица.Основание КАК Основание,
| УполномоченныеЛица.Должность КАК Должность
|ИЗ
| РегистрСведений.УполномоченныеЛицаОрганизаций.СрезПоследних(&Период,
| Пользователь = &ТекущийПользователь
| И Организация = &Организация
| И ЗаКогоПодписывает = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель)) КАК УполномоченныеЛица";
Запрос.УстановитьПараметр("Период", ДокументСсылка.Дата);
Запрос.УстановитьПараметр("ТекущийПользователь", глЗначениеПеременной("глТекущийПользователь"));
Запрос.УстановитьПараметр("Организация", ДокументСсылка.Организация);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
РуководительФИО = Выборка.ФИО;
ОснованиеПодписи = Выборка.Основание;
КонецЕсли;
Если конфигурация уже снята с полной поддержки и разрешено внесение минимальных изменений, наиболее надежный путь — изменить централизованную функцию получения ответственных лиц в общем модуле ОбщегоНазначения или ФормированиеПечатныхФорм.
Рассмотрим алгоритм корректировки:
ПолучитьОтветственныхЛиц()).УполномоченныеЛицаОрганизаций для текущего пользователя системы есть активная запись по замещению должности Руководитель, заменим значение соответствующего поля в возвращаемой структуре.Такой подход позволяет изменить поведение сразу всех печатных форм в конфигурации, изменив всего несколько строк в одной точке, что существенно упростит последующие типовые обновления базы.