- •Отчет по Лабораторным работам
- •Отчёт о выполнении лабораторной работы №1
- •Отчёт о выполнении лабораторной работы №2
- •Отчёт о выполнении лабораторной работы №3
- •Отчёт о выполнении лабораторной работы №4
- •Отчёт о выполнении лабораторной работы №5
- •5.1. Повышение скорости проведения
- •5.2. Автоматический расчет стоимости
- •5.3. Как быстро просмотреть результат запроса
- •5.5. Контроль остатков
- •5.6. План видов характеристик
- •5.7. Создание характеристик номенклатуры
- •5.8. Доработка учетных механизмов
- •5.9. Приход/расход номенклатуры с учетом характеристик
- •Отчёт о выполнении лабораторной работы №6
- •6. 8. Добавление документа о начислениях
- •6. 9. Зависимость по базовому периоду
- •6. 11. Отчет о начислениях сотрудникам
- •6. 12. Диаграмма Ганта
Отчёт о выполнении лабораторной работы №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: После просмотра, таким образом результата запроса, нужно не забыть снять точку останова в процедуре проведения документа и закомментировать (или удалить) добавленную нами строку, выгружающую результат запроса в таблицу значений, поскольку для нормальной работы документа она не нужна.