Самый оптимальный способ сформировать из ТЗ другие ТЗ по контрольному столбцу #675273


#0 by bas28000
Есть ТЗ, в ней есть некий столбец, в котором некий код. Нужно разбить всю ТЗ на несколько других ТЗ, которые будут содержать строки только с одним и тем же неким кодом. Код произвольный, то есть это не перечисление неких символов и/или цифр/чисел, это просто практически случайное число, но по основной ТЗ оно постоянно будет повторяться для каких-либо строк. Как наиболее оптимально получить множество ТЗ с одинаковыми контрольными кодами?
#1 by Ёпрст
запросом
#2 by Maxus43
+ пакетным запросом. в каждом пакете отбор из основной по опред условию, ВыполнитьПакет.Выгрузить
#3 by Defender aka LINN
Запросом "множество ТЗ" ты не получишь, один хрен обходить надо будет. Вы знаете, иногда таки приходится программировать...
#4 by Ёпрст
почему ? пакетный..
#5 by Ёпрст
вполне подоёдет
#6 by Maxus43
ну пакеты обходить надо всё равно. но там 3 строки кода с коментариями
#7 by Defender aka LINN
Один фиг
#8 by salvator
Получаешь список уникальных кодов. Для каждого из них создаешь копию основной таблицы и удаляешь из нее строки, где код не равен этому уникальному коду.
#9 by МихаилМ
сверните тз в дз
#10 by Полотенчик
+1. Только при копировании сразу указывай отбор по коду и не надо будет удалять лишние
#11 by bas28000
В смысле? Вот да, как его получить оптимальным образом?
#12 by Полотенчик
скопируй в новую таблицу значений только столбец с кодом и сверни таблицу по этому столбцу
#13 by salvator
+100 забыл совсем про этот вариант
#14 by 1Сергей
дурацкая задача. Какой прок от неопределенного множества таблиц значений? Думаю, задачу можно решить другими способами
#15 by Euguln
+1
#16 by bas28000
Тут дело в том, что задача действительно дурацкая. Стоит она потому, что есть некие файлы обмена, которые либо в csv, либо в dbf, и вот бывает, что эти файлы содержат в одной таблице несколько документов сразу. Рассортировать эти документы можно только по номеру документа, который указывается в одном столбце, то есть в один файл просто фигачатся все нужные документы. Идиоту, который это придумал, я бы давно в голову гвоздь забил, но он далеко. Приходится вот разбирать эти файлы как-то иначе. Может быть подскажете другой вариант?
#17 by Лефмихалыч
только это запрос в цикле и лучше так не делать
#18 by Лефмихалыч
тогда проще принять, как данность, что в каждом файле большеодного документа, и при помощи итогов по номеру выгрузить в дерево, а дверево уже обходить с вложенной выборкой. Запросов в цикле не будет
#19 by bas28000
Как данность это уже и принято, да. А вот что ты после написал, я не понял :)
#20 by Euguln
А в чем проблема в цикле устанавливать один и тот же текст запроса и менять параметр Запрос.УстановитьПараметр("Значение" + Сч, Выборка.ТаСамаяКолонка); и выполнить пакетом.
#21 by bas28000
довольно криво, нет?
#22 by Лефмихалыч
смотри да ни в чем в общем-то, просто запрос может получится непредсказуемо огромный. Это риск.
#23 by bas28000
Ага, понятно. Спасибо!
#24 by 1Сергей
по прежнему не вижу необходимости разбивать ТЗ на несколько
#25 by Лефмихалыч
ее и не было, автор просто цель со средствами перепутал
#26 by bas28000
А, Сергей, если дело в этом, то верно, можно и иначе эти данные хранить и обрабатывать, по факту нужен все равно какой-то алгоритм, позволяющий получать эти данные порциями, которые будут замешаны на контрольном коде. У вас есть предложение именно по этой части алгоритма? :)
#27 by Полотенчик
фу, ужас какой. зачем таблицу перегонять в БД, записывать на хард временные таблицы ради банального перебора?
#28 by sunson
#29 by sunson
еще можно делать НоваяТЗ = СтараяТЗ.Скопировать(Отбор)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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