Почему в 1С:ЗУП 3 все должности в справочнике стали зачеркнутыми и как это исправить?

Пользователь 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом
← На главную

При работе в программе «1С:Зарплата и управление персоналом» (версия 3) пользователи иногда сталкиваются с пугающим поведением интерфейса: открывая справочник Должности, они обнаруживают, что абсолютно все элементы списка отображаются зачеркнутым шрифтом. При этом настройки ведения штатного расписания могут быть отключены, а сами должности активно используются в кадровом учете. Данная ситуация вызывает множество вопросов у кадровиков и бухгалтеров, ведь зачеркнутые элементы часто пропадают из списков выбора в кадровых документах.

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

Физический смысл зачеркивания элементов в 1С

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

  1. Пометка на удаление. Элемент подготовлен к удалению из базы данных стандартной процедурой интерактивного удаления помеченных объектов.
  2. Прекращение использования элемента. Для некоторых справочников (таких как должности или подразделения) предусмотрен специальный флаг, указывающий на то, что элемент устарел и больше не должен выбираться в новых документах. В конфигурации ЗУП 3 для этого используется реквизит ИсключенаИзШтатногоРасписания (в пользовательском интерфейсе он чаще отображается как флаг «Должность больше не используется»).

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

Причина 1. Известный баг платформы 8.3.13 (Ошибка 10203056)

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

Суть ошибки заключалась в некорректной работе механизма динамических списков на платформе версии 8.3.13. Платформа неверно обрабатывала условное оформление списков справочников Должности и Подразделения. В результате, если хотя бы один элемент справочника подходил под условие «Больше не используется» (или даже при отсутствии таких элементов из-за сбоя кэша отрисовки), стиль «Зачеркнутый» ошибочно применялся ко всем строкам списка в интерфейсе пользователя.

Как решить проблему с платформой:

  1. Выполнить откат платформы на стабильную версию 8.3.12 (это была официальная временная рекомендация разработчиков на момент обнаружения проблемы).
  2. Выполнить обновление платформы 1С:Предприятие до актуальных версий ветки 8.3.14 или выше, где данная ошибка отображения динамических списков была полностью исправлена.
  3. Обновить конфигурацию «1С:Зарплата и управление персоналом» до релиза 3.1.9.66 (или последующих), в котором разработчики конфигурации оптимизировали свойства условного оформления для обхода этой платформенной ошибки.

Причина 2. Последствия миграции данных из версии 2.5 в версию 3.1

Выясним причину, связанную с переносом данных. Часто массовое зачеркивание позиций происходит сразу после перехода с устаревшей конфигурации «Зарплата и управление персоналом 2.5» на актуальную редакцию 3.1. При переносе данных по правилам конвертации система анализирует актуальность штатных единиц.

Если на дату переноса данных по конкретной должности отсутствовали действующие сотрудники и не было открытых вакансий в штатном расписании, алгоритм переноса автоматически устанавливает для такой должности реквизит ИсключенаИзШтатногоРасписания = Истина. При этом, если в новой базе ЗУП 3.1 отключено ведение штатного расписания, флаг «Должность больше не используется» скрывается из карточки должности. Пользователь не видит этот флаг на форме элемента, но в самой базе данных он заполнен, что и приводит к зачеркиванию шрифта в списке.

Как массово исправить зачеркнутые должности в программе

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

Способ 1. Использование обработки «Групповое изменение реквизитов»

Это самый быстрый и безопасный способ вернуть должностям нормальный вид без ручного редактирования каждого элемента. Проанализируем этот процесс детально:

  1. Перейдем в раздел Администрирование — Обслуживание — Корректировка данных и откроем ссылку Групповое изменение реквизитов.
  2. В поле «Выбирать элементы в списке» выберем справочник Должности.
  3. При необходимости настроим отбор (например, если нам нужно раскомментировать только определенные должности, а действительно неиспользуемые оставить зачеркнутыми). Если нужно исправить все должности, отбор настраивать не требуется.
  4. В табличной части со списком реквизитов найдем строку Должность больше не используется (или ИсключенаИзШтатногоРасписания).
  5. Установим галочку напротив этого реквизита и в колонке «Новое значение» укажем значение Ложь (флажок должен быть снят).
  6. Нажмем кнопку Изменить реквизиты в нижней части формы. Система обработает справочник и массово вернет должности в активное состояние.

Способ 2. Временное включение настроек штатного расписания

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

  1. Перейдем в раздел Настройка — Кадровый учет.
  2. Откроем ссылку Настройка штатного расписания.
  3. Временно установим флаг Ведется штатное расписание и применим настройки.
  4. Вернемся в справочник Должности и откроем карточку зачеркнутого элемента. Теперь на форме отобразится скрытый ранее флаг Должность больше не используется.
  5. Снимем этот флаг вручную для необходимых должностей и сохраним изменения по кнопке Записать и закрыть.
  6. После корректировки вернемся в настройки кадрового учета и отключим ведение штатного расписания (если оно действительно не требуется в вашей организации). Изменения отображения должностей при этом сохранятся.

Способ 3. Программный сброс признака исключения

Для разработчиков и администраторов баз данных рассмотрим пример того, как быстро сбросить данный признак у всех элементов справочника с помощью программного кода. Мы можем запустить этот код в контексте внешней обработки или в режиме отладки через консоль кода:


ВыборкаДолжностей = Справочники.Должности.Выбрать();
Пока ВыборкаДолжностей.Следующий() Цикл
    Если ВыборкаДолжностей.ИсключенаИзШтатногоРасписания Тогда
        ОбъектДолжность = ВыборкаДолжностей.ПолучитьОбъект();
        ОбъектДолжность.ИсключенаИзШтатногоРасписания = Ложь;
        
        // Отключаем обмен данными при необходимости ускорения процесса
        ОбъектДолжность.ОбменДанными.Загрузка = Истина; 
        
        Попытка
            ОбъектДолжность.Записать();
            Сообщить("Успешно обновлена должность: " + ОбъектДолжность.Наименование);
        Исключение
            Сообщить("Ошибка записи должности: " + ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;
КонецЦикла;

Использование свойства ОбменДанными.Загрузка = Истина позволит обойти избыточные проверки при записи объекта, что существенно ускорит выполнение процедуры в базах данных с большим количеством элементов.

Влияние зачеркнутых должностей на учетные документы

Важно понимать, к каким последствиям приводит игнорирование этой проблемы. Зачеркнутые должности в 1С:ЗУП 3 автоматически скрываются из стандартных списков быстрого выбора при заполнении кадровых документов, таких как ПриемНаРаботу, КадровыйПеревод или ДоговорРаботыУслуги. Если кадровик попытается ввести название такой должности вручную в поле выбора, программа выдаст предупреждение о том, что элемент не найден, либо просто проигнорирует ввод. Проведение вышеописанных процедур исправления вернет должностям их нормальный статус и сделает их доступными для выбора во всех кадровых и расчетных документах организации.

← На главную