Как сделать обмен данными через универсальный формат быстрее? Реализация многопоточного обмена данными

Публикация № 1175734 31.12.19

Интеграция - Обмен между базами 1C

обмен данными через универсальный формат многопоточный правилам КД3

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

Коллеги, во первых, всех с Наступающим Новым Годом! Желаю всем успехов и побольше хорошего настроения в новом году. 

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

Это может стать серьезной проблемой. Увеличивать мощность сервера до бесконечности не всегда правильный вариант. Более правильно распараллелить процессы выгрузки и загрузки данных и выполнять их одновременно.

Ситуация усугубляется тем, что существующий обмен в современных типовых конфигурациях через универсальный формат работает, откровенно говоря, значительно медленнее старого доброго обмена данными в формате XML по правилам конвертации 2.0.

 

Многопоточный обмен данными

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

В данной статье я хочу описать реализацию многопоточного обмена данными между типовыми конфигурациями ЕРП 2.4 и БП 3.0. Все «грабли» и неприятности с которыми пришлось столкнуться, а также способы их устранения.

Спасибо сотрудникам компании 2iS и их продукту 2iS:Интеграция 2.0, который является основным звеном разработки.

Отдельное спасибо сотрудникам компании РЕМИ в лице Дмитрия Кирилкина за помощь в тестировании и поиску «узких мест» механизма.   

Я здесь не буду рассматривать подробно продукт 2iS:Интеграция. Продукт уже достаточно давно на рынке, имеет много документации, и тем кому интересно, тот может самостоятельно его изучить. Если кратко, 2iS:Интеграция позволяет выполнять различные встроенные в нее обработки во внешних информационных базах. Это может быть запуск механизмов обмена, формирование отчетов, обработка документов и выполнение любых необходимых операций. Подключение к информационным базам выполняется через COM. Это не единственный способ подключения, но он является основным.

Уже чувствую гневные возгласы на счет целесообразности использования COM и DCOM в эпоху HTTP и WEB сервисов, ODada и JSON. Скажу сразу, я с этим согласен с некоторыми оговорками. Но, в данной статье я не буду касаться этого вопроса, и приму его как данность. Тем, кому интересно узнать плюсы и минусы реализации взаимодействия через COM в 2iS:Интеграции, смотрите в этой статье.

В 2iS:Интеграции реализовано много полезных сервисов, таких как сохранение контекста подключения между сеансами обмена, обработка различных исключительных ситуаций, обратная связь для передачи информации о ходе выполнения и прочее.

Отдельно стоит отметить механизм разбиения данных на порции и выполнение обменов данными в многопоточном режиме. Многопоточный обмен через 2iS:Интеграцию уже успешно зарекомендовал себя в связке с правилами конвертации КД2 для выполнения обменов между распределенными базами (РИБ) и базами с отличающимися конфигурациями.

Связка же механизма многопоточности с обменом через универсальный формат выполнялась впервые. Ниже я расскажу об особенностях и нюансах.

 

Архитектурные особенности

Общая схема процесса выгрузки данных

Выгрузка данных

 

Общая схема процесса загрузки данных

Схема загрузки данных

 

Основной и базовый механизм программного продукта 2iS:Интеграции, который выполняет все сервисные функции, такие как запуск обработок обмена, разбиение данных на порции, запуск и отслеживание выполнения в отдельных потоках, вывод информации о прогрессе выполнения - называется Сервисный процессор.

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

 

Произвольный алгоритм выборки данных

Первая такая особенность предоставляет возможность использовать произвольный алгоритм для выборки данных и отнесения их к той или иной порции. Это очень полезно, если данные требуется выгружать в определенной последовательности или порциями определенного размера. Также есть возможность распределить документы разных организаций в разные порции. Как вы увидите дальше, это крайне необходимая вещь для выполнения обмена данными по правилам КД3.

Мы реализовали следующий алгоритм выборки данных:

  1. Объекты не являющиеся документами (элементы справочников, планов видов характеристик) – выгружаются всегда первыми и в полном объеме. Это необходимо для корректной загрузки и проведения документов.
  2. Данные, которые были выгружены ранее, и по ним не получено подтверждение загрузки – необходимо выгружать эти данные первыми, чтобы они не были потеряны в результате обмена. Потеря данных может произойти в случае, если будут выгружены другие данные и получено подтверждение по ним с более большим номером отправленного сообщения. 
  3. Остальные объекты (документы) - в объеме не превышающем максимальный объем выгружаемых объектов.

 

Распределение данных по порциям 

Сам механизм распределения по порциям происходит следующим образом:

  1. Считываются зарегистрированные данные. Все, или отобранные согласно алгоритму выборки.
  2. После этого выбранные данные регистрируются повторно на виртуальных узлах плана обмена. Фактически этих узлов не существует в информационной базе. В файлах обмена данными присутствует информация только об основном узле. Соответственно номер отправленного сообщения везде идентичный.
  3. После успешного выполнения всех потоков обработки данных регистрация на виртуальных узлах удаляется.

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

 

Процесс выгрузки и загрузки данных

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

За прототип обработки, которая выполняет сам обмен данными (выгрузку и загрузку) нами была взята типовая обработка «ВыгрузкаЗагрузкаОбъектовXDTO», которая есть во всех типовых конфигурациях.

Дальше есть два подхода к реализации:

  1. Перенести в обработку все механизмы БСП необходимые для обмена данными – в этом случае, мы не будем зависеть от изменений в типовых конфигурациях. Но значимые изменения, допустим поддержку нового универсального формата, придется переносить вручную.
  2. По возможности использовать процедуры обмена данными из общих модулей БСП – в этом случае, при обновлении типовых механизмов, нужно будет только проверить их совместимость с тем, что есть в обработке. Однако в данном случае придется вносить некоторые, хоть и минимальные изменения в типовых модулях БПС.

Нами был выбран второй вариант. При необходимости можно реализовать и первый, достаточно быстро.

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

Сам универсальный формат, на данный момент, можно использовать только встроенный в информационную базу.

 

Основные проблемы реализации многопоточности

К большому сожалению, разработчики типового обмена данными, сделали его достаточно сложным. В типовых правилах очень активно используется создание виртуальных объектов при выгрузке, создание объектов «на лету» при загрузке, сохранение большого числа коллекций с объектами и их последующая обработка. По всей видимости они не задумывались над возможным использованием этого механизма в многопоточном режиме, а очень зря.

Ниже я приведу основные сложности, с которыми мы столкнулись, и варианты их устранения.

 

Выгрузка дополнительных «виртуальных» объектов

Достаточно часто в типовых правилах конвертации, построенных на КД3, при выгрузке данных создаются виртуальные элементы справочников. Это те элементы которые должны быть в базе получателя и которых нет в базе отправителя. Примером такого поведения может быть выгрузка из конфигурации ERP документа «Приобретение товаров и услуг». В файл обмена могут быть выгружены виртуальные договоры если в ERP поступление оформлено без указания договора (такое возможно в зависимости от настроек).

На этапе загрузки данных, система будет пытаться найти такие договоры в базе Приемнике по полям поиска. Если данные найдены, то они обновляются. Если не найдены – создаются новые элементы. При одновременной загрузке данных в разных потоках, могут возникнуть следующие проблемы:

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

Аналогичные проблемы могут возникнуть в случае, если в правилах конвертации на этапе загрузки данных предусмотрено создание новых объектов «на лету». Что тоже может встречаться в правилах конвертации.

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

 

Отложенная обработка объектов  

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

Перечислю коротко эти процедуры в порядке их выполнения:

  1. Пометка на удаление объектов – помечаются на удаление все объекты по которым получен признак удаления и не получена загрузка полного объекта,
  2. Удаление временных объектов, созданных по ссылкам – удаление объектов, которые были созданы или найдены по полям поиска, и не были загружены полностью,
  3. Отложенное заполнение объектов – выполнение алгоритмов отложенного заполнения объектов, которые могут быть указаны в правилах для каждого вида объектов,
  4. Обработка события «После конвертации» - выполнение произвольных операций после загрузки всех данных,
  5. Отложенное проведение документов – выполнение проведения загруженных документов,
  6. Отложенная запись объектов – выполнение записи загруженных объектов (не документов) с выполнением всех платформенных проверок и обработчиков.

Дело в том, что для корректного выполнения многих из этих процедур необходимо это делать после загрузки всех данных во всех порциях. Более того, выполнять эти процедуры необходимо единовременно имея все необходимые данные по загруженным объектам.

