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