При работе в конфигурации «Зарплата и Управление Персоналом» (редакция 2.5) пользователи могут столкнуться со сбоем при попытке распечатать документ «Расчет пособия к б/л образца 2011 г» из документа «Начисления по больничному листу». Проблема проявляется выводом системной ошибки следующего вида:
{ОбщаяФорма.ПечатьДокументов.Форма(12)}: Ошибка при вызове метода контекста (ЗаполнитьЗначенияСвойств) ЗаполнитьЗначенияСвойств(ЭлементыФормы.ПолеТабличногоДокумента, ПараметрыПечатногоДокумента,, "ОтображатьЗаголовки, ОтображатьСетку, ТолькоПросмотр, Защита, ИмяПараметровПечати"); по причине: Ошибка установки значения свойства 'ДвусторонняяПечать' по причине: Несоответствие типов
Рассмотрим подробнее, почему возникают подобные сбои в работе программы и какими способами можно восстановить корректную печать документов.
Проанализируем ситуацию с технической стороны. Начиная с версии платформы 1С:Предприятие 8.3.9, системный объект табличного документа получил обновленное свойство ДвусторонняяПечать, которое использует системное перечисление ТипДвустороннейПечати. На более старых технологических платформах (например, 8.3.8 и ниже) элементы управления печатных форм ожидали совершенно иной тип данных (число или булево значение).
Если пользователь запустил базу под платформой 8.3.9 или выше и хотя бы один раз вывел документ на печать или изменил параметры страницы, система автоматически сохранила текущие настройки печати в ХранилищеСистемныхНастроек. Если после этого пользователь заходит в ту же информационную базу под платформой версии 8.3.8 или ниже, функция ЗаполнитьЗначенияСвойств пытается применить записанные настройки. Из-за отсутствия системного типа данных в старой платформе возникает критическая ошибка несоответствия типов.
Наиболее корректным решением без снятия конфигурации с поддержки является очистка кэшированных настроек печати для конкретного пользователя. Для этого разберем применение внешней обработки или запуска исполняемого кода в режиме 1С:Предприятие.
Выполним очистку ключа настроек в системном хранилище под проблемным пользователем с помощью следующей строки кода:
ХранилищеСистемныхНастроек.Удалить("Общее/НастройкиПечатиТабличногоДокумента/ПАРАМЕТРЫ_ПЕЧАТИ_РасчетПособияКБольничномуЛисту", , ИмяПользователя);
После выполнения данного кода сохраненная структура параметров печати сбросится к стандартным значениям по умолчанию, и табличный документ снова начнет открываться без ошибок.
Если в вашей конфигурации есть доступ к управлению пользовательскими настройками, разберем по шагам порядок действий через пользовательский интерфейс:
Если требуется срочно напечатать документ, а административные инструменты очистки кэша недоступны, рассмотрим способ с локальной корректировкой исходного кода. Обратите внимание: метод требует включения возможности изменения конфигурации.
ОбщаяФорма.ПечатьДокументов.ПриОткрытии и найдем в ней вызов метода ЗаполнитьЗначенияСвойств.
ЗаполнитьЗначенияСвойств(ЭлементыФормы.ПолеТабличногоДокумента, ПараметрыПечатногоДокумента,, "ОтображатьЗаголовки, ОтображатьСетку, ТолькоПросмотр, Защита, ИмяПараметровПечати, ДвусторонняяПечать");
ПриОткрытии. При последующих запусках форма будет открываться штатно.Чтобы избежать подобных сбоев на других рабочих местах, проанализируем системные требования инфраструктуры: