|   |   | 
| 
 | Непонятка с отбором | ☑ | ||
|---|---|---|---|---|
| 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) ага, щас...     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |