Войдите на сайт как ученик

Система компоновки данных 1С 8.3 для начинающих: первый отчёт на СКД

Если вы не читали введение к этому модулю - пожалуйста, прочтите его: .

Для выполнения уроков вам понадобится 1С 8.3 (не ниже 8.3.4.482) .

Если у вас уже есть установленная 1С версии 8.3 - используйте её. Если нет - скачайте и установите учебную версию, которую фирма 1С выпускает специально для образовательных целей.

Для этого:

  • Распакуйте архив, скачанный по ссылке в отдельную папку на рабочем столе:
    • ссылка на скачивание с Dropbox (вариант №1)
    • ссылка на скачивание с Mail.ru (вариант №2)
  • Запустите файл "setup.exe".
  • Нажмите "Далее", "Далее", "Установить".
  • Дождитесь окончания установки.

На вашем рабочем столе должен появиться вот такой ярлык:

Для всех уроков из этого цикла мы будем использовать подготовленную мной базу данных "Гастроном". Она полностью совпадает с базой, которую мы использовали в и модулях школы при изучении запросов. Поэтому я рассчитываю, что вы знакомы с её справочниками и документами.

Если вы её удалили - скачайте заново по следующей , распакуйте и в список баз.

Наконец, рабочее место настроено и сейчас мы вместе создадим наш первый отчёт при помощи системы компоновки данных. Он будет очень простым, чтобы продемонстрировать общие возможности системы компоновки данных (сокращенно СКД ).

Ставим цель

Цель этого урока - создать отчёт, который в режиме пользователя выводит список клиентов со следующими полями:

  • Имя
  • Пол
  • Любимый цвет клиента.

Отчёт должен быть внешним. Это значит, что он будет создан и настроен в конфигураторе, а затем сохранен в виде отдельного (внешнего) файла на компьютере.

Чтобы сформировать такой отчет в 1С пользователю нужно будет запустить базу в режиме пользователя, открыть этот файл и нажать кнопку "Сформировать".

Поехали!

Создаём отчёт

Запускаем конфигуратор для базы "Гастроном":

Из главного меню выбираем пункт "Файл"->"Новый...":

Выбираем "Внешний отчет":

Создаём схему компоновки данных внутри отчёта

Открылось окно создания внешнего отчёта. В качестве имени вводим: "Урок1 ", а затем жмём кнопку "Открыть схему компоновки данных ":

Запустился конструктор создания схемы. Соглашаемся с именем по умолчанию "ОсновнаяСхемаКомпоновкиДанных " и жмём кнопку "Готово ":

Открылось основное рабочее окно, с множеством закладок и полей, в котором мы и будем настраивать нашу схему компоновки данных.

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

Сейчас мы находимся на закладке "Наборы данных ". На ней и останемся.

Пишем запрос через конструктор

Система компоновки данных (сокращенно СКД) требует от нас данные, которые она будет выводить пользователю.

Самый простой способ - написать запрос к базе. В школы мы научились писать и понимать запросы - поэтому я рассчитываю, что вы обладаете соответствующими навыками.

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

Наша задача написать в это поле текст запроса. Вы ещё не забыли как это делается?

Я вам подскажу:

В этом запросе мы выбрали три поля ("Наименование ", "Пол " и "ЛюбимыйЦвет ") из таблицы "Справочник.Клиенты ".

Но не торопитесь писать этот текст в поле "Запрос" вручную.

Сейчас мы создадим тот же самый запрос визуально, только при помощи мышки. Этот способ называется "Конструктор запроса ".

Чтобы вызвать этот конструктор нажмём кнопку "Конструктор запроса... " в верхней правой части поля "Запрос":

В открывшемся окне перетащим таблицу "Клиенты " из первого столбца во второй, чтобы указать, что именно из этой таблицы мы будем запрашивать данные:

Получилось вот так:

Далее раскроем таблицу "Клиенты " во втором столбце по знаку "Плюс ", чтобы увидеть все её поля и перетащим поле "Наименование " из второго столбца в третий, чтобы указать, что из этой таблицы нам нужно запрашивать поле "Наименование":

Получилось вот так:

Поступим точно так же с полями "Пол " и "ЛюбимыйЦвет ". Результат будет таким:

Нажмём кнопку "ОК", чтобы выйти из конструктора запроса и увидим, что текст запроса автоматически добавился в поле "Запрос".

Более того на основании текста запроса 1С сама вытащила имена полей (область выше запроса), которые будут использоваться схемой компоновки данных:

Теперь, когда мы составили запрос, СКД знает каким образом получать данные для отчёта.

