Работа с документами в системе 1С:Предприятие невозможна без качественной печати. Стандартные макеты часто не соответствуют уникальным требованиям бизнеса, поэтому умение создавать собственные формы становится критически важным навыком. Добавление новой печатной формы позволяет адаптировать вывод данных под специфические бланки, логотипы компании или требования контрагентов. Процесс настройки может показаться сложным новичку, но при правильном подходе он занимает всего несколько минут.
В этой статье мы разберем технические аспекты внедрения новых макетов. Вы узнаете, как работать с объектами метаданных, настраивать схемы компоновки данных и подключать формы к конкретным документам. Мы рассмотрим как возможности типовой конфигурации, так и методы доработки для программистов. Понимание этих механизмов позволит вам гибко управлять документооборотом предприятия.
Подготовка макета и выбор инструмента разработки
Перед началом работы необходимо определиться с инструментарием. В современных версиях платформы основным средством создания отчетов является Схема компоновки данных (СКД). Этот механизм заменил устаревшие табличные документы и предоставляет мощные возможности для группировки, отборов и условного оформления. Если вы работаете в режиме предприятия, вам потребуется доступ к режиму конфигуратора с правами администратора.
Создание макета начинается с определения структуры данных. Вам нужно четко понимать, какие поля из документа должны попасть на бумагу. Это могут быть реквизиты шапки документа, табличной части или даже справочной информации, связанной через ссылки. Ошибка на этом этапе приведет к тому, что форма будет пустой или содержать некорректные значения. Поэтому предварительный анализ структуры базы данных обязателен.
Для сложных случаев, когда стандартных средств СКД недостаточно, разработчики используют внешние обработки или расширения конфигурации. Это позволяет добавлять функционал без изменения основного кода базы, что особенно актуально для облачных версий 1С. Такой подход обеспечивает безопасность обновлений и стабильность работы системы.
Используйте расширения конфигурации для добавления печатных форм в облачных версиях 1С, так как прямой доступ к конфигуратору там часто ограничен.
Создание новой печатной формы в Конфигураторе
Процесс разработки начинается в дереве метаданных. Вам необходимо найти объект, к которому планируется привязать форму, например, документ «Реализация товаров и услуг». В ветке этого объекта часто существует специальный раздел «Печатные формы». Если его нет, форму можно создать как отдельный отчет и вызвать его программно.
При создании нового объекта типа «Отчет» система предложит выбрать шаблон. Для стандартных задач лучше всего подходит шаблон «Пустой отчет». После создания откроется редактор макета, где вы увидите вкладки «Настройки» и «Макет». Именно здесь происходит вся магия верстки. Вкладка макета позволяет визуально расположить элементы так, как они должны выглядеть на листе бумаги.
Важно правильно настроить параметры отчета. В окне параметров вы должны указать, какой именно документ будет передаваться в обработку. Обычно это делается через добавление параметра с типом «Ссылка» на нужный вид документа. Без этого шага система не поймет, какие данные нужно извлекать при формировании.
☑️ Алгоритм создания формы
⚠️ Внимание: При создании печатной формы убедитесь, что имена полей в макете точно совпадают с именами полей в запросе или схеме данных. Регистр букв имеет значение, и малейшее несоответствие приведет к ошибке вывода.
Настройка схемы компоновки данных и запроса
Сердцем любой печатной формы является запрос к базе данных. В редакторе СКД перейдите на вкладку «Наборы данных». Здесь вы пишете текст запроса на языке, похожем на SQL, но адаптированном под платформу 1С. Запрос должен выбирать все необходимые реквизиты, которые будут отображены в таблице или шапке документа.
Особое внимание уделите параметрам запроса. Они должны быть связаны с параметрами отчета, которые пользователь вводит при запуске. Например, параметр ДокументСсылка в запросе должен получать значение из параметра отчета. Это обеспечивает динамическую подстановку данных конкретного документа в шаблон.
Для табличной части документа часто требуется отдельный набор данных или соединение в одном запросе. Использование оператора ВЫБРАТЬ с соединением по ссылкам позволяет получить плоскую структуру данных, удобную для вывода списком. Однако для сложных иерархических структур лучше использовать несколько наборов данных с установкой связей между ними.
ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка КАК Ссылка,
РеализацияТоваровУслуг.Номер КАК Номер,
РеализацияТоваровУслуг.Дата КАК Дата
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Ссылка = &ДокументСсылка
Оптимизация запросов
Если печать формы занимает много времени, проверьте индексацию полей, используемых в условии ГДЕ. Отсутствие индекса по дате или номеру может замедлить выборку в больших базах данных в десятки раз.
Верстка макета и условное оформление
После подготовки данных приступаем к визуальной части. Вкладка «Макет» представляет собой таблицу, ячейки которой можно объединять, форматировать и заполнять полями. Поля вставляются из списка доступных полей набора данных. Вы можете перетаскивать их мышью или использовать контекстное меню для вставки.
Для придания документу профессионального вида используйте условное оформление. Этот инструмент позволяет менять цвет шрифта, фона или добавлять рамки в зависимости от значений данных. Например, можно выделить красным цветом позиции с отрицательным количеством или скрыть пустые строки в итоговой таблице.
Не забывайте о настройках страницы. В свойствах макета задайте ориентацию листа (книжная или альбомная), поля и размер бумаги. Часто стандартные поля слишком велики, что приводит к переносу таблицы на вторую страницу. Уменьшение полей до 5-10 мм позволяет компактно разместить информацию.
| Элемент макета | Назначение | Особенности настройки |
|---|---|---|
| Поле текста | Вывод статичных заголовков | Не требует привязки к данным |
| Поле данных | Вывод значений из запроса | Требует точного имени поля |
| Таблица | Вывод списков (табличная часть) | Автоматически повторяет строки |
| Картинка | Логотип компании | Хранится в базе или по пути |
Используйте режим предварительного просмотра непосредственно в конфигураторе для быстрой отладки макета без необходимости запускать отчет в режиме предприятия.
Регистрация формы в системе и подключение к объекту
Созданный отчет необходимо зарегистрировать в системе, чтобы он появился в списке доступных печатных форм документа. В типовых конфигурациях это часто делается через механизм «Дополнительные отчеты и обработки». Вы загружаете внешний файл обработки (.cfu или.epf) и регистрируете его в специальном регистре сведений.
Для более глубокой интеграции, когда форма должна вызываться стандартной кнопкой «Печать», требуется вмешательство в код модуля объекта. В документе необходимо найти процедуру формирования списка печатных форм и добавить туда ссылку на ваш новый отчет. Это гарантирует, что пользователь увидит форму в общем списке.
Также важно настроить варианты отчета. В окне настроек СКД вы можете сохранить текущую конфигурацию полей и отборов как вариант с понятным именем, например, «Счет для клиента с НДС». Это позволит пользователям быстро переключаться между разными видами печати одного и того же документа.
⚠️ Внимание: При обновлении типовой конфигурации ваши доработки в модуле объекта могут быть сняты. Всегда сохраняйте резервные копии изменений или используйте расширения, чтобы не потерять функционал после обновления от вендора.
Вывод в PDF и устранение частых ошибок
Современный документооборот требует обмена файлами в формате PDF. Платформа 1С позволяет сохранять макет directement в этот формат. Для этого в коде обработки вызывается метод СохранитьКакPDF у объекта макета. Пользователю достаточно нажать кнопку «Сохранить» и выбрать формат файла в диалоговом окне.
Частой проблемой является некорректное отображение шрифтов или смещение границ при печати на разных принтерах. Чтобы избежать этого, используйте стандартные шрифты Windows (Arial, Times New Roman) и избегайте сложной вложенности таблиц. Проверка макета на разных разрешениях экрана и принтерах поможет выявить проблемы до внедрения.
Если форма не выводится или выдает ошибку «Тип значения не найден», проверьте типы данных в запросе. Часто бывает, что в базу попало значение Неопределено там, где ожидается Число или Дата. Обработка таких ситуаций через функцию ЕСТЬNULL в запросе сделает вашу печатную форму более устойчивой к ошибкам в данных.
Для массовой печати большого количества документов используйте фоновые задания. Это позволит не блокировать работу пользователей с базой данных во время формирования тяжелых отчетов.
Часто задаваемые вопросы (FAQ)
Можно ли добавить печатную форму без прав администратора?
В облачных версиях 1С (1С:Фреш) без прав администратора создать форму в конфигураторе нельзя. Однако вы можете создать внешнюю обработку в демо-базе, выгрузить её и загрузить в рабочую базу через механизм «Дополнительные отчеты и обработки», если у вас есть права на это действие.
Почему печатная форма не видит данные документа?
Наиболее вероятная причина — неверная связь параметров отчета с параметрами запроса. Проверьте, что имя параметра в схеме компоновки данных совпадает с именем, которое передается из вызывающего кода. Также убедитесь, что документ проведен, так как некоторые формы работают только с проведенными документами.
Как сделать, чтобы форма печаталась автоматически при проведении?
Для автоматической печати необходимо добавить вызов процедуры формирования отчета в модуль документа, в событие «ОбработкаПроведения». Однако это считается дурным тоном в больших базах, так как замедляет проведение. Лучше использовать регламентные задания или печатать по требованию.
Можно ли использовать одну форму для разных видов документов?
Да, это возможно. В параметрах отчета укажите тип «Ссылка» без конкретного вида документа или используйте общий интерфейс. В запросе тогда потребуется проверка типа ссылки и выбор данных из разных таблиц в зависимости от типа переданного документа.