Приведу несколько примеров:

  1. Очень часто перед отложенным заполнением объектов выполняется сортировка всех загруженных объектов по определенному принципу. Соответственно, должен быть список всех загруженных объектов.
  2. При пометке на удаление объектов, или при удалении временных объектов созданных по ссылкам, они могут быть загружены полностью в других потоках.
  3. В алгоритме «После конвертации» есть процедуры такого вида «АктуализироватьПодчиненностьСчетовФактурВыданных». Выполнение этих процедур зависит от связных объектов, которые могут загружаться в других потоках.

Мы решили эту проблему следующим образом:

После окончания загрузки очередной порции данных, все необходимые нам коллекции из структуры «КомпонентыОбмена» помещаются в хранилище общих настроек. Соответственно, после обработки всех порций, все сохраненные данные считываются из настроек и формируется результирующая структура «КомпонентыОбмена». После чего выполняются все описанные выше операции.

КомпонентыОбмена – это структура, в которую помещаются все данные, необходимые для выполнения обмена. Структура доступна во всех алгоритмах обмена данными. Более подробно читайте в статьях:

Данный подход в целом корректен, но имеет один существенный недостаток. Дело в том, что таблица «ЗагруженныеОбъекты» структуры «КомпонентыОбмена» содержит в себе элементы типа «Объект». Элементы таких типов нельзя сохранить в хранилище общих настроек. Мы были вынуждены очищать поля с типом «Объект» и формировать потом объекты заново.

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

 

Резюме

Как видите, не все удалось решить доработкой самого механизма обмена данными. В ряде случаев необходимо корректировать сами правила конвертации, и это не очень хорошо.

Исходя из всего вышеописанного, можно сделать следующий вывод:

У нас есть рабочий функционал для выполнения обмена данными через универсальный формат в режиме многопоточности между современными типовыми конфигурациями. Но сделать это «из коробки» не получится. В любом случае потребуется дополнительная доработка правил конвертации. Насколько серьезная, это уже зависит от специфики конкретной компании.

 

Есть ли альтернатива?

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

Варианты оптимизации, которые можно использовать:

  1. Кэширование данных из регистра сведений «Публичные идентификаторы синхронизируемых объектов».
  2. Отделение процесса отложенного проведения документов от основного процесса загрузки данных и выполнение его в отдельном потоке.

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

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

 

Другие статьи по механизмам обмена данными через универсальный формат:

  1. Теоретическая, вводная статья по EnterpriseData

  2. EnterpriseData  Часть 2. Процесс выгрузки данных

  3. EnterpriseData  Часть 3. Процесс загрузки данных

  4. КД3 - инструкции и примеры, рекомендации 

  5. Пример собственной реализации выгрузки данных в формате EnterpriseData 

  6. Пример доработки правил конвертации данных без использования КД3

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 31.12.19 12:32
(0) Мощная реализация.

А у скольких компаний такое используется?

P.S. С наступающим! )
ids79; pavelpribytkin96; +2 Ответить
2. Mick2iS 271 31.12.19 16:07 Сейчас в теме
(1) С Наступающим, Коллеги!

Многопоточные обмен и обработки в продукте 2is:Интеграция появились в 2015 году и тогда же были обкатаны на ряде весьма крупных проектах. Т.е. сам подход к многопоточности (распараллеливанию) универсален и его можно применять в любых обработках. Готовые примеры распараллеливания из 2iS: замена дублей в базах, удаление объектов по условиям, проведение документов и формирование проводок (где нет завязки на последовательность), обмены по разным сценариям и т.д.
Таким образом, многопоточность, как инструмент применяют все кто используют продукт с 2015 года (замечу, что при обмене данными, многопоточность включается автоматически при достижении заданного размера очереди, по умолчанию это 1000 объектов).
В настоящей статье, Дмитрий описал пилотный проект (т.е. первый:-) по применению данного подхода к обмену в универсальном формате EnterpriseData (КД3) и раскрыл имеющиеся подводные камни на пути к его реализации.
Поддержка многопоточного обмена в формате EnterpriseData (КД3) была включена в один из последних релизов 2is:Интеграции и, таким образом, уже доступна в тиражном решении. Статья будет полезна также тем, кто собирается внедрять данную функциональность.
ids79; YPermitin; +2 Ответить
4. пользователь 31.12.19 18:38
(2) благодарю за развернутый ответ.

Эх, пощупать бы это все. Но проектов "в доступности" таких нет.

+
8. ids79 7776 03.01.20 18:17 Сейчас в теме
(4)Можно посмотреть саму Интеграцию, как там все это устроено. Код открыт за исключением одного модуля, где проверяется лицензия. Также можно протестировать и погонять на реальных данных с trial ключом.
3. MaxS 2649 31.12.19 17:33 Сейчас в теме
С наступающим!
Данные в плане обмена регистрируются же порциями, соответственно так же можно разбивать на порции при обмене.
Ещё как вариант - анализировать данные - связанные документы и справочники направлять в один поток.
Ещё полезно было бы организовать очередь. В числе первых обмениваться справочниками, потом документами.

По поводу сравнения скорости обмена КД2 и КД3. Где-то была статья с замерами. КД3 на 20% была быстрее. Сам пока не проверял. Субъективные ощущения, что разницы почти нет. А файл с универсальным форматом выглядит лаконичнее и читабельнее. И с учетом ограничения формата, реквизитов на каждый объект минимальное достаточное количество.

В типовом обмене, если использовать ручной запуск кнопкой Синхронизировать. Время обмена увеличивается в 2 раза. Первый - предварительно прочитать файл и выдать диалог синхронизации, второй раз данные читаются для непосредственной загрузки в базу.
7. ids79 7776 03.01.20 18:12 Сейчас в теме
(3)Я тоже не делал замеры, но по моим субъективным ощущением, обработка правил КД2 по быстрее. Может быть сама передача файла КД2 будет медленнее, так как правила нужно передавать в файле.
5. Yashazz 4506 01.01.20 14:56 Сейчас в теме
Я вот только одного не понимаю. Сначала всё усложнили, а потом героически боремся с этими сложностями. Зачем вообще использовать для больших объёмов с ограничениями времени типовой обмен? Пишем свой и живём спокойно, не завися от блажи создателей БСП в очередном релизе и степени их криворукости. А так - ну подсчитайте накладные расходы на извращения вокруг БСП и на написание своего с чистого листа, и увидите: своё побыстрее и попроще будет.
ybatiaev; Mick2iS; dsdred; Fox-trot; Lancelot-2M; Sherwood; +6 Ответить
6. ids79 7776 03.01.20 18:08 Сейчас в теме
(5)Да, свой безусловно быстрее будет.
Но если много документов и справочников, то это трудоемкий процесс получится.
Решением может стать перенос нескольких особо тяжелых документов с помощью не типового спец. обмена, а остальное типовым делать.
У меня была еще мысль вообще отказаться от XDTO. Зашить описание формата в общий модуль и использовать JSON. Уже собрался делать, но результаты тестов показали, что больше всего времени уходит не на работу с XDTO, а на обработку правил конвертации, от которых все равно никуда не денешься. Ускорение если и получится, то незначительное. Так что отказался от этой идеи.
Может быть разработчики со временем сделают возможность опционально использовать или XDTO или JSON.
9. Mick2iS 271 04.01.20 16:03 Сейчас в теме
(6) Я делал замеры, когда JSON только появился в платформе - разницы с xml \ xdto сериализацией практически не было (места меньше, но читабельность сильно хуже) и да - это менее 2% от процесса, далее, по-нормальному, 48% занимает конвертация по правилам, и наконец 50% - обработка данных после загрузки (дозаполнение, проведение и т.п.). Последняя, очевидно, должна быть вынесена в отдельный асинхронный поток, дабы не замедлять обмен данными...
10. Mick2iS 271 04.01.20 16:15 Сейчас в теме
Напишите ваше сообщение
(5) Если под "своим обменом" понимать разработку правил с нуля на КД2, с заточкой под конкретную бизнес-логику (читай, сильно доработанными типовыми), то согласен - будет и работать быстрее и разработка займет меньше времени...
Выше описан реалистичный и наиболее частый из практики случай - "когда-то было типовым" и "так исторически сложилось"))
11. Yashazz 4506 04.01.20 17:42 Сейчас в теме
Люди добрые, да зачем вам КД вообще, хоть 2, хоть 3? Своё от начала до конца, и это вовсе не столь трудоёмко, как кажется! Меня тоже запугивали на одном проекте, мол, без КД вилы, а там засчёт отказа от кд-шных принципов обработки данных и скорость повысить удалось (точные проценты не скажу, уже не помню), и надёжность, и ресурсоёмкость. Ясное дело, при небольших задачах КД наше всё, но не делайте из неё панацею)
ybatiaev; +1 Ответить
12. Константин С. 737 08.01.20 15:21 Сейчас в теме
(11)
ость. Ясное дело, при небольших задачах КД наше всё, но не делайте из неё панацею)

Но еще нужно не забывать о дальнейшей поддержке рабочей системы. Понятности что происходит и простоты модернизации.
А то один такой умник внедренец (это не оскорбление, а реальная оценка), а после ищи кто сможет это сопровождать.
13. Yashazz 4506 08.01.20 18:22 Сейчас в теме
(12) Делать надо нормально, структурированно и прозрачно. По-умному делать. И инструкции да схемы после себя оставлять, документировать нормально. Тогда любой грамотный спец за пару дней вникнет и сможет сопровождать.

А то есть такие умники, например, бсп накатали, а внутри хрен разберёшься, и описаний внятных нет, несмотря на раскрутку и типа универсальность. И ищи, кто сможет это сопровождать. Да ещё загибающееся от собственных наворотов и переделок.

Я это к чему - если спец хороший и объёмы адские, то, разумеется, свой обмен выигрышнее. В том числе по дальнейшей поддержке и доработке. А если пионэры, то они и в КД так наколбасят, что чёрт ногу сломит.
nik2500; ybatiaev; +2 Ответить
15. ybatiaev 58 22.01.20 17:40 Сейчас в теме
(13) Поддержу Вас! Если спец, то он и в КД разберётся и в чужом коде. У нас так, если стандартный обмен, то он и есть стандартный, что тут рожать, а если с закавыками, то проще заложить в обработку. С JSON трафик меньше, читабельность лучше, преобразование проще(на мой взгляд быстрее). А львиная доля времени затрачивается на проверки, поиски, сравнения, особенно, если бухгалтера не понимают, что чем безалабернее ведутся справочники, тем дольше ищется (с доп проверками)
14. NoRazum 29 09.01.20 12:16 Сейчас в теме
К большому сожалению, разработчики типового обмена данными, сделали его достаточно сложным. В типовых правилах очень активно используется создание виртуальных объектов при выгрузке, создание объектов «на лету» при загрузке, сохранение большого числа коллекций с объектами и их последующая обработка. По всей видимости они не задумывались над возможным использованием этого механизма в многопоточном режиме, а очень зря.


имхо: Они походу ВООБЩЕ НЕ ДУМАЛИ. Думали только чтоб целостность данных была.
Чуть больше объем и даже хорошее железо не спасает.
ybatiaev; +1 Ответить
16. titanium2008 34 19.02.20 15:21 Сейчас в теме
Воспрос - например у меня есть обмен через КД 3 между УТ и БП. Можно ли вынести пакет EnterpriseData и общие модули правил обмена в отдельную конфигурацию и при помощи данной конфигурации инициировать обмен? К кому можно обратиться чтобы посмотреть 2is интеграцию с КД 3?
17. acanta 19.02.20 15:25 Сейчас в теме
Планы обмена с ED в любом случае стыкуются исключительно вручную. Подтверждение о получении пакета есть в РИБ?
Оставьте свое сообщение

См. также

Особенности работы с COM-соединением

Обмен между базами 1C Платформа 1С v8.3 Платформа 1C v8.2 Конфигурации 1cv8 Бесплатно (free)

О чём и зачем данная статья? Казалось бы, что написано об этом соединении очень много, да и технология устаревшая... И мне так раньше казалось! Однако, столкнувшись с необходимостью на двух проектах подряд работать с этой технологией, стало понятно, что описание трудных ситуаций или отсутствует, или есть только на форумах, что крайне неудобно! Поэтому особенности работы с COM соберу в одном месте, чтоб не искать в будущем.

22.02.2023    4730    biimmap    71    

65

Ни в ЗУП ногой!? А мне нравится! Часть 4. Главное - правильный перенос данных!

Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 2.5 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Бесплатно (free)

Ни для кого не секрет, что ЗУП - одно из сложнейших решений в линейке 1С. Многие разработчики и аналитики не любят им заниматься. Тяжело представить, чтобы начинающий разработчик/аналитик стал по доброй воле работать в сфере управления персоналом и расчета заработной платы. В данной серии статьей будет рассказано, какие видятся плюсы в этом решении и как справляться с его минусами. Кратко расскажу, как встать на этот путь, приведу примеры выполненных задач.

30.05.2022    5705    biimmap    27    

56

Переход с УПП на ERP с сохранением документов. Фантастика или реальность?

