|
Почему 1С перестала видеть условие? | ☑ | ||
---|---|---|---|---|
0
01230123
12.03.14
✎
00:38
|
Доброго времени суток.
Есть код: Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ | ЗначенияСвойствНоменклатуры.СвойствоНоменклатурыСсылка |ИЗ | ВремЗначенияСвойствНоменклатуры КАК ЗначенияСвойствНоменклатуры"); Запрос.МенеджерВременныхТаблиц = мМВТ; РезультатЗапроса = Запрос.Выполнить(); //Если РезультатЗапроса.Пустой() Тогда // Возврат; //КонецЕсли; Я закомментировал строки, которые стали работать неправильно после перевода базы 1С:УТ 8.1 в 8.2 и обновления движка. Ну, я думаю, что причина в этом, но не уверен. Просто примерно пол-года назад условие РезультатЗапроса.Пустой() стало верным, даже если результат запроса не пустой. Обнаружил это только сейчас и закомментировал, чтобы результат запроса обрабатывался дальше по коду. Подскажите, как исправить, чтобы условие работало? |
|||
1
Лаврентий Берия
12.03.14
✎
00:44
|
УТ 8.1 - старьё. Рекомендую 10.3.
|
|||
2
01230123
12.03.14
✎
00:48
|
Неправильно выразился. УТ теперь 10.3. Было что-то постарше. Сразу много глюков было. Думал, все отловил, но вот этот остался.
|
|||
3
Лаврентий Берия
12.03.14
✎
00:50
|
(2) Перефразирую: условие-то ГДЕ?!
|
|||
4
Лаврентий Берия
12.03.14
✎
00:52
|
А, ой, вижу. Отладчиком повнимательнее пробегись. Думаю, "РезультатЗапроса" - не одна переменная в этом контексте. Ищи небольшие различия или нажми Ctrl + пробел.
|
|||
5
01230123
12.03.14
✎
01:05
|
Я, в общем-то, плохо разбираюсь... Мне кажется, что если это первый запрос в этой процедуре, то остальное можно не учитывать? Вот вся процедура:
Процедура ВыгрузитьСвойства(ОбъектCML) Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ | ЗначенияСвойствНоменклатуры.СвойствоНоменклатурыСсылка |ИЗ | ВремЗначенияСвойствНоменклатуры КАК ЗначенияСвойствНоменклатуры"); Запрос.МенеджерВременныхТаблиц = мМВТ; РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Возврат; КонецЕсли; ОбъектCML.ЗаписатьНачалоЭлемента("Свойства"); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл ОбъектCML.ЗаписатьНачалоЭлемента("Свойство"); ВыгрузитьОсновныеРеквизитыСвойстваДляКлассификатора(ОбъектCML, Выборка.СвойствоНоменклатурыСсылка); ОбъектCML.ЗаписатьКонецЭлемента(); КонецЦикла; //список номенклатуры ТаблНоменклатуры = ПостроительЗапроса.Результат.Выгрузить(); СписокНоменклатуры = Новый СписокЗначений; Для Каждого Стр Из ТаблНоменклатуры Цикл Если Не Стр.НоменклатураСсылка.ЭтоГруппа Тогда СписокНоменклатуры.Добавить(Стр.НоменклатураСсылка); КонецЕсли; КонецЦикла; Для Каждого Элем Из СписокМнСвойств Цикл ЗаписатьЗначенияМножественныхСвойств(Элем.Значение, СписокНоменклатуры, ОбъектCML); КонецЦикла; ОбъектCML.ЗаписатьКонецЭлемента(); КонецПроцедуры |
|||
6
EugeniaK
12.03.14
✎
01:28
|
"РезультатЗапроса.Пустой() стало верным, даже если результат запроса не пустой"
не верю. Как-то криво смотришь. |
|||
7
01230123
12.03.14
✎
01:34
|
Если я комментирую указанные строки, то следующая строка выполняется. Если комментарии убрать, то после
"Если РезультатЗапроса.Пустой() Тогда Возврат;" ничего не выполняется. Почему 100% возврат идёт? РезультатЗапроса - совсем не пустой. |
|||
8
EugeniaK
12.03.14
✎
02:17
|
(7) Посмотри отладчиком.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |