В практике ведения учета в 1С:Предприятие часто возникает ситуация, когда штатное расписание организации не предусматривает должность главного бухгалтера. В таких случаях функции ведения учета и подписания документов возлагаются на руководителя. С точки зрения интерфейса пользователю удобно видеть в поле "Главный бухгалтер" текст "Не предусмотрен", однако в официальных печатных формах (счетах-фактурах, ТОРГ-12, актах) это поле должно оставаться либо пустым для ручной подписи, либо содержать данные руководителя. Рассмотрим подробно, как решить эту задачу несколькими способами, от самых простых до технологичных.
Этот способ является наиболее предпочтительным, если вы не хотите вносить изменения в конфигурацию и использовать расширения. Платформа 1С позволяет изменять визуальное представление печатных форм непосредственно в пользовательском режиме. Проанализируем, как это реализовать.
ГлавныйБухгалтер или ФИОГлавногоБухгалтера.Область.Параметры.Заполнить(СтруктураДанных), то отсутствие параметра в макете не вызовет ошибки. Если же идет прямое обращение к параметру, возможен сбой.Если печатных форм очень много (более 100), править каждый макет вручную — трудоемкая задача. В этом случае целесообразно использовать механизм расширений. Мы можем перехватить процедуру заполнения ответственных лиц перед выводом на печать. Посмотрим на пример реализации.
В типовых конфигурациях (например, БП 3.0, ERP, КА) за получение данных об ответственных лицах отвечает общий модуль ОтветственныеЛица или ОбщегоНазначенияБП. Нам необходимо создать расширение и добавить в него метод-обертку.
&После("СведенияОбОтветственныхЛицах")
Процедура Расш_СведенияОбОтветственныхЛицах(СтруктураСведений, Организация, Дата, Подразделение = Неопределено)
// Проверяем, заполнено ли поле Главного бухгалтера
Если СтруктураСведений.Свойство("ГлавныйБухгалтер") И ЗначениеЗаполнено(СтруктураСведений.ГлавныйБухгалтер) Тогда
// Проверяем наименование физического лица
Если СокрЛП(СтруктураСведений.ГлавныйБухгалтер.Наименование) = "Не предусмотрен" Тогда
// Очищаем значения для вывода в печатную форму
СтруктураСведений.ГлавныйБухгалтер = "";
СтруктураСведений.ГлавныйБухгалтерФИО = "";
СтруктураСведений.ГлавныйБухгалтерДолжность = "";
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Такой подход позволяет один раз написать код, который будет работать для всех стандартных печатных форм, использующих общую подсистему печати БСП (Библиотека стандартных подсистем).
Прежде чем создавать фиктивные элементы в справочнике ФизическиеЛица, проанализируем штатные возможности программы. В современных версиях 1С:Бухгалтерия в карточке организации есть вкладка Подписи.
Согласно законодательству (ФЗ №402 "О бухгалтерском учете"), если должность главного бухгалтера не предусмотрена, документы подписывает руководитель. В 1С можно настроить так называемую смену ответственных лиц:
Важное предостережение: создание в справочнике физического лица с наименованием "Не предусмотрен" несет в себе скрытые риски. Выясним их причину. Это "лицо" может начать попадать в кадровые отчеты, в отчетность по персонифицированному учету (ЕФС-1, СЗВ-М) или в банковские выгрузки. Система будет воспринимать его как реального сотрудника, что приведет к ошибкам при проверке контрольных соотношений в налоговой отчетности.
Если вы все же решили использовать пустое физическое лицо или специальный элемент "Не предусмотрен", можно поработать с его Представлением. Рассмотрим, как это сделать программно через обработку события ОбработкаПолученияПредставления в модуле менеджера справочника ФизическиеЛица (также через расширение).
Разберем логику: в экранных формах документов 1С обычно отображает Представление объекта. Мы можем сделать так, чтобы для конкретной ссылки (нашего элемента "Не предусмотрен") представление возвращало нужный текст, а при печати, где алгоритмы часто собирают ФИО из отдельных полей (Фамилия, Имя, Отчество), результат оставался пустым, так как эти поля у физлица не заполнены.
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
Если Данные.Ссылка = Справочники.ФизическиеЛица.НайтиПоНаименованию("Не предусмотрен") Тогда
Представление = "Не предусмотрен";
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
Выбор метода зависит от ваших компетенций и количества изменяемых документов:
ОтветственныеЛица.Проанализировав все варианты, мы видим, что наиболее гибким является программный метод через расширение, так как он минимизирует ручной труд и исключает риски появления некорректных данных в регламентированной отчетности.