Внедрение ИТ-системы Обмен между базами 1C Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 Бесплатно (free)

В последнее время задача перехода с УПП становится все более актуальной. Причина – ожидаемое снятие УПП с поддержки и более продвинутые возможности последних версий конфигураций 1С. О том, какие методики переноса данных из УПП в ERP можно применить, и как в автоматическом режиме убедиться, что все перенеслось корректно, на конференции Infostart Event 2021 Moscow Premiere рассказал Сергей Сорокин.

28.04.2022    3465    primat    2    

23

Выполнение синхронизации (обмен) по событию 1С (двусторонний обмен)

Обмен между базами 1C Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление нашей фирмой 1.6 Бесплатно (free)

Выполнить синхронизацию(обмен) с другой базой 1С по событию в 1С (проведение документа). Запустить синхронизацию из другой базы 1С.

16.11.2021    4725    Swamt    0    

23

Что делать, когда обмены между разными базами данных портят вам жизнь…

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Если при обмене между базами данных наблюдаются следующие симптомы: • Процедуры обмена занимают неприемлемо много времени. • Процессы обмена периодически вылетают «по ошибке» и их приходится запускать заново. • Поиск ошибок обмена превращается в ужасающий квест. То, скорее всего вы используете конфигурацию «Конвертация данных». А если при этом вам надоело получать сообщения службы поддержки о новых ошибках и вы бережете свои нервы, то данная статья написана прямо для вас. Чуть ниже я расскажу вам, как навсегда забыть проблемы, связанные со словом "обмен".

10.09.2021    3397    director04    9    

20

Описание формата 1С JDTO (JSON data transfer object)

Обмен между базами 1C Платформа 1С v8.3 Бесплатно (free)

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

16.07.2021    11153    zhichkin    32    

95

Добавление нового документа в формат обмена EnterpriseData (получение)

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Данная статья - логическое продолжение (ссылка на первую часть ниже) доработки обмена, но уже на стороне базы приемника.

27.04.2021    2915    con-men    2    

15

Добавление нового документа в формат обмена EnterpriseData (отправка)

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Для меня встала задача добавить новый документ, созданный в расширении, в формат обмена EnterpriseData, между БП - УНФ. Изначальный поиск решения не дал результата. Методом проб и ошибок у меня сформировалось свое решение, которым спешу поделиться, чтобы систематизировать информацию в текст и услышать плюсы, минусы подхода. Все доработки осуществляются в расширении, в котором и был создан новый документ.

21.04.2021    5811    con-men    7    

55

Правила обмена больше не нужны

Внешние источники данных Обмен между базами 1C WEB-интеграция Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Бесплатно (free)

Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.

17.03.2021    19677    Nikola23    41    

80

R.I.P. РИБ

Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

РИБ, спасибо и до свидания.

19.02.2021    13806    1c-intelligence    133    

69

Архитектурное решение интеграции баз 1С с использованием брокера сообщений Rabbit MQ

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При решении задач интеграции баз данных можно использовать различные средства «транспорта» сообщений. Одним из таких механизмов является брокер сообщений «Rabbit MQ». Такие механизмы очередей сообщений удобно использовать для организации обмена между информационными системами с различной структурой данных, когда велик объем передаваемой информации и требуются гарантии успешной доставки сообщений, а также когда поддержание работоспособности иных способов передачи, например через файлы, становиться слишком трудоемким. Брокер сообщений Rabbit MQ широко описан в сети, но 1С пока не имеет штатных механизмов работы с ним, поэтому их приходится дорабатывать. Рассмотрим пример архитектуры 1С с его использованием.

12.02.2021    4467    Koder_Line    6    

13

Перенос данных из ЗУП 2.5 в ЗУП 3.1

Зарплата Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 2.5 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Бесплатно (free)

Довольно часто сталкиваюсь с тем, что у коллег возникает вопрос, как правильно выполнить перенос данных из ЗУП 2.5 в ЗУП 3.1. (Неужели еще кто-то до сих пор работает в ЗУП 2.5? Да, и очень много людей)

25.01.2021    18313    VAAngelov    83    

65

Перенос документов 1С из одной базы в другую

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Здравствуйте, коллеги! В своей практике работы с 1С для решения задач бизнеса мне неоднократно приходилось применять инструменты переноса документов 1С из одной базы в другую, причем работать приходилось как с однотипными конфигурациями, так и с разными. Этим интереснейшим опытом я и поделюсь в данной статье.

23.01.2021    61374    Koder_Line    17    

12

Объединение баз ЗУП

Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Бесплатно (free)

Есть база ЗУП 3.1, в которой ведется одна организация, все данные из нее нужно перенести в общий ЗУП, обе базы типовые. Используем для переноса КД 2.0.

10.01.2021    5903    roger83    5    

23

Неожиданное использование XDTO

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Расскажу про свой опыт, как XDTO может помочь в отладке обменов данных. И какие полезности можно почерпнуть для себя при работе с XDTO.

05.12.2020    3981    simon_sidoruk    22    

15

XDTO на службе надежности обмена

Обмен между базами 1C Платформа 1С v8.3 Бесплатно (free)

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

28.09.2020    2243    m_kislyak    4    

11

Лайфхаки конвертации данных 2.1 (часть 2)

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье будут рассмотрены десять приемов работы с конвертацией данных 2.1. Указанные приемы явно не описываются в документации (справке), но их полезно знать и применять. Для наглядности приёмы работы сопровождаются описанием реализации и практическими примерами.

14.09.2020    32986    Shining_ninja    19    

119

Восстановление узла РИБ по магазинам на примере 1С:Розница 2.3.4

Обмен между базами 1C Платформа 1С v8.3 1С:Розница 2 Россия Бесплатно (free)

После очередного обновления узла РИБ столкнулся с ошибкой, РИБ перестал работать. Начитался много статей про восстановление РИБа, ни одна толково не помогла. Поэтому не мытьем, так катанием сам разобрался, как же быстро восстановить РИБ, чтобы он заработал.

15.06.2020    16309    maxon    15    

22

Конвертация данных 2. Использование подключаемых обработок в правилах обмена. Конвертация дерева значений

Обмен между базами 1C Платформа 1С v8.3 1С:Конвертация данных Бесплатно (free)

Разработка правил обмена с использованием подключаемых обработок. В качестве примера рассмотрена реальная задача конвертации дерева значений.

15.06.2020    9130    Drivingblind    10    

70

Конвертация данных 2.1. Методика переноса остатков

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Бесплатно (free)

В данной статье я приведу пример использования базовой методики конвертации данных для переноса остатков из одной информационной базы в другую.

12.06.2020    21985    aximo    23    

94

Лайфхаки конвертации данных 2.1

Обмен между базами 1C Платформа 1С v8.3 1С:Конвертация данных Россия Бесплатно (free)

В данной статье будут рассмотрены десять приемов работы с конвертацией данных 2.1. Указанные приемы явно не описываются в документации (справке), но их полезно знать и применять. Для наглядности приёмы работы сопровождаются описанием реализации и практическими примерами.

07.06.2020    26235    Shining_ninja    13    

147

Как мы РИБ на веб-сервисы переводили

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Решение проблем обмена РИБ с 10+ баз с помощью веб-сервисов и базы обмена.

13.05.2020    7289    RSConsulting    24    

32

Механизм XDTO

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

12.05.2020    8589    totchaz    4    

57

Интеграция БИТ:СКУД с типовой конфигурацией

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Интеграция БИТ:СКУД с типовой конфигурацией, обновление БИТ:СКУД в составе конфигурации и отдельно. Обновление системы защиты.

26.04.2020    7766    RPGrigorev    0    

109

Механизмы проведения документов при обмене по универсальному формату

Обмен между базами 1C БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Бесплатно (free)

Как проводятся документы при обмене по универсальному формату. Пример доработки типовых правил обмена с переносом состояния документа: проведен/не поведен/пометка удаления.

04.03.2020    9136    partizand    7    

49

Установка расширений конфигурации, модифицирующих структуры данных, в фоновом задании запрещена

Обмен между базами 1C Платформа 1С v8.3 Бесплатно (free)

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

20.02.2020    6201    fristaller    7    

14

Конвертация данных 2. Использование исходящих и входящих данных. Свойство "Получить из входящих данных"

Обмен между базами 1C Платформа 1С v8.3 1С:Конвертация данных Бесплатно (free)

Разработка правил обмена с использованием исходящих и входящих данных. В качестве примера рассмотрена реальная задача конвертации номенклатуры через регистр сопоставления номенклатур. Статья предназначена в первую очередь для тех, кто только начинает осваивать Конвертацию данных.

17.02.2020    44500    Drivingblind    37    