Настраиваем представление данных

Осталось как-то визуализировать эти данные для пользователя в виде печатной формы. И вот тут СКД может творить чудеса!

Чтобы сотворить такое чудо перейдём на вкладку "Настройки " и нажмём кнопку конструктора настроек (волшебная палочка ):

В открывшемся окне укажем тип отчёта "Список" и нажмём "Далее ":

В следующем окне выберем (путём перетаскивания) поля, которые нужно будет отобразить в списке (перетащим все из доступных нам: "ЛюбимыйЦвет ", "Наименование " и "Пол "):

Получим вот такой результат и нажмём кнопку "ОК ":

Конструктор настроек закрылся и появился пункт "Детальные записи ":

Отчёт готов, давайте же его проверим. Для этого вначале сохраним отчет в виде внешнего файла.

Сохраняем отчёт в виде файла

Откроем пункт главного меню "Файл "->"Сохранить ":

Я сохраню его на рабочий стол под именем "Урок1 ":

Проверяем отчёт в режиме пользователя

Наконец, закроем конфигуратор и зайдём в нашу базу в режиме пользователя:

Имя пользователя "Администратор", пароля нет:

Через меню выберем пункт "Файл "->"Открыть ...":

И укажем файл отчёта (я сохранял его на рабочий стол под именем "Урок1.erf":

Открылась форма отчёта, нажмём кнопку "Сформировать ":

Готово! Вот она наша печатная форма со списком клиентов, их любимым цветом и полом:

Печатную форму можно легко распечатать. Для этого достаточно выбрать в меню пункт "Файл "->"Печать... ":

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

учеников - отвечаю по почте, но прежде загляните в .

Войдите на сайт как ученик

Войдите как ученик, чтобы получить доступ к материалам школы

Система компоновки данных (СКД) — мощный механизм платформы 1С (8.2 и новее) для разработки отчетов, а вовсе не система контроля доступа.

Для чего была придумана «система компоновки данных»? Система была придумана для того, чтобы декларативно создавать отчеты. Отчет создается без необходимости писать программный код. С помощью определенного конструктора и настроек, произведенных в нем, программист задает желаемый результат, система компоновки данных это понимает и выводит этот результат пользователю. Если потребовалось что-то изменить в отчете, достаточно вновь обратиться к конструктору, внести необходимые изменения, и измененный отчет готов.

Видеоурок по созданию отчета «Журнал документов» в 1С СКД:

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

Получите 267 видеоуроков по 1С бесплатно:

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

Несмотря на то, что СКД в 1С 8.3 может создаваться интерактивно с помощью соответствующего конструктора, можно и программным образом выполнить те же самые действия. Можно пойти с самого начала. Программными средствами создать схему компоновки данных, выполнить все необходимые настройки, создать настройку варианта отчета, скомпоновать отчет и вывести его на экран пользователю. Это более трудоемкая задача, но все же выполнимая.

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

Основа управляемого интерфейса 1С — СКД

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

Как освоить и научиться делать отчеты на СКД?

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

Вот главная страница отчета:

Вызывается данная страничка из конфигуратора в меню Файл – Новый – Внешний отчет.

Сначала добавляем набор данных (НаборДанных1). В окошке «Запрос» можно набрать самостоятельно, создать с помощью Конструктора запроса или загрузить из файла. Удобнее всего использовать конструктор запроса. Как работает конструктор, читайте .

Все, что нужно, заполняется автоматически, но некоторые вещи стоит подправить.

Например, заголовки колонок (галочка «Количество» на рисунке выше позволяет набрать любой текст заголовка для данного поля), можно задать формат вывода данных(см. Формат в строке Количество). Формат редактируется для любого вида данных – строк, дат, чисел.

На закладке Ресурсы выбираем сами ресурсы и настраиваем вывод итогов для них:

Закладка Параметры содержит все, от чего меняется содержимое отчета (например, период, за который будут выбираться данные). Заполняется автоматически на основании параметров запроса (см. первую страничку). Галочками можно регулировать видимость, доступность этих параметров, задавать первоначальное значение и т.д:

Получите 267 видеоуроков по 1С бесплатно:

И, наконец, Настройки. Тут рисуется внешний вид отчета – колонки, строки, их положение относительно друг друга, группировки и т.д. Кнопочка «Открыть конструктор настроек» поможет выстроить строчки и колонки в нужном порядке. Кнопочка «Пользовательские настройки элемента» позволит вывести параметры в шапку отчета:

Обратите внимание на колонку Период.ЧастиДат.НазваниеМесяца. Как же вывести название месяца в заголовок колонки? Вот тут и выводится.

Кстати, именно такая настройка позволяет выводить данные сразу за несколько периодов в соседних колонках отчета:

Еще одна важная закладка – Выбранные поля. Если она будет пустой, отчет не сформируется. Обычно заполняется автоматом по кнопке «Открыть конструктор настроек»:

Собственно, вот все, что нужно из минимально необходимого. В результате будем иметь отчет следующего вида:

  • Различные способы формирования отчетов (вывод в табличный документ, построитель отчета, универсальный отчет, СКД)
  • Настройка отчетов в режиме «1С:Предприятие»
  • Инструменты отладки отчетов на СКД. Какой запрос на самом деле получает данные из базы?
  • Для чего нужно множество галочек в настройке полей компоновки
  • Как переопределить представление поля в отчете
  • Как получить корректные итоги в отчетах на СКД вне зависимости от того, какие поля выводятся в отчет?
  • Как вывести корректные остатки по документам-регистраторам?
  • Как, не установив всего несколько галочек, получить ошибочные итоги в отчете?
  • Как использовать собственные функции из общих модулей в отчете на СКД?
  • Как исключить некорректные сложения USD + EUR; Шт. + кг
  • Как создать несколько представлений (вариантов отчета) на основании одних и тех же данных
  • Какие возможности по выводу данных в графическом виде (диаграммы, графики, гистограммы) есть в СКД, а когда придется полученную диаграмму «доработать» программным кодом
  • Как без программирования организовать вывод данных по иерархии? И как организовано получение таких данных на низком уровне?
  • Как без программного кода вывести все даты за период, а не только те, на которые есть данные в отчете?
  • Как настроить отчет, где пользователь самостоятельно может выбирать требуемую периодичность (год, месяц, день)?
  • Как без программирования расположить на форме отчета «быстрые» настройки, которые нужны пользователю для формирования отчета?
  • Комбинирование отборов – И, Или, Не.
  • Как вывести заголовок поля вертикально, а сами значения – горизонтально.
  • Вывод в итогах только некоторых ресурсов
  • Отличия расчета итогов в запросах и СКД
  • Срез последних на каждую дату при помощи СКД
  • Работа с произвольными характеристиками объектов, которые пользователь создает в режиме «1С:Предприятие» в отчете на СКД
  • Использование вложенных схем – разработка нового отчета на базе существующих
  • Практические примеры использования сложно произносимых функций
    ВычислитьВыражениеСГруппировкойМассив,
    ВычислитьВыражениеСГруппировкойТаблицаЗначений и т.д.
    Для решения каких задач их можно применять?
  • Особенности работы с макетами в отчетах на СКД
  • При помощи ручного вывода данных в табличный документ можно реализовать сложные и комплексные отчеты. А как получить такой же отчет, но со всеми гибкими настройками СКД (произвольными отборами и т.д.)?
  • Как сформировать отчет программно? Как сформировать отчет с отбором по конкретному товару из списка номенклатуры?
  • Вывод сформированных данных не в отчет, а в таблицу значений
  • Программная работа с пользовательскими настройками
  • Как построить отчет по таблице, которая получается программно или загружается из внешней системы?
  • Реализация настраиваемого отбора не в отчетах – обработках, справочниках и т.д. Хранение произвольных отборов, введенных пользователями в режиме «1С:Предприятие»
  • Программная обработка расшифровки
  • Создание собственного меню для расшифровки отчета
  • Как реализовать переход из отчета на сайт двойным кликом в ячейке отчета?
  • Как вывести картинки в отчет? Как сформировать прайс-лист с изображениями товаров?
  • Как вывести логотип компании в отчете на СКД?
  • Какие возможности СКД можно использовать при отображении списков? Динамические списки
  • Как система обеспечивает быстрое отображение списков, в которых могут храниться десятки тысяч элементов?

Здравствуйте, уважаемый читатель! Сегодня мы с вами начнем рассматривать основы системы компоновки. Вы узнаете, что такое СКД и познакомитесь с основными составляющими СКД. Также рассмотрите входные данные для построения отчёта и узнаете основные этапы выполнения отчета в системе компоновки и многое другое. Кроме того у вас есть возможность проверить свои знания, пройдя небольшой . Давайте начнём!

Входные данные для построения отчёта с использованием системы компоновки данных (СКД).

    1. Схема компоновки данных — содержит описания наборов данных и параметров получения данных. В ней записано, откуда получать данные и как управлять компоновкой данных. Данная схема получается с помощью конструктора.
  1. Настройки компоновки данных — настройки выполнения отчёта, то есть, как должен выводиться отчёт, какие должны быть параметры получения данных и какие применены отборы для определённой схемы компоновки данных.
  2. Компоновщик макета — обрабатывает схему компоновки данных и настройки компоновки данных.
    В результате работы компоновщика макета получается макет компоновки данных , который является результатом применения настроек к схеме компоновки.

Основные этапы, из которых состоит выполнение отчета с использованием системы компоновки данных (СКД).

Этапы СКД 1С 8

    1. Макет компоновки данных — схема построения отчета, готовое описание построения отчёта, указание системе какие нужно выбрать данные, какие построить запросы. Указание процессору компоновки формировать отчёт определённой структуры с учётом заданных настроек. Итак, Схема компоновки данных содержит общее описание схемы, а макет компоновки данных содержит также и конкретные настройки пользователя. Схема = Отчеты. ПрайсЛист. ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных" ) ; Настройки = Схема. НастройкиПоУмолчанию;

      КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
      Макет = КомпоновщикМакета. Выполнить (Схема, Настройки) ;

    2. Процессор компоновки данных — получает информацию из БД или внешних источников с учётом данных из макета компоновки данных . Выполняет компоновку данных и формирует результат. Полученный результат содержится в самом процессоре компоновки данных. ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки. Инициализировать(Макет) ;
  1. Процессор вывода результата — выводит результат работы, для представления пользователю,
    либо в табличный документ, либо в таблицу значений.
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ТабДок = Новый ТабличныйДокумент; ПроцессорВывода. УстановитьДокумент(ТабДок) ; ПроцессорВывода. Вывести(ПроцессорКомпоновки) ;

Результат каждого этапа можно сериализовать (сохранить) в файл xml. Тогда можно каждый этап формирования отчета выполнять на разных компьютерах.

Что такое схема компоновки данных?

Схема компоновки данных — объект встроенного языка системы 1С:Предприятие «СхемаКомпоновкиДанных».
Ещё можно назвать макетом специального типа, который может быть создан у любого объекта в конфигурации 1С Схема компоновки данных соответствует понятию макета, так как макет — это объект, который содержит различные данные, требующиеся для отображения выходной информации.

Из чего состоит схема компоновки данных?

Наборы данных

Источники данных для наборов данных — это неиспользуемый функционал, созданный для указания на некоторые внешние информационные базы. Сейчас указывают на локальную базу, в которой выполняется отчёт.

  1. Запрос — обращение к текущей информационной базе для получения данных.
  2. Объект — в качестве объекта выбирается: таблица значений, табличная часть, результат запроса, область ячеек табличного документа, документ, набор записей регистра и т.д. Для чего нужен набор данных объект? Например, если на входе используем таблицу значений, а в ней данные из другой базы (возможно даже не 1С), то, по сути, мы работаем данными этой базы.
  3. Объединение — объединяет данные из наборов данных: запрос и объект. Для чего нужен набор данных объект, если в запросе существует предложение UNION, которое позволяет связать различные данные, то есть объединить их? Этот набор данных необходим, так как в качестве набора данных может выступать не только запрос, а также, например, таблица значений.

Настройки

  1. Если не указать никаких настроек отчёта, тогда в результате не будет ничего отображено. Опытный пользователь сможет сам указать настройки и тогда результат появится в согласии с его настройками. Но лучше создать базовые настройки в ходе разработки отчёта.

Наверное, материала на сегодня достаточно. Новый материал обязательно появится, поэтому подпишитесь на обновления на нашем сайте, чтобы не пропустить! Если в чем-то есть затруднения пишите комментарии. Постараюсь сразу ответить. Вы сможете закрепить свои знания, пройдя первый тест по .


В конце статьи хочу посоветовать вам бесплатный от Сотникова Анатолия. Это курс от опытного программиста. Он на отдельной базе покажет вам, как строить отчеты в СКД. Вам только нужно внимательно слушать и запоминать! Вы получите ответы на такие вопросы:
  • Как создать простой отчет в виде списка?
  • Для чего нужны колонки Поле, Путь и Заголовок на закладке «Поля»?
  • Какие существуют ограничения для полей компоновки?
  • Как правильно настраивать роли?
  • Какие существуют роли для полей компоновки?
  • Где найти закладку компоновка данных в запросе?
  • Как настраивать параметры в СКД?
  • Дальше еще интереснее...
Наверное, не стоит самому стараться бороздить интернет в поисках нужной информации? Тем более все готово для применения. Только начните! Все подробности о том, что есть в бесплатных видеоуроках