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