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