Практика работы с системой компоновки данных (СКД) и макетами 1С

Как найти отчет в конфигураторе по его названию в 1С:Предприятие

Программная обработка данных отчета, полученных с помощью запроса, с выводом измененных данных в СКД

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Работа с СКД и макетами

Добавление произвольного заголовка в макет 1С

Задача: вывести в отчете заголовок вида "Реестр документов "Путевые листы" за Октябрь 2023 г.". Месяц берется из даты, содержащейся в реквизите СР_НачалоПериода (получается ранее запросом).

Порядок действий:

  1. На вкладке Вычисляемые поля добавить вычисляемое поле ПериодОтчета.
    Рисунок

    Заголовок макета 1С

    [свернуть]
  2. На вкладке Ресурсы добавить вычисляемое поле ПериодОтчета в ресурсы.
    Рисунок

    Произвольный заголовок в макете 1С

    [свернуть]
  3. На вкладке Настройки :
    1. добавить в отчет:
      • новую группировку (детальные записи, не выбирая поле), без иерархии, установить для неё имя (в этом примере - Заголовок2 , здесь будем выводить текст "Реестр документов "Путевые листы" за ... 2023 г."");
        • внизу выбрать <Детальные записи> (Заголовок2), перейти на вкладку Другие настройки - (в самый низ) - Вариант использования группировки - выбрать  Дополнительная информация ;
  4. вверху на вкладке Макеты добавить заголовок (как в задании):
      1. добавить макет группировки, выбрать группировку Заголовок2;
      2. в табличном документе в ячейке размещаем текст заголовка из задания с параметрами ("Реестр документов "Путевые листы" за [Месяц] 2023 г."), форматируем шрифт как  в задании, в свойствах ячейки меняем заполнение на Шаблон, связываем эту ячейку с макетом Заголовок2 в поле Область ;
      3. связываем параметр [Месяц]  шаблона с соответствующим параметром отчета (в поле ПараметрыДанных).
        Рисунок

        Произвольный заголовок макета в отчете 1С

        [свернуть]

Примечание: вывод года тоже можно сделать в параметре Месяц, заменив выражение вычисляемого поля на Формат(СР_НачалоПериода, "ДФ=ММММ") + " " + Формат(СР_НачалоПериода, "ДФ=yyyy") .

[свернуть]
Связь наборов данных, передача параметра

Два набора данных - запроса, связаны по ссылке на документ ПутевойЛист. Необходимо в подчиненный набор передать параметр ПутевойЛист для использования в запросе.

В параметрах СКД создадим параметр ПутевойЛист, тип ДокументСсылка.ПутевойЛист, установим флаг "Ограничение доступности".

Рисунок

Связь наборов данных в СКД

[свернуть]

Связь между наборами устанавливается без особенностей.

В качестве параметра на вкладке "Связи наборов данных" передаем параметр ПутевойЛист, который и будет использован в запросе подчиненного набора данных в конструкции ГДЕ ПутевойЛистМаршрут.Ссылка = &ПутевойЛист.

[свернуть]

Расчет количества дней между текущей датой и датой, выбранной в запросе

Дано:

  • в запросе выбирается планируемая дата оплаты счета (из поля документа "Оплата до:", СрокиОплатыДокументов.СрокОплаты). 

Необходимо:

  • вывести в отчет количество дней просрочки платежа (со знаком "-").

Решение:

  1. В конструкторе запроса:
    • добавить поле с выражением РАЗНОСТЬДАТ(&ТекДата, СрокиОплатыДокументов.СрокОплаты, ДЕНЬ);
    • на вкладке "Объединения/псевдонимы" дать созданному полю нужное наименование (в примере - "Просрочка").
  2. На вкладке "Параметры" схемы компоновки данных добавить параметр ТекДата с выражением ТекущаяДата()
    • ТекущаяДата
  3. Добавить вывод созданного поля в результат запроса - отчет (например, если использовались промежуточные временные таблицы):
    • Временные таблицы
    • на вкладке "Настройки" - вывод в отчет:
    • Настройки СКД

Результат (на 20.04.2023):

[свернуть]

Проверка запроса на пустой результат

(например, в функции)

[свернуть]

Ошибки СКД и макетов 1С

Ошибка "Поле не может быть использовано в группировке"

Поле не может быть использовано в группировке

Для устранения ошибки необходимо проверить вкладку СКД "Настройка - Сортировка" и убрать сортировку по указанному полю, например:

Поле не может быть использовано в группировке

[свернуть]

Ошибка "Неоднозначное поле"

Возникает в результате формирования некорректного текста запроса из-за одинаковых имен полей и имен таблиц в запросе. Например, одинаковое именование регистра и ресурса в регистре.

[свернуть]

 

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.