Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт по ЛР.docx
Скачиваний:
3
Добавлен:
08.12.2018
Размер:
4.64 Mб
Скачать

Отчёт о выполнении лабораторной работы №5

5.1. Повышение скорости проведения

5.1.1) Я открыл конструктор запроса с обработкой результата документа «Оказание Услуги» (рис.48):

рис.48

5.1.2) Далее перенёс «Перечень Номенклатуры» в таблицы и выбрал из нее поля «Номенклатура», «Вид Номенклатуры», «Количество», «Стоимость», «Сумма» (рис.49):

рис.49

5.1.3) Потом создал «Условие» «ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка» (рис.50):

рис.50

5.1.4) Выполнил «Группировку» строк таблицы документа, для этого перенес поля в групповое поле и суммируемое поле (рис.51):

рис.51

5.1.5) Создал псевдонимы, как было показано в 4 лабораторной работе (рис.52):

рис.52

5.1.6) В итоге получил сформулированный запрос (рис.53):

рис.53

5.1.7) После изменения модуля объектов по данным, которые я вводил в Псевдонимах, я получил такой программный код (рис.54):

рис.54

5.1.8) В итоге в режиме отладки видно, что ошибок не произошло (рис.55):

рис.55

Вывод: 5.1: Путём этих действий я избавился в процедуре проведения от считывания всех данных объекта «Номенклатура», тем самым оптимизировав выполнение процедуры проведения.

5.2. Автоматический расчет стоимости

5.2.1) Затем я удалил реквизит «Стоимость», за неимением надобности (рис.56):

рис.56

5.2.2) Так же удалил «стоимость» из Формы документа «Оказание Услуги» (рис.57):

рис.57

5.2.3) В модуле объекта создал «Менеджер Временных Таблиц» (рис.58):

рис.58

5.2.4) Затем создал временную таблицу в конструкторе запросов (рис.59):

рис.59

5.2.5) В результате сформировался вот такой запрос временной таблицы (рис.60):

рис.60

5.2.6) Потом я создал запрос, чтобы иметь возможность обращаться к созданной ранее временной таблице (рис.61):

рис.61

5.2.7) Затем создал 4 поля во временной таблице: «Номенклатура», «ВидНоменклатуры», «КоличествоВДокументе», «СуммаВДокументе» и задал им типы значения (рис.62):

рис.62

5.2.8) Потом получил такой запрос (рис.63):

рис.63

5.2.9) Создал связь между временной таблицей и стоимостью (рис.64):

рис.64

5.2.10) В конце получил такой фрагмент процедуры (рис.65):

рис.65

5.2.11) Возможна ситуация, когда поле Количество будет равно 0, а на 0 делить нельзя. Поэтому сразу после начала цикла обхода результата запроса я рассчитал стоимость для текущей номенклатуры (рис.66):

рис.66

5.2.12) Так же я добавил 2 строки в модуль объекта (рис.67):

рис.67

Вывод: 5.2: Чтобы в обработчике проведения документа прочитать данные базы данных без учета предыдущих движений, которые мог выполнять документ, нужно перед чтением записать пустые наборы записей в те регистры, из которых мы собираемся читать.

5.3. Как быстро просмотреть результат запроса

5.3.1) Добавил в изменяемый модуль объекта строку (рис.68):

рис.68

5.3.2) Затем создал точку останова (рис.69):

рис.69

5.3.3) После будет остановлено использование (рис.70):

рис.70

5.3.4) Для того, чтобы исправить, нажал «вычислить значение» в «отладке» (рис.71):

рис.71

5.3.5) Затем открылось окно просмотра выражений, в котором будет находиться таблица значений ТЗ (рис.72):

рис.72

5.3.6) После выгрузил точку останова и закомментировал строку, для нормальной работы программы (рис.73):

рис.73

Вывод 5.3: После просмотра, таким образом результата запроса, нужно не забыть снять точку останова в процедуре проведения документа и закомментировать (или удалить) добавленную нами строку, выгружающую результат запроса в таблицу значений, поскольку для нормальной работы документа она не нужна.