Пару значений в массив для параметра запроса, как? #509862


#0 by ILM
В условии запроса пишу ВЫБРАТЬ .... ГДЕ (Т.Номенклатура, Т.ХарактеристикаНоменклатуры) В (&СсылкиМассив) Если Стр.ДанныеСтроки.ВидНорматива = Перечисления.ВидыНормативовНоменклатуры.Номенклатура            И Стр.ДанныеСтроки.Номенклатура.ВидВоспроизводства = Перечисления.ВидыВоспроизводстваНоменклатуры.Закупка Тогда Ругается на СсылкиМассив.Добавить - много формальных параметров. Как можно сделать массив с парами значений, для отбора в запросе?
#1 by Murzz
Синтаксис: Добавить(<Значение>) Параметры: <Значение> (необязательный) Тип: Произвольный. Добавляемое значение. Если не указан, то будет добавлено значение типа Неопределено. Описание: Добавляет элемент в конец массива. Примечание: При добавлении количество элементов массива увеличивается на 1. Пример: Массив.Добавить("Первый"); Массив.Добавить("Второй");
#2 by Живой Ископаемый
неожиданно, правда? Но все равно работать не будет... уже на вот этом моменте: (Т.Номенклатура, Т.ХарактеристикаНоменклатуры) В (&СсылкиМассив)
#3 by ILM
Надо чтобы работало
#4 by Живой Ископаемый
надо - делай правильно.
#5 by ILM
ТАк пробовал
#6 by Живой Ископаемый
(Т.Номенклатура В (&МассивСсылокНоменклатуры) и Т.ХарактеристикаНоменклатуры В (&МассивСсылокХарактреистик)) 2 ну и что что пробовал?
#7 by KRV
так правильно обратись к массиву!
#8 by Живой Ископаемый
Пробовал и 1С написало что МАЛО формальных параметров?
#9 by ILM
Нужна парами Номенклатура+Характеристика
#10 by ILM
Построчно
#11 by Живой Ископаемый
2 дядька, какую мы сейчас проблему решаем - ту что в или ту что в ? ту что в - решается как в Если хочешь решить новую проблему - заводи новую ветку, чтобы никого не путать.
#12 by ILM
Ту что в . В не то, что надо.
#13 by Живой Ископаемый
Та что в решается так:
#14 by ILM
Не решается, в запросе не будет работать
#15 by Живой Ископаемый
тогда это другая проблема.
#16 by Sammo
Загнать во временную таблицу значений и джойнить
#17 by ILM
Как задать пару (характеристика и номенклатура) в массиве, чтобы работало в запросе? Можно тогда и в ТЗ записать, там ничего сложного нет и сразу в запросе соединение сделать, просто пока объект не записан данных в базе нет, только на форме.
#18 by ILM
Что можно с двумя ссылками сделать, чтобы одно значение было, ведь не складывать же их? Неужели нет никакого способа?
#19 by azernot
Почитай чем ТаблицаЗначений отличается от Массива
#20 by ILM
Вы ведете себя как . Слава богу знаю, но хочется же иногда и поискать других путей, а вдруг получится? Может запрос и массив из соответствий скушает? Много разных открытий готовит нам 1С, в том числе и не документированных)
#21 by Lucky-1
Попробуй так: ВЫБРАТЬ .... ГДЕ Если Стр.ДанныеСтроки.ВидНорматива = Перечисления.ВидыНормативовНоменклатуры.Номенклатура            И Стр.ДанныеСтроки.Номенклатура.ВидВоспроизводства = Перечисления.ВидыВоспроизводстваНоменклатуры.Закупка Тогда ... ... КонецЕсли;
#22 by Живой Ископаемый
на этот раз не готовит. Разве что в следующих релизах
#23 by Lucky-1
запрос.УстановитьПараметр("Парам2",Стр.ДанныеСтроки.ХарактеристикаНоменклатуры); .
#24 by azernot
Исследователь? Это хорошо. :) Предлагаю ещё пару интересных тем для исследования: 1. А что если в 1С есть недокументированная возможность восстановления объектов после непосредственного удаления? ... Объект.Удалить; ... Объект.ВосстановитьПослеНепосредственногоУдаления; (Пробовать надо на рабочей базе, например, на справочнике Контрагенты). 2. А какой максимальный вес может выдержать голова 1С-ника? 3. С какой максимально высоты может спрыгнуть нормальный сибиряк, 67-го года рождения? 4. Что будет если в розетку запихнуть не два пальца, а четыре (по два в каждую дырочку)? Если нужны ещё идеи, могу накидать... :)))
#25 by ILM
А как же запрос в цикле? Нормально, так будет работать, Так как этот код вызываю для того, чтобы в форме вывести количество аналогов для исходных комплектующих, то время работы будет зависеть от количества строк, а это не хорошо. Лучше уж тогда ТЗ и соединение в запросе с ТЗ. Прикольно, моей пытливости только на код хватает, а у тебя или опыта больше или мозги помоложе.
#26 by Murzz
Вариант 1: загнать пары значений в Тз, и делать запрос с внутренним соединением к этой тз. Вариант 2: Формировать текст запроса во время исполнения процедуры. чтобы получилось нечто типа .... ИЛИ (Т.Номенклатура = &Номенклатура2 И Т.ХарактеристикаНоменклатуры = &Характеристика2)) ... и т.д. для каждого элемента из "Стр.ДанныеСтроки".
#27 by Murzz
А относительно "открытий" - если есть куча свободного времени можно и поизвращаться. В остальных случаях лучше не изобретать велосипед, а использовать отработанные решения
#28 by ILM
спасибо, вариант 2 подойдет, если только 2000 строк не будет ))) Согласен. Пока вот родилось это Запись = Новый Структура;
#29 by ILM
сейчас запрос заставляю это съесть
#30 by ILM
не ест, придется через ТЗ
#31 by Murzz
нееееее. По варианту 2 имел ввиду вот примерно как-то так: (возможно, придется немного допилить ибо не проверял) тут Цикл по Коллекции Конечно, выглядит извращенно, но работать будет.
#32 by NcSteel
Характеристика уже подчинена Номенклатуре , так что достаточно отбор по ней и все Где Т.ХарактеристикаНоменклатуры В (&СписокХарактеристик) и не надо придумывать.
#33 by ILM
Спасибо, грамотное замечание, это в том случае если характеристика заполнена, если же она заполнена не у всех записей, то нужно сочетание пары Номенклатура+Характеристика. Задачу уже решил, через ТЗ и временную таблицу. Мог бы и с условиями запроса сделать, но так получше.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С