|
Реквизит объекта в запросе | ☑ | ||
---|---|---|---|---|
0
John342
07.06.20
✎
00:01
|
Доброй ночи, товарищи!
Не могу понять один момент в запросах. Можно ли как-то в запросе использовать реквизит объекта, в котором пишется запрос? Нужно отобрать некоторые записи, сравнивая в условии со значением реквизита, который находится в объекте. В конструкторе запросов я покопался, что-то не нашёл там ничего, связанного с моим объектом. |
|||
1
xoma1c
07.06.20
✎
00:06
|
(0) https://helpme1c.ru/parametry-v-zaprosax-v-1s-8-v-primerax
Запрос.УстановитьПараметр |
|||
2
Фрэнки
07.06.20
✎
00:11
|
Для (0) загадка : А если объект только создан, но никуда не записан, как тебе запрос его найдет в базе?
|
|||
3
xoma1c
07.06.20
✎
00:13
|
(0) Е. Ю. Хрусталева
Язык запросов «1С:Предприятия 8» Рекомендую прочитать, а потом уже углубляться, быстрее будет. |
|||
4
John342
07.06.20
✎
00:15
|
(1) Пробовал. Не прокатывает. Выдаёт ошибку "Поле не найдено".
|
|||
5
Фрэнки
07.06.20
✎
00:17
|
без примеров кода можем только высказать соболезнования.
Тебя они утешат? |
|||
6
John342
07.06.20
✎
00:19
|
(5) Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПериодН",Период.ДатаНачала); Запрос.УстановитьПараметр("ПериодК",Период.ДатаОкончания); Запрос.УстановитьПараметр("Сумма",Сумма); Запрос.Текст = "ВЫБРАТЬ | ЗаказКлиента.Номер КАК Номер, | ЗаказКлиента.Дата КАК Дата, | ЗаказКлиента.Партнер КАК Партнер, | ЗаказКлиента.СуммаДокумента КАК СуммаДокумента, | ЗаказКлиента.Менеджер КАК Менеджер |ИЗ | Документ.ЗаказКлиента КАК ЗаказКлиента |ГДЕ | (ЗаказКлиента.Дата >= Период.ДатаНачала И | ЗаказКлиента.Дата <= Период.ДатаОкончания) И | ЗаказКлиента.СуммаДокумента > Сумма"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); |
|||
7
Фрэнки
07.06.20
✎
00:23
|
"ВЫБРАТЬ
| ЗаказКлиента.Номер КАК Номер, | ЗаказКлиента.Дата КАК Дата, | ЗаказКлиента.Партнер КАК Партнер, | ЗаказКлиента.СуммаДокумента КАК СуммаДокумента, | ЗаказКлиента.Менеджер КАК Менеджер |ИЗ | Документ.ЗаказКлиента КАК ЗаказКлиента |ГДЕ | (ЗаказКлиента.Дата >= &ПериодН И | ЗаказКлиента.Дата <= &ПериодК) И | ЗаказКлиента.СуммаДокумента > &Сумма"; |
|||
8
John342
07.06.20
✎
00:25
|
(7) Это мы ссылаемся на конкретные реквизиты?
|
|||
9
xoma1c
07.06.20
✎
00:28
|
(8) тут установили параметр ПериодН
Запрос.УстановитьПараметр("ПериодН",Период.ДатаНачала); тут он сработает в запросе обирая из общей кучи &ПериодН |
|||
10
xoma1c
07.06.20
✎
00:31
|
(8) отсутствие полной картины приведет в итоге к неверным решениям, рекомендую прочитать книгу для систематизации знаний.
|
|||
11
Сергиус
07.06.20
✎
01:23
|
(0)Смотря что за реквизит Объекта, если он присутствует в структуре конфигурации то по нему в запросе спокойно можно делать отбор. Но может быть ситуация, что реквизит Объекта создан в конкретной форме и его использовать в запросе нельзя.
|
|||
12
Фрэнки
07.06.20
✎
08:51
|
(8) это вообще не имеет смысла в терминах "ссылаемся" или "реквизиты"
По твоему коду, последовательно что происходит? Реквизиты текущего объекта устанавливаются в параметры, точнее, один из них это строчка Запрос.УстановитьПараметр("ПериодН",Период.ДатаНачала); Вопрос: Внутри запроса что используется после установки Параметра ПериодН? Ответ: Используется просто значение в текущем Параметре. Вопрос: А как значение параметра использовать? Ответ: пиши для этого параметра вот так &ПериодН з.ы. Над этим нужно посидеть немного. Медитация нужна... Но это просто синтаксис. Читаешь буквари с примерами и все становится очевидным. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |