Первый отчет на СКД

Отзывов (24)FavoriteLoadingВ закладки

Мы надеемся, что наш ресурс будут посещать  не только опытные специалисты, которые уже отличают «Систему компоновки данных» от «Сальдо конечное дебет», но и начинающие программисты, которые СКД не видели совсем. Вообще-то, хотелось бы верить, что начинающие возьмут в руки эту книжку (http://v8.1c.ru/metod/books/book.jsp?id=132). Но если её нет, а построить простенький отчет хочется уже сейчас, то это статья для Вас.

Пример был реализован на платформе 1С 8.2.11.232.

Где она вообще, эта СКД?

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

Кстати! Разница между внешней обработкой и внешним отчетом как раз в наличии у отчета «Основной схемы компоновки данных» и «Основной формы настроек».

Отчет

Наша задача с помощью СКД, построить простой отчет по продажам с возможностью группировки по контрагентам. Отчет будем строить в демо-базе УПП.

Начнем…

Создадим новый внешний отчет (Файлà–>Новый–>Внешний отчет):

Рис.1 Форма нового отчета

По кнопке «Открыть основную схему компоновки данных» создадим новую схему. После создания, убедимся, что создан макет:

Рис.2 Основная схема компоновки данных располагается в ветке макеты

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

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

Создадим новый набор данных – запрос. В данном примере, мы будем использовать всего один набор данных, и его название по сути ничего не значит, однако я призываю Вас делать, как и я, и давать набору данных осмысленное название. Хуже не будет :). Назовем его «Продажи»:

Рис. 3 Вкладка "Наборы данных"

Теперь необходимо создать запрос. Используем «Конструктор запроса»:

Рис.4 Кнопка "Конструктор запроса"

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

Рис.5 Конструктор запроса

Нажмем «ОК».  Так, как у нас была установлена галка «Автозаполнение», то доступные поля текущего набора данных  заполнились автоматически:

Рис.6 Вкладка "Наборы данных" с заполненными полями

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

Ресурсы

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

Что делаем? На вкладке «Настройки» жмем добавить –>новая группировка (или Ins), и в появившемся окне просто жмем «ОК»:

Рис.7 Создание новой группировки в настройках

Настроим выбранные поля для детальных записей (поле «Контрагент» пока выбирать не будем):

Рис. 8 Настройка группировки (Выбранные поля)

Теперь сохраняем наш внешний отчет,  открываем его в предприятии, и формируем:

Рис. 9 Формирование отчета с одной группировкой "Детальные записи"

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

Отчет с одной группировкой

Итак, мы уяснили, что хотим сгруппировать наши данные по номенклатуре. Давайте спросим у СКД, умеет ли она это делать? Умею, конечно, – отвечает СКД. Вы мне только скажите, по каким полям, и по какому выражению вам вывести итоги. Так вот как раз ресурсы и есть  – итоговые записи по группировкам.

Отлично, идем на вкладку ресурсы. Добавим в ресурсы «Количество» и «Стоимость». В графе выражения оставим значения по умолчанию, т.е. «Сумма(Поле)»:

Рис.10 Вкладка "Ресурсы"

Так…ресурсы указали, а группировку нет. Добавляем. Идем обратно на вкладку «Настройки» и видим нашу сиротливую группировку «Детальные записи». Отредактируем ее, указав в графе «Поле» группировку «Номенклатура» и нажмем «ОК». Заметим приятные интерфейсные изменения. Значки рядом с полями «Количество» и «Стоимость» превратились из унылых синих палочек в непонятные зеленые цилиндры J.

Сохраняем изменения и формируем отчет:

Рис.11 Отчет с одной группировкой "Номенклатура"

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

Отчет с группировкой по контрагентам

Немного усложним задачу, и сгруппируем отчет еще и по контрагентам. На вкладке «Настройка» удалим группировку «Номенклатура». Теперь создадим структуру отчета, используя «Конструктор настроек»:

Рис.12 Вызов конструктора настроек компоновки данных

Сначала выберем тип отчета. Нас вполне устраивает «Список». Далее. На следующем этапе необходимо указать поля, которые будут выводиться в отчете. Выбираем все. Далее. Необходимо выбрать группировки. Выбираем и «Контрагент» и «Номенклатура». Далее. Пункт с сортировкой пропускаем и нажимаем «ОК». У нас должна получиться примерно такая структура:

Рис.13 Вкладка "Настройки"

Сохраним и сформируем отчет:

Рис.14 Результат сформированного отчета

Отлично! Все группируется, итоги считаются.

Удачи!

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

24 Коммент.

  1. Здравствуйте.У меня немного похожий отчет.Нужно увеличить количество колонок,например,строки номенклатура,а колонки контрагент.Помогите пожалуйста!

  2. Создадим новый набор данных – запрос. (на картинке – Новый набор данных – Объект)

  3. Здравствуйте! Подскажите, пожалуйста. Допустим взять этот же отчет, только Номенклатура в нем имеет составной тип (СправочникСсылка.Спр1 и СправочникСсылка.Спр2). Как упорядочить эти элементы в отчете с учетом справочника? Заранее спасибо

    • Что есть ФИО исполнителя? Менеджер, который осуществил продажу? Из регистра Продажи такую информацию не получите, только из регистратора

  4. Уточню вопрос. Должность и ФИО необходимо проставить в конце отчета, например в документе “Ведомость на перечисление заработной платы в банк”.
    Обычно пишут “Бухгалтер /Сидоров С.С./”
    Имелось в виду именно это.

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

  6. Я разобрался спасибо.
    Хорошо бы продолжать такую статью =)

    Подскажите как в отбор положить значение системной переменной &ТекущийПользователь?

    Или хотя бы использовать хоть какую-нибудь функцию. Отбор в СКД берет все в кавычки =(

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

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

  9. Здравствуйте, у меня проблемы с СКД, через ОборотноСальдоваяВедомостьТиповой выбираю период, все работает, но я добавил на формы некоторых документов новый реквизит ДатаАудита, теперь задача вот в чем, надо чтобы ОСВ находил документы не только по реквизиту Дата а и еще по реквизиту ДатаАудита.
    Как это можно сделать? Я в СКД вроде добавил этот реквизит, но при Сформировании отчета не находит документов. Подскажите как это сделать.
    С уважением, Z-bob

Оставить комментарий

RSSКомментарии в RSS

Авторизация

Логин:
Пароль:
Регистрация

Архивы

Закладки

  • Your favorites will be here.