Как в печатной форме ИНВ-3 настроить вывод полного ФИО материально ответственного лица вместо инициалов

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

При оформлении результатов инвентаризации по форме ИНВ-3 (Инвентаризационная опись товарно-материальных ценностей) пользователи часто сталкиваются с тем, что в полях для подписей материально ответственных лиц (МОЛ) фамилия, имя и отчество выводятся в сокращенном виде, например, «Иванов И.И.». Однако внутренние регламенты организации, требования аудиторов или наличие однофамильцев в штате могут диктовать необходимость вывода ФИО полностью: «Иванов Иван Иванович».

В этой статье мы подробно разберем, почему программа 1С по умолчанию сокращает данные, где именно хранятся эти настройки и как изменить печатную форму, чтобы добиться желаемого результата.

Выясним причину сокращения ФИО

Прежде чем приступать к правкам, проанализируем техническую логику системы. В большинстве современных конфигураций 1С (таких как Бухгалтерия предприятия 3.0, ERP или ЗУП) за формирование строкового представления человека отвечает специальный программный механизм. Даже если в справочнике ФизическиеЛица вы указали ФИО полностью, при выводе на печать программа обращается к общему модулю, который принудительно обрезает строку.

Обычно это происходит в процедуре формирования данных для печати в модуле менеджера документа. Используется стандартная функция, например, ФизическиеЛицаКлиентСервер.ФамилияИнициалыФизЛица(). Этот алгоритм берет полную строку и преобразует ее в формат «Фамилия + первая буква Имени + первая буква Отчества». Таким образом, простое изменение наименования в справочнике не решит проблему, так как код программы все равно выполнит сокращение перед выводом в макет.

Проверка данных в регистре «ФИО физических лиц»

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

  1. Откроем карточку материально ответственного лица в справочнике Физические лица.
  2. Найдем гиперссылку «История ФИО» или «Склонения».
  3. Проверим запись в регистре ФИОФизическихЛиц. Здесь должны быть четко разделены поля: «Фамилия», «Имя» и «Отчество».

Если в регистре все три поля заполнены полностью, а в печатной форме все равно выводятся инициалы — значит, ограничение зашито на программном уровне в коде формирования печатной формы ИНВ-3.

Решение 1: Использование внешней печатной формы (рекомендуемый способ)

Самый правильный и безопасный метод изменения логики печати — создание внешней печатной формы (ВПФ). Это позволит нам не снимать конфигурацию с поддержки и избежать проблем при будущих обновлениях программы. Рассмотрим этот процесс по шагам:

Проанализируем программный код в модуле менеджера документа ИнвентаризацияТоваров. Там вызывается функция, подготавливающая структуру данных для макета. Нам нужно найти место, где переменной, отвечающей за МОЛ, присваивается значение.

Пример стандартного кода, который делает сокращение:


// В типовом коде часто встречается подобная конструкция:
ДанныеПечати.МОЛФИО = ФизическиеЛицаКлиентСервер.ФамилияИнициалыФизЛица(Выборка.МОЛ);

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


// Заменяем на получение полного ФИО
ДанныеПечати.МОЛФИО = ФизическиеЛица.ФИОФизЛица(Выборка.МОЛ, ДатаДокумента);

После создания внешней обработки ее необходимо подключить через раздел Администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки. Теперь в меню печати документа появится новый пункт «ИНВ-3 (полное ФИО)».

Решение 2: Редактирование макета (ограниченный функционал)

Рассмотрим ситуацию, когда вы хотите попробовать решить проблему без программирования. В платформе 1С 8.3 существует возможность редактирования макетов пользователем. Пройдем по пути: Администрирование — Печатные формы, отчеты и обработки — Макеты печатных форм. Найдем в списке макет «Инвентаризационная опись товаров (ИНВ-3)».

Важное ограничение: здесь вы можете изменить только визуальную часть: увеличить шрифт, сделать текст жирным или расширить границы ячейки. Однако, если программа передает в параметр ФИО уже сокращенную строку «Иванов И.И.», никакое расширение ячейки не заставит программу «дописать» туда полное имя. Этот способ поможет только в том случае, если полное имя обрезалось из-за узкой колонки макета, а не программным алгоритмом.

Решение 3: Изменение программного кода в расширении

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

Создадим расширение и добавим в него модуль менеджера документа ИнвентаризацияТоваровНаСкладе. Перехватим процедуру печати и изменим алгоритм формирования текста для МОЛ. Проанализируем пример кода для расширения:


&Вместо("СформироватьДанныеДляПечатиИНВ3")
Процедура Расш_СформироватьДанныеДляПечатиИНВ3(Параметры)
    // Вызываем оригинальную логику или полностью заменяем ее
    // В месте формирования ФИО используем:
    ПолноеИмя = ФизическиеЛица.ФИОФизЛица(Объект.МатериальноОтветственноеЛицо, Объект.Дата);
    // Подставляем ПолноеИмя в область макета
КонецПроцедуры

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

Подведем итоги

Мы выяснили, что сокращение ФИО в печатной форме ИНВ-3 — это не ошибка, а стандартное поведение типовых конфигураций 1С. Для того чтобы фамилия материально ответственного лица писалась полностью, мы рекомендуем:

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

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

← На главную