Проведение документа по нескольким регистрам
В соответствии с заданием, необходимо знать, какие денежные средства были затрачены на приобретение материалов и каковы материальные запасы фирмы в денежном выражении. Руководство выразило пожелание, чтобы весь суммовой учет материалов велся по средней стоимости. Т.е. при закупке материалов они должны учитываться в ценах приобретения, а при расходе – по средней стоимости, которая рассчитывается исходя из общей суммы закупок данного материала и общего количества этого материала, находящегося в нашей фирме.
Для этих целей был использован регистр накопления СтоимостьМатериалов. Т.о. документы ПриходнаяНакладная и ОказаниеУслуги должны будут создавать движения не только в регистре ОстаткиМатериалов, но одновременно в регистре СтоимостьМатериалов, отражая изменения суммового учета.
Был создан новый объект Регистр накопления с именем СтоимостьМатериалов (рисунок 10.1). Расширенное представление списка заданы как Движения по регистру Стоимость материалов. На закладке Подсистемы отмечены Бухгалтерия, УчетМатериалов и ОказаниеУслуг. На закладке Данные создано одно измерение – Материал с типом СправочникСсылка.Номенклатура и один ресурс – Стоимость с типом Число, длина 15, точность 2.
Рисунок 10.1- Стоимость Материалов
Оборотные регистры накопления
Регистры накопления могут быть регистрами остатков и регистрами оборотов. Существующие в конфигурации регистры накопления ОстаткиМатериалов и СтоимостьМатериалов являются регистрами остатков. При создании отчета Материалы в конструкторе запроса видно, что для таких регистров система создает три виртуальные таблицы: таблица остатков, оборотов и совокупная таблица остатков и оборотов. Оборотный регистр очень похож на регистр остатков, только накапливает он обороты, остатки ему безразличны. Поэтому единственная виртуальная таблица будет таблицей оборотов.
По каждому из измерений регистра накопления остатков ресурсы обязательно должны изменяться в обе стороны: приход и расход. Не должно существовать таких измерений, по которым осуществляется только приход или только расход. Нарушение этого принципа приведет к замедлению работы системы. Для реквизитов же регистра накопления этот принцип не важен. По реквизитам регистра ресурсы могут только приходоваться или только расходоваться.
Был создан новый регистр накопления с именем Продажи, вид – Обороты (рисунок 11.1). Расширенное представление списка – Движение по регистру Продажи. На вкладке Подсистемы отмечены Бухгалтерия, УчетМатериалов, ОказаниеУслуг. На вкладке Данные созданы измерения регистра:
− Номенклатура, тип СправочникСсылка.Номенклатура;
− Клиент, тип СправочникСсылка.Клиенты;
− Мастер, тип СправочникСсылка.Сотрудники.
Были созданы три ресурса:
− Количество, тип Число, длина 15, точность 2;
− Выручка, тип Число, длина 15, точность 2;
− Стоимость, тип Число, длина 15, точность 2.
Рисунок 11.1 - Продажи
Отчёты
Система поддерживает два способа доступа к данным, хранящимся в Базе Данных:
− Объектный (для чтения и записи),
− Табличный (для чтения).
Объектный способ реализован через использование объектов встроенного языка. Важная особенность этого способа - при обращении к объекту встроенного языка, мы обращаемся к совокупности данных в Базе Данных как к единому целому. Например, объект ДокументОбъект.ОказаниеУслуги будет содержать значения всех реквизитов документа ОказаниеУслуги и всех его табличных частей. Объектный способ обеспечивает сохранение целостности объектов, их кэширование, вызов соответствующих обработчиков событий и т.д.
Табличный способ доступа к данным реализован с помощью запросов к Базе Данных на языке запросов. В данном способе разработчик получает возможность оперировать отдельными полями таблиц. Этот способ предназначен для отбора, группировки, сортировки, объединения выборок, расчета итогов и т.д. Т.е. оптимизирован для обработки больших объемов информации в Базе Данных и получения данных по заданным критериям.
Для работы с запросами используется объект встроенного языка Запрос. Он позволяет получать информацию, хранящуюся в полях Базы Данных в виде выборки. Исходную информацию запрос получает из набора таблиц. Все таблицы, которыми оперирует язык запросов, можно разделить на группы.
Реальные таблицы содержат данные одной реальной таблицы в Базе Данных. Виртуальные таблицы формируются в основном из данных нескольких таблиц Базы Данных. Общим для виртуальных таблиц является то, что им можно задать ряд параметров, определяющих, какие данные будут в них включены.
Объектные (ссылочные) таблицы представляют информацию ссылочных типов данных (справочники, документы, планы видов характеристик и т.д.). А необъектные (нессылочные) – все остальные типы данных (константы, регистры и т.д.). Отличительной особенностью объектных таблиц является то, что они включают в себя поле Ссылка, содержащее ссылку на текущую запись. Для таких таблиц возможно получение пользовательского представления объекта.
Текст запроса может состоять из нескольких частей:
− Описание запроса,
− Объединение результатов,
− Упорядочивание результатов
− Автоупорядочивание,
− Описание итогов.
Обязательная часть запроса – первая. Остальные присутствуют по необходимости. Описание запроса определяет источники данных, поля выборки, группировки и т.д.
Система компоновки данных предназначена для создания произвольных отчетов в системе 1С: Предприятие и состоит из нескольких основных частей. Исходные данные для компоновки отчета содержит в себе схема компоновки данных. Это наборы данных и методы работы с ними. Отчет системы компоновки имеет сложную иерархическую структуру и может состоять из различных элементов (группировки, таблицы, диаграммы). Пользователь может изменить существующую структуру отчета или создать новую, может настроить необходимый ему отбор, оформление элементов структуры, получить расшифровку по каждому элементу и т.д.
Последовательность работы системы компоновки можно представить так: Разработчик создает схему компоновки данных и настройки по умолчанию. На основе этого компоновщик макета создает макет. Процессор компоновки выбирает данные из информационной базы согласно макету, собирает и оформляет эти данные. Результат компоновки обрабатывается процессором вывода, и пользователь получает результирующий табличный документ.
Итак, в этой работе был создан отчет Реестр документов «Оказание услуги»с именем – РеестрДокументовОказаниеУслуги (рисунок 12.1). Установлено свойство Расширенное представление как Список оказанных услуг для представления отчета в интерфейсе программы. Создана схема компоновки данных для отчета. В конструкторе схемы компоновки создан Набор данных – запрос. В качестве источника данных для запроса выбрана объектная (ссылочная) таблица документа ОказаниеУслуги.
Рисунок 12.1 – Отчет – Реестр документов «Оказание услуги»
На примере этого отчета было показано, как выбрать данные из одной таблицы и как вывести их в определенном порядке, а также, как использовать расшифровку в готовом отчете. Этот отчет выводит список существующих в базе данных документов ОказаниеУслуги в порядке их дат и номеров.
Иерархическая структура отчета может содержать в различных сочетаниях три основных элемента:
− Группировка – для вывода информации в виде обычного линейного отчета.
− Таблица – для вывода информации в виде таблицы.
− Диаграмма – для вывода информации в виде диаграммы
Далее был создан Отчет Рейтинг услуг (рисунок 12.2), который содержит информацию о том, выполнение каких услуг принесло фирме наибольшую прибыль в указанном периоде. В качестве источника данных для запроса была выбрана объектная (ссылочная) таблица Номенклатура и виртуальная таблица регистра накопления Продажи.Обороты. Для этого отчета были заданы условия отбора записей. В этом отчете нужны итоговые значения выручки для каждой услуги. Для этого нужно определить поля ресурсов отчета. Ресурсы в системе компоновки – поля, значения которых рассчитываются на основании детальных записей, входящих в группировку. По сути, ресурсы являются групповыми или общими итогами отчета. Также были установлены параметры Начало Периода и Конец Периода. Для этого отчета удобно выделять цветом определенные позиции. Сделать это можно с помощью условного оформления.
Рисунок 12.2 – Рейтинг услуг
Третий отчет – ВыручкаМастеров. Этот отчетсодержит информацию о том, какая выручка была получена благодаря работе каждого из мастеров, с детализацией по всем дням в выбранном периоде и разворотом по клиентам, обслуженным в каждый из дней. На примере этого отчета показано, как строить многоуровневые группировки в запросе и как обходить все даты в выбранном периоде. Также показана настройка отдельных элементов структуры отчета, вывод данных в диаграмму и создание несколько вариантов отчета в конфигураторе.
Для анализа работы мастеров за определенный период может понадобиться представить информацию в более наглядном виде. Например, в виде диаграммы, отражающей вклад каждого тренера в общую выручку предприятия. Поэтому был создан другой вариант отчета ВыручкаМастеров в виде диаграммы (рисунок 12.3).
Рисунок 12.3 – Выручка мастеров
Диаграмма является совокупностью точек, серий и значений серий в точке. В качестве точек используются моменты или объекты, для которых мы получаем значения характеристик, а в качестве серий – характеристики, значения которых нас интересуют. На пересечении серии и точки находится значение диаграммы. Например, диаграмма продаж видов номенклатуры по месяцам будет состоять из точек – месяцев, серий – видов номенклатуры и значений – оборотов продаж.
Следующий отчет – Перечень услуг – содержит информацию о том, какие услуги и по какой цене оказывает фирма (рисунок 12.4). На его примере была разобрана возможность получения последних значений из периодического регистра сведений и с возможность вывода иерархических справочников.
Рисунок 12.4 – Перечень Услуг
Существуют следующие типы иерархии для группировки отчета:
− Без иерархии – в группировке выводятся только неиерархические записи.
− Иерархия – выводятся неиерархические и иерархические записи.
− Только иерархия – выводятся только иерархические (родительские) записи.
Следующий отчет – Рейтинг клиентов – показывает в графическом виде доход от оказания услуг каждому из клиентов за все время работы фирмы (рисунок 12.5). На его примере демонстрируется возможность использования вычисляемого поля и вывод результата в виде круговой диаграммы и гистограммы.
Рисунок 12.5 - Рейтинг клиентов
Для этого отчета потребовалось создать дополнительное поле для отображения дохода от оказания услуг в разрезе клиентов. Для этого в системе компоновки есть возможность определения вычисляемого поля. Вычисляемое поле – дополнительное поле схемы компоновки, значения которых будут вычисляться по некоторой формуле.
Последним отчетом стал Универсальный. На примере создания универсального отчета, был продемонстрирован вывод данных в таблицу. Было показано как сделать отчет максимально универсальным, чтобы позволить пользователю в режиме 1С: Предприятие, не обращаясь к полным настройкам отчета (не выполняя Все действия – Изменить вариант), изменять его структуру и внешний вид. Например, поменять местами строки и колонки таблицы или изменить данные, выводящиеся в ячейках таблицы.
Не были заданы строки и колонки этой таблицы и список выбранных полей, потому что целью было предоставить полную свободу пользователю в этих действиях. Для этого в структуре элементов отчета была выделена Таблица и нажата кнопка Свойства элемента пользовательских настроек. Установлены галочки для Выбранные поля, Группировки строк и Группировки колонок. Оставлены их свойства по умолчанию. Так была предоставлена пользователю возможность самостоятельно определять состав выбранных полей, группировок строк и колонок таблицы непосредственно в отчетной форме перед формированием отчета.