|
НЕ могу разобраться в запросе из листинга по книге Радченко | ☑ | ||
---|---|---|---|---|
0
mikkijon
09.10.19
✎
14:21
|
Здравствуйте Друзья!!!
Помогите мне пожалуйста разобраться в запросе, а именно "Запрос3.Текст = "ВЫБРАТЬ | ОстаткиМатериаловОстатки.Материал, | ОстаткиМатериаловОстатки.НаборСвойств, | ОстаткиМатериаловОстатки.КоличествоОстаток |ИЗ | РегистрНакопления.ОстаткиМатериалов.Остатки( , (Материал, НаборСвойств) В | (ВЫБРАТЬ | НоменклатураДокумента.Номенклатура, | НоменклатураДокумента.НаборСвойств | ИЗ | НоменклатураДокумента) И Склад = &Склад) | КАК ОстаткиМатериаловОстатки |ГДЕ | ОстаткиМатериаловОстатки.КоличествоОстаток < 0"; Запрос3.УстановитьПараметр("Склад", Склад); РезультатЗапроса = Запрос3.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = "Не хватает " + Строка(- ВыборкаДетальныеЗаписи.КоличествоОстаток) + " единиц материала """ + ВыборкаДетальныеЗаписи.Материал + """" + " из набора свойств """ + ВыборкаДетальныеЗаписи.НаборСвойств + """"; Сообщение.Сообщить(); Отказ = Истина; КонецЦикла; …" В данном запросе я не могу понять как воткнуть в параметр виртуальной таблицы Набор свойств листинг ниже "РегистрНакопления.ОстаткиМатериалов.Остатки( , (Материал, НаборСвойств) В | (ВЫБРАТЬ | НоменклатураДокумента.Номенклатура, | НоменклатураДокумента.НаборСвойств |" |
|||
1
Buster007
09.10.19
✎
14:23
|
НоменклатураДокумента - это временная таблица. В ней должно быть поле НаборСвойств.
|
|||
2
mikkijon
09.10.19
✎
15:05
|
есть данное поле
Просто подробнее описать как там добавляется набор свойств " (ВЫБРАТЬ | НоменклатураДокумента.Номенклатура, | НоменклатураДокумента.НаборСвойств" и "НоменклатураДокумента.НаборСвойств" по шагово |
|||
3
unregistered
09.10.19
✎
15:09
|
Не могу понять - а что не устраивает в листинге (0), что конкретно не работает, и чего хочет автор?
В тексте запроса и в параметрах виртуальной таблицы и вложенного запроса уже присутствует поле НаборСвойств. Чего ещё надо? |
|||
4
КД5
09.10.19
✎
15:15
|
(0) у тебя выбора нет, переучивайся на фьюжен)
|
|||
5
mikkijon
09.10.19
✎
15:20
|
| НоменклатураДокумента.Номенклатура,
| НоменклатураДокумента.НаборСвойств" и "НоменклатураДокумента.НаборСвойств Данную строчку нужно прописывать в параметре виртуальной таблицы. То есть нужно добавить "НаборСвойств"в строчку "(Материал, НаборСвойств)" и в строчку "(ВЫБРАТЬ | НоменклатураДокумента.Номенклатура, | НоменклатураДокумента.НаборСвойств" Я не знаю как это сделать в окне произвольное выражение. В книге Радченко не описывается по поводу данного листинга а так у меня все работает |
|||
6
unregistered
09.10.19
✎
15:26
|
(5) >> нужно добавить.
Что нужно добавить, если там уже всё есть? Или сейчас в тексте запроса этого нет, а тут ты выкладываешь уже то, что должно быть? |
|||
7
mikkijon
09.10.19
✎
15:28
|
да
|
|||
8
mikkijon
09.10.19
✎
15:30
|
это листинг из книги
У меня не получается его создать у меня постоянно выдает ошибки То не верный псевдоним То неверный параметр |
|||
9
Windyhead
09.10.19
✎
15:32
|
(0)Обзови во вложенном запросе Номенклатуру как Материал, а то похоже он не видит поле "Материал"
"РегистрНакопления.ОстаткиМатериалов.Остатки( , (Материал, НаборСвойств) В | (ВЫБРАТЬ | НоменклатураДокумента.Номенклатура КАК Материал, | НоменклатураДокумента.НаборСвойств КАК НаборСвойств |" |
|||
10
unregistered
09.10.19
✎
15:43
|
(5) >> не знаю как это сделать в окне произвольное выражение.
В окне редактирования параметров виртуальной таблицы ОстаткиМатериаловОстатки в поле "Условие" нажимаешь кнопочку выбора (такая педалька с тремя точками). У тебя открывается диалог "Произвольное выражение". В нижнем окне (текст выражения) с клавиатуры набираешь знак "(" (открывающая скобка). Далее перетягиваешь мышкой из левой верхней секции окна поле "Номенклатура" в текст выражения после открывающей скобки. Набираешь с клавиатуры знак "," (запятая). Далее перетягиваешь мышкой из левой верхней секции окна поле "НаборСвойств" в текст выражения после открывающей скобки. Набираешь с клавиатуры знак ")" (закрывающая скобка). Набираешь с клавиатуры знак " " (пробел). Набираешь с клавиатуры букву "В" (большая русская в). Набираешь с клавиатуры знак " " (пробел). Набираешь с клавиатуры знак "(" (открывающая скобка). Набираешь с клавиатуры знак " " (пробел). Набираешь с клавиатуры знак ")" (закрывающая скобка). Должно получиться это
Затем выделяешь тот пробел, который оказался у тебя между последними скобками. Нажимаешь правую кнопку мыши и выбираешь пункт "Конструктор запроса". У тебя откроется конструктор запроса. В этом конструкторе ты в источниках выбираешь временную таблицу (в самом низу) НоменклатураДокумента. Из неё два поля - Номенклатура и НаборСвойств. На вкладке "Объединения/Псевдонимы" можно ещё указать для поля "Номенклатура" псевдоним "Материал". Но по-моему это не обязательно. Жмешь ОК. Конструктор вложенного запроса закроется. Получившийся текст появится в тексте произвольного выражения между скобками. Должно получиться что-то вроде этого:
Далее добавляешь в конец этого безобразия " И Склад = &Склад". (хоть с клавиатуры, хоть перетаскивая мышью поле "Склад" из левого верхнего списка измерений. Должно быть что-то типа этого.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |