- •Оборотный регистр накопления
- •Необходимость создания еще одного регистра
- •Создание оборотного регистра накопления Продажи
- •Изменение процедуры проведения документа Оказание услуги
- •Создание отчетов
- •Работа с запросами
- •Источники данных запросов
- •Язык запросов
- •Система компоновки данных
- •Отчет Реестр документов Оказание услуги
- •Перейдем к настройке схемы компоновки данных.
Изменение процедуры проведения документа Оказание услуги
На этот раз мы не будем использовать конструктор движений документа, а внесем необходимые дополнения прямо в обработчик события ОбработкаПроведения документа ОказаниеУслуги.
Откроем в конфигураторе модуль объекта конфигурации Документ ОказаниеУслуги и найдем в нем процедуру обработчика события ОбработкаПроведения. (рис.5)
Рис.5 . Поэтапное обращение к модулю объекта
Сразу после окончания первого цикла создадим еще один цикл обхода табличной части и команду записи движений регистра Продажи.
Листинг 1. Добавление цикла обхода табличной части
и записи движений регистра Продажи
…
КонецЦикла;
Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
// Регистр Продажи
КонецЦикла;
//}}__К0НСТРУКТ0Р_ДВИЖЕНИЙ_РЕГИСТРОВ
Теперь в тело созданного нами цикла вставим команды создания движений регистра Продажи.
Листинг 2. Команды создания движений регистра Продажи
Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
// Регистр Продажи
Движение = Движения.Продажи.Добавить();
Движение.Период=Дата;
Движение.Номенклатура=ТекСтрокаПереченьНоменклатуры.Номенклатура;
Движение.Клиент=Клиент;
Движение.Мастер=Мастер;
Движение.Количество=ТекСтрокаПереченьНоменклатуры.Количество;
Движение.Выручка=ТекСтрокаПереченьНоменклатуры.Сумма;
Движение.Стоимость=ТекСтрокаПереченьНоменклатуры.Стоимость *
ТекСтрокаПереченьНоменклатуры.Количество;
КонецЦикла;
Все добавленные конструкции вам уже хорошо известны. Обратите внимание лишь на то, что у оборотного регистра отсутствует свойство ВидДвижения, поскольку отражение вида движения (приход или расход) имеет смысл лишь при учете остатков. В случае регистра оборотов нас интересует только значение, которое должно быть записано в ресурс регистра.
Запустим 1С:Предприятие в режиме отладки и перепроведем все документы Оказание услуги. Движение этих документов по регистру Продажи должны иметь следующий вид: (рис.6,7)
Рис. 6. Движения документов
Рис. 7. Движения документов
Теперь у нас есть практически вся необходимая информация для анализа деятельности ООО «Респект продакшн». Далее создадим несколько отчетов, представляющих нам итоговую информацию о работе предприятия.
Создание отчетов
Один из мощных инструментов платформы 1С:Предприятие - система компоновки данных.
Рассмотрим построение нескольких отчетов, которые будут использоваться в нашей конфигурации, и на их примере объясним основные возможности системы компоновки данных.
Любой отчет, как правило, подразумевает получение сложной выборки данных, сгруппированных и отсортированных определенным образом. Система компоновки данных представляет собой мощный и гибкий механизм, позволяющий выполнить все необходимые действия - от получения данных из различных источников, до представления этих данных в виде, удобном для пользователя.
Чаще всего исходные данные, необходимые для отчета, находятся в базе данных. Для того, чтобы указать системе компоновки данных, какая информация и откуда должна быть получена, используется язык запросов системы 1С:Предприятие 8.1.
На этапе разработки отчета можно по умолчанию задать настройки отчета для того, чтобы пользователь мог сразу же запустить отчет на выполнение.
В то же время пользователь может самостоятельно изменить настройки отчета и выполнить его. При этом система компоновки данных сгенерирует другой запрос и другим образом представит конечные данные - в соответствии с новыми настройками, заданными пользователем.
Познакомимся с общими сведениями о языке запросов системы 1С:Предприятие 8.1 и о системе компоновки данных. Затем на примерах создания конкретных отчетов, мы научимся использовать систему компоновки данных для решения различных практических задач.