ДинамическийСписок и СписокЗначений.

1. Lion_LexXx 1 22.09.11 13:33 Сейчас в теме
В управляемой форме есть основной реквизит Список, у списка произвольный запрос

ВЫБРАТЬ
СправочникДорнвалы.Наименование,
ДорнвалыНаСкладахОстатки.НомерПП,
ДорнвалыНаСкладахОстатки.Заказ
ИЗ
РегистрНакопления.ДорнвалыНаСкладах.Остатки(&Период, Склад = &Склад) КАК ДорнвалыНаСкладахОстатки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Дорнвалы КАК СправочникДорнвалы
ПО ДорнвалыНаСкладахОстатки.Дорнвал = СправочникДорнвалы.Ссылка
ГДЕ
(НЕ ДорнвалыНаСкладахОстатки.Дорнвал В (&СписокДорнвал))

&СписокДорнвал - Это список значений
Проблема в том что условие "ДорнвалыНаСкладахОстатки.Дорнвал В (&СписокДорнвал)" берет из этого списка значения только первое значение и сравнивает с ним. Я проверял запрос в консоле он работает правильно.
Если данное условие "(НЕ ДорнвалыНаСкладахОстатки.Дорнвал В (&СписокДорнвал))" заменить
на "(НЕ ДорнвалыНаСкладахОстатки.Дорнвал = &СписокДорнвал)" то роботает идентично, результат тот же, берется только первое значение из списказначений, а остальные не используются

Как сделать так чтобы в произвольном запросе проверять находится для данный элемент в СпискеЗначений или нет?
По теме из базы знаний
Найденные решения
10. Lion_LexXx 1 23.09.11 09:06 Сейчас в теме
Все работает.
Нужно было передавть не список значений,а массив

ДорнвалыСЗ = Новый Массив;
//ДорнвалыСЗ = Новый СписокЗначений;

//Обходим все позиции табличной части Дорнвалы

Для Каждого СтрТЧДорнвалы Из ЭтаФорма.Объект.Дорнвалы Цикл
//Проверяем, чтобы в список значений не попала пустая строка

Если Не СтрТЧДорнвалы.Дорнвал.Пустая() Тогда
ДорнвалыСЗ.Добавить(СтрТЧДорнвалы.Дорнвал);
КонецЕсли;
КонецЦикла;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. tusv 212 22.09.11 14:47 Сейчас в теме
ВЫБОР
КОГДА ДорнвалыНаСкладахОстатки.Дорнвал В (&СписокДорнвал)
ТОГДА ИСТИНА
ИНАЧЕ
ЛОЖЬ
КОНЕЦ КАК ЕстьВхождение
3. Lion_LexXx 1 22.09.11 14:49 Сейчас в теме
4. Lion_LexXx 1 22.09.11 14:57 Сейчас в теме
Вот токай запрос тоже не работает эффект тот же
ВЫБРАТЬ
СправочникДорнвалы.Наименование,
ДорнвалыНаСкладахОстатки.НомерПП,
ДорнвалыНаСкладахОстатки.Заказ
ИЗ
РегистрНакопления.ДорнвалыНаСкладах.Остатки(
&Период,
Склад = &Склад
И ВЫБОР
КОГДА Дорнвал В (&СписокДорнвал)
ТОГДА ЛОЖЬ
ИНАЧЕ ИСТИНА
КОНЕЦ) КАК ДорнвалыНаСкладахОстатки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Дорнвалы КАК СправочникДорнвалы
ПО ДорнвалыНаСкладахОстатки.Дорнвал = СправочникДорнвалы.Ссылка
5. Lion_LexXx 1 22.09.11 15:01 Сейчас в теме
Так тоже не работает
ВЫБРАТЬ
СправочникДорнвалы.Наименование,
ДорнвалыНаСкладахОстатки.НомерПП,
ДорнвалыНаСкладахОстатки.Заказ
ИЗ
РегистрНакопления.ДорнвалыНаСкладах.Остатки(&Период, Склад = &Склад) КАК ДорнвалыНаСкладахОстатки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Дорнвалы КАК СправочникДорнвалы
ПО ДорнвалыНаСкладахОстатки.Дорнвал = СправочникДорнвалы.Ссылка
ГДЕ
ВЫБОР
КОГДА ДорнвалыНаСкладахОстатки.Дорнвал В (&СписокДорнвал)
ТОГДА ЛОЖЬ
ИНАЧЕ ИСТИНА
КОНЕЦ
6. tusv 212 22.09.11 15:20 Сейчас в теме
(5) Lion_LexXx, Это разные варианты условий. Я вот только не понял, зачем ты Присоединяешь таблицу, когда она уже есть в остатках? Да еще внутренним соединением
Lion_LexXx; +1 Ответить
9. Lion_LexXx 1 23.09.11 08:03 Сейчас в теме
(6)Суть не в соединении, а в том что в динамическом списке не правильно сравнивается со списком значений. Надо это как то обойти. Проверил запрос, еще раз написал процедуру на сервере, передал те же самые параметры которые отправлял в динамический список Запрос.Выполнить().Выгрузить() работает правильно, а в динамическом списке также берется и сравнивается только с первым элементом из списка значений.
7. Lion_LexXx 1 23.09.11 06:09 Сейчас в теме
В управляемой форме есть основной реквизит Список, у списка произвольный запрос, в произвольном запросе основной таблицей стоит справочник Дорнвалы. Если основную таблицу выбрать другую, тогда при выборе из этой "ФормаВыбораДорнвалов" в табличной части документа ПеремещениеДорнвалов не будет заполняться новая позиция.
8. Lion_LexXx 1 23.09.11 06:18 Сейчас в теме
10. Lion_LexXx 1 23.09.11 09:06 Сейчас в теме
Все работает.
Нужно было передавть не список значений,а массив

ДорнвалыСЗ = Новый Массив;
//ДорнвалыСЗ = Новый СписокЗначений;

//Обходим все позиции табличной части Дорнвалы

Для Каждого СтрТЧДорнвалы Из ЭтаФорма.Объект.Дорнвалы Цикл
//Проверяем, чтобы в список значений не попала пустая строка

Если Не СтрТЧДорнвалы.Дорнвал.Пустая() Тогда
ДорнвалыСЗ.Добавить(СтрТЧДорнвалы.Дорнвал);
КонецЕсли;
КонецЦикла;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот