Почему после обновления внешняя печатная форма в 1С работает только под Администратором?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

Ситуация, когда внешняя печатная форма (ВПФ), годами работавшая стабильно, после очередного обновления конфигурации «1С:Бухгалтерия 8.3» начинает выдавать ошибку «Значение не является значением объектного типа» у обычных пользователей, является довольно распространенной. Особенно часто это проявляется при попытке программы обратиться к дополнительным сведениям или специфическим параметрам учета. При этом под учетной записью с полными правами (Администратор) все продолжает работать корректно. Рассмотрим подробно причины возникновения этой проблемы и способы ее решения.

Выясняем причину: системная ошибка релиза

Прежде чем приступать к глубокому анализу кода и прав доступа, проанализируем версию вашей конфигурации. В истории обновлений «1С:Бухгалтерия 3.0» (в частности, в районе релиза 3.0.72.60) была зафиксирована программная ошибка, связанная с разграничением прав доступа к механизму дополнительных свойств. Если ваша версия конфигурации находится в этом диапазоне, первым делом рекомендуется выполнить обновление до актуального релиза. Зачастую это полностью снимает проблему, так как разработчики 1С оперативно выпускают исправления (патчи) для подобных критических сбоев.

Анализ прав доступа к дополнительным сведениям

Если обновление не помогло или недоступно, разберем ситуацию с точки зрения системы прав доступа. Ошибка «Значение не является значением объектного типа» при работе с дополнительными сведениями обычно означает, что программный код не смог получить объект или менеджер регистра, так как у текущего пользователя нет прав на чтение соответствующих метаданных. Выясним, какие объекты задействованы:

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

Регистр «Параметры регламентированного учета» — скрытая ловушка

В современных редакциях «1С:Бухгалтерия 3.0» многие механизмы формирования счетов-фактур и других регламентированных документов были переведены на использование регистра сведений ПараметрыРегламентированногоУчета. В этом регистре хранятся критически важные настройки: учетные политики, ставки, префиксы и правила заполнения документов.

Рассмотрим ситуацию: при формировании печатной формы код типовой конфигурации (который вызывается из вашей ВПФ) пытается прочитать данные из этого регистра. Если у роли пользователя (например, «Менеджер» или «Бухгалтер») отсутствует право на просмотр этого регистра, выполнение кода прерывается с ошибкой. Чтобы исправить это, необходимо:

  1. Зайти в Конфигуратор.
  2. Найти роль, назначенную пользователю.
  3. В списке прав найти РегистрСведений.ПараметрыРегламентированногоУчета.
  4. Установить флажки «Чтение» и «Просмотр».

Безопасный режим и разрешения ВПФ

Посмотрим на проблему под другим углом. Внешние печатные формы в 1С по умолчанию запускаются в так называемом безопасном режиме. В этом режиме код формы имеет крайне ограниченный доступ к ресурсам системы и данным базы данных.

После обновления БСП механизмы проверки безопасности становятся строже. Если ваша печатная форма делает прямой запрос к таблицам базы данных (например, через Запрос к регистру ДополнительныеСведения), система безопасности может заблокировать этот вызов. Проанализируем возможные пути обхода:

Использование программного интерфейса БСП

Выясним причину, по которой старый код может не работать. Если в ВПФ используется прямое обращение к регистру:


Менеджер = РегистрыСведений.ДополнительныеСведения;
Значение = Менеджер.СоздатьКлючЗаписи(...);

Такой подход крайне чувствителен к правам доступа. Проанализируем рекомендуемый способ получения данных через программный интерфейс (API) Библиотеки стандартных подсистем. Рекомендуется использовать общий модуль УправлениеСвойствами. Этот модуль выполняет проверки прав более корректно и часто работает в привилегированном режиме там, где это необходимо.

Пример правильного обращения:


// Вместо прямого запроса к регистру используем стандартную функцию
ЗначениеСвойства = УправлениеСвойствами.ЗначениеСвойства(ОбъектСсылка, СвойствоСсылка);

Профили групп доступа и кэширование

Иногда даже правильная настройка ролей в Конфигураторе не дает мгновенного результата. Рассмотрим пошагово действия в пользовательском интерфейсе:

  1. Перейдите в раздел Администрирование — Настройки прав пользователей — Профили групп доступа.
  2. Найдите профиль, в котором находятся проблемные пользователи.
  3. Проверьте наличие роли «Чтение дополнительных сведений» или аналогичной. В новых релизах 1С часто добавляет новые мелкие роли для разделения прав, которые нужно вручную добавить в старые пользовательские профили.
  4. После внесения изменений пользователям необходимо полностью перезапустить сеанс 1С. В некоторых случаях может потребоваться очистка серверного кэша метаданных, так как информация о правах может кэшироваться на стороне сервера приложений.

Итоги и рекомендации

Для окончательного исправления ошибки выполните следующие действия: во-первых, обновите конфигурацию до последнего доступного релиза, чтобы исключить влияние платформенных багов. Во-вторых, проверьте наличие прав у пользователей на чтение регистра ПараметрыРегламентированногоУчета и ДополнительныеСведения. И наконец, если вы являетесь разработчиком данной формы, переведите логику получения данных на использование стандартных функций общего модуля УправлениеСвойствами, что обеспечит более высокую совместимость с будущими обновлениями «1С:Бухгалтерии».

← На главную