Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда Возврат; КонецЕсли;
Если Запрос.Группировка("РегТовар") < 1 Тогда Сообщить("Нет остатков товара "+ТабЧасть.Товар); ФлагОтказа = 1; Продолжить; КонецЕсли;
Пока Запрос.Группировка("РегТовар")>0 Цикл
Если Запрос.КоличествоКонОст < ТабЧасть.Количество Тогда НеХватает = ТабЧасть.Количество - Запрос.КоличествоКонОст; Сообщить("Недостаточно товара "+Запрос.РегТовар+" в количестве "+НеХватает); ФлагОтказа = 1; Иначе НадоСписать = Запрос.КоличествоКонОст; Если ФлагОтказа = 0 Тогда ...
Доходя до первого КонецЕсли, значение Запрос.Выполнить(ТекстЗапроса) = 1. Как только перешагиваю на строчку Если Запрос.Группировка("РегТовар") < 1 Тогда, то значение Запрос.Выполнить(ТекстЗапроса) становится равным 0. Почему так получается?
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0
УстановитьЗначениеФильтра(<Идентиф>,<Значен>,<Вариант>) <Вариант> - необязательный параметр. Число: 0 - не фильтровать; 1 - фильтровать по значению; 2 - искать вхождение. Значение по умолчанию 1. Для варианта ''2'' : - если параметр <Значен> - это группа справочника, то осуществляется проверка вхождения в группу; - если параметр <Значен> - это простой элемент справочника или другой тип значения, то осуществляется просто фильтрация по значению; - для списка значений осуществляется проверка вхождения в список; - если пустое значение или пустой список значений, то условие не проверяется.
Группа: Основатель
Сообщений: 13956
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4
Цитата
УстановитьЗначениеФильтра(<Идентиф>,<Значен>,<Вариант>) <Вариант> - необязательный параметр. Число: 0 - не фильтровать; 1 - фильтровать по значению; 2 - искать вхождение. Значение по умолчанию 1. Для варианта ''2'' : - если параметр <Значен> - это группа справочника, то осуществляется проверка вхождения в группу; - если параметр <Значен> - это простой элемент справочника или другой тип значения, то осуществляется просто фильтрация по значению; - для списка значений осуществляется проверка вхождения в список; - если пустое значение или пустой список значений, то условие не проверяется.
Группа: Основатель
Сообщений: 13956
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4
Цитата
По второму вопросу - весь код большая жесть ...
Ну это я 7 решил вспомнить немножко. Хочу сделать списание с контролем остатка. В общем-то по другому как сделать - пока не думал. Наверное есть вариант, как-то через таблицы значений "конвертировать" результат запроса.
Как я щас делаю: перебираю табличную часть, формирую запрос по данному элементу и сравниваю количество в документе с количеством в остатках.
Если я выполню общий запрос сразу по нескольким товарам, тогда надо будет его выгрузить в балицу значений и при переборе табличной части документа надо будет как-то искать в этой таблице нужный товар? Можно в нескольких словах как это в 7 сделать?
ЗЫ. это замечание конечно принято , но вопрос был не о том
ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл ВсегоСписать = ДокСп.Кво;// * Коэффициент; ОсталосьСписать = ВсегоСписать;
НС=0; Если тбИтоги.НайтиЗначение(Товар,НС,"Товар")=1 Тогда тбИтоги.ПолучитьСтрокуПоНомеру(НС); Иначе тбИтоги.ВыбратьСтроки(); тбИтоги.ПолучитьСтроку(); КонецЕсли;
Пока тбИтоги.Товар = Товар Цикл ОстатокТовара = тбИтоги.ОстатокТовара; СписываемыйОстатокТовара = Мин(ОсталосьСписать, ОстатокТовара);
// тут списываем и готово
тбИтоги.ОстатокТовара = тбИтоги.ОстатокТовара - СписываемыйОстатокТовара; Если тбИтоги.ПолучитьСтроку()=0 Тогда Прервать; КонецЕсли; КонецЦикла; КонецЦикла;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!