|
ДинамическийСписок и СписокЗначений. | ☑ | ||
---|---|---|---|---|
0
LexXx_Lion
22.09.11
✎
13:36
|
Как сделать чтобы проверялся весь список значений,а не только первое значение?
В управляемой форме есть основной реквизит Список, у списка произвольный запрос ВЫБРАТЬ СправочникДорнвалы.Наименование, ДорнвалыНаСкладахОстатки.НомерПП, ДорнвалыНаСкладахОстатки.Заказ ИЗ РегистрНакопления.ДорнвалыНаСкладах.Остатки(&Период, Склад = &Склад) КАК ДорнвалыНаСкладахОстатки ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Дорнвалы КАК СправочникДорнвалы ПО ДорнвалыНаСкладахОстатки.Дорнвал = СправочникДорнвалы.Ссылка ГДЕ (НЕ ДорнвалыНаСкладахОстатки.Дорнвал В (&СписокДорнвал)) &СписокДорнвал - Это список значений Проблема в том что условие "ДорнвалыНаСкладахОстатки.Дорнвал В (&СписокДорнвал)" берет из этого списка значения только первое значение и сравнивает с ним. Я проверял запрос в консоле он работает правильно. Если данное условие "(НЕ ДорнвалыНаСкладахОстатки.Дорнвал В (&СписокДорнвал))" заменить на "(НЕ ДорнвалыНаСкладахОстатки.Дорнвал = &СписокДорнвал)" то роботает идентично, результат тот же, берется только первое значение из списказначений, а остальные не используются Как сделать так чтобы в произвольном запросе проверять находится для данный элемент в СпискеЗначений или нет? |
|||
1
LexXx_Lion
22.09.11
✎
13:38
|
платформа 8.2
|
|||
2
H A D G E H O G s
22.09.11
✎
13:40
|
Пилят, когда же вы научитесь создавать прямые темы.
Так, чтобы их понимали не только вы сами. |
|||
3
H A D G E H O G s
22.09.11
✎
13:41
|
Вот, учись как надо
v8: Сериализация СпискаЗначений В XDTO. Где я не прав? Тема должна быть оформлена четко, по пунктам. В примере - идеальная тема - там автор САМ ответил на свой вопрос. |
|||
4
SviFt
22.09.11
✎
13:44
|
(0) что такое Дорнвал?
|
|||
5
guitar_player
22.09.11
✎
13:45
|
(3) патсталом
|
|||
6
Darky
22.09.11
✎
13:46
|
(1) Покажи как &СписокДорнвал получаешь
И это...если это весь текст запроса, а не выдранный кусок, то соединение со справочником тут вообще не нужно |
|||
7
LexXx_Lion
22.09.11
✎
13:54
|
(6)В документе ПеремещениеДорнвалов процедура открывает ФормуВыбора справочника Дорнвалов
&НаКлиенте Процедура ДорнвалыДорнвалНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ЗначенияОтбора = Новый Структура; ЗначенияОтбора.Вставить("Период",ЭтаФорма.Объект.Дата); ЗначенияОтбора.Вставить("Склад",ЭтаФорма.Объект.Отправитель); ДорнвалыСЗ = Новый СписокЗначений; Для Каждого СтрТЧДорнвалы Из ЭтаФорма.Объект.Дорнвалы Цикл Если Не СтрТЧДорнвалы.Дорнвал.Пустая() Тогда ДорнвалыСЗ.Добавить(СтрТЧДорнвалы.Дорнвал); КонецЕсли; КонецЦикла; ЗначенияОтбора.Вставить("СписокДорнвал",ДорнвалыСЗ); ОткрытьФорму("Справочник.Дорнвалы.ФормаВыбора",ЗначенияОтбора,Элемент); КонецПроцедуры Затем в ФормеВыбора справочника дорнвалов заполняются параметры &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Список.Параметры.УстановитьЗначениеПараметра("Период", Параметры.Период); Список.Параметры.УстановитьЗначениеПараметра("Склад", Параметры.Склад); Список.Параметры.УстановитьЗначениеПараметра("СписокДорнвал", Параметры.СписокДорнвал); КонецПроцедуры |
|||
8
Darky
22.09.11
✎
14:08
|
Т.е. если ты передашь пустой СписокДорнвал, то отобразятся все элементы, которые есть на остатке?
Количество элементов в списке точно не 1? |
|||
9
LexXx_Lion
22.09.11
✎
14:14
|
Спискок значений формируется корректно. Но в самом запросе работает не правильно, не знаю почему. Берется только первый элемент и с ним сравнивается.
можно написать запрос немного по другому но эффект один и тот же. ВЫБРАТЬ СправочникДорнвалы.Наименование, ДорнвалыНаСкладахОстатки.НомерПП, ДорнвалыНаСкладахОстатки.Заказ ИЗ РегистрНакопления.ДорнвалыНаСкладах.Остатки( &Период, Склад = &Склад И (НЕ Дорнвал В (&СписокДорнвал))) КАК ДорнвалыНаСкладахОстатки ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Дорнвалы КАК СправочникДорнвалы ПО ДорнвалыНаСкладахОстатки.Дорнвал = СправочникДорнвалы.Ссылка |
|||
10
LexXx_Lion
22.09.11
✎
14:18
|
(8)Да. Если передать пустой СписокЗначений то отобразятся все элементы которые в остатке. В списке точно не 1 элемент, проверял по точке останова. Могу выложить скрин.
|
|||
11
LexXx_Lion
22.09.11
✎
14:52
|
||||
12
Darky
22.09.11
✎
14:57
|
Попробуй передавать массив вместо списка значений
|
|||
13
LexXx_Lion
22.09.11
✎
15:02
|
Хорошо. Попробую. Завтра отпишусь, что получилось.
|
|||
14
LexXx_Lion
23.09.11
✎
08:19
|
Передал массив, эффект как будто массив пустой, вообще не воспринимает, по точке останова смотрел массив не пустой с нормальными значениями. может я не правильно заполнил массив?
ДорнвалыСЗ = Новый Массив; //ДорнвалыСЗ = Новый СписокЗначений; //Обходим все позиции табличной части Дорнвалы Для Каждого СтрТЧДорнвалы Из ЭтаФорма.Объект.Дорнвалы Цикл //Проверяем, чтобы в список значений не попала пустая строка Если Не СтрТЧДорнвалы.Дорнвал.Пустая() Тогда ДорнвалыСЗ.Добавить(СтрТЧДорнвалы.Дорнвал); КонецЕсли; КонецЦикла; |
|||
15
LexXx_Lion
23.09.11
✎
09:08
|
Извиняюсь. Все нормально заработало. Всем спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |