Как организовать редактирование пользовательских макетов MXL в УТ 11?

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

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

Использование регистра «Пользовательские макеты печати»

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

  1. Правильная регистрация: Убедитесь, что макет связан с объектом метаданных через Дополнительные отчеты и обработки.
  2. Программный доступ: При создании своей обработки-редактора макетов, вам необходимо использовать методы БСП для записи в данный регистр, чтобы система корректно подменяла типовой макет на ваш пользовательский при печати.

Если прямое использование регистра кажется сложным, рассмотрите вариант создания дополнительной служебной обработки, которая позволяет пользователю выгрузить макет в файл, отредактировать его в Конфигураторе или Предприятии и загрузить обратно в хранилище (например, в Справочник Файлы).

Реализация через расширения конфигурации

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

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

Отказ от макетов MXL в пользу Word-шаблонов

Часто возникает вопрос: зачем пользователю править сложный MXL, если можно работать в привычном текстовом процессоре? Разберем альтернативный подход:

  1. Использование форматов DOCX/ODT: Вместо редактирования макета внутри 1С, вы создаете шаблон в формате Word.
  2. Параметризация: В тексте документа расставляются именованные параметры, которые программа заполняет данными объекта (например, контрагента или договора).
  3. Удобство: Пользователь может менять шрифты, отступы и текст договора самостоятельно в Word, что значительно проще, чем работа со встроенным редактором табличных документов.

Хранение данных в табличных частях

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

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


// Пример получения данных из табличной части для вывода в макет
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ДопУсловия.ТекстУсловия ИЗ Справочник.Договоры.ДопУсловия КАК ДопУсловия";
Результат = Запрос.Выполнить().Выгрузить();
// Далее цикл по результату для заполнения областей макета

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

При выборе метода ориентируйтесь на частоту внесения правок:

← На главную