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