125

Бесшовная интеграция через обмен по правилам - миссия выполнима

Обмен между базами 1C Платформа 1С v8.3 1С:Документооборот 1С:ERP Управление предприятием 2 Бесплатно (free)

При организации работы с договорами в ERP 2, с помощью бесшовной интеграции с Документооборотом, «типовой» методикой является создание договоров в ЕРП. После создания договора в ЕРП, пользователь «отправляет» договор в ДО по бесшовной интеграции. На практике, весьма часто пользователи хотят видеть обратную схему: вводить договоры в ДО и при этом получать их в ЕРП без «лишних телодвижений». Или даже вводить их независимо в обеих системах – так, чтобы потом «стыковать» по каким-то определенным правилам.

24.01.2020    9429    e-9    8    

37

Заметки по Конвертации данных 3.0

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Написал небольшие заметки по конвертации данных 3.0.

18.11.2019    28561    John_d    20    

186

Обсудим планы обмена. Способы регистрации объектов к обмену

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В этой статье я предлагаю обсудить такой объект конфигурации, как "план обмена", а точнее, методы регистрации в нем. Да и вообще, посмотрим, как можно зарегистрировать объекты к обмену.

16.11.2019    76513    aximo    47    

88

Простой пример кода для работы с переносом данных (ЗУП)

Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Задача: необходимо выделить сумму районного коэффициента для выставления проводок, приходящегося на "Премию к празднику".

13.11.2019    6919    aaguselnikova    4    

13

Конвертация ставок НДС: из Перечисления в Справочник (правила обмена в конвертации 2.0)

Обмен между базами 1C Платформа 1С v8.3 1С:Конвертация данных Россия НДС Бесплатно (free)

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

09.11.2019    11962    vikulinamari    10    

12

И снова "Конфигурация узла распределенной ИБ не соответствует ожидаемой"

Обмен между базами 1C Платформа 1С v8.3 Бесплатно (free)

Конфигурация узла распределенной ИБ не соответствует ожидаемой. Приведен очередной способ устранения этой ошибки, возникший не в результате сбоев в работе оборудования или при обмене, а в результате обновления платформы 1С.

05.11.2019    8032    Kobra_RU    11    

23

Конвертация данных из 1С 8.3 в 7.7 (версия КД 2.1). Перенос данных из 8.3 в 7.7. Создание в современной 1С 8.3 XML в формате КД2. Инструкции и примеры переноса данных из любой современной 1С 8.3 в устаревшую конфигурацию 1С 7.7, через Конвертацию данных 2

Обмен между базами 1C Платформа 1С v7.7 Платформа 1С v8.3 1С:Конвертация данных Бесплатно (free)

При переходе на новую версию 1С в период параллельной эксплуатации может возникнуть необходимость обратной конвертации данных (по правилам КД версии 2.1) из 1С:Предприятие 8.3 в 1С:Предприятие 7.7 для переноса данных из 1С:Предприятие 8.3 в 7.7. Сделать это поможет следующая инструкция по КД2 о том, как создать новую конвертацию из 8.3 в 7.7, сохранить модуль и правила загрузки данных, сделать загрузку данных. КД2.

17.10.2019    12571    ksnik    0    

14

Объединение организаций в ЗУП при реорганизации с переносом данных из ЗУП 2.5 в ЗУП 3.1

Зарплата Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 2.5 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Бесплатно (free)

В этой статье описан опыт объединения 2-х организаций при реорганизации в ЗУП 3.1 с переносом данных одной организации из ЗУП 2.5 (релизы баз более или менее свежие, но не самые последние на момент перехода, примерно двух- и трехмесячной давности). За основу было взято решение из этой статьи https://infostart.ru/public/833658/, в которой описан алгоритм решения задачи, за что автору статьи огромная благодарность! Здесь же даны некоторые комментарии и пояснения к алгоритму переноса и объединения, описаны выявленные мною ошибки. Также приведена небольшая инструкция по использованию обработки ирПодборИОбработкаОбъектовБД — она будет полезна для пользователей — «не программистов», впервые работающих в не управляемых формах.

09.10.2019    10957    Neti    2    

12

EnterpriseData: простой способ защиты данных в базе получателя при одностороннем обмене

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Очень часто бухгалтеры ругаются, когда уже отраженные документы в бухгалтерском учета меняются сотрудниками.

04.10.2019    8857    handscenter    12    

28