Как исправить ошибку Значение не является значением объектного типа ИмяПараметровПечати в БП 3.0?

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

При обновлении конфигурации «Бухгалтерия предприятия 3.0» на новые релизы многие разработчики сталкиваются с тем, что ранее работавшие внешние печатные формы (ВПФ) перестают функционировать. Одной из наиболее частых ошибок, возникающих при попытке печати документов (например, ТОРГ-12), является сообщение: Значение не является значением объектного типа (ИмяПараметровПечати). Давайте разберем, почему это происходит и как устранить данную проблему.

Причины возникновения ошибки

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

Пошаговое решение проблемы

Для исправления ситуации нам необходимо изменить способ передачи ключа параметров печати в табличный документ. Рассмотрим, что именно нужно скорректировать в модуле вашей печатной формы.

Шаг 1: Изменение обращения к параметрам

В типовом коде многих старых форм встречается строка вида:


ИмяПараметровПечати = ПараметрыПечати.ИмяПараметровПечати;
ТабличныйДокумент.КлючПараметровПечати = ИмяПараметровПечати;

Нам нужно заменить этот фрагмент на прямое использование ключа. Согласно текущим стандартам разработки, следует использовать КлючПараметровПечати непосредственно для объекта ТабличныйДокумент.

Шаг 2: Корректировка передачи аргументов

Проанализируем процедуру печати. В вашей внешней обработке, в процедуре Печать, необходимо убедиться, что в метод ПечатьТорговыхДокументов.ПечатьТОРГ12 передается корректное значение ключа. Вместо сложной структуры, которая может содержать устаревшие поля, передавайте строку-идентификатор.


// Пример исправленного вызова в процедуре Печать:
КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПередачаОС_ТОРГ12";
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    КоллекцияПечатныхФорм, 
    "ТОРГ_12", 
    "ТОРГ-12 (Товарная накладная)", 
    ПечатьТорговыхДокументов.ПечатьТОРГ12(ТаблицаСведенийТОРГ12, ОбъектыПечати, КлючПараметровПечати),
    ,
    "ОбщийМакет.ПФ_MXL_ТОРГ12"
);

Рекомендации по доработке внешних печатных форм

Чтобы ваша печатная форма оставалась работоспособной после будущих обновлений платформы и конфигурации, мы рекомендуем придерживаться следующих правил:

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

Если после замены ИмяПараметровПечати на присвоение КлючПараметровПечати ошибка сохраняется, убедитесь, что в качестве третьего аргумента функции ПечатьТОРГ12 вы передаете именно строку, а не структуру, содержащую неверные поля. В современных версиях БСП для корректной работы достаточно простого строкового идентификатора.

Таким образом, для устранения ошибки достаточно найти в коде проблемное обращение и заменить его на прямое присвоение строкового значения ключа табличному документу. Этот подход обеспечивает совместимость с актуальными версиями БСП и избавляет от ошибок объектного типа.

← На главную