Завершен

Повышение быстродействия при загрузке номенклатуры

p z 8 лет назад обновлен Сергей (Специалист) 8 лет назад 7

Добрый день!

В ходе разработки, столкнулись со следующей проблемой:

При загрузке номенклатуры на север ТСД, сам процесс загрузки идет очень долго(скорей всего из-за количества самой номенклатуры( более 300 тыс. позиций).

При том, торможение происходит в 2 этапа: 1 - сначала 1С отдает долго данные компоненте, а потом уже сам сервер(скорей всего стоит индексы), минут 20-30 тоже находится в подвешенном состоянии...

Сам обмен именно номенклатурой в дальнейшем будет работать в режиме очереди( т.е. 1 раз сделали большую выгрузку и дальше ходят только измененные), но цены (а это планируется отдельная серверная таблица), должны будут обновляться 2 раза в день и нужно максимально быстро это делать. Сложности прибавляет то , что количество позиций цен будет в несколько раз больше , чем самой номенклатуры(на каждый магазин своя цена).

Вопрос заключается в том: нет ли каких-нибудь уже известных и общепринятых методов работы в таких условиях? Т.е. самое важное - это обеспечить максимально быстрое обновление таблицы цен? По возможности - обмен номенклатурой тоже желательно максимально ускорить.

Спасибо.

Добрый день!

Обработку выгрузки свою используете самописную или типовую?

В типовой используются асинхронные выгрузки построчные, оно побыстрее работает, хотя понятно - 300 тыс. много и мгновенно не выгрузится.

По ценам - таблица это правильно. Просто выгружайте не всю таблицу, а только изменения.

Еще советую Вам перейти на новую версию платформы: там таблицы могут быть на базе sql, плюс как раз частичные выгрузки возможны если колонку с уникальным ключом завести.

Скачать новую платформу можно тут: http://cleverence.ru/downloads/MobileSMARTS.msi

Если соберетесь перейти, то сконвертировать конфигурацию мы Вам поможем: напишите письмо на суппорт.


Выгрузка используется своя( задержка на момент выгрузки из 1С некритична, и может лечь в регл. задание в будущем).

"По ценам - таблица это правильно. Просто выгружайте не всю таблицу, а только изменения." - если честно, не нашел чего-то похожего на UPDATE для таблиц... только удаление и создание новой строки(думается, что это все же медленней апдейта).


"Еще советую Вам перейти на новую версию платформы: там таблицы могут быть на базе sql, плюс как раз частичные выгрузки возможны если колонку с уникальным ключом завести."

(вот и ответ про мой UPDATE, наверное) - тогда есть вопрос про эти таблицы: они , получается, могут лечь на какой-то SQL сервер? и ТСД-сервером браться? т.е. я смогут эту таблицу обновлять сразу на SQL?

или это какой-то все же внутренний механизм будет? возможно, где-то есть какой-то мануал, и можно изучить, чтобы не задавить лишних вопросов?)

Спасибо!

Для этих наших sql таблиц используется Sqlite, т.е. вы править конечно можете, но возможны блокировки файла так что лучше и правильнее через сервер.

По документациям и новому апи к ним, к сожалению пока нет, собственно поэтому и платформа эта явно на сайте не лежит, а используется нами в новых продуктах. Так что тут мы Вам поможем.

В старой платформе (да и в новой тоже), кстати, есть коннектор к MS Sql серверу. На сайте примера я к сожалению не нашел, но если напишете на support думаю смогут пример найти использования.

Тогда можно будет поднять SQL сервер, даже бесплатный Express, и таскать цены из его таблички.

Также если получение цен будет всегда происходить через сервер, можно не выгружать цены куда-либо, а получать он-лайн прямо из 1С. Для этого нужно использовать коннектор к 1С (см. http://www.cleverence.ru/support/category:%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B5%20%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D1%8B/). В случае серверной базы 1С, думаю, по быстродействию это будет сопоставимо с получением из SQL-таблицы. Номенклатуру тоже можно получать он-лайн прямо из базы 1С (если нет необходимости, чтобы на терминале можно было работать без связи с сервером). Все это реализовано в нашем продукте Драйвер 1C Wi-Fi ПРОФ (http://www.cleverence.ru/software/mobile-smarts/MS-1C-WIFI-DRIVER-PRO/), в самой платформе mobile smarts 2008 также есть коннекторы к 1С, т.е. там тоже это все можно сделать.

Коннектор уже обдумывался...но проблема в том, что ТСД сам будет использоваться в оффлайновом режиме(т.е. без постоянной связи с сервером ТСД/сервером 1С).

При обмене с ТСД, ведь вся таблица цен будет на него выгружаться полностью заново? Тут задержку , получается, убрать точно никак не удастся ?



По новой платформе - я попробую скачать, и посмотреть, возможно появятся вопросы, и тогда спрошу, спасибо за информацию.

Ну если в оффлайн режиме, то собственно только sqlite таблицы наши из новой платформы, никаких вариантов других у Вас нет.

Собственно предложения про коннектор и MS Sql написали, так как у Вас было написано, что для цен планируется серверная таблица.

Сервис поддержки клиентов работает на платформе UserEcho