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