Имя: Пароль:
1C
1С v8
Быстрый обмен документами
0 lirt82
 
10.08.26
13:04
Уважаемые форумчане подскажите быстрый способ передачи документов объектов из одной базы в другую? Дано: база ЕРП и база Розница центральная и далее базы магазинов Розницы, обе расположены на одном сервере. Между ними настроен обмен, так как объем передаваемых данных в обе стороны большой, обмен длится около 1 часа. Настроено расписание каждый час, но иногда сеанс обмена не заканчивается и по расписанию начинается новый, т.е. "наслаивается". Получается куча документов распроводиться далее начинается их перепроведение и тут запускается новый сеанс обмена.
Есть предложение сделать внешнюю обработку с фильтрами по дате и типу документов и когда обмен зависает, запустить ее и она быстро передаст нужные документы из ЕРП в центральную Розницу. Далее центральная Розница в нужный магазин - тут проблемы с обменом в магазин нет. Из ЕРП в центральную Розницу передавать внутренний идентификатор документа, чтобы обмен не создавал новый экземпляр объекта.
1 Волшебник
 
10.08.26
13:07
В начале сеанса обмена выставляйте константу "Идёт обмен", в конце снимайте.
Ещё раньше проверяйте, если константа выставлена, то выход.
2 H A D G E H O G s
 
10.08.26
13:07
(0) Позовите программиста 1С
3 Nedomolkov_
Ivan
 
10.08.26
13:19
(0) Гнать документы мимо обмена своим GUID-ом потом сам будешь разгребать: регистрация в плане обмена никуда не денется, они уедут ещё раз и на приёмнике словишь конфликт версий.

Час обычно жрёт не выгрузка, а проведение на приёмнике. Сделай замер, где реально время уходит, а то будешь чинить не то.

Про наслаивание: регламентное задание второй экземпляр не запустит, пока предыдущий жив. Раз у тебя наслаивается, значит обмен дергают снаружи, планировщиком или COM-ом. Вот там и копай. Константа "Идёт обмен" симптом залечит, но при аварийном обрыве сеанса останется висеть и обмен встанет насовсем.
4 d4rkmesa
 
10.08.26
13:30
(0) >> Получается куча документов распроводиться далее начинается их перепроведение.

Стандартные обмены - это боль. Если хочется скорости - нужно чтобы все ходило без БСП-ной синхронизации, но придется самостоятельно писать обработку отложенного проведения и регистрацию в источнике (хотя тут можно воспользоваться типовым планом обмена). Даже не знаю, почему 1С еще не дописала БСП к 1С Шине, чтобы сделать параллельную обработку, пока там только как транспорт можно использовать.
5 breezee
 
10.08.26
13:33
Шина данных Датареон. Это боль сделать, но работает быстро
6 Domovoi
 
10.08.26
13:33
(0)Интересная ситуация. За час в ЕРП создаются доки, но не успевают за следующий час долететь до розницы и создаться. Мол в ЕРП так плотно целый час все создается, что не высвобождается время на полет данных.
7 d4rkmesa
 
10.08.26
13:35
(0) Забыл написать, быстрый способ - 1С Шина или Rabbit, допустим. Но в данном случае все еще упирается в отложенные обработчики на приемнике. Там где-то может что-то можно запараллелить, ну это уже надо в этом разбираться. Допустим, достаете из Шины объектXDTO, конвертируете типовым механизмом, записываете, дальше что? Скорее всего, надо дозаполнить и провести.
На ИС кто-то пробовал распараллелить БСП-ную синхронизацию через ED, ничего не получилось.
8 d4rkmesa
 
10.08.26
13:37
А, и еще, чтобы не запускалось следующее, попробуйте прописать ключ в рег. задании.
9 Fragster
 
гуру
10.08.26
14:14
настроить обмен с транспортом "интернет" и расписанием "с паузой 5 минут", причем только в одной базе и отправку и получение в одном сценарии. наслаждаться.
10 Garykom
 
гуру
10.08.26
14:07
(7) Еще ты забыл написать что Шина или Кролик или Датареон тут никаким местом не помогут

Ибо разница "обмен через брокер сообщений" vs "типовой обмен" не  в том как передавать (транспорт)
А что передавать!

Надо уходить от одно большое сообщение с кучей объектов (справочников, документов и т.д.)
На много мелких сообщений в порядке очередности, каждое только с одни объектом!

И будет абсолютно пофиг на транспорт, хоть по прежнему в каталог на диске их писать с дата/время
И оттуда же читать (в нужном порядке) и удалять (переносить в загруженное)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший