Вход | Регистрация
 

Запрос в консоли и в динамическом списке

Запрос в консоли и  в динамическом списке
Я
   lamme
 
26.04.20 - 17:43
1С8
Есть запрос. Выборка остатков из РН.
условие


остаткиНаСкладах.Склад в (&СпискСкладов)

Выполняется в динамическом списке.
СпискСкладов = параметр заполняется при открытии обработки

СпискСкладов = новый СПисокЗначений()
для каждого СтрСкл из параметрысеанса.текущийпользовтаель.списокяСкладов цикл

СпискСкладов.добавить (СтрСкл .Склад)
конеццикла;

В списке складов у пользователя стоит Склад1 и Склад2.

А теперь прикол.
В консоли указываю 2 этих склада - все красиво показывает.

А в обработке показывается остаток только по тому складу-которыйидет первым в настройках пользователя в этом списке.
При этом меняешь местами склады - показывает все равно только по тому,какойсклад первый
   lamme
 
1 - 26.04.20 - 17:43
отладчик показывает 2 заполненных склада
   lamme
 
2 - 26.04.20 - 17:45
повторю
в консоли - этот запрос показывает все правильно.
   lamme
 
3 - 26.04.20 - 17:46
тут или наложение имен переменных ..наверное ..
или я хз
   lamme
 
4 - 26.04.20 - 17:50
имена переменнызуникальны
   vde69
 
5 - 26.04.20 - 17:56
для динамического списка лучше юзать отбор чем параметр "в"
   lamme
 
6 - 26.04.20 - 17:58
те сам запрос - без отбора
а потом в условном оформлении отбор поставить?
   vde69
 
7 - 26.04.20 - 17:59
(6) да
   lamme
 
8 - 26.04.20 - 17:59
стенсяюсь спросить
а какого фига?
   lamme
 
9 - 26.04.20 - 18:00
запрос выберет 100500 записей
а потом отбор покажет только 500 из них.
как-то - не рационально
   Ненавижу 1С
 
10 - 26.04.20 - 18:01
есть мнение, что создание списка в цикле перетирается:
  СпискСкладов = новый СПисокЗначений();

а вообще проще было 

СпискСкладов = параметрысеанса.текущийпользовтаель.списокяСкладов.ВыгрузитьКолонку("Склад");
   Ненавижу 1С
 
11 - 26.04.20 - 18:02
(9) отборы встраиваются в тело запроса

кстати у тебя неоптимально выгружать всю виртуальную таблицу, а потом накладывать условие
   vde69
 
12 - 26.04.20 - 18:02
(8) просто поверь, писать долго
   lamme
 
13 - 26.04.20 - 18:03
10

проверяю
   vde69
 
14 - 26.04.20 - 18:04
(9) динамический список никогда не обрабатывает весь список сразу, он работает по другому...
   lamme
 
15 - 26.04.20 - 18:05
10

сработало!
   lamme
 
16 - 26.04.20 - 18:05
я в шоке
   Вафель
 
17 - 26.04.20 - 18:09
Параметр В должен отрабатывать нормально
   lamme
 
18 - 26.04.20 - 18:15
10

по факту - отладчик показывает список из 2х складов пользователя
   lamme
 
19 - 26.04.20 - 18:15
а так .. и не работает (
   lamme
 
20 - 26.04.20 - 18:16
а так - СпискСкладов = параметрысеанса.текущийпользовтаель.списокяСкладов.ВыгрузитьКолонку("Склад");
работает

в чем разница - не вижу
   lamme
 
21 - 26.04.20 - 18:16
10
спасибо
   Ненавижу 1С
 
22 - 26.04.20 - 18:18
отсюда код не видно весь
   hhhh
 
23 - 26.04.20 - 18:36
(20) вообще-то разница огромная. Там список значений, а тут массив.
   Ненавижу 1С
 
24 - 26.04.20 - 18:38
(23) в данном случае это не принципиально


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.