helpf.pro
Регистрация
 0 
Распечатать

Пример разработки простого отчета - Схема Компоновки Данных

В статье описан пример создания отчета с использованием системы компоновки данных 1С:Предприятия 8.1. Схема компоновки данных - это описание отчета, при помощи которого платформа позволит вводить настройки и получать результат.

Рассмотрим пример создания отчета по взаиморасчетам с работниками (ЗУП 2.5):

1. Файл - Новый - Внешний отчет Для открытия и создания схемы компоновки нажмем кнопку "Открыть схему компоновки данных".
title
2. Система предложит создать новую схему компоновки данных. Схема компоновки данных является макетом, и будет записана в макеты. Укажите название схемы и нажмите "Готово"
title
3. Открывается окно конструктора схемы компановки данных:
title

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

В качестве набора данных может выступать:
Запрос - в этом случае получение данных описывается с помощью терминов языка запросов "1С: Предприятия 8.1" + инструкции специального расширения языка запросов для системы компоновки данных;
Объект - произвольный источник данных - например, таблица значений, сформированная и заполненная программно;
Объединение предназначено для описания наборов данных, входящих в объединение. Механизм объединения аналогичен объединению запросов средствами языка запросов;

4. Для нашего примера получим данные при помощи запроса, поэтому добавим набор данных - запрос. Для этого нажмем на кнопку "Добавить набор данных", которая расположена в командной панели на закладке "Наборы данных". В открывшемся меню выберем пункт "Добавить набор данных - запрос":
title

5. Будет создан набор данных. Теперь создадим запрос при помощи конструктора запросов, нажмем кнопку "Конструктор запроса"
title

6. Отчет, который мы создаем, будет получать данные из регистра накопления "ВзаиморасчетыСРаботникамиОрганизаций". Нас интересуют остатки, и текст запроса следующий:
title

Код 1C v 8.х
  ВЫБРАТЬ
ВзаиморасчетыСРаботникамиОрганизацийОстатки.Организация,
ВзаиморасчетыСРаботникамиОрганизацийОстатки.ПериодВзаиморасчетов,
ВзаиморасчетыСРаботникамиОрганизацийОстатки.Физлицо,
ВзаиморасчетыСРаботникамиОрганизацийОстатки.СуммаВзаиморасчетовОстаток
ИЗ
РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Остатки КАК ВзаиморасчетыСРаботникамиОрганизацийОстатки


7. После закрытия конструктора запроса, конструктор схемы компановки Обратите внимание, что доступные поля для текущего набора данных будут сформированы системой автоматически только в том случае, если в конструкторе схемы компоновки данных стоит флаг Автозаполнение. Источником информации служит текст запроса. Система заполнила следующие поля:
title

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

8. Далее необходимо указать ресурсы. Ресурсы - это поля набора данных, по которым будет происходить агрегация значений.
Необходимо рассчитать суммы по полю "СуммаВзаиморасчетовОстаток". Найдем это поле в списке доступных полей и дважды щелкнем по нему. В правом табличном поле появится строка, содержащая формулу для расчета итога по полю "СуммаВзаиморасчетовОстаток". В нашем случае это "Сумма(СуммаВзаиморасчетовОстаток)". Эта формула означает, что для итоговых записей отчета значение поля "СуммаВзаиморасчетовОстаток" будет вычисляться как сумма поля "СуммаВзаиморасчетовОстаток" для всех строк участвующих в данной итоговой записи.
title

9. Этих введеных данных, нам хватит для вывода простого отчета. Перейдем на вкладку "Настройки" и откроем "Конструктор настроек"
title

10. Так как пока мы создаем простой отчет, выберем "Список", нажимая далее укажем выводимые поля:
title
title
title
title

11. После нажатия на "ОК" в конструкторе настроек, получаем следующее:
title

12. Закрываем схему компановки, сохраняем отчет в файл и запускаем в режиме 1С:Предприятия 8.1. Получаем:
title

Автор: Мигачев Евгений
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 40167
 0 
Распечатать
Возможно, вас также заинтересует
1C и Google Maps 12
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во...
1C медленно работает по сети с базой на SQL Server 8
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для...
1C: Enterprise Development Tools 35
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
1Cv8.1CD - Файл данных достиг максимального размера! 3
1С выдает предупреждение " Файл данных достиг максимального размера" . Подскажите из - за чего это и как можно решить ? Превышен размер файла, обычно это сообщение возникает, когда размер файла 1Cv8.1CD приближается к 10...
1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 2
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 - получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р,...
Посмотреть все результаты поиска похожих
Комментарии
Evlanov
12.08.2010 13:21Комментарий: 4
Evlanov
1С в очередной раз изобретает велосипед. Почему бы не сделать конструктор отчета как, например, CrystalReport, FastReport, MicrosoftPrinting, MicrosoftAccess и другие?
Dymok
28.07.2010 14:21Комментарий: 3
Dymok
ИМХО, СКД - еще сыровата для широкого использования, да и много там лишних настроек, не нужных обычному юзверю. Стоит только сделать шаг влево от рекомендуемого использования - сразу неразрешимые проблемы.
Например, добавим макет типа СКД во внешнюю обработку. Предположим в запросе, описанном в СКД, есть какие-нибудь параметры. Вывод отчета будем осуществлять программно, при нажатиии кнопки на форме. В результате упремся в проблему: в описанном случае невозможно будет программно передать значения параметров запроса в СКД. Т.е. во внешнем отчете - это возможно, во внешней обработке - разработчики зевнули *05
В общем случае:
Код 1C v 8.х
 ПараметрДанныхНачалоПериода=КомпоновщикНастроек.Настройки.ПараметрыДанных.элементы[0];   

Но во внешней обработке отсутствует объект КомпоновщикНастроек...
E_Migachev
02.02.2010 22:53Комментарий: 2
E_Migachev
На самом деле, СКД очень удобная штука, для быстрого написания отчетов. Если хорошо пишете запросы, то можно за 10-15 минут сконструировать сложный отчет с возможность формирования по разным группировкам и отборам. Посмотрите в ЗУПе отчет расчетные листки, очень хороший пример для изучения возможностей СКД!
IKSparrow
20.01.2010 13:46Комментарий: 1
IKSparrow
СКД странная система. Как то раз я решил её попробовать освоить. И перевёл ряд отчётов в домашней бухгалтерии на эту систему. Но оказалось, что ей под силу только простые задачки. Более сложные вещи проще написать руками с применением обычного кода.

А споткнулся СКД на простейшей задачке. Учитывая, что простые отчёты конечному пользователю редко бывают нужны (как правило какие-нибудь извраты требуются), я применения этой системы в своей практике не нашёл.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.