Многие пользователи и разработчики сталкиваются с ситуацией, когда при работе в 1С:Предприятии 8.3 настройки страницы, такие как масштаб или режим двусторонней печати, «забываются» системой после закрытия формы. Рассмотрим, почему это происходит и как программно обеспечить корректное сохранение и восстановление настроек печати для печатных форм.
Для того чтобы 1С понимала, что настройки конкретной печатной формы нужно запомнить и применить при следующем открытии, необходимо использовать свойство ТабличныйДокумент.КлючПараметровПечати. Если это свойство не задано, платформа не может однозначно идентифицировать форму, и настройки либо сбрасываются, либо конфликтуют с другими документами.
Важно: КлючПараметровПечати должен быть уникальным для каждого вида печатной формы. Если вы используете один и тот же ключ для разных документов, настройки одного будут перезаписывать настройки другого.
Для начала убедитесь, что в процедуре формирования печатной формы вы задаете уникальный ключ. Это позволит платформе правильно сопоставить настройки пользователя с конкретным макетом.
Пример задания ключа в коде:
// В модуле формирования печатной формы
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_МойУникальныйДокумент_001";
Это имя формируется произвольно, главное условие — обеспечить уникальность в рамках вашей конфигурации.
Если после установки ключа настройки двусторонней печати все еще ведут себя нестабильно, необходимо убедиться, что свойство ДвусторонняяПечать корректно передается в поле табличного документа. В современных версиях платформы 8.3 можно явно управлять режимом переворота листа.
Разберем, как это реализовать в общей форме печати:
// В процедуре ПриОткрытии общей формы печати
// Считываем настройку из переданного табличного документа и применяем к элементу формы
Если ПечатныйДокумент.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВверх Тогда
ЭлементыФормы.ПолеТабличногоДокумента.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВверх;
ИначеЕсли ПечатныйДокумент.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВлево Тогда
ЭлементыФормы.ПолеТабличногоДокумента.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВлево;
Иначе
ЭлементыФормы.ПолеТабличногоДокумента.ДвусторонняяПечать = ТипДвустороннейПечати.Нет;
КонецЕсли;
КлючПараметровПечати позволяет изолировать настройки пользователя, предотвращая их случайное изменение при печати других документов.ДвусторонняяПечать гарантирует, что даже при сложностях взаимодействия с драйвером принтера, само приложение 1С «помнит» выбранный режим.При возникновении проблем всегда начинайте с проверки уникальности КлючПараметровПечати. В подавляющем большинстве случаев конфликт настроек вызван именно дублированием или отсутствием этого ключа. Если же проблема специфична для двусторонней печати, программное управление через ТипДвустороннейПечати обеспечит требуемый результат.