Сборник лабораторных работ для студентов учебных заведений, изучающих программирование в системе С: Предприятие



бет62/63
Дата18.12.2022
өлшемі36,29 Mb.
#57878
түріЛабораторная работа
1   ...   55   56   57   58   59   60   61   62   63
«В системе нужно регистрировать продажу товара».
Добавим новый документ «ПродажаТоваров» путем копирования документа «ПоступлениеТоваров».

Должен появиться документ «ПоступлениеТоваров1». Переименуем его в «ПродажаТоваров» и перейдем на вкладку «Данные».

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

Теперь следует описать логику проведения данного документа. Для этого нужно открыть модуль объекта, который находится на вкладке «Прочее».

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

В документ «ПродажаТоваров» пользователь должен добавлять информацию о товаре и количестве, которое он хочет продать. В первую очередь, система должна проанализировать, достаточно ли каждого вида товаров для продажи. Если достаточно, тогда нужно списывать товар партиями по возрастанию срока годности.
Для проведения данного анализа необходимо получить данные как из документа, так и из регистра накопления. Получим эти данные с помощью конструктора запросов.
Этот конструктор можно открыть из контекстного меню щелчком правой кнопки мыши по области модуля. Данный конструктор обязательно должен быть вызван внутри процедуры «ОбработкаПроведения».

Соглашаемся с предложением системы создать новый запрос.
Открывается окно конструктора запроса с обработкой результата. Переходим на вкладку «Таблицы и поля». Здесь нам нужно выбрать поля табличной части документа.

Переходим на вкладку «Группировка» и сгруппируем товары между собой: вдруг пользователь ввел несколько отдельных строк с одинаковым товаром?

Далее переходим на вкладку «Условие» и поставим условие на ссылку. Таким образом, запрос будет обрабатывать табличную часть только того одного документа, чью ссылку мы передадим в запрос.

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

Переходим на вкладку «Индекс» и проиндексируем таблицу по полю «Товар», поскольку далее нужно будет соединить несколько таблиц.

Переходим на вкладку «Пакет запросов» и добавляем новый запрос.

Снова открывается вкладка «Таблицы поля». Здесь нужно выбрать уже остатки из регистра накопления.

Полученные данные тоже положим во временную таблицу. Переходим на вкладку «Дополнительно» и создаем временную таблицу «ОСТ».

Переходим на вкладку «Индекс» и снова индексируем по товару.

Осталось лишь добавить последний запрос, который сможет объединить в себе данные из двух получившихся временных таблиц. Вкладка «Пакет запросов», кнопка «Добавить».

Необходимо выбрать следующие поля из двух таблиц:

Теперь нужно перейти на вкладку «Связь» и связать между собой две временные таблицы по полю «Товар».

Далее переходим на вкладку «Порядок» и упорядочиваем элементы в запросе по товару и сроку годности.

Далее переходим на вкладку «Итоги» и снова просуммируем все товары.

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

Пример


Достарыңызбен бөлісу:
1   ...   55   56   57   58   59   60   61   62   63




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет