Как исправить ошибку «Несоответствие типов» для свойства «ДвусторонняяПечать» при печати пособий в 1С

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

При работе в конфигурации «Зарплата и Управление Персоналом» (редакция 2.5) пользователи могут столкнуться со сбоем при попытке распечатать документ «Расчет пособия к б/л образца 2011 г» из документа «Начисления по больничному листу». Проблема проявляется выводом системной ошибки следующего вида:

{ОбщаяФорма.ПечатьДокументов.Форма(12)}: Ошибка при вызове метода контекста (ЗаполнитьЗначенияСвойств) ЗаполнитьЗначенияСвойств(ЭлементыФормы.ПолеТабличногоДокумента, ПараметрыПечатногоДокумента,, "ОтображатьЗаголовки, ОтображатьСетку, ТолькоПросмотр, Защита, ИмяПараметровПечати"); по причине: Ошибка установки значения свойства 'ДвусторонняяПечать' по причине: Несоответствие типов

Рассмотрим подробнее, почему возникают подобные сбои в работе программы и какими способами можно восстановить корректную печать документов.

Выясним причину возникновения ошибки

Проанализируем ситуацию с технической стороны. Начиная с версии платформы 1С:Предприятие 8.3.9, системный объект табличного документа получил обновленное свойство ДвусторонняяПечать, которое использует системное перечисление ТипДвустороннейПечати. На более старых технологических платформах (например, 8.3.8 и ниже) элементы управления печатных форм ожидали совершенно иной тип данных (число или булево значение).

Если пользователь запустил базу под платформой 8.3.9 или выше и хотя бы один раз вывел документ на печать или изменил параметры страницы, система автоматически сохранила текущие настройки печати в ХранилищеСистемныхНастроек. Если после этого пользователь заходит в ту же информационную базу под платформой версии 8.3.8 или ниже, функция ЗаполнитьЗначенияСвойств пытается применить записанные настройки. Из-за отсутствия системного типа данных в старой платформе возникает критическая ошибка несоответствия типов.

Способ 1. Программный сброс сохраненных настроек пользователя (без изменения конфигурации)

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

Выполним очистку ключа настроек в системном хранилище под проблемным пользователем с помощью следующей строки кода:


ХранилищеСистемныхНастроек.Удалить("Общее/НастройкиПечатиТабличногоДокумента/ПАРАМЕТРЫ_ПЕЧАТИ_РасчетПособияКБольничномуЛисту", , ИмяПользователя);

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

Способ 2. Интерактивная очистка параметров печати в режиме «1С:Предприятие»

Если в вашей конфигурации есть доступ к управлению пользовательскими настройками, разберем по шагам порядок действий через пользовательский интерфейс:

  1. Зайдем под правами администратора в раздел Администрирование.
  2. Перейдем в подраздел Настройки пользователей и прав → Настройки пользователей.
  3. Выберем пользователя, у которого возникает ошибка при формировании пособия.
  4. На вкладке Прочие настройки (или Настройки печати табличных документов) найдем строку с параметрами печати расчетного листка или больничного.
  5. Нажмем кнопку Очистить, чтобы сбросить сохраненный кэш параметров страницы.

Способ 3. Обход ошибки через временную доработку кода общей формы

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

  1. Откроем конфигуратор и перейдем к объекту ОбщаяФорма.ПечатьДокументов.
  2. Найдем процедуру ПриОткрытии и найдем в ней вызов метода ЗаполнитьЗначенияСвойств.
  3. В четвертый параметр функции (список исключаемых свойств) добавим наименование проблемного свойства:
  4. 
    ЗаполнитьЗначенияСвойств(ЭлементыФормы.ПолеТабличногоДокумента, ПараметрыПечатногоДокумента,, "ОтображатьЗаголовки, ОтображатьСетку, ТолькоПросмотр, Защита, ИмяПараметровПечати, ДвусторонняяПечать");
    
  5. Запустим сеанс «1С:Предприятие» под проблемным пользователем и откроем печатную форму больничного листа. Ошибка больше выходить не будет.
  6. В открывшемся окне печати выберем пункт меню Файл → Параметры страницы. Изменим любое значение (например, ориентацию или поля) и нажмем ОК, чтобы записать новые корректные параметры печати.
  7. Вернемся в конфигуратор и восстановим исходный код процедуры ПриОткрытии. При последующих запусках форма будет открываться штатно.

Как предотвратить повторение проблемы в будущем

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

← На главную