Одной из частых задач при внедрении 1С:Управление торговлей 11 является потребность пользователей в самостоятельной правке печатных форм. Поскольку прямое изменение конфигурации или создание большого количества Внешних печатных форм бывает неэффективным, рассмотрим доступные архитектурные подходы для реализации этой задачи.
Стандартный механизм БСП предусматривает хранение измененных пользователями макетов в регистре сведений Пользовательские макеты печати. Если вы столкнулись с тем, что система не видит ваши записи, разберем причины:
Дополнительные отчеты и обработки.Если прямое использование регистра кажется сложным, рассмотрите вариант создания дополнительной служебной обработки, которая позволяет пользователю выгрузить макет в файл, отредактировать его в Конфигураторе или Предприятии и загрузить обратно в хранилище (например, в Справочник Файлы).
Наиболее современным и рекомендуемым способом внесения изменений в типовую логику являются Расширения конфигурации. Это позволяет не снимать конфигурацию с поддержки и предоставляет удобный интерфейс для администраторов.
Чтобы предоставить пользователям возможность редактирования, вы можете реализовать внутри расширения механизм подмены макета. В таком случае, даже если пользователи не имеют доступа к Конфигуратору, они смогут работать с формами через интерфейс расширения, установленного в системе.
Часто возникает вопрос: зачем пользователю править сложный MXL, если можно работать в привычном текстовом процессоре? Разберем альтернативный подход:
1С, вы создаете шаблон в формате Word.Word, что значительно проще, чем работа со встроенным редактором табличных документов.Если изменения макетов касаются преимущественно текстов договоров или дополнительных условий, попробуйте изменить подход к архитектуре данных:
Вместо того чтобы хранить текст внутри макета, добавьте в справочник Договоры табличную часть. В ней пользователь сможет выбирать пункты договора или вводить произвольный текст, который затем программно выводится в печатную форму.
// Пример получения данных из табличной части для вывода в макет
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ДопУсловия.ТекстУсловия ИЗ Справочник.Договоры.ДопУсловия КАК ДопУсловия";
Результат = Запрос.Выполнить().Выгрузить();
// Далее цикл по результату для заполнения областей макета
При выборе метода ориентируйтесь на частоту внесения правок:
Пользовательских макетов печати.Word-шаблонов или добавление данных через табличные части документов. Это минимизирует обращения пользователей к разработчику и повышает автономность работы сотрудников.MXL, чтобы исключить риск выполнения произвольного кода или повреждения данных базы.