Использование регистров для получения данных о продаже.
Лабораторная работа №10
Получение информации из базы данных. Алгоритмы проведения документов
Получение данных из регистров
Цели работы:
1. Получение информации из базы данных с помощью запросов.
2. Построение запросов из регистров накопления.
3. Построение отчета по взаиморасчетам между компанией и поставщиками, покупателями с помощью виртуальной таблицы регистров «Остатки».
4. Получение остатков на заданную пользователем дату.
5. Построение отчета по продажам на основе виртуальной таблицы регистров «Обороты».
6. Работа с вложенными запросами. Построение отчета по продажам, который использует подзапросы.
7. Создание регистра, учитывающего остатки товаров на складах. Проведение документов по этому регистру.
Теоретическая часть:
Чтение остатков из регистров
Регистр более сложный объект, чем справочник или документ. У регистров есть виртуальные таблицы. Большинство отчетов должно строиться на базе регистров. Преимуществом регистров является то, что они хранят просуммированные данные (остаток по каким-либо ресурсам). Для регистра есть несколько таблиц.
Практическая часть:
Построение отчета по взиморасчетам.
Отчет будет показывать долги покупателя и долги перед поставщиком.
Создать отчет ОстаткиВзаиморасчетов
Включить отчет в подсистему Продажи. Открыть схему компоновки данных.
|
|
Создать новый запрос. Открыть конструктор запросов.
Обратиться к ветке РегистрНакопления.
РегистрНакопления представлен четырьмя таблицами.
Взаиморасчеты – физическая таблица записей, она используется редко, т.к. здесь существует виртуальная таблица Остатки, с ее помощью можно получить остатки, в чем и заключается задача.
Выберем данную таблицу:
Доступен реквизит: Контрагент. Система сама добавила СуммаОстаток:
Выбрать оба поля:
Дать псевдоним полям. СуммаОстаток переименовать в Долг:
Запрос готов. Выполнить настройку варианта отчета
Отчет выводится в форме списка. Выбираются два поля:
Группировки не настраивать. Изменить порядок: сначала Контрагент, затем Долг.
Запустить систему.
Положительные числа – долг клиента перед нашей организацией, дебеторская задолженность; отрицательные числа – наш долг перед поставщиком – кредиторская задолженность.
Задача: получить общий итог по ресурсу.
Необходимо определить ресурс. Указывается величина, которая будет суммироваться.
Перезапустить приложение.
Задача: построить отчет как по всем контрагентам, так и по выбранным, т.е. предоставить пользователю возможность фильтрации отчета по контрагентам. Существует несколько способ. Один из способов – настройка фильтра непосредственно в запросе.
|
|
Аналогичная задача решалась, когда ограничивались продажи за период.
Рассмотрим другой пример: прейти в Настройки, Настройки вариантов отчета.
Перейти на закладку Отбор.
Перенести Контрагента, поставить Условие – В списке, т.е какая операция применяется. По умолчанию отключить флажок Отбор.
Чтобы отбор был доступен в форме отчета, нажать на кнопку «Свойства элементов пользовательских настроек» и включить в пользовательские настройки.
Перезапустить приложение.
Если в фильтре заполнить в списке «МебельРозница» и «МебельОпт»
Автоматически проставился флажок отбора.
Модифицировать построенный отчет таким образом, чтобы пользователь мог получать дату, на которую выбирать остатки. Дата сейчас нигде не задается, так что остатки будут выдаваться на момент последней операции в системе.
При формировании есть особенность у виртуальных таблиц регистров.
Вызвать конструктор запроса.
Виртуальные регистры обладают параметрами, для них доступна кнопка, с помощью которой можно вызвать параметры виртуальной таблицы:
|
|
Можно задать значение периода и условие, но система компоновки данных знает, что у виртуальных таблиц есть параметр Период, поэтому этот параметр был автоматически добавлен в схему компоновки данных.
Остается включить данный параметр в пользовательские настройки
Составить выражение: привести к концу периода.
Выполнить еще одну модификацию: указать состав – только Дата.
Запустить приложение. Отчеты àОстатки взаиморасчетов
Если немного изменить время документа на 23:59:59
и переформировать отчет, то данные в отчете будут пустые. Особенность системы заключается в следующем: все документы в данном случае на 23:59:59 находятся или старше или младше на 1 сек. Поэтому, когда получаем остатки на конкретную секунду, система не включает документы, проведенные в данную секунду и неважно, где эта секунда располагается: в конце дня или в середине дня. Чтобы получить корректный остаток, необходимо получить данные на следующую секунду (в конкретном случае на нулевую секунду следующего дня). Это особенность регистра накопления при получении остатков.
Необходимо в выражении добавить секунду к указанной дате. Можно обратиться к справке:
|
|
ДобавитьКДате(КонецПериода(&Период.”День”).”Секунда”.1)
Запустить систему, переформировать отчет.
Использование регистров для получения данных о продаже.
Ранее был создан регистр накопления Продажи. Вид регистра Обороты.
Для него существует одноименная таблица, которая позволяет получить оборот ресурсов за указанный период.
Создать новый отчет, который будет называться ПродажиТоваров:
Включить его в подсистему Продажи
Открыть схему компоновки данных
Открыть Конструктор запроса
У регистра ПродажиОбороты существует одна виртуальная таблица, которая позволяет получить обороты
Перенести следующие поля:
Указать псевдонимы
Запрос построен – ОК.
Определить ресурсы
Нажать на кнопку >> все ресурсы перенесутся
Обратиться к настройкам
Вывести отчет в виде списка.
Настроить группировку по Клиенту
Система сама указывает на НачалоПериода и КонецПериода
Необходимо через Выражение привести КонецПериода к концу периода – на конец дня.
В виртуальной таблице Обороты нет такого как в виртуальной таблице Остатки, т.е. не нужно добавлять лишнюю секунду (данные получаются на конец секунды).
Разместить эти параметры в пользовательских настройках, чтобы они были доступны пользователю для заполнения
Запустить приложение
Вложенные запросы
Вложенный запрос или подзапрос.
Часто вложенные запросы применяются в параметрах виртуальной таблицы. С помощью них возможно организовать фильтрацию выходных данных.
Задача: получить продажи по товарам табличной части заданного документа.
В отчете будет выбираться документ, например, Реализация товаров и услуг.
Если выберем документ с номером 2, то в него должен попасть Стол журнальный и Стол обеденный
Создать еще один документ, где будет указана другая позиция номенклатуры Стул высокий
Провести этот документ.
Создать новый отчет, включить его в подсистему Продажи.
Создать схему компоновки данных, построить запрос, включив необходимые поля.
Настроить псевдонимы:
КоличествоОборот = Количество
СуммаОборот = Сумма
Перейти на закладку Таблицы и поля, обратиться к параметрам виртуальной таблицы
Наряду с указанием периода, можно задать Условие. Нажать на кнопку выбора. Откроется окно построения условия, которое накладывается на измерения.
Номенклатура должна входить в список товаров табличной части.
Для этого используется оператор В( ) – оператор вхождения. В скобках указывается список. Список формируется с помощью еще одного вложенного запроса.
В этих скобках необходимо обратиться к табличной части определенного документа. Для этого выделить сначала пробел в скобках и нажать правую кнопку мышки. Вызывается вложенный Конструктор запроса.
Система предложит создать новый запрос, согласиться с этим, ответив «Да». Откроется окно вложенного запроса. Обратиться к табличной части Документа. Выбрать таблицу Товары.
Необходимо указать условие конкретного Документа. Перейти на закладку Условия. Здесь есть Ссылка, по которой можно организовать фильтрацию.
Переименовать Ссылка в ДокументПродажи. После нажатия на ОК сформируется запрос
Нажать на ОК.
Нажав на ОК, сохраняются параметры виртуальной таблицы.
Можно увидеть, что прописаны параметры условия.
Переключиться на закладку Параметры.
Снять ограничение доступности у ДокументПродажи и запретить незаполненные значения.
Перейти на закладку Ресурсы.
Перейти в Настройки.
Создать вариант представления отчета, указать все поля.
Нажать на ОК.
Указать, что ДокументПродажи установлен, а само значение будет определять пользователь
Включить пользовательские настройки. Запустить приложение.
3. Учет остатков товаров
Регистр накопления вида «Остатки»:
- Измерения : Номенклатура, Склад;
- Ресурсы : Количество.
Проведение документов:
- Поступление товаров и услуг;
- Реализация товаров и услуг.
Обратиться к ветке РегистрНакопления. Создать новый регистр под названием ТоварыНаСкладах, Вид регистра Остатки:
Регистратоми являются: ПоступлениеТОваровИУслуг (приход товара) и РеализацияТОваровИУслуг (расход по этому регистру).
Определить измерения:
1) Номенклатура
2) Склад
Ресурс : Количество
Регистр создан. Обеспечить проведение документа по этому регистру.
1) ПоступлениеТоваровИУслуг
Перейти в область Движения. Обратиться к Конструктору движений.
Добавить новый регистр ТоварыНаСкладах,
Включить его в подсистему: Закупки.
Тип движения: Приход Движение выполняется по табличной части
Нажать на кнопку «Заполнить выражения»
Сопоставить Номенклатуру:
Нажать на ОК. Выполняются Движения
Обходится каждая строка табличной части и присваиваются значения измерений.
2) Документ РеализацияТоваровИУслуг
Выполнить аналогичные действия, что и в пункте 1:
Сейчас необходимо выполнить движение Расход.
Заполнить Выражение
Запустить систему в пользовательском режиме.
Перепровести все документы Поступление товаров и услуг и Реализация товаров и услуг для того, чтобы заполнились данные в регистрах.
Можно отметить нужные документы
воспользоваться меню Еще и выбрать Провести.
соответствующие документы будут проведены
Но у нас нет списка документов, где есть и Поступление и Реализация.
Обратиться к главному меню àВсе функции
Обратиться к группе команд Стандартные à команда Проведение документов:
Здесь указывается, какие типы документов будут проведены
а также установить флажок «Перепроводить проведенные» и снять флажок «Проводить непроведенные». Период: по умолчанию указан месяц.
Расширить его, допустим, текущий год, нажать на кнопку «Провести».
После этого движения в регистрах заполнились.
Можно проследить движения на складах.
Есть движения Расход и есть движения Приход.
Имеется некорректность. Есть реализация товара, которого еще не было на складе.
Необходимо обеспечить контроль остатков.
Самостоятельное задание:
Создать в ООО «КанцОптТорг» отчет «Остатки товаров по данным документа». Отчет должен выводит остатки по товарам на указанную пользователем дату. При этом в форме отчета пользователь должен указать документ «Реализация товаров», именно по товарам из табличной части этого документа необходимо выводить данные об остатках.
Оценивание работы:
На оценку «4» : все рассмотренные задания
На оценку «5» : самостоятельное задание
Дата добавления: 2020-11-15; просмотров: 246; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!