Почему в больничных листах заполняется серия и как это исправить в 1С:УПП?

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

При работе со списком документов НачислениеПоБольничномуЛисту в конфигурации «1С:Управление производственным предприятием» (УПП) пользователи и расчетчики зарплаты нередко сталкиваются с ситуацией, когда у части документов с новым 12-значным форматом номера заполнена колонка Серия. При этом на самой экранной форме документа поле ввода серии отсутствует, а в современных правилах учета листков нетрудоспособности серия не используется вовсе.

Разберем детально, почему возникает такое поведение системы, на что оно влияет и какими способами можно очистить лишние данные и предотвратить их появление в дальнейшем.

Причины появления серии в новых больничных листах

Проанализируем механику работы платформы «1С:Предприятие» и конфигурации:

  1. Исторический контекст: Серии листков нетрудоспособности были упразднены еще в 2011 году с введением бланков с 12-значным цифровым штрихкодом. В типовых конфигурациях на обычных формах (включая УПП) реквизит СерияДокумента остался в структуре метаданных как рудимент для обеспечения обратной совместимости со старыми периодами, однако его отображение на форме документа было скрыто.
  2. Копирование документов пользователями: Основная причина внезапного заполнения серии у современных больничных — интерактивное копирование расчетчиками ранее созданных документов (по клавише F9 или через меню). Платформа 1С при копировании объекта переносит значения всех реквизитов, включая те, которые не отображаются на форме. Если расчетчик копирует старый больничный (или документ, который в свою очередь был скопирован со старого образца), скрытое значение реквизита СерияДокумента дублируется в новый документ.

Влияние заполненной серии на учет и отчетность

Выясним, какие риски несет наличие заполненной серии при 12-значном номере:

  1. Обмен с Социальным фондом (СФР / ФСС): Форматы электронных реестров и XSD-схемы обмена для 12-значных номеров не предполагают наличия серии. Если алгоритмы выгрузки или внешние обработки обращаются напрямую к реквизиту СерияДокумента, это может приводить к ошибкам форматно-логического контроля (ФЛК) при выгрузке XML-файлов.
  2. Печатные формы: В нетиповых отчетах или доработанных печатных формах расчетных листков и справок серия может выводиться рядом с номером, вводя в заблуждение проверяющие органы и сотрудников.
  3. Интерфейс: Наличие данных в колонке списка создает ощущение ошибки в учете и вызывает регулярные вопросы пользователей.

Способы решения проблемы

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

Вариант 1. Настройка отображения списка документов (без доработок)

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

  1. Откроем журнал документов начисления по больничным листам.
  2. В командной панели нажмем Действия (или контекстное меню по правой кнопке мыши) и выберем пункт Настройка списка.
  3. В открывшемся перечне колонок найдем строку Серия и снимем с нее флаг видимости.
  4. Нажмем ОК для применения настроек формы.

Вариант 2. Групповая очистка некорректных значений в базе

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

  1. Откроем обработку Групповая обработка справочников и документов (или Групповое изменение реквизитов).
  2. Выберем тип объекта Документы — Начисление по больничному листу.
  3. Настроим отбор: Серия документа — Заполнено (или Не равно пустой строке), а также при необходимости ограничим выборку датой или длиной номера.
  4. Нажмем кнопку Отобрать.
  5. В таблице действий для реквизита Серия документа установим пустое значение.
  6. Нажмем кнопку Выполнить для массовой очистки поля.

Вариант 3. Программная очистка серии при копировании (для разработчиков)

Чтобы предотвратить перенос серии при дальнейшем копировании документов расчетчиками, добавим программный сброс значения. Наиболее корректный способ, не требующий снятия типового документа с поддержки — использование подписки на события.

Разберем по шагам создание подписки на событие:

  1. В дереве метаданных конфигуратора перейдем в ветку Общие — Подписки на события и добавим новую подписку.
  2. Укажем имя, например, ОчисткаСерииПриКопированииБольничного.
  3. В качестве источника выберем документ ДокументОбъект.НачислениеПоБольничномуЛисту.
  4. В качестве события выберем ОбработкаЗаполнения или ПриКопировании.
  5. Создадим процедуру в общем модуле и разместим следующий код:

Процедура ОчисткаСерииБольничногоОбработкаЗаполнения(Источник, ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка) Экспорт
	
	// Если заполнение происходит копированием существующего документа
	Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.НачислениеПоБольничномуЛисту") Тогда
		Источник.СерияДокумента = "";
	КонецЕсли;

КонецПроцедуры

Если используется событие ПриКопировании, достаточно одной строки присваивания:


Процедура ОчисткаСерииБольничногоПриКопировании(Источник, ОбъектКопирования) Экспорт
	
	Источник.СерияДокумента = "";

КонецПроцедуры

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

← На главную