В процессе работы с контрольно-кассовой техникой (ККТ) в программе «1С:Бухгалтерия 3.0» (БП 3.0) пользователи часто сталкиваются с тем, что в фискальном чеке ФИО кассира печатается в сокращенном формате (например, «Иванов И.И.»), в то время как внутренние стандарты организации или требования локальных налоговых органов могут диктовать необходимость вывода полного имени («Иванов Иван Иванович»). В этой статье мы подробно разберем, как устроена логика вывода данных кассира, где искать настройки в программе и как внести изменения в код, если стандартные методы не помогают.
Прежде чем приступать к программированию, нам необходимо разобраться, откуда программа берет информацию о кассире. В 1С:Бухгалтерии 3.0 реализован многоуровневый алгоритм поиска ответственного лица. Разберем его по шагам:
Физическое лицо. Именно из справочника ФизическиеЛица подтягиваются ФИО.Проанализируем ситуацию, описанную на форуме: автор проверил и справочник физических лиц, и регистр ответственных лиц, убедившись, что там указаны полные данные. Однако чек продолжал выходить с сокращениями. Это означает, что проблема кроется в программных механизмах формирования текста для чека, которые принудительно обрезают ФИО до инициалов.
Перед тем как вносить изменения в конфигурацию, выясним, не перебивает ли настройки 1С сам драйвер кассы. Рассмотрим, как это проверить:
Зайдите в раздел «Администрирование» — «Подключаемое оборудование». Откройте настройки вашей ККТ и нажмите кнопку «Настроить». В открывшемся окне (параметры драйвера) найдите раздел, отвечающий за печать реквизитов. Убедитесь, что флажок «Использовать ФИО кассира из таблиц ККТ» снят. Если он установлен, касса будет игнорировать данные из 1С и печатать то, что сохранено в её собственной памяти под номером текущего оператора.
Если настройки драйвера в порядке, значит, срабатывает внутренняя функция 1С, которая вызывает метод ФизическиеЛица.ФамилияИнициалыФизЛица(). Чтобы изменить это поведение и не снимать конфигурацию с поддержки, мы воспользуемся механизмом расширений. Это позволит нам сохранить возможность типового обновления программы.
Нам необходимо найти место в коде, где формируются данные для передачи в «Библиотеку подключаемого оборудования» (БПО). Обычно это происходит в общих модулях, связанных с менеджером оборудования. Рассмотрим пример изменения логики в модуле МенеджерОборудованияВызовСервера (название может незначительно меняться в зависимости от версии БПО).
Разберем по шагам создание расширения:
МенеджерОборудованияВызовСервера).ДанныеЧека, в частности поле Кассир.&Вместо или &После.Посмотрим на пример кода, который решает проблему. Если в типовом коде используется логическая переменная фиократко = истина, нам нужно принудительно установить её в значение Ложь. Проанализируем пример модификации:
&Вместо("СформироватьДанныеДляПечатиЧека")
Процедура Расш1_СформироватьДанныеДляПечатиЧека(ПараметрыЧека, ДанныеЧека)
// Вызываем стандартную обработку, чтобы получить базовые данные
ПродолжитьВызов(ПараметрыЧека, ДанныеЧека);
// Переопределяем ФИО кассира на полное
Если ДанныеЧека.Свойство("Кассир") Тогда
// Предположим, мы получаем ФизЛицо текущего пользователя
ФизЛицо = ПараметрыСеанса.ТекущийПользователь.ФизическоеЛицо;
Если ЗначениеЗаполнено(ФизЛицо) Тогда
// Используем функцию, возвращающую полное ФИО вместо Фамилия И.О.
ДанныеЧека.Кассир = ФизическиеЛица.ФамилияИмяОтчествоФизЛица(ФизЛицо);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
В данном примере мы используем функцию ФамилияИмяОтчествоФизЛица, которая, в отличие от стандартной ФамилияИнициалыФизЛица, возвращает строку без сокращений. Это гарантирует, что в тег 1021 («Кассир») попадет полная информация.
Важно помнить о требованиях законодательства. Согласно ФФД (версий 1.05, 1.1, 1.2), реквизит «Кассир» является обязательным для большинства операций. Хотя закон прямо не запрещает использование инициалов, полное ФИО снимает любые вопросы со стороны контролирующих органов при идентификации сотрудника, совершившего продажу. Обратите внимание: использование полного имени увеличивает длину чека, что может привести к чуть более быстрому расходу чековой ленты, но это оправдано с точки зрения юридической чистоты документа.
Если вы не хотите вносить изменения в код, выясним причину сокращения в настройках самих Физических лиц. Иногда пользователи вводят данные в справочник ФизическиеЛица таким образом, что «Наименование» (которое часто выводится в отчеты) заполнено кратко. Проверьте, чтобы в карточке физлица поля «Фамилия», «Имя» и «Отчество» были разнесены по соответствующим реквизитам, а не просто записаны одной строкой в заголовке.
Также стоит проверить настройку «Выводить ФИО полностью», которая в некоторых релизах «1С:Бухгалтерии» может присутствовать в настройках параметров учета или настройках печати документов. Однако для кассовых чеков (фискальных данных) чаще всего требуется именно программное вмешательство, так как формат чека жестко регламентирован БПО.
Для решения задачи по выводу полного ФИО кассира в 1С:БП 3.0 мы рекомендуем следующий алгоритм действий:
ФизическиеЛица данные заполнены корректно (все три поля).Кассир в модулях управления оборудованием, заменив использование метода ФамилияИнициалыФизЛица на ФИОФизЛица.Такой комплексный подход позволит вам добиться желаемого результата, сохранив стабильность системы и соответствие требованиям ФНС.