Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 15:31

Запрос отрабатывает через раз

Автор viksa, 11 мая 2016, 13:31

0 Пользователей и 1 гость просматривают эту тему.

viksa

Не могу понять почему запрос отрабатывает через раз...
//Проверка остатков
Для Каждого ТекСтрокаПутевойЛист Из ПутевойЛист Цикл
ТовДляОтбора = ТекСтрокаПутевойЛист.Товар;
Запрос = Новый Запрос;
Запрос.Текст =                                       
"ВЫБРАТЬ
|ОстаткиОстатки.Товар КАК Товар,                 
|ОстаткиОстатки.КоличествоОстаток
|ИЗ
|РегистрНакопления.Остатки.Остатки КАК ОстаткиОстатки
  |ГДЕ
| ОстаткиОстатки.Товар = &ТоварОст";
    Запрос.УстановитьПараметр("ТоварОст", ТовДляОтбора);
ВыборкаТовара = Запрос.Выполнить();
Выборка = ВыборкаТовара.Выбрать();       
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.КоличествоОстаток-ТекСтрокаПутевойЛист.Доставить);
Если  Выборка.КоличествоОстаток-ТекСтрокаПутевойЛист.Доставить < 0 Тогда
ТекстСообщения = "В строке № "+ТекСтрокаПутевойЛист.НомерСтроки+" товара "+СокрЛП(ТекСтрокаПутевойЛист.Товар)+" не хватает на складе. На складе осталось - "+СокрЛП(Выборка.КоличествоОстаток);
Сообщить(ТекстСообщения,СтатусСообщения.Важное);
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЦикла;

vitasw

Запрос в цикле писать нельзя.
Цитата: viksa от 11 мая 2016, 13:31отрабатывает через раз...
- не очень информативное описание проблемы

viksa

Запускаешь, проводишь документ с ошибкой - ругается, создаешь другой/проводишь - может ругнутся, а может пропустить, создаешь третий/проводишь - пропускает при этом в выборке пусто, все 3 документа на один товар
Добавлено: 11 мая 2016, 17:07


Вот что в отладке... попробовала прописать условие на NULL, но не помогло
Добавлено: 11 мая 2016, 17:11


Вернее вот это, первый скрин когда проходит проверк
Добавлено: 11 мая 2016, 17:21


Разобралась, можно тему закрывать :ooifh:
P.S. Не то условие ставила для проверки пустого запроса...:nhsrm:

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск