Обмен данными с 1c v8 x
Автоматизация обмена между базами используя обработку "Универсальный обмен данными в формате XML"
В основу данной публикации положены найденные мною материалы по cозданию обмена между двумя базами с использованием обработки "Универсальный обмен данными в формате XML" . Но предлагается вариант автоматизации решения задачи которая позволяет выполнять обмен неквалифицированным пользователям, либо по регламенту. Скажем такой обмен применим если вы не можите по ряду причин использовать РБД, либо совсем разные конфигурации баз (случаи бывают разные, а хочется максимально настраиваемой гибкости).
Вначале безусловно воспользуемся конфигурацией "Конвертация данных" чтобы создать необходимые нам правила обмена (как - это отдельная тема).
Итак Собственно сама ВЫГРУЗКА:
Код 1C v 8.х
Настройка ОТБОРА:
Тут надо обратить внимание на массив "ВременнаяТаблицаПравил.Строки[1]" и в частности на индекс массива строк,
1 - это ветка "Справочники". Ну и так далее по аналогии
Код 1C v 8.х
Сдесь вы определяете искомое правило выгрузки которое нужно оставить включенным на определенной ветке (сами можите варьировать чего и сколько)
Код 1C v 8.х
Теперь настраиваем ОТБОР смысл которого передать в нашу выгрузку ссылку на документ(ты) который(е) хотим выгрузить:
Код 1C v 8.х
Обработка.ТаблицаПравилВыгрузки = ВременнаяТаблицаПравил.Скопировать();
Ну и собственно запускаем саму выгрузку и получаем файл для загрузки:
Код 1C v 8.х
Далее процесс загрузки:
Он довольно прост
Код 1C v 8.х
Расширение .zip для файлов обмена пусть вас не смущает, обработка самостоятельно упакует .xml файл в архив:
Код 1C v 8.х
И также самостоятельно уже без дополнительных указаний распакует и загрузит. Это существенно уменьшает размеры файла обмена.
Выявление состава обмена 1С
Объекты обмена можно условно поделить на «источник» и «приемник». При этом они могут исполнять две роли одновременно, что будет называться – двусторонним обменом. Определение источника и приемника происходит логическим путем в зависимости от необходимости или от функциональных возможностей системы.*
*Например, при интеграции «WA: Финансист» – решения для ведения финансового учета и управления процессами казначейства, разработанного на базе «1С:Предприятие», эксперты WiseAdvice рекомендуют именно его в качестве мастер-системы. Это обусловлено наличием инструментов контроля для соблюдения правил заявочной политики, а соответственно, и для обеспечения эффективности работы решения.
Далее на основе полученных и зафиксированных требований со стороны пользователей создается список данных для обмена, определяется их объем, требования к частоте обмена, прописывается процесс работы с ошибками и обработки исключительных ситуаций (коллизий).
На этом же этапе в зависимости от парка имеющихся систем и структуры предприятия определяются с форматом обмена:
Распределенная информационная база
- РИБ подразумевает обмен между идентичными конфигурациями баз данных 1С, с четкой структурой управления «главный-подчиненный» для каждой пары обмена. Являясь элементом технологической платформы, РИБ помимо данных может передавать изменения в конфигурации и административную информацию БД (но только от главного к подчиненному).
Универсальный обмен данными в 1С
- Механизм, позволяющий настроить обмен баз 1С, как с конфигурациями на платформе «1С:Предприятие», так и интеграция 1С со сторонними сервисами. Обмен осуществляется посредством перевода данных в универсальный xml-формат в соответствии с «Планами обмена».
EnterpriseData
- Новейшая разработка фирмы 1С, предназначенная для реализации обмена данными в формате xml между продуктами, созданными на платформе «1С:Предприятие», с любыми системами автоматизации. Применение EnterpriseData упрощает доработки, связанные с обменом. Ранее при включении в систему новой конфигурации была необходима реализация механизма импорта и экспорта данных, как для нее, так и для уже имеющихся систем. Теперь системы, поддерживающие EnterpriseData, не нуждаются в доработках, имея только одну точку «входа-выхода».
Похожие FAQ
Перенос данных 1С
Переходите на новую программу 1С? Проведем бесплатный анализ и перенесем только необходимые данные
Синхронизация справочников
Основным принципом эффективной синхронизации справочников является наличие одной точки ввода. Но если речь идет о работе со справочниками, исторически заполнявшимися по разным правилам, необходимо четко определить поля синхронизации для приведения обмена к «общему знаменателю».*
*На этом этапе может потребоваться проведение работ по нормализации НСИ на стороне источника данных. В зависимости от состояния справочников и их объема, процесс сопоставления элементов, распознавания, выявления ошибок и дублей, а также заполнения недостающих полей и назначение полей синхронизации, может потребовать работы целой группы экспертов, как со стороны интегратора (владельца методики нормализации НСИ), так и со стороны заказчика.
Еще в этой же категории
Как отключить узел от распределенной информационной базы? 12
1. Создаешь внешнюю обработку или отчет в ней форме пишешь " ПланыОбмена.УстановитьГлавныйУзел(Неопределено);" 2. Сохраняешь обработку. 3. Закрываешь конфигуратор 4. Запускаешь пользовательский режим. 5. Запускаешь обработку. Еще Вариант ко Автоматическая выгрузка загрузка данных используя регламентное задание 12
Для обмена данными между программами необходимо сделать следующее: 1. При помощи Конвертации Данных создать правила выгрузки данных 2. Нужно чтобы в конфигурации была обработка УниверсальныйОбменДаннымиXML , желательно последней версии! (При помо Планы обмена и их использование 12
Для того чтобы существовала возможность обмена какими-либо данными с кем-либо, необходимо некоторым образом идентифицировать тех, с кем мы будем обмениваться, и для каждого из них описать перечень обмена Обе эти задачи позволяет решать прикладной об Импорт - экспорт данных через XML. Обработка обмена документами 7
Восстановление документов 1С из архива в рабочую базу (XML обмен) Не редко требуется восстановить данные испорченного документа 1С из архива базы после не умышленных, а зачастую ошибочных, действий удачливого пользователя. Самым простым способом я Как работать с "1С Конвертация данных" 6
Инструкция создания одностороннего обмена данными между конфигурациями " Источник" и " Приемник" с нуля: 1 Скачиваем последнюю версию конфигурации " Конвертация данных" . Сейчас на сайте ИТС перестали почему-то публиковать полные дистрибутивы, поэ Посмотреть все в категории Конвертация данных, Обмен, Перенос
Механизмы обмена данными позволяют создавать территориально распределенные информационные системы обменивающиеся данным в офф-лайн режиме, без постоянного соединения. С помощью этих механизмов можно осуществлять интеграцию не только между различными информационными базами «1С:Предприятия 8», но и строить сложные гетерогенные информационные системы, включающие, наряду с решениями на платформе «1С:Предприятие 8», еще и внешние приложения.
- Механизм распределенных информационных баз предназначен для обмена данными только с идентичными конфигурациями «1С:Предприятия 8» и жестко регламентирует структуру создаваемой системы. Он является аналогом компоненты «Управление распределенными информационными базами», существующей в технологической платформе «1С:Предприятия 7.7», однако существенно превосходит этот механизм по гибкости настройки и разнообразию поддерживаемых схем обмена. Подробнее…
- Универсальный механизм обмена данными, напротив, позволяет создавать произвольные распределенные системы и практически не накладывает никаких ограничений на структуру создаваемой системы. Подробнее…
Оба эти механизма используют ряд средств технологической платформы, которые разработчик может применять как по отдельности, так и в различных комбинациях, в зависимости от конкретной решаемой задачи. Такой подход позволяет обеспечить гибкость механизмов обмена и их настраиваемость на решение как можно большего круга задач.
- Планы обмена — эти объекты конфигурации позволяют описывать перечень узлов распределенной информационной системы, с которой будет производиться обмен данными, и задавать состав данных, которые будут участвовать в обмене. Подробнее…
- Средства XML-сериализации служат для представления данных «1С:Предприятия 8» различных типов в виде последовательности данных XML, и наоборот. Подробнее…
- Средства чтения/записи XML-документов позволяют работать с данными формата XML на «базовом» уровне, без привязки к объектам «1С:Предприятия 8». Подробнее…
Гибкие возможности настройки позволяют сформировать практически любую топологию схемы узлов обмена (звезда, снежинка, схемы без центрального узла).
Электронный обмен данными, реализуемый в решениях «1С», базируется на средствах интеграции технологической платформы, на международных и отечественных открытых стандартах электронного обмена данными.
Платформа «1С:Предприятие 8» предоставляет разнообразные средства для обмена данными и интеграции прикладных решений, позволяющие:
- создавать, обрабатывать и обмениваться данными различных форматов;
- осуществлять доступ ко всем объектам системы «1С:Предприятие 8», реализующим ее функциональные возможности;
- поддерживать различные протоколы обмена;
- поддерживать стандарты взаимодействия с другими подсистемами;
- разрабатывать собственные интернет-решения.
Система программ «1С:Предприятие 8» предоставляет готовые решения для организации электронного обмена данными с внешними информационными системами. Решения построены на основе российских и международных стандартов и протоколов электронного обмена данными.
Применение стандартов в типовых решениях позволяет организациям применять современные технологии построения взаимоотношений с системами смежников, значительно повысить надежность и достоверность обмена данными, перейти на современные бизнес-процессы электронного документооборота, использовать общепризнанную бизнес-логику взаимодействия.
Фирма «1С» предоставляет различные сервисы для поиска и анализа информации:
-
для поиска лучших кредитных предложений от банков и финансовых организаций;
- сервис 1С:ФинОтчетность для мониторинга финансового состояния заемщиков;
- сервис 1С:Лизинг для поиска лучших предложений от лизинговых компаний.
Проведение вебинара "Онлайн-педсовет "1С:Образование": опыт использования в школах и планы на новый учебный год" 19 мая 2022 г. 12.05.2022 16:28:00
Вебинар: "1С:ШИНА: опыт внедрения сервисной шины предприятия на примере Тамбовского государственного университета им. Г.Р. Державина". 19 мая 2022 г. 11.05.2022 12:58:00
Казахстан. "1С:Бухгалтерия сельскохозяйственного предприятия для Казахстана" – планируемое изменение цен 11.05.2022 12:53:00
Типовой механизм обмена данными 1С, основанный на планах обмена, имеет ряд существенных недостатков. Для преодоления этих недостатков предлагается рассмотреть теоретические основы использования альтернативных механизмов, а также предлагается обсудить реализацию практического решения, оптимального с точки зрения автора.
Наиболее нетерпеливые могут сразу перейти к разделу "Практика" =)
В своих публикациях "Планы обмена 1С" и "Анализ блокировок СУБД: таблица изменений плана обмена 1С" я подробно анализирую архитектуру планов обмена 1С. Этот типовой механизм обмена данными имеет ряд существенных недостатков, которые особенно ярко проявляются при интенсивных обменах в больших информационных системах. Для преодоления этих недостатков возникает вопрос об использовании альтернативных механизмов обмена данными.
На рынке существует достаточное количество известных и зарекомендовавших себя с хорошей стороны решений, в том числе от самой фирмы 1С. Кроме этого постоянно появляются всё новые и новые "самоделки". В данной публикации они обсуждаться не будут.
Целью же данной публикации является желание разобраться каким образом можно реализовать оптимальное решение и предложить свой взгляд на решение проблемы.
Забегая вперёд, я хочу сказать, что методика использования регистров сведений в качестве таблиц регистрации изменений имеет свои недостатки и является, по моему мнению, не полным решением проблемы.
Информационная база (узел обмена) 1С выполняет только три функции:
- регистрация изменений объектов 1С;
Наиболее важным требованием является то, что любые операции по обмену данными должны выполняться без ожиданий на блокировках СУБД!
Кроме этого, хорошо было бы иметь возможность управлять регистрацией изменений, составом объектов 1С, участвующих в обмене данными, без изменения конфигурации узла обмена 1С.
Подробнее о том какие бывают системы отслеживания изменений, а также чем они отличаются друг от друга, можно ознакомиться в моей публикации "Планы обмена 1С" в разделе " Основные техники регистрации изменений ".
Немного подробнее о видах репликации можно узнать из моей публикации " Размышления о регистрации изменений в обмен " в разделе "Способ репликации".
Для ссылочных типов данных код регистрации и публикации изменения разделяется на два обработчика событий "ПередЗаписью" и "ПриЗаписи" потому, что только в обработчике "ПриЗаписи" уже сформированы ссылка, версия данных, код справочника или номер документа.
Кроме этого в обработчике "ПередЗаписью" возможно реализовать логику проверки фактического изменения данных объекта при помощи, например, следующего кода:
Для табличных типов данных (наборов записей) обработчик "ПередУдалением" не используется. Разделение кода на два обработчика "ПередЗаписью" и "ПриЗаписи" не обязательно и можно использовать только обработчик "ПриЗаписи".
Для управления регистрацией и публикацией изменений удобно использовать внешние, по отношению к узлу обмена 1С, средства. Это позволяет менять правила "на лету" без изменения конфигурации 1С. Кроме этого такие настройки позволяют управлять гранулярностью регистрации и публикации изменений до уровня реквизитов объектов.
Более того настройками может управлять любая другая система обмена данными, не зависящая от платформы 1С или кода узла обмена 1С. Таким образом, в том числе, достигается малая связанность информационных систем друг от друга.
Например, это может быть файл настроек в формате JSON следующего содержания:
Другими словами при генерации кода справочника, например, в кластере 1С коды элементов могут совпадать, а второе поле индекса "Ссылка" (_ IDRRef ) не гарантирует правильную последовательность событий в пределах одного кода справочника-очереди .
Таким образом, я считаю, что средствами 1С реализовать абсолютно корректную последовательность публикации изменений объектов 1С, особенно в контексте репликации транзакций, невозможно. Об этом, а также о том, каким образом это можно преодолеть средствами SQL Server наиболее дешёвым способом, я писал в своей публикации "Планы обмена 1С" в разделе " Репликация транзакций, как решение проблемы целостности данных ".
Хотелось бы ещё отметить, что использование справочника позволяет в некоторых случаях использовать его реквизит "ВерсияДанных", о чём я буду писать ниже.
Значение этого поля генерируется СУБД автоматически каждый раз когда выполняется изменение данных . В случае SQL Server это значение всегда увеличивается на единицу и уникально в пределах базы данных СУБД . Данное поле имеет тип данных timestamp или rowversion в более новых версиях SQL Server, однако по сути своей это binary(8). Поэтому при выгрузке значения этого поля в JSON мы получим строковое представление в формате BASE64.
Текущее значение версии данных для конкретной базы данных СУБД можно посмотреть при помощи следующего кода SQL:
Для демонстрации практической пригодности изложенных в данной публикации идей разработана подсистема DaJet Exchange для 1С.
Конфигурация 1C DaJetExchange и все необходимые для её использования материалы опубликованы на GitHub: DaJet Exchange.
Моя позиция заключается в том, что планы обмена 1С плохо работают при интенсивных обменах в больших информационных системах. Альтернативных решений, реализованных исключительно средствами 1С и решающих все проблемы целостного обмена данными, не существует. Практический пример DaJet Exchange является, наверное, самым простым компромиссным решением для платформы 1С:Предприятие 8 и не претендует на универсальность. Я вообще не верю в универсальные решения. Я уверен, что надёжный обмен данными в контексте 1С необходимо реализовывать гибридными средствами, используя в том числе средства СУБД и других программных платформ. Лицензионное соглашение для 1С:Предприятие 8 в части работы с СУБД мешает развитию этих решений. Вполне возможно, что я ошибаюсь, но я всё время учусь, ищу и открыт для конструктивного диалога =)
Гарантируем стабильный обмен без ошибок между программами 1С. Гарантии фиксируем в договоре.
Интеграция 1С с любыми системами: другими программами 1С, сайтом, банками, CRM, сторонними программами.
Перенос любых данных 1С. Готовые механизмы переносов. Один звонок и мы решаем вопрос.
Автоматизированные системы управления в большинстве случаев состоят из отдельных баз данных и зачастую имеют территориально распределенную структуру. При этом правильно реализованный обмен данными — необходимое условие для эффективной работы таких систем.
Первоначальная настройка обмена данными в 1С при этом может потребовать ряда действий, не только в части программирования, но и консалтинга, даже если мы имеем дело с однородными источниками, как в случае с продуктами на платформе «1С:Предприятие»
Почему настройка обмена 1С (или, как еще это называется - синхронизация данных в 1С 8.3) может стать самой трудоемкой и недешевой задачей проекта интеграции, рассмотрим в этой статье.
Обмен данными в среде 1С позволяет:
- Исключить двойной ввод документов;
- Автоматизировать смежные бизнес-процессы;
- Оптимизировать взаимодействие между распределенными подразделениями;
- Оперативно актуализировать данные для работы специалистов разных отделов;
- «Разграничить» разные виды учета.*
*В случае, когда данные одного вида учета существенно отличаются от другого, необходимо обеспечить конфиденциальность информации и «разграничить» информационные потоки. Например, обмен данными между 1С УТ и 1С Бухгалтерия не требует выгрузки в базу регламентного учета управленческих данных, т.е. синхронизация в 1С тут будет неполная.
Если представлять стандартный процесс реализации первичного обмена данными, когда хотя бы один из его объектов – продукт 1С, то можно выделить следующие этапы:
- Согласование состава обмена;
- Определение транспорта (протоколов обмена);
- Синхронизация;
- Установка правил;
- Составление расписания.
Определение транспорта (протоколов обмена)
Для системы на платформе «1С:Предприятие 8» предусмотрен широкий спектр возможностей для организации обмена с любыми информационными ресурсами посредством общепринятых универсальных стандартов (xml, текстовые файлы, Excel, ADO-соединение и т.д.). Поэтому при определении транспорта для данных обмена следует отталкиваться от возможностей базы данных сторонней системы.
Обмен данными с 1С
Гарантируем обмен без ошибок между любыми системами 1С. Условия гарантии прописываем в договоре!
Похожие FAQ
Настройка на стороне «УПП»
Рис.1 Настройка на стороне «УПП»
Рис.2 Настройка обмена данными
Чтобы решить эту проблему, необходимо выбрать «Настройку обмена данными»
Рис.3 Проставляем галочку
Рис.4 Создать обмен с «Розница»
В настройках синхронизации данных выбираем «Создать обмен с «Розница»…
Рис.5 Окно с предложением о синхронизации
Окно с предложением о синхронизации.
Рис.6 Создать необходимый каталог можно прямо из конфигуратора
Перед настройкой параметров подключения через локальный или сетевой каталог следует убедиться, что на диске под каталог есть место. Хотя, как правило, он не занимает более 30-50 Мб, в исключительных случаях под него может потребоваться до 600 Мб. Создать необходимый каталог можно прямо из конфигуратора.
Рис.7 Создаем каталог
Рис.8 Настройка параметров подключения
При подключении через сетевой каталог предложения настроить подключение посредством FTP-адреса и по электронной почте игнорируем, нажимая «Далее».
Рис.9 Настройка параметров синхронизации данных
В настройках вручную проставляем префиксы – условные обозначения баз (как правило, БП, УПП, РО), задаем правила и начальную дату выгрузки данных. Префикс будет указываться в названии документов, для обозначения базы, в которой они были созданы. Если правила выгрузки не будут отредактированы, данные по умолчанию будут выгружаться по всем имеющимся параметрам.
Рис.10 Сводная информация по итогу произведенных действий
Сводная информация по итогу произведенных действий.
Рис.11 Создаем файл настройки обмена для «Розницы»
Создаем файл настройки обмена для «Розницы», чтобы не повторять свои действия. При необходимости немедленной отправки данных сразу после настройки синхронизации – проставляем галочку.
Рис.12 Настраиваем расписание
Для автоматизации процесса обмена необходимо настроить расписание.
Расписание обмена в 1С
Для автоматизации регулярного обмена устанавливается периодичность выгрузки данных. Частота обмена зависит от необходимости и технических возможностей. Также конфигурации на платформе «1С:Предприятие» позволяют настроить обмен данными при наступлении какого-нибудь события.
Рассмотрев стандартный процесс реализации обмена, обратим внимание на факторы, которые потребуют доработок на разных этапах:
- Не типовые, сильно доработанные конфигурации БД;
- Разные версии платформы «1С:Предприятие»;
- Давно не обновлявшиеся, не актуальные версии конфигурации;
- Объекты обмена, ранее подвергшиеся доработкам;
- Необходимость в нестандартных правилах обмена;
- Сильно различающийся набор и состав реквизитов в имеющихся справочниках.
Поскольку даже стандартные действия по реализации первичного обмена данными требуют экспертных знаний, их рекомендуется проводить при участии специалистов 1С. Только после выполнения всех вышеописанных действий следует переходить к настройке обмена в конфигурации. Рассмотрим интеграцию баз данных на примере «1С:УПП» и «1С:Розница» (по этой же схеме настраивается обмен с «1С:УТ»). Также к типовой синхронизации относится обмен УПП - УПП, характерный для масштабных систем автоматизации на крупнейших промышленных предприятиях.
Установка правил
Возможность отображения данных систем-источников в приемниках зависит от правильно заданных правил обмена. Правила, представленные в формате xml, регулируют соответствие ключевых реквизитов объектов источника-приемника. Решение «1С:Конвертация данных» предназначено для автоматизации создания правил для реализации как единоразового обмена, так и постоянного.
Гарантирует отсутствие потерь данных при обмене План обмена. Это составная часть любой конфигурации на платформе «1С:Предприятие», полностью описывающая порядок обмена 1С: состав данных (документы с «опознавательными» реквизитами) и узлы (информационные базы приемники-передатчики), а также активацию РИБ для избранных направлений обмена.
Настройка на стороне «Розница»
Рис.13 Настройка на стороне «Розница»
Рис.14 Выбираем «Синхронизацию»
Проставляем галочку и выбираем «Синхронизацию».
Рис.15 Производим «обратную» настройку
Производим «обратную» настройку, выбирая Управление производственным предприятием.
Рис.16 Обратная настройка С УПП
Рис.17 Загружаем файл с настройками
Загружаем файл с настройками, созданный в УПП.
Рис.18 Настройка подключения
Проставляем галочку, адрес система подхватывает автоматически.
Рис.19 Настройка параметров подключения
Рис.20 Настройка через почту
Действуем так же, как в УПП.
Рис.21 Создаем правила выгрузки
Создаем правила выгрузки.
Рис.22 Сводная информация по итогу произведенных действий
Сводная информация по итогу произведенных действий.
Рис.23 Анализ данных
Рис.24 Сопоставление данных
Рис.25 Сопоставление по видам оплаты
Проверочное сопоставление данных (Ручное сопоставление данных рекомендуется произвести на подготовительном этапе, поскольку эти работу могут стать самыми трудоемкими в процессе реализации обмена). Открытие окна сопоставления происходит по двойному щелчку мыши.
Рис.26 Выгрузка данных
Рис.27 Ошибки отсутствуют
В случае ошибки в синхронизации «Подробно…» будет заменено на «Никогда…».
Рис.28 Журнал регистрации
«Подробно…» открывает журнал регистрации с уточненной информацией по обмену.
Рис.29 Настройка завершена
В заключении хотелось бы добавить, что даже типовая синхронизация требует знаний и максимальной сосредоточенности. Если вы не уверены в своих силах, обращайтесь к нашим специалистам, который предоставляют широкий спектр услуг в части проектирования и настройки обменов и, помимо интеграции решений на платформе 1С:Предприятие, предоставляют услуги интеграции 1С с сайтом, а также любых других вендоров.
Читайте также: