![]() |
![]() |
![]() |
|
Присваивание переменной значения до условия | ☑ | ||
---|---|---|---|---|
0
myr4ik07
23.10.14
✎
12:30
|
Вчера уже обьяснил по поводу параметров в запросе но увы, очень тяжело мне это понять, есть код:
&НаСервере Функция ПроверитьСтатус(Номер) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Статус.Отремонтировано КАК СтатусЗаявки, | Статус.НомерЗ |ИЗ | РегистрСведений.Статус КАК Статус |ГДЕ | Статус.НомерЗ = &НомерЗ"; Запрос.УстановитьПараметр("НомерЗ", Объект.Заявка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаЗапроса = РезультатЗапроса.Выбрать(); Пока ВыборкаЗапроса.Следующий() Цикл Результат = ВыборкаЗапроса.СтатусЗаявки; Прервать; КонецЦикла; Возврат Результат; КонецФункции &НаКлиенте Процедура Проверить(Команда) Если ПроверитьСтатус(Объект.Заявка) = Неопределено Тогда Сообщить("Номер неверный или не существует"); ИначеЕсли ПроверитьСтатус(Объект.Заявка) Тогда Сообщить("Отремонтировано"); Иначе Сообщить("Не отремонтировано"); КонецЕсли; КонецПроцедуры проверяет статус ремонта по условиям. Не могу понять, вот в цикле Результат = ВыборкаЗапроса.СтатусЗаявки; уже переменная Результат получает статус, а как почему уже есть резуьтат (истина или ложь) в переменной коль еще условие НаКлиенте не выполнялось?! |
|||
1
Maxus43
23.10.14
✎
12:32
|
Так правильней:
&НаКлиенте Процедура Проверить(Команда) Статус = ПроверитьСтатус(Объект.Заявка); Если Статус = Неопределено Тогда |
|||
2
Cube
23.10.14
✎
12:32
|
(0) "а как почему уже есть резуьтат (истина или ложь) в переменной коль еще условие НаКлиенте не выполнялось?!"
Русская языка меня покинуть... |
|||
3
Maxus43
23.10.14
✎
12:33
|
по вопросу - у тебя может реквизит формы есть такой или ещё что
|
|||
4
Maxus43
23.10.14
✎
12:34
|
а так конечно непонятно нифига, что когда где получается
|
|||
5
myr4ik07
23.10.14
✎
12:34
|
И Запрос.УстановитьПараметр("НомерЗ", Объект.Заявка); вот здесь смысл кода в том, что в параметре НомерЗ нужно выбрать все, что находиться в РС.Статус.НомерЗ по тому, что будет введено в Обьект.Заявка?
|
|||
6
myr4ik07
23.10.14
✎
12:35
|
(2) к сожалению не очень владею русским, как уже есть
|
|||
7
Maxus43
23.10.14
✎
12:40
|
(5) ты спрашиваешь или утверждаешь?
https://pp.vk.me/c613520/v613520813/1bd28/JUHgzVX8YDU.jpg |
|||
8
myr4ik07
23.10.14
✎
12:43
|
(1) а почему правильней так как вы написали?
|
|||
9
Maxus43
23.10.14
✎
12:43
|
(8) чтоб 2 раза запрос не ваыполнять один и тот же
|
|||
10
myr4ik07
23.10.14
✎
12:44
|
(9) а, ок, переписал
|
|||
11
myr4ik07
23.10.14
✎
12:49
|
Вверху код был как пример.
а вот тз, глядите, мне нужно выполнить проверку есть ли некий товар в той партии, которую я укажу и если нет не списывать товар и выдать уведомление о недостаче. Имею Процедура ОбработкаПроведения(Отказ, Режим) Движения.ОстаткиМатериалов.Записывать = Истина; Для Каждого ТекСтрокаМатериалы Из Материалы Цикл Движение = Движения.ОстаткиМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ТекСтрокаМатериалы.Номенклатура; Движение.Количество = ТекСтрокаМатериалы.Количество; Движение.Партии = Ссылка; КонецЦикла; Движения.Записать(); Если Режим = РежимПроведенияДокумента.Оперативный Или Режим = РежимПроведенияДокумента.Неоперативный Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОстаткиМатериаловОстатки.Материал, | ОстаткиМатериаловОстатки.КоличествоОстаток КАК Количество |ИЗ | РегистрНакопления.ОстаткиМатериалов.Остатки КАК ОстаткиМатериаловОстатки |ГДЕ | ОстаткиМатериаловОстатки.КоличествоОстаток < 0 | И ОстаткиМатериаловОстатки.Партии = &Партии"; Запрос.УстановитьПараметр("Партии", Ссылка.Материалы); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить("Не хватает " + ВыборкаДетальныеЗаписи.Материал + " в количестве " + ВыборкаДетальныеЗаписи.Количество); Отказ = Истина; КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
12
myr4ik07
23.10.14
✎
12:49
|
меня вот здесь интересует
| И ОстаткиМатериаловОстатки.Партии = &Партии"; Запрос.УстановитьПараметр("Партии", Ссылка.Материалы); правильно ли заданы параметры? |
|||
13
myr4ik07
23.10.14
✎
12:52
|
партия в моем случаи это Ссылка.Приход.Накл. на документ.
В Док. Реал.Товаров будет реквизит с типом Ссылка.Приход.Накл. и вот при реал. выбираю док. и должна быть проверка по партиям |
|||
14
palpetrovich
23.10.14
✎
13:01
|
(12) в каком смысле интересует? типы совпадают?
ОстаткиМатериаловОстатки.Партии и Ссылка.Материалы |
|||
15
myr4ik07
23.10.14
✎
13:41
|
(14) я не знаю правильно ли я написал условие, нет типы не совпадают
ОстаткиМатериаловОстатки.Партии тип ДокументСсылкаПрих.Наклад., а Ссылка.Материалы это ТЧ документа |
|||
16
myr4ik07
23.10.14
✎
13:44
|
(14) а типы должны совпадать? Так, а если
| И ОстаткиМатериаловОстатки.Партии = &Партии"; Запрос.УстановитьПараметр("Партии", Ссылка); так Ссылка это же будет ссылка на этот документ, а тип ОстаткиМатериаловОстатки.Партии это ДокументСсылка.Прих.Наклад. или так будет правильно? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |