#0
by Администратор 1С
Здравсвуйте, Подскажите эффективный алгоритм реализации двух таблиц значений без использования запроса
#3
by Администратор 1С
Хотел сказать: Нужен алгоритм для реализации полного внешнего соединения 2-х таблиц значений без использваония запроса.
#9
by Администратор 1С
запросом не получается, в колонке для соедения текст, который перед тем как соеденить нужно еще обработать удалить пробелы лишние и т.д.
#12
by Администратор 1С
предлагаете пройтись в цикле по таблица, выполнить "текстовые операции" , а потом запрос использовать??
#18
by Администратор 1С
Я думал что если уж бегать по таблциам то можно сразу их сравнивать и соединять
#19
by Defender aka LINN
Можно и не бегать. От условий зависит. Ну а если не хочешь запрос - бери, да и соединяй, кто ж мешает-то?
#21
by Лефмихалыч
ну, надо как-то себя заставить... В чем именно проблема? Ты не знаешь, как сравнить два значения? Или не знаешь, как перебрать все строки ТЗ? Или количество колонок заранее не известно и ты не знаешь, как перебрать все колонки ТЗ? Или ты не знаешь, как в рамках твоей задачи ответить на вопрос, а равны ли две ТЗ?
#22
by Администратор 1С
Не знаю сколько раз перебирать строки ТЗ. Колонки перебирать не надо, их колчиество известно. Не знаю может есть "типовой/ые" алгоритмы для решения данной задачи. Задача то стандартная.
#23
by Лефмихалыч
типовой метод - запрос, но тебе вера не позволяет. перебирать надо, чем меньше, тем лучше
#27
by Rie
+ Стоп. Соврал. Соединение - полное ведь. Бежишь по первой, внутри цикла бежишь по второй.
#29
by Ork
Full Join это когда каждый слева имеет соответствие каждому справа. Так что все правильно.
#30
by Ork
+ Left join это когда каждому слева ставится в соответствие что-либо справа. И если "справа" есть записи, которые не соответствуют условию соединения - они в результат не попадут. А все, что "слева" попадает 100%.
#31
by Администратор 1С
Это внтуренее соедение по моему. а как быть с записями из таблицы по который осущетвлен внутренний цикл для которых соотвествий не найдено.
#37
by Администратор 1С
а как быть с записями из таблицы по который осущетвлен внутренний цикл для которых соотвествий нет? в какой момент?
#41
by H A D G E H O G s
Тут не ПОЧТИ НАВЕРНЯКА не нужен запрос, если только Результат соединения не будет использован в следующем запросе (это я про производительность)
#43
by Администратор 1С
Вопрос то вроде не сложный, но вариант решение был предложен только в . Правда не верный, двух циклов не достаточно.
#45
by МихаилМ
алгоритм из 27 дополните пометкой строк 2 таблицы, которые участвовали в соединении потом ещё перебор втрой таблицы и добавление строк не умноженных в первой части алгоритма те не помеченных. но этот алгоритм оптимальеным по скорости назвать сложно. тк он обратвает не множества а строки. но хоть что-то.
#47
by МихаилМ
а по поводу скорости скд умеет делать левое соединение. сам скорость работы не проверял (разработчики 1с любят халтурить). сответственно с скд находим несовпадения (ищите темы на мисте пропоиск различных одинаковых. например дополняем строками ключами несовпадениями далее применяем скд. кстати можно для нормализации полей ключей в ТЗ тоже СКД применить попробовать. может будет быстрее. если можно приведите различия значений полей-сопоставлений
#50
by Администратор 1С
Обобщив все вышесказанное, а также инфу из инета. Нашел, что алгоритмы соедениния бывают (: 1.Алгоритм соединения вложенными циклами. Предложено в , дополнено в . 2.Алгоритм соединения хэшированием. 3.Алгоритм соединения слиянием сортированных списков Видимо предложено в , правда при соедении по текстовому полю, как у меня, придется использовать метод описанный . В итоге сделал как в : Для каждого строкаВнешнТабл ИЗ ВнешняяТаблица Для каждого СтрокаВнутрТаблицы из ВнтуреняяТаблица Цикл Спасибо за ответы.
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Зависание на этапе "Загрузка конфигурационной информации"
- Как правильно удалить Corel Draw 14?
- Добавление аналитики программно в регистр Бухгалтерии
- КД2 Перенос контактной информации
- Пробитие чека УТ 11
- Передача данных из одной формы в другую
- Что означает "ведущее" в измерении регистра?
- Перенос данных из 1с Бухии 7.7 в БП 2.0.17 на 8.2
- А как программно свернуть все группы в форме списка справочника ?
- Подготовка к экзамену на знание основных механизмов и возможностей платформы 1С:
- КМ-6 Справка-отчет кассира-операциониста
- v8: Заполнение реквизитов строки ТЧ документа
- Где хранить реквизиты контрагентов - ветер снова переменился?
- Конвертация с платформы 81 на 82
- Бюджет, 125-я форма. Как заполнить? Есть примеры проводок?
- Неверная ссылка на владельца
- УПП. Документ "Отчет мастера смены" В чем смысл?
- ЗУП 2.5.30, некорректные сведения о стаже в СЗВ при автозаполнении
- Разделитель на управляемой форме - КАК СДЕЛАТЬ ????
- Запрос OLE