|
Непонятка с отбором | ☑ | ||
---|---|---|---|---|
0
AAA
07.11.24
✎
18:46
|
Всем доброго дня! Никак не могу понять в чем дело. Есть обработка. На ее форме размещен отбор компоновшика настроек. При его изменении вызывается соответсвующее событие, выполняется запрос и заполняется таблица значений. Все прекрасно работает. Но вот понадобилось расширить функциональность отбора. Добавил реквизиты формы, вывел их на форму и при выставленном флаге запрос модифицируется (добавляется условие на принадлежность ссылки данным вложенного запроса) и по реквизитам формы устанавливаются несколько параметров вложенного запроса. Долго бился, отбор не работал, хотя сам вложенный запрос отдельно прекрасно работал, а параметры устанавливались (смотрел в отладчике). Потом случайно нажал 2 раза на кнопку, которая тоже вызывает обновление данных отбора и чудо, таблица заполняется, заполняется верно, но ... только со второго раза ))
Почти понятно, что дело в параметрах, но перед первым выполнение смотрю их в отладчике, они верные. Такая небольшая загадка. Примерный фрагмент добавки: ТекстЗапроса = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных.Запрос; ТекстЗапроса = ТекстЗапроса + " | И (Номенклатура.Ссылка В (" + ТекстЗапросаВложенный + "))"; СхемаКомпоновкиДанных.НаборыДанных.НаборДанных.Запрос = ТекстЗапроса; Настройки = КомпоновщикНастроек.Настройки; Параметр = Настройки.ПараметрыДанных.Элементы.Найти("ДатаПереоценки"); Параметр.Значение = ДатаПереоценки; Параметр.Использование = Истина; |
|||
1
Волшебник
07.11.24
✎
18:47
|
а можно точный фрагмент добавки, включая присвоение ТекстЗапросаВложенный ?
|
|||
2
AAA
07.11.24
✎
19:01
|
(1)Так он точный и есть, просто обрезанный. Что значит присвоение ТекстЗапросаВложенный ?
// запрос по умолчанию ТекстЗапроса = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных.Запрос; // добавляю вложенный ТекстЗапроса = ТекстЗапроса + " | И (Номенклатура.Ссылка В (" + ТекстЗапросаВложенный + "))"; // толкаю в скд СхемаКомпоновкиДанных.НаборыДанных.НаборДанных.Запрос = ТекстЗапроса; Сам вложенный сейчас покоцанный весь, там выбирается номенклатура, которая переоценивалась требуемой датой, по требуемому виду цен, плюс возможно только с остатками. |
|||
3
Волшебник
07.11.24
✎
19:02
|
удачи
|
|||
4
AAA
07.11.24
✎
19:08
|
вот самый простой вариант:
ТекстЗапросаВложенный = " |ВЫБРАТЬ | ЦеныНоменклатуры25.Номенклатура КАК Номенклатура |ИЗ | РегистрСведений.ЦеныНоменклатуры25 КАК ЦеныНоменклатуры25 | ГДЕ | НАЧАЛОПЕРИОДА(ЦеныНоменклатуры25.Период, ДЕНЬ) = &ДатаПереоценки | И ЦеныНоменклатуры25.ВидЦены = &ВидЦены |"; |
|||
5
AAA
07.11.24
✎
19:05
|
(3)спасибо огромное
|
|||
6
Волшебник
07.11.24
✎
19:06
|
(4) Где срез последних?
|
|||
7
Волшебник
07.11.24
✎
19:06
|
И просили же "ТекстЗапросаВложенный"
Кто-то где-то врёт |
|||
8
AAA
07.11.24
✎
19:09
|
(6)мне не нужен срез последних, мне нужны позиции, по которым менялись цены в конкретный день. Сами цены не интересуют.
Он и есть вложенный, других запросов нет. Все отлично работает, но со второго раза. При первом разе пустая выборка |
|||
10
evorle145
07.11.24
✎
19:11
|
(0) "но ... только со второго раза" что-то знакомое... Такой затуп был у меня как-то.. не помню точно, возможно я забыл тогда
КомпоновщикНастроек.ЗагрузитьНастройки(КомпоновщикНастроек.Настройки); |
|||
12
AAA
07.11.24
✎
20:00
|
Заработало. Всем спасибо, особенно Волшебнику!
После модификации запроса заново прочитал настройки и все встало на свои места: НастройкиКомпоновки = КомпоновщикНастроек.ПолучитьНастройки(); |
|||
13
Волшебник
07.11.24
✎
20:04
|
(12) ага, щас...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |