Как добавить подвал и вывести ФИО ответственного в отчет СКД 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе с внешними отчетами, построенными на Системе Компоновки Данных (СКД) в 1С, часто возникает необходимость добавить в конце отчета подпись ответственного или другую служебную информацию. Однако, при попытке реализовать подвал с помощью макетов группировок, пользователи сталкиваются с рядом проблем: подвал может не отображаться вовсе, дублироваться несколько раз или не выводить переданные в него параметры, например, ФИО ответственного. В этой статье мы подробно рассмотрим, как правильно настроить подвал в отчете СКД, пошагово разобрав процесс и типичные ошибки. Для быстрого старта можно использовать готовый пример настройки схемы компоновки данных с произвольными итогами и подписями.

Шаг 1: Создание группировки для подвала

Прежде всего, нам необходимо создать специальную группировку в СКД, которая будет служить контейнером для нашего подвала. Рассмотрим, как это сделать:

  1. Откройте схему компоновки данных вашего отчета.
  2. Перейдите на вкладку Настройки.
  3. В структуре отчета (обычно в левой части окна) добавьте новую группировку. Эта группировка должна быть размещена в самом низу списка группировок, чтобы подвал выводился после всех основных данных отчета. Вы можете добавить ее как дочернюю к самой верхней группировке, или как независимую группировку в самом конце списка, если отчет содержит несколько корневых группировок.
  4. Назначьте этой группировке понятное имя, например, Подвал. Это поможет нам легко идентифицировать ее при работе с макетами.
  5. В настройках созданной группировки Подвал перейдите на вкладку Выбранные поля и снимите флажок "Авто". Это критически важный шаг, так как мы не хотим, чтобы в этой группировке выводились какие-либо стандартные поля данных.
  6. На вкладке Другие настройки для этой же группировки установите Макет оформления в значение Без оформления. Это предотвратит применение стандартных стилей и рамок, позволяя нам полностью контролировать внешний вид подвала через наш собственный макет.

Шаг 2: Создание макета группировки для подвала

После создания группировки, нам нужно разработать визуальное представление подвала с помощью макета. Давайте разберем этот процесс:

  1. Перейдите на вкладку Макеты в схеме компоновки данных.
  2. Нажмите кнопку Добавить и выберите тип макета Макет группировки.
  3. В появившемся окне Макет укажите следующие параметры:
    • Группировка: Выберите созданную нами ранее группировку Подвал.
    • Тип макета: Здесь находится один из ключевых моментов. Выберите тип Подвал. Часто пользователи ошибочно выбирают Заголовок и подвал, Заголовок или Общий итог подвал. Если вам нужен единичный подвал в конце всего отчета, то тип Подвал для специальной группировки, расположенной в конце структуры, будет наиболее подходящим. Тип Общий итог подвал может потребоваться, если подвал должен выводиться после каждой группировки или содержать итоги для каждой из них, что не является нашим текущим сценарием.
    • Область: Укажите область вашего макета, например, R2 (вторая строка).
  4. Перейдите на закладку Макет и нарисуйте необходимый текст в выбранной области, например, "Ответственный:". Пока мы не будем добавлять параметр ФИО, чтобы убедиться в базовом выводе текста.
  5. Сохраните изменения в макете и схеме компоновки данных.

Шаг 3: Проверка вывода подвала и решение проблемы дублирования

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

  1. Подвал не выводится:
    • Убедитесь, что отчет формируется с вашей измененной схемой компоновки данных. Если это внешний отчет, убедитесь, что вы открыли именно измененный файл, а не типовой. В некоторых случаях, если отчет программно загружает настройки по умолчанию, ваши изменения могут быть не применены.
    • Проверьте, что в дополнительных настройках самой верхней (корневой) группировки отчета или той группировки, перед которой должен выводиться подвал, параметр Выводить итоги установлен в значение В конце или И в начале и в конце. Это позволяет управлять выводом итоговых областей, к которым относится и подвал.
    • Ещё раз перепроверьте Тип макета для вашей группировки Подвал. Как мы выяснили ранее, тип Подвал является наиболее подходящим для однократного вывода в конце отчета.
  2. Дублирование подвала:
    • Если подвал выводится несколько раз, это часто означает, что он привязан к группировке, которая повторяется в отчете (например, к каждой строке или к каждой группе данных). Вернитесь к настройкам группировки Подвал и убедитесь, что она:
      • Является отдельной, без полей группировкой, расположенной в самом низу структуры отчета.
      • Имеет снятый флажок Авто на вкладке Выбранные поля.
      • Имеет тип макета Подвал, а не Общий итог подвал, если нам нужен один подвал на весь отчет.
    • Проверьте, нет ли других группировок, которые могут иметь макет с тем же типом и схожим содержимым, что приводит к конфликту.

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

Шаг 4: Вывод ФИО ответственного или других параметров в подвале

После того как мы убедились, что текстовый подвал успешно выводится, перейдем к более сложной задаче — выводу динамических данных, таких как ФИО ответственного. Эта проблема часто возникает, когда текст появляется, а параметр — нет.

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

Альтернативный подход: вывод простого текста без макета

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

  1. Создайте группировку без полей, как мы делали ранее, назовите ее, например, ПодвалТекст.
  2. Вместо создания макета группировки, вы можете добавить в эту группировку ПодвалТекст обычное поле с типом Строка, которое будет содержать ваш текст, например, "Ответственный: ______".
  3. Или, если текст нужно выводить в отдельной строке, можно создать две группировки: одна для верхней части, другая для нижней. Этот подход позволяет вставлять статический текст напрямую в структуру группировок без использования графического макета.

Пример: в структуре отчета создать новую группировку, назвать ее Подвал. Затем, для этой группировки на вкладке Выбранные поля можно добавить новое пользовательское поле (через кнопку "Добавить поле") и в качестве выражения для этого поля указать просто строку: "Ответственный: _______________". Этот метод будет работать для вывода простого текста, но не позволит легко внедрять параметры типа ФИО, полученные из запроса или программно.

Важные нюансы и дополнительные советы

Следуя этим подробным шагам и учитывая типичные ошибки, вы сможете успешно добавить подвал в ваш отчет СКД, вывести в нем необходимую информацию, включая ФИО ответственного, и добиться желаемого результата.

← На главную