Как избежать вложенных циклов #760651


#0 by ladalk
Добрый день, есть несколько списков, состоящих из значений свойств справочника "характеристики номенклатуры". В каждом из списков могут быть выбраны несколько значений (а может быть и не одного) (заполняем значения характеристик номенклатуры). Нужно получить все возможные варианты соединения значений. Самое простое решение - это идти по первому списку, потом заходить во второй, затем в третий. Еще, как вариант, записать три массива с выбранными  значениями, но опять же надо будет перебирать. Значений немного, на производительности не скажется, но хочется оптимизировать. Может кто подскажет, каким образом можно это сделать?
#1 by Лефмихалыч
самое простое решение для получения всех вохможных комбинаций - это все-таки декартово произведение в запросе
#2 by ladalk
поскольку значения выбираются с формы, в запросе необходимо использовать временную таблицу?
#3 by Капюшон
делал чтото такое. рекурсия помогла.
#4 by NcSteel
Можно и без
#5 by ladalk
каким образом?
#6 by Wirtuozzz
Можно пример?
#7 by Лефмихалыч
ну, ты же на форму значения не из воздуха собираешь. Или их туда пользователь руками долбит? держи
#8 by Лефмихалыч
там после точек - звездочки. чортов маркдаун их сожрал
#9 by ladalk
пользователь выбирает, какие будут использоваться.
#10 by Лефмихалыч
тогда я не знаю ответа на
#11 by ladalk
получается, что на каждый список делать ТЗ, передавать их в запрос (если они не пустые) и там ВЫбрать с исполозованием полного соединения?
#12 by Garykom
Зависит от цели построения таких сочетаний ЗЫ это что еще за конструктор номенклатуры из Челябинска? :)
#13 by ladalk
нормальный такой конструктор
#14 by Лефмихалыч
в общем - да. Еще можно сделать одну общую ТЗ, ее передать в запрос, а остальные набрать уже из нее уже запросами, но суть-то та же.
#15 by ladalk
спасибо
#16 by Лефмихалыч
в общем-то я с согласен - ощущение, что ты пытаешься техническими средствами решить организационную задачу. Редко когда нужны все возможные сочетания. Просто потому, что продаются не все возможные, а толлько востребованные. С этой стороны - может лучше как-то очеловечить эту механизьму. Но тебе видней.
#17 by ladalk
суть в том, чтобы облегчить работу человеку, которой забивает поступления сотни пар обуви - для одной модели несколько цветов, размеров и тд. Человек тыкает в те строки, который соответствуют поступлению, например сезон зима; цвет черный, красный; размер 37,38,39, а на выходе получаем номенклатуру с характеристиками "зима, черный, 37", "зима, красный, 37", "зима, черный, 38", "зима, красный, 38" и т.д.
#18 by Garykom
а количество каждой как указать? или это только для автосоздания номенклатуры? может лучше заюзать ТЧ, сделать копирование строк и менять параметры для новой строки? смысл 1 заполненная строка = 1 номенклатура, вместо 1 строку заполнили и все сочетания параметров перебрали и кучу номенклатуры наплодили
#19 by MishaD
идея то интересная, а если номенклатуры с каким-то  размером не окажется. Например красной 38. характеристика то все равно создастся.
#20 by ladalk
количество в документе поступления будет. "и все сочетания параметров перебрали" - вот как это сделать?
#21 by ladalk
вот пользователь и отмечает, что нужно создавать. Если нет у номенклатуры какой-то позиции характеристики - пользователь не отмечает, и, соответственно, не создается
#22 by ladalk
в смысле всю характеристику в наименование номенклатуры запихнуть?
#23 by Garykom
это по желанию, суть без перебора сочетаний обойтись пусть оператор сам сочетания указывает а то будет Да получить от поставщика электронную накладную и распарсить ее никак?
#24 by Лефмихалыч
Вот я тоже подумал о том, чтобы с поставщиком о хоть каком-то обмене договорится
#25 by Лефмихалыч
да в целом - как-то это через жопу. Номенклатурные позиции эти на самом деле известны гораздо раньше прихода. Они известны в момент формирования заказа поставщику и в этот же момент должны быть уже закодированы в базе. Оператор, забивающий приход, должен выбирать уже из имеющихся. Иначе потом хрен вы поймете, был пересорт/недовоз/перевоз или это про на складе все спёрли и перепутали.
#26 by ladalk
(23,24) я вас умоляю) какой обмен с китайцами на рынках?
#27 by Лефмихалыч
ох ё...
#28 by ladalk
чтобы все в название номенклатуры пихать  - однозначно нет
#29 by ladalk
а еще вопрос: есть ли возможность ввести какое-то значение с клавиатуры? т.е. в диалоговом окне.
#30 by ladalk
ВвестиСтроку;
#31 by mistеr
>Значений немного, на производительности не скажется, но хочется оптимизировать. Вот здесь и нужно собрать волю в кулак и остановить себя.
#32 by Мэс33
Тут двояко. - можно остановиться, так как выхлопа как такого не будет. Никто и не поймет подвигов ТС, и материально его труд не будет достойно вознагражден; - не надо останавливаться. Сейчас решит эту проблему на маленькой не критической задаче пока есть время,  а потом в другом месте эти знания пригодятся.
#33 by NcSteel
Очень легко ВЫБРАТЬ А.* Из А Где А.Ссылка в (&Список1) ну и по аналогии с
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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