gifts2017

Правила обмена 1С: Розница - УПП

Опубликовал Артем Пиженков (pizhenkov) в раздел Обмен - Обмен через XML

Правила обмена между конфигурациями 1С: Розница - УПП.
Работает через стандартный универсальный обмен данными в формате XML

Работает через стандартный универсальный обмен данными в формате XML.

Синхронизируется по кодам и внутренним идентификаторам.

Есть небольшое НО: Не умеет создавать справочник КассыККМ. Необходимо создать руками в УПП с таким же кодом, как в рознице. Если будут замечания - пишите, поправлю.

Скачать файлы

Наименование Файл Версия Размер
ПравилаОбменаДанными_Розница_Упп.rar 92
.rar 38,12Kb
06.02.12
92
.rar 38,12Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. розница.net (ZLENKO) 08.02.12 12:17
К сожалению обмен при помощи правил на основе "Конвертации данных" не дает необходимой надежности и скорости при обмене с розницей. У 1С на самом деле есть очень гибкий и быстродействующий механизм - XDTO, но почему то для обмена между конфигурациями они его не используют. Пришлось самому переписать транспортную часть механизма обмена данных в "1С Розница" на использование сериализации/десериализации через XDTO.
Чтоб было понятно разницу, приведу пример - передача документа "Установка цен номенклатуры" 10 000 наименований товара из УПП в Розницу:
- штатный механизм что то около 30 минут и через раз получаем ошибку нехватки памяти;
- механизм на основе XDTO - порядка 30 секунд.
Разница в скорости в 60 раз !!!
К сожалению не удалось при выполнении кода на сервере обеспечить хранение COM объекта - порядка 10 секунд занимает инициализация соединения через COM. Можно было бы чеки в УПП передавать вообще фактически в реалтайме. Сейчас обмен происходит каждые 30 секунд.
2. artem2922 (pizhenkov) 08.02.12 14:08
По поводу скорости работы через COM соединение вообще вопросов не возникает. Ясно что быстрее.

А можно еще быстрее. Построить все на прямых запросах :-)) Коннект происходит менее секунды, запрос тоже моментально, запись и проведение документа в базу стандартно. И повесить в фон все. Причем если навернуть то можно и триггер сбацать, чтобы при изменении документа или проведении автоматом он улетал в другую базу.

Но это так долго и тяжело все делать
3. Герман Демидов (Demidov) 08.02.12 14:27
Работает ли обмен подарочными сертификатами и дисконтными картами и есть ли обратные правила?
4. artem2922 (pizhenkov) 16.02.12 10:36
(3) С дисконтными картам - да, с подарочными не проверял, у меня их нет.
обратных пока, нет но скоро будут.
5. Олег Владимирович (olezhe) 16.03.12 17:01
(1) розница.net,
Вы пишете "Пришлось самому переписать транспортную часть механизма обмена данных в "1С Розница" на использование сериализации/десериализации через XDTO."

С этим решением можно ознакомиться поближе? У меня в конторе не УПП, а КА и 9 розничных магазинов. Внедряемся пока, ближе к лету купим Розницу. Так что очень интересует опыт и наработки по связке КА-Розница.

Олег Владимирович.
6. розница.net (ZLENKO) 16.03.12 23:27
(5) К сожалению решение по обмену через XDTO не удалось довести до
состояния законченного коммерческого решения.
Оно работает уже 2 года, но по большому счету до коммерческого решения
ему не хватает корректной десериализации составных типов.
Составной тип в XDTO сериализуется как AnyType и при десериализации
невозможно получить какого именно типа было значение - пришлось
прикрутить "костыль" для определения типа значения.
7. розница.net (ZLENKO) 17.03.12 09:40
(5) В Рознице 1.0 перед ее внедрением пришлось переписать практически все что планировалось использовать. Обмен с управленческой базой на УПП был одним из "узких" моментов, т.к. и скорость не утраивала и на объемных документах установки цен он просто "падал" с ошибкой нехватки памяти. Технология XDTO предположительно должна была дать скорость сериалзации и десереализации и возможность обмена между конфигурациями разной структуры (но весьма сильно похожей). Около недели ушло на понимание самой технологии и как ее использовать в конкретной конфигурации. Был использован типовой механизм обмена, т.к. там много полезных механизмов типа "Монитор обмена", но заменена транспортная часть на XDTO. Труднее всего оказалось заставить две разные базы обмениваться, т.е. совместить их пространства имен. Разработчики из 1С не захотели обсуждать эту тему, т.к. это "нетиповое" применение механизма XDTO. Вобщем на скрещивание "ежиков с удавами" ушла еще неделя. Сериализация реализуется по сути одной командой, а вот с десериализацей пришлось помучиться т.к. та стройная схема, которая была в голове не сработала (сейчас уже не помню в чем именно там была проблема). Код десериализации получился не такой "красивый" как предполагалось, ну да то бог с ним - главное чтоб работал надежно. Вобщем еще две недели на разработку и тестирование. Но в самом конце постигло разочарование - данные составных типов сериализуются как AnyType и при десериализации пришлось вставить "толстый костыль" - определение типа с жестко зашитым именем принимаемых метаданных в зависимости от имени реквизита. Именно это и остановило создать отдельное коммерческое решение на базе этой разработки. На самом деле обидно - решение очень удачное по скрости и надежности, достаточно универсальное. Честно говоря не смотрел в последних релизах 8.2 (14 и 15) - может там проблема сериализации составного типа уже решена, но думаю вряд ли.
8. розница.net (ZLENKO) 17.03.12 10:03
(2) Первая мысль по организации обмена для Розницы именно такая и была - через COM получать данные. Тем более что в 8.2 можно удерживать COM соединение в памяти и не инициализировать его каждый раз. В моем обмене через XDTO так и сделано, но когда выполняется регламентным заданием обмен на стороне сервера, то сохранение не работает почему то. Когда с клиента вызывается обмен - сохраняется. На инициализацию COM соединения уходит 4-7 секунд - вобщем то немного, но для онлайн обмена не "феньшуй" :-)
Но потом подумал, что это конечно хорошо когда базы в одной сети, а если розница будет удаленно, то придется ставить центральную базу розницы и с ней обмениваться с УПП по этому механизму, а между розницами строить РБД. По ряду причин такая схема не представлялась удачной и универсальной. Поэтому остановился на COM соединении, но через XDTO сериализацию - при необходимости его (XDTO) можно и в файл сохранить.

P.S.: Прошу не обижаться автора топика за то что я тут понаписал в его топик.
Просто свою тему я не планировал заводить, а вопрос важный и для многих актуальный.
9. розница.net (ZLENKO) 02.04.12 11:20
(5) Вот тут вроде что то написано про XDTO обмен и еще где то видел.
http://www.forum.mista.ru/topic.php?id=330194
10. Александр (Aragorn) 31.05.12 13:03
Посмотрим, правда у меня розница 2.0
11. Алексей Кубовцов (aleksey.kubovtsov) 24.07.12 18:24
12. andronis1 27.05.13 10:35
Розница 2.0
Спасибо за правила!
Проблема с единицами измерений как проставить Ед.Изм. в рознице 2.0 на прямую в Спр.БазовыеЕдИзм не идет как побороть?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа