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

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

Разработка - Обмен данными 1С

обмен данными через универсальный формат многопоточный правилам КД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. YPermitin 10473 31.12.19 12:32 Сейчас в теме
(0) Мощная реализация.

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

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

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

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

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

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

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

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

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

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


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

См. также

Копирование числовых ячеек из 1С в Excel Промо

Загрузка и выгрузка в Excel Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

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

15.01.2019    29883    itriot11    27    

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

Внешние источники данных Обмен через XML Перенос данных из 1C8 в 1C8 Распределенная БД (УРИБ, УРБД) WEB v8 Бесплатно (free)

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

17.03.2021    6178    Nikola23    35    

R.I.P. РИБ

Обмен через XML Распределенная БД (УРИБ, УРБД) v8 1cv8.cf Бесплатно (free)

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

19.02.2021    6912    1c-intelligence    132    

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

Зарплата Перенос данных из 1C8 в 1C8 v8 v8::СПР ЗУП2.5 ЗУП3.x Россия БУ Бесплатно (free)

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

25.01.2021    4130    VAAngelov    48    

"2iS:Интеграция" - Центр управления обменом данными. Сервисная шина предприятия (ESB). Промо

Системная интеграция v8 1cv8.cf Платные (руб)

Программный продукт предназначен для построения единой централизованной системы управления инфраструктурой и интеграционными процессами компании.

25000 руб.

10.08.2012    99008    239    120    

Сказ о том, как в одной крупной компании документооборот внедряли, или проблемы типовых обменов между КА и ДО

Интеграция Документоборот 2 Перенос данных из 1C8 в 1C8 v8 ДО КА2 Бесплатно (free)

Приветствую всех. Сегодня пойдет речь о том, как на одной крупной компании внедряли 1С:Документооборот 2.1 в связке с КА 2.4. Вроде бы системы типовые, мы практически не добавляли ничего в них, но проблем было столько, что я решил изложить их в статье. Может, кому-то пригодится это в дальнейшем, и не придется тратить кучу времени на поиск решений.

10.11.2020    5156    maks_20    22    

Простой пример разработки регулярного обмена с использованием БСП на примере ERP 2.4 и УПП 1.3

БСП (Библиотека стандартных подсистем) Перенос данных из 1C8 в 1C8 v8 1cv8.cf УПП1 КД ERP2 Россия Бесплатно (free)

Данный вариант подойдет тем, кто хочет настроить "свой" регулярный обмен с добавлением "своих" планов обмена с использованием правил обмена на КД 2.1.

27.10.2020    4446    байт    13    

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

Обмен данными 1С v8 1cv8.cf Бесплатно (free)

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

14.09.2020    5722    Alexsandr_Retunskiy    12    

Excel vs 1С: битва с неожиданным исходом Промо

Анализ учета Универсальные обработки Загрузка и выгрузка в Excel Финансовые Управленческие v8 1cv8.cf Россия Бесплатно (free)

Что лучше 1С или Excel? Разберемся, в казалось бы, очевидном, чтобы получить невероятное!

11.04.2019    38798    bolefirenko    121    

Интеграция с Трелло. Готовый код

Обмен данными 1С Интеграция Agile (XP, SCRUM, Канбан) v8 Бесплатно (free)

Код основных действий, интеграция с API Трелло.

19.08.2020    3606    Yashazz    14    

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

Обмен данными 1С Обмен через XML Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

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

15.06.2020    4588    Drivingblind    8    

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

Перенос данных из 1C8 в 1C8 v8 1cv8.cf УУ Бесплатно (free)

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

12.06.2020    10840    aximo    18    

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    21212    m-rv    17    

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

Обмен данными 1С v8 КД Россия Бесплатно (free)

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

07.06.2020    11299    Alexsandr_Retunskiy    13    

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

Распределенная БД (УРИБ, УРБД) v8 1cv8.cf Россия Бесплатно (free)

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

13.05.2020    4688    RSConsulting    22    

Механизм XDTO

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

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

12.05.2020    6250    totchaz    4    

Из Excel в 1С запросом Промо

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

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

14.08.2018    20865    m-rv    5    

5 ситуаций, когда в экосистеме 1C нужны веб-сервисы

Обмен данными 1С v8 Бесплатно (free)

В 1С существует немало возможностей для обмена данными, включая файловый обмен и COM Connector. В этой статье я расскажу, когда при интеграции 1С не обойтись без веб-сервисов, а также в чем плюсы использования SOAP или, наоборот, HTTP. Кроме этого речь пойдет про рабочие инструменты и примеры использования веб-сервисов. Веб-сервисы — достаточно простая штука. Существует множество инструкций по их созданию, так что запустить свой сервис может почти каждый. Сложности возникают тогда, когда веб-сервисы начинают куда-то встраивать, например, в системы 1С.

24.03.2020    8489    Neti    4    

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

Перенос данных из 1C8 в 1C8 БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

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

04.03.2020    5685    partizand    6    

Регулярные выражения без внешних компонент? Легко! Промо

Практика программирования Обмен через XML v8 Бесплатно (free)

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

04.03.2016    66491    starik-2005    104    

Односторонний обмен ЗУП и БП

Перенос данных из 1C8 в 1C8 v8 БП3.0 ЗУП3.x Россия Бесплатно (free)

Односторонний обмен из ЗУП в БУХ

29.02.2020    6964    VAAngelov    19    

[БСП] Обмен через Конвертацию данных 2.1

Обмен через XML v8 1cv8.cf Бесплатно (free)

Добавим новый план обмена и настроим в БСП типовой обмен через правила конвертации данных (КД 2.1)

03.02.2020    9531    John_d    17    

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

Практика программирования Интеграция Перенос данных из 1C8 в 1C8 v8 ДО ERP2 Бесплатно (free)

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

24.01.2020    5972    e-9    2    

Повышаем эффективность разработки правил обмена Промо

Практика программирования Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    29355    olegtymko    48    

Обмен через Конвертацию данных 2.1 во внешней обработке + Запуск внешней обработки по расписанию (БСП)

Обмен через XML v8 1cv8.cf Бесплатно (free)

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

22.01.2020    6720    John_d    31    

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

Обмен данными 1С v8 1cv8.cf Бесплатно (free)

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

18.11.2019    18119    John_d    18    

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

Обмен данными 1С v8 1cv8.cf Бесплатно (free)

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

16.11.2019    32143    aximo    40    

Универсальный обмен между идентичными конфигурациями через REST интерфейс OData. Часть І: Справочники Промо

Перенос данных из 1C8 в 1C8 v8 Бесплатно (free)

Сейчас все чаще интеграции различных конфигураций проектируются через HTTP-сервисы - они и работают быстрее, и "войти" в режим отладки гораздо проще, тем самым обойдя "черный ящик" универсального обмена через xml, например. Более года назад я начал работать в компании, в которой разработчики работали с конфигурациями 1С в режиме совместимости еще 8.2.16 (менять режим совместимости в типичных базах мы не хотели) - а как Вы наверное знаете, если интересовались HTTP-сервисами в 1С, их использование в режиме совместимости 8.3.4 и ниже недопустимо - и здесь я уже не надеялся на разработку и использование HTTP-сервисов. Но позже меня заинтересовал такой "сервис" как REST интерфейс OData, так как его можно использовать не меняя режим совместимости конфигурации - именно он и стал для меня идеальным вариантом решения "нетривиальных" задач.

11.05.2018    24155    V.Stavinsky    11    

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

Распределенная БД (УРИБ, УРБД) Обмен данными 1С v8 Бесплатно (free)

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

05.11.2019    6626    Kobra_RU    11    

Использование XML-схемы из макета внешней обработки

Обмен через XML Универсальные функции v8 1cv8.cf Бесплатно (free)

Простой способ использования XML-схем из макета внешней обработки.

28.10.2019    11953    Olesia_Matusevich    10    

Преобразование XML в таблицу значений или иной объект 1С методом XSL преобразования

Универсальные функции Обмен через XML v8 1cv8.cf Бесплатно (free)

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

24.10.2019    13119    kraspila    32    

Взаимодействие между базами 1С через COM Промо

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Рассмотрено много особенностей взаимодействия между базами 1С по COM технологии

10.08.2015    163138    tormozit    70    

Обертка функций Excel на русском. Ускорение процесса разработки.

Загрузка и выгрузка в Excel Универсальные функции v8 Бесплатно (free)

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

24.10.2019    7657    DmitryKotov    6    

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

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

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

04.10.2019    7644    handscenter    12    

Практика XDTO. Нюансы

Практика программирования Обмен через XML v8 Бесплатно (free)

