Сегодня 09 июля 2021 года 14 часов 00 минут. Пятница. +31
Всем доброго дня!
Как обычно, возникла острая необходимость (кровь из носа, шоб вчера було) контролировать остатки при продаже не всей продукции, а только из папки "АЛКОГОЛЬ". Привязка к папке идет потому, что там может быть не только алкоголь, но и другие виды продукции, остатки которых надо контролировать при продаже.
Партия сказала НАДО! - Комсомол ответил ЕСТЬ!
Ну что же, будем реализовывать.
Исследования конфигурации показали, что в 1С Розница 2.3 (2.3.8.27) процесс контроля остатков осуществляется в общем модуле "РозничныеПродажиСервер", процедура "ПроверитьНаличиеТоваровИСерийныхСертификатов".
Реализацию желательно сделать при помощи расширения.
В начале процедуры есть проверка
Если НЕ КонтролироватьОстаткиТоваровПриЗакрытииЧека Тогда
Возврат;
КонецЕсли;
Нас она не устраивает. Получается мы не сможем использовать тэг "после".
Придется перетаскивать всю процедуру в расширение с тэгом "вместо".
Кроме этого, в конструкцию:
Для каждого СтрокаТаблицы Из ТаблицаПоОтрицательнымОстаткам Цикл
...
КонецЦикла;
Необходимо включить условие проверки из папки "АЛКОГОЛЬ"
Придется делать запрос из ТаблицаПоОтрицательнымОстаткам с отбором по вхождению в группу "АЛКОГОЛЬ" до цикла.
Чтобы не отрубить проверку всех остатков мы комментируем условие в начале процедуры, а в условие "без проверки остатков" вкручиваем наш код с алкоголем.
Что получилось. В начале процедуры:
Перед циклом проверки:
После цикла проверки:
17 часов 05 минут
Расширение готово, надо бы оттестировать.
При тестировании ошибка:
Содержимое объекта данных может быть выбрано только во временную таблицу
ок, поместим во временную таблицу
18 часов 03 минуты
Тесты показали работоспособность модуля расширения. Можно внедрять.
Канал "Дневник программиста 1С"