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