Как правильно добавить приказ-основание для ответственных лиц в 1С:Бухгалтерия 3.0 и стоит ли менять регистр?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

В процессе работы с программой «1С:Бухгалтерия предприятия 3.0» (БП 3.0) часто возникает задача: необходимо, чтобы в печатных формах документов (таких как УПД, Торг-12, Акты) под фамилией ответственного лица выводилось основание его полномочий — например, номер и дата приказа или доверенности. Многие начинающие разработчики сразу задумываются о внесении изменений в типовую структуру конфигурации, в частности, о добавлении нового ресурса в регистр сведений ОтветственныеЛицаОрганизаций. В этой статье мы разберем, почему этого делать не стоит, и какие штатные механизмы платформы 1С помогут решить задачу эффективнее и без лишних затрат на поддержку.

Проблема модификации типового регистра «Ответственные лица организаций»

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

  1. Сложность обновления: Любое изменение типовых объектов затрудняет процесс установки обновлений от фирмы «1С». Вам придется вручную объединять изменения при каждом релизе.
  2. Ограниченность ролей: Данный регистр жестко привязан к основным ролям. Если вам нужно указать основание для менеджера, кладовщика или иного «уполномоченного» лица, этот регистр не подойдет.
  3. Отсутствие гибкости: Одно и то же лицо может действовать на основании разных приказов для разных видов документов. В плоской структуре регистра сведений это реализовать сложно.

Рассмотрим более правильные и современные методы реализации этой задачи, которые предлагает система 1С:Предприятие 8.

Использование типового справочника «Основания подписей»

Проанализируем типовой функционал БП 3.0. В конфигурации уже существует справочник ОснованияПодписей. Это специализированный объект, предназначенный именно для хранения текстовых представлений документов, дающих право подписи.

Преимущества использования справочника:

Регистр «Уполномоченные лица организаций» — ключ к решению

Вместо того чтобы модифицировать ОтветственныеЛицаОрганизаций, разберем работу регистра УполномоченныеЛицаОрганизаций. Этот регистр является расширенной версией механизма ответственных лиц. Именно в нем предусмотрено поле для выбора ссылки на справочник ОснованияПодписей.

Выясним, как это работает на практике:

  1. Перейдем в карточку организации, на вкладку «Подписи».
  2. Там есть ссылка на «Уполномоченные лица».
  3. Для каждого физического лица здесь можно указать не только его должность, но и конкретное «Основание».

Этот регистр является периодическим. Это значит, что вы можете хранить историю: до 31 декабря сотрудник подписывал документы на основании Приказа №1, а с 1 января — на основании Доверенности №45. Программа сама подставит нужное значение в зависимости от даты документа.

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

Посмотрим на ситуацию со стороны пользователя. В большинстве документов отгрузки (например, «Реализация товаров и услуг») в нижней части формы находится гиперссылка «Подписи».

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

Реализация во внешних печатных формах

Если вы разрабатываете внешнюю печатную форму, вам нужно программно извлечь эти данные. Разберем пример кода, который позволяет получить основание подписи для физического лица на определенную дату. Для этого рекомендуется использовать методы общего модуля конфигурации, чтобы не изобретать велосипед.

Проанализируем пример получения данных:


// Пример получения данных об уполномоченном лице
ДатаСведений = Объект.Дата;
Организация = Объект.Организация;
ФизическоеЛицо = Объект.ОтветственноеЛицо; // Например, из реквизита документа

// Используем штатный механизм БП 3.0
СведенияОбОтветственных = ОтветственныеЛицаБП.СведенияОбОтветственныхЛицах(Организация, ДатаСведений);

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

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

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

Использование СрезПоследних позволяет всегда получать актуальный приказ на дату формирования документа. Это гораздо надежнее, чем хранить строку в дополнительном реквизите документа, так как исключает человеческий фактор при заполнении каждой новой реализации.

Альтернативный вариант: Дополнительные реквизиты

Рассмотрим ситуацию, когда вы категорически не хотите использовать типовые регистры. В 1С есть механизм «Дополнительные реквизиты и сведения». Вы можете добавить доп. реквизит к справочнику ФизическиеЛица или к самому документу.

Почему это хуже?

Выводы и рекомендации

Подведем итог нашему анализу. Для реализации требования бухгалтера о печати приказа-основания в БП 3.0:

  1. Не добавляйте новые ресурсы в типовой регистр ОтветственныеЛицаОрганизаций. Это избыточно и вредно для обновлений.
  2. Используйте связку справочника ОснованияПодписей и регистра сведений УполномоченныеЛицаОрганизаций. Это штатный путь, предусмотренный разработчиками 1С.
  3. Обучите пользователя пользоваться гиперссылкой «Подписи» в документах. Это позволит гибко управлять ответственными без привлечения программиста.
  4. В случае использования внешних печатных форм, обращайтесь к регистру уполномоченных лиц через запросы или функции общего назначения, такие как ОбщегоНазначенияБП.ДанныеФизическогоЛица.

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

← На главную