Некоторые практические моменты работы с XDTO. Дополнения к очевидному.

23.09.2019    15831    Yashazz    31    

Использование инструментов разработчика для отладки обменов КД 2.0 Промо

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Пара трюков, благодаря которым жить становится намного проще...

05.05.2017    28161    unichkin    6    

Конвертация Данных. Нюансы использования конструкции "НеЗамещатьОбъект = Истина" в обработчике события "ПриЗагрузке"

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

У конвертации данных есть «особенности», которые «пьют кровь» программистов. Эта статья про очередную обнаруженную «особенность».

10.09.2019    11449    ivanek    21    

Обмен данными через Web Сервисы

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Россия Бесплатно (free)

Ознакомительная статья о том, как загружать\выгружать данные с одной базы в другую, используя Web Сервисы.

02.09.2019    31919    user5300    42    

Выгрузка и загрузка документов с движениями

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

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

02.09.2019    9257    human_new    13    

РИБ 200 узлов. Середина пути Промо

Распределенная БД (УРИБ, УРБД) v8 Розница Россия Бесплатно (free)

Между настройкой и поддержкой РИБ на 2 узла и на 10 большой разницы нет, а вот когда число удаленных точек переваливает за сотню, приходится решать уже совсем другие вопросы

25.10.2016    40582    comol    215    

Простая выгрузка данных в универсальном формате Enterprise Data

Обмен через XML v8::УФ Розница УНФ ERP2 ЗКГУ3.0 БП3.0 УТ11 КА2 ЗУП3.x Абонемент ($m)

Пошагово разобран текст процедуры, позволяющей выгрузить произвольный набор объектов в формате Enterprise Data (конечно, если это позволяет конфигурация). Приложена обработка, позволяющая выгружать произвольные объекты, в том числе запросом или по данным журнала регистрации.

2 стартмани

26.08.2019    13577    Iyar    3    

EnterpriseData – часть 3. Загрузка данных, идентификация объектов

Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 Разработка v8 v8::УФ 1cv8.cf Бесплатно (free)

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

22.08.2019    16914    ids79    8    

Перенос дополнительных реквизитов в Конвертации данных 2.0

Перенос данных из 1C8 в 1C8 v8 КД Россия УУ Бесплатно (free)

Пример написания правил обмена (КД 2.0) для переноса дополнительных реквизитов справочника "Номенклатура", в том числе перенос ПВХ с разными типами значений.

13.08.2019    13750    vikulinamari    8    

Приемы обработки больших данных в 1С Промо

Универсальные обработки Математика и алгоритмы Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Рассказ об эффективных приемах организации обработок больших объемов данных на платформе 1С

07.08.2015    69132    tormozit    27    

Конвертация 3.0. Пример доработки: два справочника в один

Обмен через XML v8 КД ERP2 БП3.0 Россия Бесплатно (free)

Доработка правил конвертации путем расширения конфигурации: номенклатура и характеристика (ERP) в номенклатуру (БП).

15.05.2019    7954    forusing    4    

Полезные приемы при работе с Конвертацией данных 2.1. Логирование, интерактивное управление, дозаполнение и постпроведение документов

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Некоторые полезные приемы для КД 2.1, которые могут пригодиться как при доработке типовых правил, так и самописных.

22.04.2019    10839    maks_20    9    

Работа с ComОбъектом 1С 8.2; 8.3

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Россия Бесплатно (free)

Определение типов и значений через COM соединение между конфигурациями.

15.04.2019    26045    vik070777    12    

Загрузка из EXCEL в 1С на платформе 8.3.6/8.3.7/8.3.8/8.3.9/8.3.10 (с картинками) Промо

Практика программирования Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Импорт содержимого из файлов в форматах XLS (Microsoft Excel 97), Microsoft Office OpenXML (Microsoft Excel 2007- 2010) и ODS (OpenDocument) в таблицу значений.

06.04.2015    254434    StepByStep    76    

RabbitMQ + Конвертация Данных 3.0

Внешние источники данных Обмен через XML Интеграция Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

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

21.03.2019    28488    barelpro    87    

Cannot insert duplicate key. Кто виноват и что делать

Распределенная БД (УРИБ, УРБД) Тестирование и исправление v8 Бесплатно (free)

Ошибка "CANNOT INSERT DUPLICATE KEY" в базах 1С и связанная с ней "магия".

25.02.2019    24043    YPermitin    32