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