Как настроить вывод уполномоченного лица вместо руководителя в печатных формах в 1С:УПП 1.3?

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет Промышленность, строительство и АПК
← На главную

При оформлении первичных учетных документов часто возникает задача: передать право подписи за руководителя другому сотруднику на основании приказа или доверенности. В типовой конфигурации «1С:Управление производственным предприятием 1.3» пользователи нередко настраивают регистр сведений УполномоченныеЛицаОрганизаций, однако в печатных формах кассовых ордеров (КО-1, КО-2) или авансовых отчетов (АО-1) по-прежнему выводится руководитель организации. Разберем архитектурные причины такого поведения программы и рассмотрим доступные способы решения этой задачи.

Почему регистр сведений «Уполномоченные лица организаций» не работает для кассовых документов

Проанализируем архитектуру конфигурации «УПП 1.3» и выясним, как разделены механизмы подписей:

  1. Регистр сведений УполномоченныеЛицаОрганизаций — исторически предназначен исключительно для торговых документов и документов по учету НДС (товарная накладная ТОРГ-12, акт об оказании услуг, счет-фактура, УПД) в соответствии со ст. 169 НК РФ. Данные из этого регистра привязаны к конкретному пользователю системы и считываются процедурами формирования торговых документов.
  2. Регистр сведений ОтветственныеЛицаОрганизаций — используется для регламентированной отчетности, кассовых документов и авансовых отчетов. В общих модулях (например, ФормированиеПечатныхФорм) алгоритмы заполнения бланков жестко обращаются к регистру ответственных лиц с отбором по значениям перечисления: Руководитель, ГлавныйБухгалтер, Кассир. Проверка наличия прав у текущего пользователя в регистре уполномоченных лиц в этих модулях программно не заложена.

Способ 1. Периодическая запись в регистре «Ответственные лица организаций» (без доработок)

Если право подписи передается официально на длительный срок (например, на время отпуска или командировки руководителя), рассмотрим стандартную возможность периодического регистра сведений:

  1. Откроем регистр сведений ОтветственныеЛицаОрганизаций.
  2. Создадим новую запись с датой начала действия полномочий (регистр является периодическим по дням).
  3. В поле ответственного лица укажем замещающего сотрудника, а в должности — формулировку с реквизитами приказа (например, И.о. генерального директора (Приказ № 15 от 01.10.2023)).
  4. После окончания срока замещения создадим следующую запись, которая вернет исходного руководителя.

Обратите внимание: данный способ меняет ответственное лицо для всей организации в целом, то есть подмена затронет все документы всех пользователей за указанный интервал времени.

Способ 2. Создание универсальной внешней печатной формы

Чтобы не создавать отдельный файл внешней обработки под каждый документ, воспользуемся штатным механизмом подсистемы дополнительных отчетов и обработок платформы 1С:

  1. Создадим одну универсальную внешнюю печатную форму (файл с расширением .epf).
  2. В справочнике ВнешниеОбработки при регистрации файла заполним табличную часть Принадлежность печатной формы, указав сразу несколько видов документов: РасходныйКассовыйОрдер, ПриходныйКассовыйОрдер, АвансовыйОтчет.
  3. В экспортной функции Печать() модуля обработки программно свяжем вывод подписантов с регистром УполномоченныеЛицаОрганизаций.

Посмотрим на пример фрагмента кода выборки уполномоченного лица в функции печати:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	УполномоченныеЛица.УполномоченноеЛицо КАК ФИО,
    |	УполномоченныеЛица.Основание КАК Основание,
    |	УполномоченныеЛица.Должность КАК Должность
    |ИЗ
    |	РегистрСведений.УполномоченныеЛицаОрганизаций.СрезПоследних(&Период,
    |		Пользователь = &ТекущийПользователь 
    |		И Организация = &Организация 
    |		И ЗаКогоПодписывает = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель)) КАК УполномоченныеЛица";

Запрос.УстановитьПараметр("Период", ДокументСсылка.Дата);
Запрос.УстановитьПараметр("ТекущийПользователь", глЗначениеПеременной("глТекущийПользователь"));
Запрос.УстановитьПараметр("Организация", ДокументСсылка.Организация);

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
    РуководительФИО = Выборка.ФИО;
    ОснованиеПодписи = Выборка.Основание;
КонецЕсли;

Способ 3. Централизованная доработка общего модуля конфигурации

Если конфигурация уже снята с полной поддержки и разрешено внесение минимальных изменений, наиболее надежный путь — изменить централизованную функцию получения ответственных лиц в общем модуле ОбщегоНазначения или ФормированиеПечатныхФорм.

Рассмотрим алгоритм корректировки:

  1. Найдем функцию, возвращающую структуру ответственных лиц организации на дату документа (обычно ПолучитьОтветственныхЛиц()).
  2. Добавим в конец функции проверку: если в регистре УполномоченныеЛицаОрганизаций для текущего пользователя системы есть активная запись по замещению должности Руководитель, заменим значение соответствующего поля в возвращаемой структуре.

Такой подход позволяет изменить поведение сразу всех печатных форм в конфигурации, изменив всего несколько строк в одной точке, что существенно упростит последующие типовые обновления базы.

← На главную