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