#0
by vde69
есть сторонняя система, в 1с из нее получаем таблицу ТЗ примерно в 50 тыс строк, далее надо связать контрагентов и договора (по доп полю), сейчас в базе примерно 200тыс договоров, текущий алгоритм стал долго работать (1-2 часа). Сейчас алгоритм такой: из ТЗ выгружаем колоку с кодами контрагентов и сворачиваем, далее ее дополняем колонкой и заполняем эту колонку (получаем кеш таблицу), проходим основную ТЗ и заполняем поле Контрагент (на основании кеш таблицы), алгоритм заполнения однопроходный цикл. далее так-же заполняем договора, банки, счета и т.д. на сколько я понимаю сейчас у нас проблеммы в размере ТЗ нужна идея какой-то хитрой связи, я пока склоняюсь к варианту создания временной таблицы в скуле и прямом джойне,
#1
by Sadovnikov
"я пока склоняюсь к варианту создания временной таблицы в скуле и прямом джойне" - сдается мне, что это самое правильное решение...
#2
by vde69
от тебя другого и не ожидал :) есть еще такой вариант - хранить внутренний_ID обьекта в сторонней системе, и после получения ТЗ востанавливать ссылку по ID
#3
by DrZombi
А поподробнее, про запрос? Что именно ты хочешь получить в итоге? И зачем все в одной? Разве не проще все поручить самому скулю, а там ужо только результат получить?
#4
by kiruha
скидывай во временную таблицу дбф или sql . Индексируем. Потом прямыми - максимум 2 минуты.
#6
by Жан Пердежон
>> получаем таблицу ТЗ примерно в 50 тыс строк, далее надо связать контрагентов и договора; чего с чем связать, что в таблице то?
#12
by Жан Пердежон
а чего с чем связывать и что в таблице - так и не ясно) пока только запрос в цикле виден
#13
by vde69
запрос в цикле - это только для вновь создаваемых элементов получение данных из сторонней системы
#14
by genosse
Перефразируй (точнее сформулируй) сам вопрос. Понять тут вообще ничего не реально. получаем таблицу 50000 -> нужно связать контрагентов с договорами их 200000 -> текущий механизм долгий :)
#15
by vde69
вот что я получаю из сторонней системы: Тип: Процедура Описание: Формирует данные для создания в 1С проводок "Начисление комиссии", "Удержание комиссии" Идентификатор: 10021 Использование: Параметры: Входные: @dt_Beg char дата начала, @dt_End char дата завершения формат 'dd.mm.yyyy' Выходные: Rekvizit - номер договора с клиентом DateBeg - дата начала договора DateEnd - дата завершения договора (если нет - то NULL) Schet - банковский счёт факторинга dt_inp - дата создания с.ф. в нашей системе --------------------------------------------------- нужно создать документы, для этого нужно по ИНН найти контрагентов, по дате иномеру договора найти договора
#16
by genosse
Замер производительности в каком месте дает наибольший процент? Что оптимизируем? Надо сузить круг подозреваемых .)
#19
by genosse
Обе базы скуль? Документы все новые или нужно проверить на наличие изменений в старых + залить новые?
#20
by vde69
обе SQL, но разные 2000 и 2005, при ждойне между серверами индексы не используются, по этому все сделать на одном сервере нельзя. алгоритм пересоздания документов вполне нормально работает, медлено поиск и создание справочников
#21
by genosse
Можно сделать тригер на источнике и переносить только созданные и измененые. Опять же и структуру базы не затронет.
#24
by Asirius
Так ты и каждый раз договор выбираещь >>Договор.НайтиЭлемент(ТабДоговоров.Ссылка); Договор.НайтиПоРеквизиту("УИД",Уид) будет практически с такой же скоростью работать
#26
by МихаилМ
тормоза от подхода решения задачи. обрабатвайте данные множествами а не записями. сответственно желательно иметь метод получения из другой ИБ не обной записи, а множества. и опять же сопоставления (формировани выборки) удобней сделать на сервере а запись на клиенте из сображений понятности кода .
#27
by vde69
получаем выборку одним запросом, далее обращения к базе идут только для НОВЫХ элементов сопостовление на сервере для 7.7 это КАК?
#29
by Garkin
Спрошу на всякий случай. ........ Это точно работает быстрее чем ТабДоговоров.НайтиЗначение( ?
#31
by Garkin
Отсортируй ТЗ по "доп - полю" - избавься от кэш таблицы. Да еще непонятно, сначала ищем клиентов, потом ищем договора. Договор разве не определяет однозначно клиента?
#32
by vde69
в 1с - да, но в сторонней системе нет, и тут идет контроль сторонней системы если договор надо записать, то все равно нужна такая конструкция принимается, посмотрю подробнее
#33
by Garkin
"в 1с - да, но в сторонней системе нет, и тут идет контроль сторонней системы " Ну и фик с ним, найди договор, а потом контролируй совпадает ли владелец договора в 1С с клиентом в сторонней система. "если договор надо записать, то все равно нужна такая конструкция " - что-то я не наблюдаю где ты в записываешь найденный договор, ты от нас что-то скрываешь? "принимается, посмотрю подробнее" - в топку, см . Избавься от кэш таблицы.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Поиск по строковому реквизиту шапки документа
- Можно ли ускорить вывод таблицы на экран?
- По умолчанию при нажатии Ctrl-F поиск настроен на поиск по текущей колонке
- Как ускорить запрос по регистру?
- Поиск в УФ как програмно отключить поиск?
- Формирование движений по партиям товаров и НДС ускорить можно?
- 1С:Предприятие 8.1 УТ 10.3 Как Поиск по штрихкоду поменять на поиск по коду?
- БП. Как ускорить закрытие периода?
В этой группе 1С
- Регламент по запуску 1С ЗУП в эксплуатацию после переноса данных
- Отображение в трее конверта при получении письма (MS Outlook 2007)
- Как узнать конфа проф или базовая?
- ЗУП 2.5.20.3 Расчетные листки
- Регистры накопления (остатков) УПП
- ЗУП: Два аванса в месяц, реально?
- v8: отчет с расшифровкой по месяцам
- Как проставить префикс узла РИБ в печатных формах документов?
- Загрузка ОКОФ в Бух 8.1
- УПП/ЗуП Где в указывается максимальный размер пособия по временной нетрудоспособности
- БП 1.6.15 Теряется миллион на 51 счете))
- Можно ли получить количество строк после отбора?
- ЗУП8 - полный дистрибутив конфигурации
- Формат Bas
- 1c v8.2 вывод HTML документа
- Конструкция "Пока 1 = 1 Цикл "
- Где ошибка в коде?
- Самосборный сервер vs готовый
- 8.2 Как в подписке на событие задать пользователю вопрос?
- Отследить монопольный доступ