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