1C:Бухгалтерия
1С:CRM ПРОФ, КОРП
1С:ERP Управление предприятием 2
Платформа 1С v8.3
Корп. решения 1С
Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. В УТ 10.3. Написал запрос с пакетам. Все работает. Сам код показывает сообщению пользователя когда остаток на складах меньше количество минимум. Это работает но есть токая проблема что если в документе есть 2 или более товары тогда код выбирает только первый из них. И не проверяет остальные товары. С отладкчиком смотрел но ошибку не нашло. Можете дать подсказку что где может быть проблем?
Спасибо всем за ранее. Документ - Реализация Товаров Услуг - Модуль Объекта - Процедура Обработка Проведения.
Спасибо всем за ранее. Документ - Реализация Товаров Услуг - Модуль Объекта - Процедура Обработка Проведения.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Мин КАК Минимум
|ПОМЕСТИТЬ втМинимум
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка.ЭтоГруппа = ЛОЖЬ
| И Номенклатура.Ссылка В(&Номенклатура)
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура,
| ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток
|ПОМЕСТИТЬ втОстаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура В(&Номенклатура)) КАК ТоварыНаСкладахОстатки
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| втОстаток.Номенклатура,
| ЕСТЬNULL(втМинимум.Минимум, 0) КАК Минимум,
| ЕСТЬNULL(ВЫРАЗИТЬ(втОстаток.КоличествоОстаток КАК ЧИСЛО(15, 2)), 0) КАК Остаток
|ИЗ
| втОстаток КАК втОстаток
| ЛЕВОЕ СОЕДИНЕНИЕ втМинимум КАК втМинимум
| ПО втОстаток.Номенклатура = втМинимум.Ссылка";
тзТовары = Товары.Выгрузить();
тзТовары.Свернуть("Номенклатура");
СписокНоменклатуры = тзТовары.ВыгрузитьКолонку("Номенклатура");
Запрос.УстановитьПараметр("Номенклатура", СписокНоменклатуры);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Стр = Товары.Найти(Выборка.Номенклатура, "Номенклатура").Количество;
Остаток = Выборка.Остаток - Стр.Количество;
Если Остаток < Выборка.Минимум Тогда
Сообщить("Siz " + Выборка.Номенклатура + " - məhsulu üzrə daxil eilmiş minimum miqdarı keçdiniz. Minimum miqdar = "
+ Выборка.Минимум + " Anbar üzrə məhsulun qalıq sayı = " + Остаток, СтатусСообщения.Информация);
Иначе
КонецЕсли;
КонецЦикла;
ПоказатьПо теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот