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

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

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

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

План выступления:

  • начнем с обзора – какие инструменты и технологии используются для обменов с 1С-системами сейчас;

  • я расскажу, почему я перестал их использовать, и что меня заставило разработать новый фреймворк liteExchange;

  • расскажу, что он мне дает в цифрах и кейсах, и на каких технологиях он основан;

  • бонусом поделюсь ссылками на GitHub, на группу в Telegram, где можно обсуждать продукт – все это находится в открытом доступе.

Немного о себе:

  • в отрасли я 11 лет;

  • за это время прошёл путь от рядового разработчика до руководителя группы – в группе в разное время было до десяти человек;

  • за эти 11 лет я также побывал в ролях разработчика коробочного решения, руководителя направления, побывал в шкуре руководителя проектов или лидирующего разработчика, архитектора – все это происходило в компании-франчайзи.

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

  • кроме прочего, я автор нового фреймворка – liteExchange.

 

Какие есть инструменты для обмена данными с 1С

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

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

  • Очень долгое время практически все обмены в 1С реализовывались при помощи инструмента (фреймворка) «Конвертация данных 2.0», где разрабатывались правила обмена. Сам обмен производился через план обмена или с помощью обработки «Универсальный обмен в формате XML».

  • Позже появилась конфигурация «Конвертация данных 3.0», где можно было описывать правила конвертации по технологии EnterpriseData.

  • Кроме этого, существует обработка по обмену между одинаковыми конфигурациями «Выгрузка и загрузка XML».

Наверное, всем знакомы правила обмена XML – использовать их просто и понятно, все плюсы и минусы этого инструмента известны. Я расскажу, какие минусы не устроили конкретно меня.

  • Конкретно меня не устраивало то, что разобраться в написании правил обмена и самостоятельно их разработать достаточно сложно – надо потратить много времени (несколько дней).

  • В самой обработке обмена 35 тысяч строк кода, если что-то идет не так, приходится это отлаживать.

  • Дальше я подробнее расскажу, почему я не стал пользоваться правилами обмена.

Что касается обработки «Выгрузка загрузка XML», то ее можно использовать только для разовых случаев и для одинаковых конфигураций – для постоянного обмена она тоже не совсем подходит.

Другие инструменты для обмена – я считаю, что они подходят для высоконагруженных систем, с которыми я не сталкивался на практике. Это:

  • разного рода «кролики» – разноцветные RabbitMQ;

  • шина данных DATAREON MQ;

  • Apache Kafka и прочие аналогичные инструменты.

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

На Инфостарте есть миллион решений для обменов данными:

  • через COM-соединение;

  • с использованием HTTP-сервисов;

  • с использованием веб-сервисов;

  • с сохранением данных в файл в формате XML, TXT или CSV – неважно.

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

  • COM – это медленное и платформозависимое решение, с ним часто возникают проблемы

  • веб-сервис – уже лучше, но все-таки там надо знать XDTO, технологию работы с форматом XML – записывать туда данные либо через XDTO, либо вручную. Ключевое слово «Знать», надо очень много знать.

 

Почему существующие инструменты не подходят?

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

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

Недавно я собрал на Инфостарте всю информацию по решениям, которые перечислял выше, в виде таблички, и выложил все это в публикации //infostart.ru/public/1221657/.

Там я постарался изложить свои личные впечатления, связанные с выбором решения или технологии для решения задачи обмена данными.

В конечном счете победил обмен с использованием формата JSON с передачей данных через HTTP-сервис.

Почему?

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

  • Использование HTTP-сервисов позволяет писать и реализовывать задачи по обмену максимально нативно, без использования каких-то дополнительных библиотек, без использования там сложных инструментов, существующих на рынке.

  • Кроме прочего, использование HTTP-сервисов дает очень интересный эффект для бизнеса. За последние пару десятков лет уже все привыкли, что обмен с 1С происходит по расписанию раз в день или раз в час, что это происходит с какими-то задержками, тормозами. После этого демонстрация того, что скорость обмена данными может быть равна скорости переключения двух окон программы 1С, вызывает у бизнеса очень интересный вау-эффект, и они готовы это покупать. А если они готовы это покупать, зачем вам этому мешать?

 

#liteExchange

Несколько слов про liteExchange – что представляет собой этот инструмент?

Я постарался тот код, который чаще всего используется (это передача данных в интернет, конвертация в JSON, получение входящих данных и их распаковка, если они были зазипованы), объединить в готовое решение – в десяток команд, которые достаточно выучить, чтобы решать свои задачи дальше.

Собрал все это в расширение, дал ему название liteExchange и придумал небольшую методологию, как этим пользоваться.

 

Показатели обмена через liteExchange

 

 

Цифры, которые у меня получались при использовании фреймворка liteExchange:

  • Три десятых секунды на обмен из «Комплексной автоматизации 2.4» в «Комплексную автоматизацию 1.1». Максимальная скорость, которая была достигнута в этом кейсе – 176 миллисекунд, а средняя – 0.3 секунды.

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

  • Интересная особенность у меня возникла при обмене через РИБ – транзакция в 1С длилась дольше, чем сам обмен и иногда еще и откатывалась – приходилось сознательно вносить в код “замедляторы” – функции «пауза» и т.д. Реализовали для этого во фреймворке интересное решение.

  • Очень интересные результаты получались при обмене не между двумя 1С, а между 1С и чем-то сторонним – чаще всего, это мобильное приложение или личный кабинет заказчика на сайте. Это максимально быстрый обмен, потому что там используется очень маленькие пакеты данных.

 

Кейсы обменов

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

 

1С vs 1С

Постепенный переход на новую систему. У одного из наших заказчиков была задача перехода с «Комплексной 1.1» на «Комплексную 2.4». У другого заказчика ситуация была похожая – там был переход с УПП на ERP. Эти два кейса встречаются наиболее часто, и для них имеет смысл использовать мое решение, а не какие-то готовые правила обмена – сейчас объясню, почему.

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

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

Торговля «с колес». Во втором кейсе менеджеры торговали с колес, а складские сотрудники работали в отдельной программе – при этом менеджер видит, что приехала машина, очень хотят торговать этим товаром, но не могут, потому что обмен все еще идет. В том случае три минуты задержки вызывали до пяти звонков в техническую поддержку с вопросом: «Где наш товар? Хотим продавать!» Казалось бы, три минуты вроде бы ни о чем, но в данном случае это было важно.

Централизованная система для НСИ. Еще один кейс, который используется в последнее время, когда появляется необходимость централизовано хранить базу нормативно-справочной информации в виде MDM-системы. Это особенно актуально, если у нас основная система, например, ERP, а информация по ее номенклатуре нужна на сайте или в какой-то сторонней базе WMS, или в учетной системе для дилеров, или в учетной системе для менеджеров на портале (опять же сайт). В этом случае появляется потребность базу НСИ вынести куда-то отдельно, чтобы она выступала источником данных через HTTP, а нам не приходилось всю ERP светить на весь интернет.

Опять же, раз мы вынесли данные в интернет, в отдельную базу для управления НСИ было бы неплохо потом их обратно синхронизировать, если мы вынесли данные в отдельную базу «Управление НСИ», было бы неплохо обратно их синхронизировать с ERP. И тут вопрос уже не в скорости, а в том, что можно написать код один раз и полученное решение в формате API будет применимо для всех получателей информации – нам не нужно писать обмены отдельно для сайта, отдельно для ERP, отдельно для учетных систем дилеров.

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

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

 

1С vs Other

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

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

В моих кейсах заказчик хотел, чтобы если заказ появился на сайте, он тут же появлялся в 1С и поступал в обработку – это вполне нормально в современном бизнесе, что, когда клиент сделал заказ на сайте, ему через полминуты перезванивает менеджер, который работает в 1С. При этом он уже видит заказ, он его редактирует вместе с клиентом, клиент это видит на своем сайте.

Обмен между 1С и мобильным приложением. По сути, 1С выступает бэкендом для сайта или для мобильного приложения. Например, в GooglePlay можно найти мобильное приложение «Вместе» для благотворительных фондов. Вся его серверная часть, весь бэкенд, написан на платформе 1С и использует liteExchange для передачи данных или обработки данных в запросах мобильного приложения. Нагрузка при этом создается невысокая.

Кстати, важно понимать, что, если мы говорим о высоконагруженных системах, я даже не пытаюсь применять liteExchange – там нужны все-таки нативные решения со стороны сайта, со стороны мобильного приложения – шины данных что-то такое. А для малых нагрузок – скажем до 100 пользователей 1С, до нескольких сотен документов «Заказ» в день, 10-20 тысяч SKU, две-три тысячи сообщений обмена в день, но не сотни тысяч – в этом случае это решение подходит.

 

Примеры применения

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

Берем конфигурацию «Конвертация данных 2.0» или «Конвертация данных 3.0», загружаем туда метаданные, запускаем мастера или вручную синхронизируем данные, расставляем галочки. Казалось бы, очень удобно – первый релиз правил обмена можно получить достаточно быстро. Но что делать потом – когда эти правила не работают или надо вносить изменения?

Лично меня не устраивает скорость отладки этих инструментов и скорость выполнения самого обмена.

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

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

Это был достаточно древний травматический опыт, который убедил меня в том, что правила конвертации мне не нравятся.

 

 

Мне было проще написать код на выгрузку данных – на слайде показано порядка 30-40 строчек кода на выгрузку данных в документ «Реализация товаров и услуг».

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

Именно этот код впоследствии исполняется.

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

Сами данные передается по протоколу HTTP.

Обратите внимание, что в этой функции о передаче данных через интернет вообще ничего не сказано, потому что фреймворк занимается передачей данных самостоятельно, а программист в 1С оперирует простыми, привычными ему типами данных – структура, массив, строка, дата, число. И используя кнопочки Shift+F9 (или «Вычислить выражение»), может визуально увидеть, что он передает.

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

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

 

 

Я на слайд вывел покрупнее кусочек кода по выгрузке элемента справочника – здесь нужна всего лишь одна строчка.

Фреймворк делает большую часть работы за программиста автоматически.

Функция «ДобавитьСсылкуНаСправочник()» – это полностью автоматическая конвертация. Точно так же, если нас устраивает синхронизация по уникальным идентификаторам, если структура метаданных плюс-минус похожа, то код можно и не писать. Я покажу этот пример чуть дальше, через пару слайдов.

 

 

В случае с обработкой запроса с сайта – вот пример из мобильного приложения «Вместе», про которое я говорил.

Здесь тоже 40 строчек кода, и это обработка одного запроса мобильного приложения. Всего было порядка 20 запросов у мобильного приложения. Соответственно, менее 1000 строчек кода и бэкенд готов.

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

В этом обмене:

  • нет ничего, что связано с передачей данных,

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

  • я абстрагирован от понятия заголовков запросов

  • здесь почти нет ничего по-английски, кроме имен полей

Это позволяет мне работать с обменом в привычном для меня окружении конфигуратора.

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

 

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

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

РИБ работает автоматически со скоростью менее секунды.

 

 

Здесь показано продолжение этого кода. Это работа фонового задания – тут очень много логирования, его тоже можно опускать при желании.

 

 

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

Технически подкованный специалист может оценить, что тут большая часть кода не относится к обмену данными вообще. Сам обмен здесь происходит в функции леРаботаСJSON.ДанныеВJSON(), где данные преобразуются в JSON.

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

 

 

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

Если очень надо, то в функции «ЗагрузитьОбъект()» сам объект, который может быть получен, можно модифицировать – дозаполнить какой-то спецификой, преобразовать.

 

Ссылки

По состоянию на 2021 год существует два ресурса, где можно познакомиться со фреймворком:

  • Исходный код фреймворка, про который я рассказывал, доступен на GitHub в репозитории https://github.com/liteappsru/liteExchange. К сожалению, он пока плохо документирован, но со временем документация появится. Исходники заброшены и устарели. Актуальная версия проходит отладку. Подпишитесь, но не скачивайте)

  • Канал в Телеграме https://t.me/liteExchange_group, где можно вести обсуждение, задавать вопросы. Там присутствую я и мои коллеги – порядка двухсот человек. Если прокрутить обсуждение в начало группы – там я выкладывал кейсы, которые мы реализовали летом и осенью 2019 года. Все это можно применять у себя, чтобы понять, а надо ли вообще что-то новое придумывать, или вам подойдет готовое, ранее реализованное решение.

 

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

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

В моем случае девочка, недавно пришедшая в компанию (на тот момент времени полтора месяца работала в компании) за неделю реализовала обмен с мессенджером Slack на платформе 1С. Конфигурация «1С:CRM» посылала запросы в Slack, создавала там группы на каждую сделку, и в рамках группы велось общение, которое сливалось в 1С. Все это с синхронизацией файлов, с уведомлениями и т.д. И это сделал внедренец, впервые увидевший конфигуратор полтора месяца назад. То, что она смогла легко справиться с этой задачей, во многом связано с тем, что часть кода была написана и шаблонизирована во фреймворке.

Давайте подведем резюме, почему правила обмена данными больше не нужны?

  • Существующие инструменты сложны для изучения, ни один из них за час не выучить.

  • Исполнение самого обмена, процесс выполнения обмена данными – достаточно медленный (за рядом исключений). Я не беру в расчет шины данных, которые более-менее быстро работают, не беру в расчет HTTP-сервисы – они работают быстро, но с ними я универсальных решений не встречал, хотя примеров решений на Инфостарте много.

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

Свое универсальное решение я создал, потому что:

  • оно позволяет облегчить жизнь мне как руководителю, потому что я могу быстро передать знания;

  • сотрудникам нужно знать один инструмент – это хорошо;

  • инструмент очень быстро работает, дает эффект «вау» у заказчика и хорошо продается.

Почему бы и нет?

 

Вопросы

  • Ваше решение построено на HTTP-сервисах и обмене в виде JSON-пакетов – сколько времени встраивается этого решение в конфигурацию клиента?

  • Развертывание – это просто установка расширения для тех и конфигураций, которые расширения поддерживают. Где расширения не поддерживаются, модули копируются в конфигурацию. На это нужно, наверное, минут пять. Плюс развертывание на веб-сервере – тут каждый справляется с разной скоростью, может занять от 15 минут до 2 часов в зависимости от поведения системного администратора и ограничений. Грубо говоря, первый обмен можно запустить в течение часа, если это что-то простое – например, передать в мобильное приложение список заказов.

  • Значит, для регистрации изменений у вас используются планы обмена? Если используются планы обмена, то как обрабатывается снятие с регистрации?

  • По-разному работает, в зависимости от задачи. Если мы говорим про обмены не между двумя базами 1С, а между, например, отправка данных из 1С на портал amoCRM, то первая попытка отправки данных производится онлайн прямо в том же потоке. В моем случае скорость была достаточной, чтобы обмениваться данными в том же потоке без фоновых заданий. Если что-то пошло не так, например, сервер, принимающий данные, недоступен, данные складывается в регистр сведений и впоследствии отправляются через минуту еще раз и еще раз – пока не заработает. Если мы говорим про обмен между двумя базами 1С, где можно взять существующие планы обмена (например, план обмена «Полный» для работы с РИБ), то, естественно, он используется – там при обмене между двумя базами 1С реализовано дополнительное фоновое задание, которое и выполняет обмен. Действительно, мы, запуская обмен, считываем изменения, которые успели накопиться за последнюю секунду в плане обмена. Или за последние 10 секунд – смотря сколько времени идет вызов фонового задания. Считываем, отправляем по HTTP, и после этого отменяем регистрацию изменений. Сейчас в продукте не реализована передача события удаления.

  • Вопрос про отправку в одном потоке – вы в момент записи документа производите и его отправку? В транзакции модуля объекта?

  • Это смотря в каком кейсе. Для тех кейсов, где это не страшно – например, регистрация CRM-события с клиентом – можно в том же потоке отправлять. Там откат транзакции произойдет с очень малой вероятностью, зато максимальная скорость. Если мы говорим про работу с учетными системами, где откат транзакции – это важно, там сознательно даже вводится задержка в скорости передачи данных. Она не онлайн идет, а через пять-десять секунд – это вычислено эмпирическим путем, исходя из количества времени, которое нужно, чтобы транзакция точно завершилась. Если уж она не завершилась, и откатилась, то и никакого обмена не будет.

  • Насколько я понимаю, вы не тестировали свой обмен под высоконагруженными системами? Вы тестировали только на обмене, содержащем малый и средний объем данных?

  • Да, мне кажется, что под высоконагруженные системы все-таки уже есть готовые решения, зачем там придумывать что-то новое – я не вижу. А под низконагруженные системы в последние 10 лет существенно ничего не менялось. и я подумал, почему бы не занять эту нишу.

  • Пробовали ли вы реализовывать обмены с сайтом или интернет-магазином на Битрикс?

  • Да, конечно. Веб-разработчики знают, что существует типовая возможность обмена через CommerceML, но как-то и мы используем типовой обмен. Если 3-10 заказов в день, если никто никуда не торопится – то достаточно типовых возможностей. Но как только появляется необходимость модифицировать этот самый обмен, то веб-разработчики и 1С-разработчики начинают плакаться от того инструмента, который есть. Поэтому никто не стесняется переписать этот обмен на что-то более продуктивное, быстрое и понятное для конечного пользователя. С точки зрения 1С-разработчика задача сводится к тому, чтобы договориться с веб-разработчиком о составе передаваемых данных и их именах. Дальше 1С-разработчик создает массив структур, и одной командой передает это куда-то в интернет.

  • В типовых правилах обмена в формате EnterpriseData заложена большая работа – их можно использовать или от этого удовольствия стоит отказаться при применении фреймворка?

  • Очень важный момент – я считаю, если работает – не трожь! EnterpriseData – в целом, хороший инструмент, там тоже есть передача данных через HTTP-сервисы. Единственный минус – EnterpriseData использует XML-пакеты данных, которые передаются чуть дольше, чем JSON. Для работы EnterpriseData используется очень много кода, в котором труднее разобраться. И важно, если у вас работает типовой обмен, куда нужно добавить один реквизит – используйте EnterpriseData. Если вы хотите написать свой обмен – я по пути EnterpriseData ни разу не пытался ходить, ровно потому, что оценил трудоемкость один раз и понял, что я не хочу слишком много копаться.

  • Сколько времени было потрачено на написание фреймворка и над чем он написан?

  • Это нативный код – никаких внешних компонент, написан на платформе 1С. Времени было потрачено немного – первый релиз был сделан под конкурс, где объявили такую задачу. Потом в рамках проекта на одном из крупных автомобильных предприятий мы реализовывали одновременные обмены между четырьмя информационными системами – сайт, CRM-система, Документооборот и БИТ-Финанс. Их надо было очень быстро синхронизировать, и за основу был выбран код, реализованный для конкурса. В общей сложности всю задачу целиком у нас получилось реализовать за 27 дней. Создание фреймворка в ней заняло дней 10, наверное. Потом этот фреймворк год не менялся, потому что был сделан достаточно хорошо. А в прошлом году я выпустил второй релиз и начал накручивать на него функциональность – тогда и появились РИБ, и «Конвертация данных», и поддержка JSON, потому что стандартно не всегда хорошо конвертируется, иногда платформа падает. С датой там проблемы, с передачей данных через HTTP тоже – можно писать пять строчек кода, можно одну. И так повсюду. Суть фреймворка в том, что половина кода уже написано.

  • Можете поделиться планами, какие фичи ожидать в ближайшее время?

  • Там требуется повысить качество, провести рефакторинг, потому что многое наделано. Я сейчас стремлюсь к тому, чтобы перевести все исполняемые модули чуть ближе к ООП. Это мое желание, поэтому весь код выводится в обработке вместо того, чтобы использовать общие модули. Этот подход позволяет менять код без динамического обновления прямо в режиме онлайн. И главное, без перезапуска конфигуратора, а значит ещё и экономить время, потому что при разработке на той же «Комплексной автоматизации» или ERP каждый перезапуск конфигуратора – это хотя бы минута, а если 30 или 50 раз в день, то уже час вылетает просто на ожидание. Поэтому собственный фреймворк помогает повысить скорость разработки. Но концептуально там уже все сделано еще в 2018 году.

  • Работает ли ваше решение на Linux, в частности на Centos?

  • Да, так как там не используется никаких хитростей, связанных с операционной системой.

 

*************

Данная статья написана по итогам доклада (видео), прочитанного на INFOSTART MEETUP Saint Petersburg.Online. Больше статей можно прочитать здесь.

Приглашаем всех принять участие в тематических митапах Инфостарта и INFOSTART EVENT 2021 (6-8 мая, СПб).

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. serg-lom89 61 17.03.21 13:01 Сейчас в теме
Круто..еще бы документацию по ней что бы сразу взять в работу))))
wowik; cleaner_it; vvv_vit; +3 Ответить
2. RPGrigorev 594 17.03.21 13:28 Сейчас в теме
Присутствовал на вебинаре, около 1.5 года назад, когда работал в этой же фирме-франчайзи. Ожидался выход коробочной версии. Прошло уже довольно много времени, а пока об этом продукте так ничего и не слышно, отзывы, документация, кейсы... Планируется ли это?
3. frkbvfnjh 605 17.03.21 13:49 Сейчас в теме
5. chg 18.03.21 05:08 Сейчас в теме
Добрый день.
Выглядит хорошо, но как у вас по планам выхода в релиз, платно не платно, общее дальнейшее развитие?
cleaner_it; +1 Ответить
6. alexey_kurdyukov 62 18.03.21 14:09 Сейчас в теме
О, нетленка. Мы тоже такую начали писать, но в процессе поняли, что при минимальном усложнении условий у нас очередная Конвертация Данных получается.
leonidol; rovenko.n; philya; dnikolaev; GATTUSO; sapervodichka; itoptimum; wowik; SlavaKron; zqzq; Andreeei; pavlov_dv; ellavs; +13 Ответить
7. alexey_kurdyukov 62 18.03.21 14:50 Сейчас в теме
Каким образом у вас реализуются правила, которые больше не нужны (например, перенос одного объекта в два разных, перенос объекта по-разному в зависимости от реквизита в котором он находится)? Ваши правила как КД2, строятся отдельно для каждой конфигурации, или как в КД3 - используют один и тот же формат?
GATTUSO; wowik; Andreeei; cleaner_it; Totoro; MaxS; +6 Ответить
8. Бэнни 136 18.03.21 17:48 Сейчас в теме
(7) Тоже не понял как это работает) Скачал даже, пощелкал, тут не хватает обзора обработки, которая правила формирует
9. ellavs 816 18.03.21 18:09 Сейчас в теме
Я всё жду, когда зарелизится проанонсированная в прошлом году «Интеграционная шина» (заявленная, как продукт в составе платформы 1С:Предприятие), тогда есть надежда, что не нужно будет ничего изобретать... (есть задача обмена некоторыми данными между очень похожими ИБ (т.е. 1С-1С), пока видится только написание правил, например, на КД2, как наиболее быстрое по реализации решение).
Andreeei; +1 Ответить
10. MaxS 2205 18.03.21 18:14 Сейчас в теме
И важно, если у вас работает типовой обмен, куда нужно добавить один реквизит – используйте EnterpriseData. Если вы хотите написать свой обмен – я по пути EnterpriseData ни разу не пытался ходить, ровно потому, что оценил трудоемкость один раз и понял, что я не хочу слишком много копаться.
Тоже столкнулся со сложностями обмена между разнородными системами 1С-1С, 1С - Сторонняя программа.Чтобы не изобретать свой велосипед, доработал типовой обмен через EnterpriseData - добавил новый формат обмена.
Как раз вопросы плавного перехода КА 1.1 - КА 2.4, УПП - ERP хорошо решаются через EnterpriseData. Конфигурации КА 2.4, ERP могут обновляться, старые обновлять не требуется, обмен работает.
Вопросы транспорта обмена, регистрации снятия с регистрации остаются типовыми.
11. Yashazz 3756 18.03.21 18:29 Сейчас в теме
Ну понятно всё. Изучить классику и общепринятое времени и желания не было, поэтому накропали свою приблуду, которую сами же через год забудете, а поддерживающим после вас мучиться. Фигня, короче.
leonidol; Dach; dnikolaev; GATTUSO; EliasShy; NorraSaltolinen; AlekseiAlekseev; wowik; aximo; zqzq; Andreeei; +11 Ответить
12. a_a_burlakov 112 18.03.21 21:01 Сейчас в теме
"Правила обмена больше не нужны"

homer_; Andreeei; triviumfan; dnikolaev; sapervodichka; EliasShy; DrAku1a; NorraSaltolinen; +8 Ответить
13. pyrkin_vanya 427 18.03.21 22:32 Сейчас в теме
Прочитал, если честно нихрена не понял с этой статьи. Не понял, почему вызвало такую сильную проблему изучение конвертации молодняком. На досуге надо будет вашу работу проанализировать получше. Желательно в код залезть и посмотреть, что же тут уникального.
xantif_2000; borman; cleaner_it; +3 1 Ответить
14. makc2k 96 18.03.21 23:23 Сейчас в теме
Похвально, что решились написать новый инструмент переноса. Однако как было сказано при малейшем усложнении переноса получим множество кода описания конвертации. Например перенос перечисления в справочник, или создание документа на основании разнотипного. Кроме того статья сплошная вода с терминами из web дизайна. Сути алгоритма я так и не уловил. Лишь отголоски сериализации в Json и десериализации. Скриншоты вместо кода, это такая авторская особенность? Вы не клиентам комм. предложение пишете, а делитесь опытом с программистами, нам конкретика нужна, а не хвалебные оды.

И да, пробовали в справку КД2 заглянуть? - Там за 10 минут можно разобраться как передать сопутствующие данные, прочитать их, или преобразовать в базе получателе. Что до автоматизации загрузки правил, выгрузки данных, отладки - тоже решается за 20 минут написанием обработки поверх универсальной выгрузки XML.
leonidol; homer_; Cерый; Andreeei; wowik; krylovim; Sergik_D; chg; cleaner_it; +9 Ответить
15. AlekseiAlekseev 19.03.21 11:28 Сейчас в теме
16. herres 19.03.21 16:39 Сейчас в теме
(14) Так у него и есть КД2 + генерилка кода

Общее с КД2 - сама конфа КД2 и принцип конвертирования не в промежуточный формат как в КД3, а в конечную базу
Общее с КД3 - принцип генерения не правил для интерпретации обработками а кода для интерпретации платформой
17. as.1c.nik 19 20.03.21 11:13 Сейчас в теме
КД это описание преобразования бизнес сущностей. А вы говорит про HTTP, JSON, COM, XML. Т.е. фактически про транспорт данных. Смешано все в кучу.

Как в вашем фреймворка описывается преобразование бизнес сущностей?
sulfur17; xantif_2000; Andreeei; FatPanzer; +4 Ответить
18. wonderboy 239 20.03.21 14:01 Сейчас в теме
Если коротко понял так:
1. В базе-источнике пакуешь данные в массивы/структуры/таблицы значений с полями простых типов.
2. Преобразуешь это в текст (в данном случае в JSON)
3. Сохраняешь в файл / отправляешь через HTTP-сервис
4. В базе-приемнике - разворачиваешь в такую же массивы/структуры/таблицы значений с полями простых типов и пишешь в объекты БД-приемника.

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

На этапе 2 - можно даже с JSON не заморачиваться. Есть олдскульные ЗначениеВСтрокуВнутр / ЗначениеИзСтрокиВнутр :)
Можно даже 2 и 3 совместить - ЗначениеВФайл / ЗначениеИзФайла :)
sulfur17; +1 Ответить
19. RSConsulting 140 22.03.21 06:02 Сейчас в теме
Плох тот программист, что не написал свою конвертацию )
rhtr; rovenko.n; FatPanzer; +3 Ответить
35. tendercement 12.04.21 14:00 Сейчас в теме
20. Sykoku 101 22.03.21 08:12 Сейчас в теме
Нигде не увидел задания приоритетов выгрузки или проверки даты изменения сущности.
Новый клиент?
Новый товар?
Смена реквизитов существующей записи? (Адрес, Банковский счет, форма налогообложения, таможенный код товара и т.д.)

Примеры, надеюсь, не нужны?
21. sapervodichka 4286 22.03.21 08:37 Сейчас в теме
может лучше шину 1С скачать и освоить........
24. Ambakollajder 22.03.21 10:18 Сейчас в теме
(21) Где ее скачать ? ) В будущем?
26. sapervodichka 4286 22.03.21 10:26 Сейчас в теме
(24) Назад в будущее )))

Интеграционная шина 1С, почитать здесь

https://wonderland.v8.1c.ru/blog/integratsionnaya-shina/

(Внедрена в Вертолетах РФ на сколько я знаю)

Новость была год назад на Инфостарте https://infostart.ru/journal/news/mir-1s/firma-1s-anonsirovala-novyy-produkt-integratsionnaya-shina_1214491/
27. Ambakollajder 22.03.21 10:42 Сейчас в теме
(26) Так уже попроще, надо попросить ее у вертолетов РФ? )
А если серьезно, то после публикации в зазеркалье ничего больше про нее не слышно
28. sapervodichka 4286 22.03.21 11:00 Сейчас в теме
(27) нет не у Вертолетов, у ИТ Экспертизы, компании, которая там внедряла шину вот сайт https://it-expertise.ru/company/
Прикрепленные файлы:
29. sapervodichka 4286 22.03.21 11:09 Сейчас в теме
(28) Вот страница покупки https://solutions.1c.ru/catalog/integracorp/features
Андрей, но я согласен, что это не конечная шина которую 1С анонсировала (и притихла), но хоть какой-то продукт они дали. Можно потыкать палкой ))) и вроде он живой !! судя по отзывам коллег с Вертолетов.
22. dnikolaev 165 22.03.21 09:31 Сейчас в теме
Если мне попадется новый клиент с таким обменом - даже вникать не буду. снесу все и переделаю на стандартные правила обмена ))
Скажите. после Вас, оно мне надо вникать в это все? ))
triviumfan; +1 Ответить
23. Dzenn 483 22.03.21 10:01 Сейчас в теме
Занятный лунапарк, интересный блэкджек ....
25. detsoft@mail.ru 22.03.21 10:24 Сейчас в теме
1. Правила обмена (="конвертации") таки нужны - только они не основаны на машине "КонвертацияДанных". Ну девочка же писала у вас неделю что куда
2. "Обычного франчайзи" интересует только то что он знает - механизм БСП. Т.е. в тираж реально подавать только то что в мастерах БСП, на обычных 1С-правилах конвертации.
Т.е. вы решаете ту же классическую задачу, но более совершенными средствами. Для 1С (фирмы и сообщества) "более совершенными" - как-то не принято ("не надо как лучше, надо как положено...").
----конец скепсиса
На самом деле - здорово и правильно! Ну и фиг с ним что это не "мейнстрим" для 1С-внедренца. Эксклюзив. Супер!
30. Ambakollajder 22.03.21 12:06 Сейчас в теме
#Область ОсновныеПроцедуры
Функция ВыполнитьОбработку(СервисЗапрос, Метод) Экспорт
	
	Ответ = Новый HTTPСервисОтвет(500,,ЗаголовкиОтвета);
	Ответ.УстановитьТелоИзСтроки("Ошибка установки приложения liteExchange или попытка нелицензированного использования", КодировкаТекста.UTF8);	
	
	Возврат Ответ;
	
КонецФункции
#КонецОбласти
Показать

Понял, спасибо )
31. pavelmoskalenko056 23.03.21 12:02 Сейчас в теме
Добрый день! Заинтересовала Ваша разработка, хотелось бы с Вами посотрудничать, как с вами связаться?
32. andryandry 111 26.03.21 12:26 Сейчас в теме
плюсую. Сам использую аналогичный подход
33. dlebedev8 26.03.21 12:31 Сейчас в теме
Судя по гитхабу, проект заброшен уже почти год. Смысл выкатывать тут статью и пиарить мертвый продукт? Я уже молчу про закрытую обработку в макетах конфигурации. Открытый исходный код, называется.
34. G_103359985573713489861 07.04.21 00:08 Сейчас в теме
Здравствуйте ! Напишите пожалуйста почту . Есть задача возможно Вы его сможете решить .
Оставьте свое сообщение

См. также

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

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

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

16.04.2019    21356    m-rv    17    

R.I.P. РИБ

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

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

19.02.2021    7194    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    4759    VAAngelov    52    

HTML редактор/editor (Wysiwyg) для WebKit 1С (CMS, B2B), альтернатива TinyMCE и стандартному ФорматированныйДокумент

WEB Интеграция v8 v8::УФ 1cv8.cf Бесплатно (free)

Suneditor - отличная замена HTML редактору TinyMCE (бесплатному), в публикации с открытым кодом подключим его в 1С с WebKit, скачать HTMLeditor обработку можно бесплатно.

28.12.2020    2286    SizovE    23    

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо

Практика программирования WEB v7.7 v8 Бесплатно (free)

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    57075    Serginio    33    

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

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

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

10.11.2020    5374    maks_20    23    

Обмен с сайтом посредством Post-запроса, json

WEB v8 1cv8.cf Бесплатно (free)

Задача - передавать на сайт объекты с наименованием и уникальным идентификатором (УИ), которые изменяются в 1С. Также нужно сохранять историю отправленных пакетов.

29.10.2020    4497    John_d    26    

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

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

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

27.10.2020    4892    байт    13    

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

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

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

04.03.2016    67108    starik-2005    108    

Учимся создавать http сервисы (часть вторая). Передача параметра в http сервис

WEB v8 1cv8.cf Бесплатно (free)

Пошаговое руководство по созданию http-сервиса (часть вторая). Передача параметра в http сервис.

22.09.2020    6288    hpi    7    

Формирование HTTP запроса формата multipart/form-data с двоичными данными, используя ПотокВПамяти

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу вариант формирования запроса

11.09.2020    3717    malikov_pro    11    

Загрузка или обновление файла на яндекс диске через rest-api

Практика программирования Файловые протоколы обмена, FTP WEB v8 Бесплатно (free)

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

12.08.2020    3041    pavelpribytkin96    10    

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

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

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

25.06.2018    29478    olegtymko    48    

Самый простой парсинг и обработка веб-страниц в 1С

WEB Универсальные функции v8 1cv8.cf Бесплатно (free)

Рассмотрим самый простой парсинг веб-страниц средствами платформы 1С и еще некоторые полезные приемы работы с веб-страницами.

07.08.2020    8064    YPermitin    22    

Загрузка или обновление файла на гугл диске

Практика программирования Файловые протоколы обмена, FTP WEB v8 1cv8.cf Бесплатно (free)

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

06.08.2020    2132    pavelpribytkin96    6    

Ограничение доступа к HTTP публикациям 1С сервера используя NGINX

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу вариант ограничения доступа к HTTP публикациям 1С сервера используя NGINX.

02.07.2020    7879    malikov_pro    7    

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

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

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

11.05.2018    24284    V.Stavinsky    11    

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

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

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

15.06.2020    4737    Drivingblind    8    

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

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

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

12.06.2020    11410    aximo    18    

История создания успешной системы чат-ботов на 1С

WEB v8 Бесплатно (free)

Использование чат-ботов в мессенджерах позволяет автоматизировать многие сложные бизнес-процессы путем диалога с системой через виртуального собеседника. О том, как создать универсальную систему ботов с бэкендом на 1С, работающую в Telegram, Viber и Facebook Messenger одновременно, на конференции Infostart Event 2019 Inception рассказал программист-фрилансер Константин Гейнрих.

21.05.2020    8744    CyberCerber    15    

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

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

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

10.08.2015    164524    tormozit    70    

Интеграция Camunda BPM и 1С

WEB Интеграция v8 Бесплатно (free)

Быстрый старт. Только практические примеры. Установка, запуск и публикация бизнес-процесса на сервере Camunda BPM. Управление бизнес-процессами из 1С при помощи Camunda REST API.

12.05.2020    5077    zhichkin    30    

Механизм XDTO

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

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

12.05.2020    6365    totchaz    4    

Как мы загружаем данные в "Центр управления кассами Магнита"

Внешние источники данных Интеграция v8 1cv8.cf Бесплатно (free)

Статья о том, как мы делали механизм загрузки больших объемов данных в "Центр управления кассами Магнита"

08.05.2020    5492    chernenko_vv    25    

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

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

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

05.05.2017    28282    unichkin    6    

Синхронизация БИТ:СКУД 8 с Parsec.Net 2.5

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Настройка синхронизации БИТ:СКУД 8 с Parsec.Net.2.5, выгрузка данных из внешней системы контроля доступа.

04.05.2020    4513    RPGrigorev    0    

Интеграция 1С и CMS WordPress посредством Rest API сайта. Первый шаг

WEB v8 Россия Бесплатно (free)

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции 1С с комментариями внутри.

28.04.2020    6034    osivv    23    

Выразительный Web API

WEB v8 Бесплатно (free)

Теория разработки Web API с ожидаемым поведением, за который не будет стыдно за пределами мира 1С.

27.04.2020    8366    nbeliaev    22    

Online телефонный справочник из 1С: Зарплата и управление персоналом Промо

WEB Управление персоналом (HRM) Управление персоналом (HRM) v8 ЗУП3.x Россия Бесплатно (free)

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    26634    ruha    21    

Интеграция УАТ с топливными сервисами

WEB v8 1cv8.cf Автомобили, автосервисы Бесплатно (free)

Интеграция конфигурации Управление автотранспортом с топливными веб-сервисами.

21.04.2020    7914    RPGrigorev    2    

Интеграция 1С с веб-сервисами Лукойл ЛИКАРД

WEB v8 1cv8.cf Россия Бесплатно (free)

Описание интерфейса взаимодействия сервиса Лукойл- ЛИКАРД с информационной системой 1С.

20.04.2020    5926    RPGrigorev    0    

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

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

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

25.10.2016    40700    comol    215    

Как я собрал для себя высокопроизводительный и бесплатный облачный бекенд для 1С на PosgreSQL + PostgREST

Производительность и оптимизация (HighLoad) WEB Интеграция Мобильная разработка Администрирование веб-серверов v8 Бесплатно (free)

В этой статье я расскажу о проблемах бека для мобильных приложений или другого фронта, который требует производительности, быстрой реакции и отказоустойчивости, и как я решил это благодаря opensource проекту PostgREST и СУБД Postgre SQL 12. Проведу простой тест производительности для сравнения 1С с данным решением. Это может быть полезно всем, кто разрабатывает мобильные приложения либо фронтсайд-приложения для 1С на чем угодно - на мобильной платформе или на нативном языке или на Simple UI. И также обзор новых функций SimpleUI для связи с этим бекендом.

31.03.2020    14884    informa1555    35    

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

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

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

04.03.2020    5754    partizand    6    

Получение html-кода страницы. JS из 1С

Практика программирования WEB v8 Бесплатно (free)

Получение исходника страницы, выполнение произвольного js-кода. Теперь с WebKit от 1С.

18.02.2020    8325    Yashazz    1    

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

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

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

07.08.2015    69365    tormozit    27    

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

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

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

03.02.2020    9801    John_d    17    

Одна ККТ для розничного магазина и Интернет-сайта

Розничная торговля ККМ WEB v8 Россия Бесплатно (free)

Опыт использования одной онлайн-кассы для приема платежей в розничном магазине и на Интернет-сайте: технические подробности.

23.01.2020    8047    sivin-alexey    15    

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

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

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

22.01.2020    6867    John_d    31    

Загрузка из EXCEL в 1С. Чтение файла XLSX средствами 1С. ПостроительDOM Промо

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

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Метод "NativeXLSX" (ПостроительDOM). Обрабатываются данные EXCEL типов: "Строка", "Число", "Дата" ("Время"), "Булево", "Процент", а также изображения.

11.09.2014    76836    StepByStep    27    

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

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

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

31.12.2019    8994    ids79    17    

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

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

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

24.10.2019    13378    kraspila    32    

Простой способ опубликовать базу 1C из дома в интернет, когда Ваш провайдер этого не обеспечивает (3G, 4G модем и т.п.)

WEB Облачные сервисы, хостинг v8 1cv8.cf Бесплатно (free)

Если у Вас возникла потребность опубликовать из дома во всемирную паутину базу 1С (например, для тестирования), в т.ч. интерфейс OData, HTTP или Web-сервисы, а интернет-провайдер (например, 3G Мегафон) не предоставляет возможности инициировать соединения извне, то в конце статьи Вы найдете простой, быстрый и условно-бесплатный способ это сделать.

14.10.2019    13873    uno-c    28    

Настройка типового обмена данными между: 1С: Предприятие Бухгалтерия ред. 3.0 (БП 3.0) и 1С: Управление торговлей ред. 10.3 (УТ 10.3). Промо

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

В этой статье я опишу, как настраивается типовой обмен данными между БП 3.0 и УТ 10.3.

29.01.2014    275739    arr    56    

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

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

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

23.09.2019    16109    Yashazz    31    

Самый примитивный HTTP-сервис в мире

WEB v8 Бесплатно (free)

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

12.09.2019    23740    YPermitin    27    

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

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

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

10.09.2019    11671    ivanek    21    

Отладка правил обмена 7.7, 8 Промо

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

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

29.10.2013    52170    pyrkin_vanya    70    

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

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

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

02.09.2019    33031    user5300    42    

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

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

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

22.08.2019    17180    ids79    8    

Свой веб интерфейс к 1С: побеждаем CORS на IIS, сохраняя авторизацию

WEB Администрирование данных 1С v8 Бесплатно (free)

Если "веб морда" расположена не по тому же адресу, что и публикация 1С (что часто бывает, например, при разработке, публикация 1С на http://localhost/1c, а разрабатываемое веб-приложение на http://localhost:8080) или, например, мы заходим на веб приложение то по ip адресу, то по имени сервера, или просто веб сервер и сервер, на котором опубликована 1С - это разные сервера, то для большинства запросов от браузера к 1С срабатывает политика CORS, которая заключается в том, что браузер сначала посылает запрос OPTIONS, на который сервер должен ответить определенным образом, заголовками, содержащими разрешения, а потом уже (если разрешение есть), браузер посылает основной запрос. В случае, когда в публикации 1С (default.vrd) жестко прописан логин и пароль, разрулить ситуацию можно средствами 1С. В случае же, когда нужно сохранить авторизацию (или используется стандартный интерфейс odata), начинаются проблемы.

20.08.2019    12946    Fragster    9    

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

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

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

13.08.2019    14064    vikulinamari    8