МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики» Кафедра КИС АРОЗвКИС Отчёт по лабораторной работе №3 «Организация по печати методических пособий» Выполнил: студент 4 курса, группы БВТ2004 Куликов П.М. Москва 2023 Цель работы: Контроль остатков списания методических пособий. Задачи работы: 1) 2) 3) 4) 5) Создать необходимые справочники Создать необходимые документы Создать необходимые регистры накопления Создать необходимые отчеты Выполнить настройку созданных объектов конфигурации Задание: Требования заказчика: В уже существующей программе возникла проблема несвоевременной закупки, а также отсутствие контроля некорректного списания методических пособий «в минус». В связи с этим необходимо реализовать контроль отрицательных остатков при попытке списания такого количества методических пособий, которого физически нет на складах издания. Дополнительные требования: После успешного списания методических пособий необходимо выводить сообщение пользователю, если количество методических пособий после списания менее 10 штук. Выполнение: Для реализации контроля остатков при списании использована «новая методика контроля остатков». В модуле объекта написан следующий код: Движения.ОстаткиУчебныхПособий.Записывать = Истина; Для Каждого ТекСтрокаУчебныеПособия Из УчебныеПособия Цикл Движение = Движения.ОстаткиУчебныхПособий.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Склад = Склад; Движение.Пособие = ТекСтрокаУчебныеПособия.Пособие; Движение.Количество = ТекСтрокаУчебныеПособия.Количество; КонецЦикла; Движения.ОстаткиУчебныхПособий.Записывать = Истина; Движения.Записать(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОстаткиУчебныхПособийОстатки.Склад КАК Склад, | ОстаткиУчебныхПособийОстатки.Пособие КАК Пособие, | -ОстаткиУчебныхПособийОстатки.КоличествоОстаток КАК Дефицит |ИЗ | РегистрНакопления.ОстаткиУчебныхПособий.Остатки(&МоментВремени, Склад = &Склад) КАК ОстаткиУчебныхПособийОстатки |ГДЕ | ОстаткиУчебныхПособийОстатки.КоличествоОстаток < 0"; ГраницаКонтроля = Новый Граница(МоментВремени(), ВидГраницы.Включая); Запрос.УстановитьПараметр("МоментВремени", ГраницаКонтроля); Запрос.УстановитьПараметр("Склад", Склад); РезультатЗапроса = Запрос.Выполнить(); Если Не РезультатЗапроса.Пустой() Тогда Отказ = Истина; ВыборкаОшибки = РезультатЗапроса.Выбрать(); Пока ВыборкаОшибки.Следующий() Цикл Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Товара "+ВыборкаОшибки.Пособие+" недостаточно на складе "+ВыборкаОшибки.Склад+", в количестве "+ВыборкаОшибки.Дефицит+" шт."; Сообщение.Сообщить(); КонецЦикла; Иначе СписанныеУчебныеПособия = УчебныеПособия.ВыгрузитьКолонку("Пособие"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОстаткиУчебныхПособийОстатки.Пособие КАК Пособие |ИЗ | РегистрНакопления.ОстаткиУчебныхПособий.Остатки(&МоментВремени, Склад = &Склад) КАК ОстаткиУчебныхПособийОстатки |ГДЕ | ОстаткиУчебныхПособийОстатки.КоличествоОстаток < 10"; ГраницаКонтроля = Новый Граница(МоментВремени(), ВидГраницы.Включая); Запрос.УстановитьПараметр("МоментВремени", ГраницаКонтроля); Запрос.УстановитьПараметр("Склад", Склад); РезультатЗапроса = Запрос.Выполнить(); Если Не РезультатЗапроса.Пустой() Тогда ВыборкаСписания = РезультатЗапроса.Выбрать(); Пока ВыборкаСписания.Следующий() Цикл Если СписанныеУчебныеПособия.Найти(ВыборкаСписания.Пособие) <> Неопределено Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Товара "+ВыборкаСписания.Пособие+" на складе "+Склад+", менее 10 шт."; Сообщение.Сообщить(); КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; Результат работы кода при списании большего количества пособий, чем имеется на складе: Результат работы кода при остатке менее 10 пособий после списания: Вывод: В ходе выполнения задания, был изучен контроль остатков при списании методических пособий.