1C# – 1С моей мечты

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

Разработка - Системная интеграция - Интеграция

Встроенных в платформу 1С возможностей не всегда хватает для построения сложных интеграционных схем между различными 1С и не-1С-решениями на базе MS SQL Server. Как сделать интеграцию между SQL-базами более гибкой с помощью платформы 1С# на конференции Infostart Event 2019 Inception рассказал Дмитрий Жичкин.

Добрый день, друзья. Меня зовут Жичкин Дмитрий. Я – программист широкого профиля. Сразу скажу, что проект решения, про которое я буду рассказывать, размещен на GitHub https://github.com/zhichkin/one-c-sharp, там есть подробная видеоинструкция, благодаря которой вы сможете начать использовать проект уже через 15 минут после её просмотра.

Развитие проекта можно найти здесь: DaJet QL - расширяемый язык запросов и JSON в запросах DaJet QL

 

Интеграция – это просто!

 

 

Основная идея проекта – интеграция должна быть настолько простой, насколько это возможно. В частности, платформу 1C# отличает очень легкое и быстрое создание веб-сервисов, а также получение данных из различных источников без обменов и COM-соединений – в одном запросе.

Кратко идею проекта можно выразить таким оператором SQL, как:

SELECT FROM ЛюбойИсточникДанныхИлиИхКомбинация INTO ВебСервис

На слайде вы видите иконку 1С7.7. Это не просто так, благодаря 1С# 1С7.7 теперь тоже умеет веб-сервисы.

 

 

Платформа 1C# состоит из трех компонент – это:

  • метаданные в терминах метаданных 1С;
  • запросы, которые также конфигурируются в терминах метаданных 1С восьмой версии (несмотря на то, что мы работаем с различными источниками – 7.7, 8.x, не-1С-ные базы, с любыми источниками работаем именно в терминах метаданных 1С);
  • и платформенный веб-сервер 1C#

 

 

Чтобы создать веб-сервис на платформе 1С#, нужно сделать три простых действия:

  • создать в метаданных объект «Запрос данных»;
  • сконфигурировать его при помощи дизайнера запросов;
  • и начать пользоваться.

 

Модель метаданных 1С#

 

 

Теперь немного теории о каждом компоненте.

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

 

 

Платформа 1С# имеет конфигуратор, что не удивительно. Выглядит он примерно так, как показано на слайде:

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

Как метаданные 1С попадают в конфигуратор 1C#?

Они туда попадают точно так же, как и в «Конвертацию данных» – есть обработка на управляемых и неуправляемых формах, которая выгружает метаданные 1С в виде XML-файла, и мы его потом загружаем в конфигуратор 1C# и дальше пользуемся.

Но попутно конфигуратор 1С# загружает еще и метаданные SQL-сервера – типы данных полей и прочее. Таким образом, мы имеем в платформе данные прикладных объектов в виде метаданных и метаданные SQL.

 

Дизайнер запросов 1C#

 

 

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

Мы можем взять в качестве источников 7.7, 8.х, SQL-базу произвольного формата, и в одном запросе всю информацию из них соединением получить.

 

 

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

  • на правой рабочей панели мы видим некий конструктор запросов, его задача – просто сконфигурировать запрос;
  • а слева в метаданных мы видим созданный объект.

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

 

 

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

Другими словами, на платформе 1С# запрос фактически равен веб-сервису.

При этом генерируется автоматически REST API и пр.

 

Web сервер 1С#

 

 

Третий компонент платформы – это веб-сервер. Он построен на базе Kestrel, это кроссплатформенное решение.

Для тех, кто не знает, что такое Kestrel – это как Node.js, только быстрее. Он просто работает – обрабатывает запросы и отдает данные в JSON.

 

Пример использования 1С#

 

 

Давайте на небольшом практическом примере рассмотрим, как можно создать веб-сервис на платформе 1С#.

Допустим, мы хотим сверить два справочника в разных базах («Управление торговлей» и «Бухгалтерия предприятия») – пусть это будут справочники валют.

Одним запросом мы их соединим FULL JOIN и результат отдадим по REST API в виде JSON.

 

Шаг 1. Определяем URL

 

 

Первый шаг – в конфигураторе 1С# в панели метаданных мы создаем структуру URL. Готовый URL видно на слайде в правом верхнем углу.

При этом есть возможность разделять REST API по версиям (пространствам имен) – можно создать «версию 1», «версию 2», «версию для тестирования», а потом из «версии для тестирования» перенести запрос в рабочую ветку.

Это делается очень просто, за несколько секунд – URL задан.

 

Шаг 2. Редактируем запрос

 

 

Далее – мы правой кнопкой щелкаем на объекте метаданных ЗапросДанных, в контекстном меню выбираем «Редактировать»

 

 

У нас открывается шаблон SELECT.

 

 

В поле FROM подставляем данные справочника из базы «Управление торговлей» (перетаскиваем его из дерева метаданных с помощью Drag and Drop). Добавляем таблички из «Управления торговлей» и из «Бухгалтерии».

В качестве соединения выбираем FULLL JOIN. В качестве варианта чтения выбираем nolock (в MS SQL Server это называется READUNCOMMITED).

 

 

Добавляем условие соединения – в данном случае, по коду.

 

 

Выбираем поля, которые хотим видеть в результирующем запросе.

 

 

Теперь нужно сохранить запрос в метаданных – нажимаем кнопку Save.

И можем тут же проверить результат запроса нажатием кнопки Execute, в стиле Microsoft SQL Server Management Studio.

 

 

Результат запроса сервер 1C# показывает нам сразу в табличном виде – мы видим это в интерфейсе.

Здесь мы видим, что:

  • рубли у нас есть в обоих базах;
  • в «Управлении торговлей» у нас есть китайские юани – их нет в «Бухгалтерии»;
  • в «Бухгалтерии» есть доллар и евро – их нет в «Управлении торговлей».

Работает.

 

Шаг 3. Пользуемся

 

 

И третье действие – пользуемся. Когда мы обратимся по тому URL, который мы сконфигурировали, наши табличные данные будут представлены в виде вот такого JSON – мы их получим запросом к веб-серверу 1С#.

Вот так просто создается веб-сервис на платформе 1С#.

 

Запросы к метаданным

 

 

Но это еще не все.

Структура хранения 1С# предполагает хранение метаданных так же, как и всех остальных объектов. Есть специальная информационная база – Metadata, где в табличках хранятся метаданные. Соответственно, это дает возможность обращаться с запросами к метаданным. Зачем это нужно? Казалось бы, это избыточно. Но на самом деле, это очень удобный инструмент, и я им пользуюсь довольно часто.

Например, на слайде сконфигурирован запрос – сейчас мы подробнее разберем, что он делает.

 

 

Допустим, это может быть полезно для BI. Предположим, бизнес-аналитик приходит к 1С-нику, говорит: «Мне нужно получить названия всех таблиц справочников Номенклатура во всех базах 1С, которые зарегистрированы на сервере 1С#».

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

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

И с этим можно сразу же начинать работать – не нужно ничего придумывать. Можно сразу что-то перегружать в OLAP и прочее (как один из вариантов использования).

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

 

 

Практика применения этой технологии очень широкая. Здесь перечислены некоторые возможные примеры.

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

При этом «Бухгалтерию» дорабатывать нельзя – веб-сервисы 1С на нее вешать нельзя, изменять ее никак нельзя. И обмены данными мы с ней никакие делать не хотим – не хотим соединяться с ней по COM-соединению и т.д. (допустим, эти базы вообще в разных городах, так тоже бывает).

Можно быстро накидать запрос, подцепить бухгалтерскую базу к 1С#, сделать REST API, и все. Это можно сделать буквально за несколько минут и использовать в нашей оперативной базе.

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

 

Плюсы 1С#

 

 

Плюсы.

  • Один из плюсов, который я вижу – это очень низкий порог входа. Достаточно знать основы метаданных 1С и немного язык запросов, этого достаточно, чтобы создавать веб-сервисы, вообще не зная, что это такое. Сконфигурировал запрос, нажал кнопку Save – и получил готовый веб-сервис.
  • Можно создавать витрины данных – mashup-приложения, получающие данные из нескольких баз (на примере с «Бухгалтерией» и с «Управлением торговлей»). Можно соединять данные из разных баз в едином интерфейсе безо всяких обменов – показывать их и делать какие-то витрины.
  • Создание микросервисов – понятно (Kestrel очень быстрый).
  • И хотелось бы особенно отметить еще один плюс – это расширение возможностей языка запросов. Не все возможности SQL-сервера используются в языке запросов 1С. Это можно исправить, например, при помощи платформы 1С#.

 

Планы развития 1С#

 

 

Планы развития

  • Когда вы голосовали за мой доклад, у меня было задекларировано, что я покажу, как организовать при помощи 1С# переносы данных (это INSERT, UPDATE, DELETE и т.д.). К сожалению, я не успел это реализовать к конференции. Но думаю, что до конца года я это точно успею сделать, и в платформе 1С# еще появятся операторы модификации данных.
  • Кроме этого, у меня в планах сделать объект метаданных «Очередь сообщений», чтобы это работало по аналогии, как сейчас работают веб-сервисы – мы делаем какой-то запрос, и в качестве INTO указываем имя очереди сообщений. И запрос просто кладет туда данные. Можно будет дергать такой запрос по REST API, дернули – и у нас в очередь что-то упало.
  • Интеграция 1С# и OneScript мне кажется очень перспективной, потому что по метаданным 1С# можно генерировать прикладные объекты для OneScript. Это даст возможность разрабатывать конфигурации на OneScript. И вообще работать с прикладными объектами 1С из OneScript.

А если развить мысль дальше, то можно придумать еще более интересные варианты:

  • берем Kubernetes – контейнеризируем туда 1C#;
  • подцепляем базу 1С;
  • к веб-сервисам 1С# цепляем веб-интерфейс «Цифрового Кота»;
  • потом прикручиваем Jenkins и весь DevOps;
  • вместо РИБ – Kafka или RabbitMQ.

Вот такой интересный Inception у меня по итогам конференции получился.

Если кому-то проект интересен, то все желающие приглашаются участвовать в нем, разрабатывать. Ссылка на GitHub – https://github.com/zhichkin/one-c-sharp

Продолжение развития проекта – новые возможности языка запросов 1C# в публикации //infostart.ru/public/1226230/.

 

Вопросы:

 

  • У меня есть вопрос по обновлению метаданных вместе с обновлением баз. Как это реализовано? Через «Конвертацию данных» или как-то еще?
  • Да, в платформе 1С# есть возможность обновлять метаданные. Я об этом не стал в докладе рассказывать – хотелось просто сфокусироваться на главном. Мы той же самой обработкой выгружаем метаданные в XML, и есть специальная компонента. Дело в том, что 1C# - это модульная система. Этого модуля здесь на слайдах в интерфейсе не было видно – там, когда подключаешь еще один модуль, в меню появляется еще одна кнопка – и этот модуль умеет мержить и обновлять метаданные. Он делает это в интерфейсе примерно так же, как мы делаем в конфигураторе «Сравнение-объединение».
  • Я услышал в докладе плюсы, но не услышал минусы. Меня беспокоит вопрос – что по этому поводу думает 1С в части лицензионной политики?
  • Я ждал этот вопрос. Мне его задают последние лет 10, наверное. Я каждый раз отвечаю на этот вопрос по-разному, и уже устал отвечать. Можно я не буду отвечать?
  • Вы сейчас начали говорить о других операциях – не только SELECT, а INSERT, UPDATE и т.д. А вы не боитесь конфликтов с 1С:Предприятием? Когда люди там работают, как в основной системе, и здесь вдруг вы решаете со стороны – начинаете кидать куда-то данные. Как вы это собираетесь разруливать?
  • Когда вы пользуетесь ножом, у вас всегда есть риск порезаться. Поэтому любой инструмент требует аккуратного обращения. Вы абсолютно правы – все подряд не нужно такими операциями обрабатывать. Надо думать, что делаешь. Но иметь такую возможность очень приятно во многих случаях. Такие случаи в 1С есть.
  • RLS поддерживается?
  • Нет, не поддерживается, потому что запросы летят напрямую в SQL. Соответственно, если очень хочется, я не вижу препятствий, чтобы взять RLS из 1С и просто к каждому запросу его подцеплять. Это можно сделать. Если кто-то подключится к разработке, я буду очень благодарен – то, что вы сейчас видели, я делал в свободное от работы время.
  • Насколько видно из презентации, ваш инструмент в итоге генерит просто SQL-запрос, как есть. И отдает его SQL-серверу. А вопросы безопасности – такие, как выполнение запроса под разными пользователями, выполнение запроса на разных SQL-серверах – это, получается, уже нужно спускать на уровень системных администраторов?
  • У нас с SQL базой данных работает сервер 1С под одной учеткой всегда. Здесь можно сделать то же самое. От Kestrel работать под одной учеткой. Можно навернуть еще что-то. Я этим вопросом пока не озадачивался. Это – концепция.
  • Это – перекладывание запроса. Фактически мы из уровня прикладного 1С спускаемся на уровень прямых запросов SQL. Соответственно, нам нужно уже подтягивать DBA на то, чтобы разруливать эти запросы.
  • Если вернуться к вопросу о безопасности, я еще раз повторяю – платформа 1С# работает с какой-то строкой соединения. Ничто не мешает в эту строку соединения заложить имя конкретного пользователя и пароль. Это будет работать точно так же, как работает сервер 1С. Я понимаю, что есть еще система безопасности более высокого уровня, которую обеспечивают роли 1С и т.д. Но никто не мешает на Kestrel логиниться и там все это разруливать. Соответственно, можно сделать, что каким-то пользователям какие-то веб-сервисы видны, а какие-то не видны. Эту подсистему, конечно, нужно делать. Ее сейчас нет.
  • Хочу уточнить по поводу источников данных. Базы 7.7 – понятно, базы 8.х – понятно. А в качестве прочих источников подразумеваются какие-то сторонние базы на платформе SQL?
  • Вообще любые, но именно MS SQL Server. Это все сейчас работает только с MS SQL Server. Если в сообществе найдется кто-то, кто хорошо знает Postgres и С# – пожалуйста, можно сделать и для Postgres, и для чего угодно. Просто лично я Postgres не очень хорошо знаю. Там просто есть строка подключения, и в частности, с SQL-сервером работает не ODBC, а Native Client. С другими базами так же. Если у вас базы лежат на разных инстансах, это работать в одном запросе не будет. Чтобы подружить MS SQL Server и Postgres – надо будет что-то делать. Если делаются запросы к разным базам, то базы должны лежать на одном инстансе – иначе не получится. Зато можно сделать два веб-сервера на разных серверах и потом они могут между собой общаться. Я пока не допилил запросы 1С#, чтобы он сам кого-то спрашивал – пока его спрашивают. Но можно допилить, чтобы еще и он кого-то спрашивал. И еще никто не отменяет линкованные сервера. SQL это позволяет, значит, это позволяет 1С#. Концепция такая – все, что позволяет MS SQL Server (большинство востребованных возможностей), должен позволять 1C#.
  • Поддерживаются ли параметризированные запросы?
  • Да, на одном из слайдов, где я показывал интерфейс дизайнера запросов, там наверху было видно, что можно указывать параметры запроса. И когда я рассказывал про запросы к метаданным, там тоже в правом верхнем углу были параметры, которые передавались в запрос в виде JSON.
  • Подскажите, а есть ли возможность консольной загрузки метаданных, выгруженных из 1С?
  • Нет, консольной утилиты нет. Но можно доработать.

 

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

Данная статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART EVENT 2019. Больше статей можно прочитать здесь.

В 2020 году приглашаем всех принять участие в 7 региональных митапах, а также юбилейной INFOSTART EVENT 2020 в Москве.

Выбрать мероприятие

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. pm74 169 01.06.20 12:38 Сейчас в теме
выглядит круто
1. не совсем понял традиционные 1с web http сервисы как то присутствуют в вашей среде или
все только на связке 1C# + MS SQL + Kestrel ?
2. с загрузкой метаданных понятно, что с обновлением ?
3. работает только на win , ms sql или и на других платформах тоже ?
3. Varies 01.06.20 14:59 Сейчас в теме
(1) Если прочитать внимательно, то все ответы на ваши вопросы есть ;)
7. zhichkin 720 01.06.20 15:11 Сейчас в теме
(1) 1. Нет. Только 1C# + MS SQL + Kestrel. 1C может вызывать web-сервисы 1C#.

2. Есть возможность по аналогии со сравнением / объединением как в 1С. Это отдельный модуль. На GitHub он там где-то есть в какой-то папке. Честно говоря, не успел его полноценно прикрутить. Нужно время.

3. Первая версия проекта - только Windows. Вторая (ссылка в шапке доклада) - кросплатформенна.
2. CheBurator 3421 01.06.20 13:00 Сейчас в теме
Если это будет работать с 1С 7.7 - то это 1.круто 2.то что надо!
Прикрутить сабж к 1С 7.7 DBF - есть возможность (прямые запросы)..?
5. zhichkin 720 01.06.20 15:04 Сейчас в теме
(2) Если специально этим заморочиться, то можно и к DBF.
Интеграции с 7-кой посвятил мало времени: работы много, а перспектива непонятна.
12. CheBurator 3421 02.06.20 21:22 Сейчас в теме
(5) еще менее понятна перспектива на 8-ке. где и без этого всяких приблуд вагон ;-)
4. Varies 01.06.20 15:01 Сейчас в теме
А я веб-сервисы через расширения добавляю, и трогать конфигурацию не нужно.
но в целом проект интересный и перспективный :)
6. zhichkin 720 01.06.20 15:07 Сейчас в теме
(4) Проект нарушает лицензионное соглашение 1С.
Имейте это ввиду, пожалуйста.
1C# - это исследовательский проект.
9. user759467 01.06.20 22:31 Сейчас в теме
(6) А что именно нарушает 1C# в плане лицензии? Изменений в программном 1с коде не делаются, делать запросы в скуль и выгружать структуру метаданных тоже вроде не запрещено.
10. Fox-trot 113 01.06.20 22:37 Сейчас в теме
нельзя обращаться напрямую к бд, надо через ком-коннектор хотя бы
8. officeRebot 11 01.06.20 21:31 Сейчас в теме
Позитивная программа, но не совсем понятны преимущества перед HTTP сервисом со справочником запросов или внешних обработок для получения данных, завернутых в расширение , которые не будут нарушать ЛС.
11. zhichkin 720 01.06.20 22:45 Сейчас в теме
(8) Быстродействие и производительность.

Вообще изначально проект задумывался под другое.
Подо что - ответ в развитии проекта:
Язык запросов 1C#
JSON в запросах 1C#
13. Vortigaunt 82 02.06.20 23:08 Сейчас в теме
Можно ли этой платформой заменить механизм http-сервисов 1С? Есть ли нормальная авторизация, а не как у 1С - где логин + пароль передаются в Base64 строке?
Предполагается применить вашу платформу для организации дисконт-сервера. Кассы должны быстро коннектиться к базе со скидками, записывать туда начисления баллов, считывать остаток баллов. Подойдет ли для такой задачи?
14. zhichkin 720 03.06.20 00:10 Сейчас в теме
(13) В целом ответ - да.
Если есть конкретное деловое предложение, то пишите в личку.
19. Vortigaunt 82 03.06.20 12:51 Сейчас в теме
(14) Но для этого надо дождаться реализации методов INSERT, UPDATE, DELETE?
20. zhichkin 720 03.06.20 13:03 Сейчас в теме
22. Vortigaunt 82 03.06.20 13:40 Сейчас в теме
15. savostin.alex 76 03.06.20 02:33 Сейчас в теме
Добрый день.
Подключение работает только к локальному серверу БД? При попытке подключиться к стороннему и выполнить запрос - база вне сети, хотя метаданные были загружены...
16. savostin.alex 76 03.06.20 03:29 Сейчас в теме
(15)Связанный сервер я создал, базы на удаленном сервере БД вижу в SSMS
18. zhichkin 720 03.06.20 12:09 Сейчас в теме
(16) Это про какую версию 1C# ?
Первая не умеет связанные сервера - только БД на одном инстансе.
Вторая версия здесь: Язык запросов 1C#
21. savostin.alex 76 03.06.20 13:19 Сейчас в теме
(18)0.1.0, для нее был zip со всем необходимым. Для новой версии нужно с git забрать все библиотеки и подменить их? Готовой сборки нет?
23. zhichkin 720 03.06.20 14:09 Сейчас в теме
24. savostin.alex 76 04.06.20 02:20 Сейчас в теме
(23)В инструкции:

1. Распаковать установочный архив 1C# в любой каталог.

Далее, при выполнении bat для запуска web-сервера - dotnet OneCSharp.Web.Server.dll - нет такой библиотеки.
ЧЯДНТ?
30. zhichkin 720 04.06.20 14:31 Сейчас в теме
(24)
Далее, при выполнении bat для запуска web-сервера - dotnet OneCSharp.Web.Server.dll - нет такой библиотеки.
ЧЯДНТ?

.net core установили ? Полный тект ошибки какой консоль выдаёт ?
25. savostin.alex 76 04.06.20 10:02 Сейчас в теме
(23)Разобрался немного.
На тестовом запросе

SEL ECT TOP 10
	TYPEOF(Документ.ПоступлениеТоваровУслуг) AS TYPEOF,
	Ссылка      AS Ссылка,
	_IDRRef     AS Ссылка_IDRRef,
	Ссылка.uuid AS Ссылка_uuid,
	Ссылка.type AS Ссылка_type,
	DATEADD(YEAR, -2000, Дата) AS Дата,
	_Date_Time AS DateTime,
	_Version
FR OM
	Документ.ПоступлениеТоваровУслуг
Показать

получаю:
{"result":"","errors":[{"line":0,"description":"TYPEOF не является известным имя встроенной функции."}]}

В статье же сказано:

Язык запросов 1C# реализует специальную функцию TYPEOF для получения кода типа объекта аналогично функции ССЫЛКА в языке запросов 1С.

Что необходимо сделать?
27. zhichkin 720 04.06.20 14:26 Сейчас в теме
(25)
TYPEOF(Документ.ПоступлениеТоваровУслуг) AS TYPEOF,

У Вас SQL Server какой версии ? Попробуйте на SQL Server 2016 Express. Возможно парсер младшей версии недогонят ...
29. zhichkin 720 04.06.20 14:30 Сейчас в теме
(25) Давайте так: по первой версии 1C# будем задавать вопросы здесь, а по второй - там.
31. zhichkin 720 05.06.20 03:20 Сейчас в теме
(25) Сделал всё по своей инструкции. Работает "из коробки". Прилагаю скриншот из Postman.
Прикрепленные файлы:
17. Fox-trot 113 03.06.20 08:24 Сейчас в теме
попробуй увеличить время простоя соединения
26. herfis 365 04.06.20 10:16 Сейчас в теме
Я вижу огромный труд и практически готовый коммерческий продукт.
Соответственно и вопрос (возможно, проглядел на него ответ) - какова схема распространения и использования сейчас и какова она в планах?
ЗЫ. В принципе, на гитхабе я вижу ответ на первую часть вопроса.
28. zhichkin 720 04.06.20 14:28 Сейчас в теме
(26) Никаких планов нет. Спасибо лицензионному соглашению от 1С.
Вы с какой целью интересуетесь ? Есть конкретное предложение - пишите в личку.
32. goodursus 08.06.20 14:33 Сейчас в теме
С 1С базами все получилось, спасибо за информацию. А вот с "SQL-база произвольного формата" желательно бы тоже подробный пример для подключения, так как Метаданные - Открыть подразумевают начальную загрузку xml файла, а потом уже подключение к базе MS SQL.
Заранее спасибо.
33. zhichkin 720 08.06.20 15:09 Сейчас в теме
(32) Выгружаете метаданные из 1С в xml. Смотрите формат этого xml - он очень простой. Делаете такой же для баз данных не на 1С. Дальше по инструкции.
Я понимаю, что такой ответ звучит сложно, но пока только так. Сейчас времени сделать автоматическое формирование xml по произвольной базе данных из SQL Server у меня нет. Возможно, что я вернусь к этому вопросу позже.
Оставьте свое сообщение

См. также

Обмен данными. Консистентность vs Многопоточность Промо

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

Рассмотрим теоретические основы обмена данными. Какие бывают обмены, какие гарантии при этом даются, зачем идти на компромиссы и что при этом может пойти не так. Есть ли идеальная схема?

03.09.2019    11242    0    m-rv    1    

Мониторинг факта выполнения обмена с помощью сервиса healthchecks.io

Интеграция Системное администрирование v8 1cv8.cf Россия Бесплатно (free)

В статье опишу вариант простого мониторинга обработчиков, запускаемых по расписанию.

30.06.2020    555    0    malikov_pro    3    

Как мы запилили в АЙТАТ.РФ обработку-бота, чтобы ускорить отгрузку в 2 раза или Реальный опыт внедрения нового механизма "Трансляция событий" от 1С-Коннект

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

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

24.06.2020    691    0    direwest    4    

Маркировка лекарственных препаратов. Часть первая "Быстрая интеграция"

Интеграция v8 1cv8.cf Фармацевтика, аптеки Россия УУ Бесплатно (free)

Данный цикл будет посвящен маркировке лекарственных препаратов (далее ЛП), нюансам работы с "1С: Библиотека интеграции с МДЛП", доступной для скачивания на сайте ИТС, методиками работы с регистраторами выбытия, и проблемам, с которыми пришлось столкнуться при интеграции. Эта статья будет представлять из себя краткую инструкцию, что делать, когда маркировка уже близко и необходимо быстро внедрить ее. Надеюсь, она станет подспорьем в данной задаче. Будут приведены рекомендации, как в короткие сроки с минимально необходимой функциональностью и минимумом чтения документации произвести интеграцию библиотеки МДЛП и выполнить начальные настройки. Также будут даны рекомендации по быстрым, но важным, на мой взгляд, доработкам.

23.06.2020    1473    0    IssakN    8    

Диадок. Подключаемый модуль. Отладка

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

Небольшой пример, как работать с подключаемым модулем Диадок (для изменения УПД перед выгрузкой на сайт Диадок.). Отладка подключаемого модуля, если не смогли подключить стандартную отладку.

17.06.2020    2040    0    John_d    1    

Обработчик "После завершения транзакции" своими руками

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

Обработчик "Сразу после завершения транзакции" очень востребован в механизме обмена мгновенными сообщениями, развитием которого фирма 1С заинтересовались настолько, что уже создала "Сервисы интеграции". Но платформа 8.3.17 всё еще не имеет полноценного обработчика "После записи" в подписках на события.

31.05.2020    2080    0    barelpro    58    

Нейроконструктор

Интеграция Искусственный интеллект (AI) Прочие инструменты разработчика v8 Бесплатно (free)

Изучайте нейронные сети и экспериментируйте вместе с расширением конфигурации "Нейроконструктор". Навыки программирования не требуются.

20.05.2020    5385    19    user1404129    18    

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

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

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

12.05.2020    2456    0    zhichkin    19    

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

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

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

08.05.2020    4218    0    chernenko_vv    25    

Интеграция СуперОкна7 и УНФ

Интеграция Внешние источники данных v8 УНФ Россия Бесплатно (free)

Изучаем базу данных СуперОкна7, смотрим возможности передачи и получения информации.

08.05.2020    1612    0    vostok1.dz    2    

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

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

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

04.05.2020    3328    0    RPGrigorev    0    

Измерительная лаборатория с использованием 1С+Ардуино

Периферийные устройства Интеграция v8 Россия Бесплатно (free)

1С в автоматизации "научных" и около... экспериментов.

02.05.2020    3609    0    maxlab    15    

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

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

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

26.04.2020    4341    0    RPGrigorev    0    

JSON в запросах DaJet QL

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

Практические примеры работы с JSON непосредственно в языке запросов. Перенос курсов валют между УТ и БП. Требуется SQL Server 2016 и выше.

24.04.2020    3275    0    zhichkin    6    

DaJet QL - расширяемый язык запросов

Интеграция WEB v8 Абонемент ($m)

DaJet QL поддерживает практический полный синтаксис SQL Server 2005-2016. Кроме этого это расширяемый язык запросов. Обращение к объектам СУБД выполняется в терминах метаданных 1С. Доступ к возможностям этого языка запросов реализован в виде web api сервиса. Результаты запросов возвращаются в виде JSON.

1 стартмани

20.04.2020    4427    9    zhichkin    16    

Интеграция 1С и BI-системы: мой опыт с коннектором ATK BIView

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

Интеграция 1С и BI-системы: мой опыт с коннектором ATK BIView.

06.04.2020    3409    0    Flyerink    0    

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

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

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

31.03.2020    10950    0    informa1555    21    

Использование таблиц SQL Server в качестве очередей сообщений

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

Статья о событийно-ориентированной интеграции и об асинхронной обработке данных в контексте 1C под управлением SQL Server. Подробно разбирается вопрос использования таблиц СУБД в качестве очередей сообщений.

23.03.2020    2326    0    zhichkin    6    

Интеграция "Библиотеки интеграции МДЛП 1.1.2.7" с типовой конфигурацией

Интеграция Конфигурирование 1С v8 Здравоохранение, медицина, стоматология Россия Бесплатно (free)

Инструкция для интеграции “Библиотеки интеграции МДЛП 1.1.2.7” в типовые конфигурации, на примере конфигурации “Управление нашей фирмой, редакция 1.6 (1.6.18.168)”.

02.03.2020    4148    0    RPGrigorev    3    

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

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

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

24.01.2020    4218    0    e-9    2    

Передача данных с сервера на клиент через WebSocket NativeAPI и Centrifugo

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

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

23.09.2019    6487    0    malikov_pro    11    

Оповещения боту из 1С за 31 минуту

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

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

18.09.2019    15712    4    feva    37    

Как организовать консолидацию данных из трех десятков предприятий, не привлекая программистов на местах?

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

Какую архитектуру и технологии выбрать для организации обмена между «зоопарком» разных конфигураций и системой, принципиально отличающейся от 1С, как наладить такой обмен без изменения конфигурации и организовать мониторинг из единого центра, расскажет докладчик конференции INFOSTART EVENT 2018 EDUCATION Александр Бобрышов. 

15.07.2019    4225    0    ShurikDM    4    

Система питания в офисе: как совместить вендинговые автоматы, 1С, облачную кассу и веб-технологии

Интеграция Розничная торговля Розничная торговля v8 1cv8.cf Розничная и сетевая торговля (FMCG) Россия УУ Бесплатно (free)

В начале 2019 года тенденция развития автоматов питания в России привела к появлению проекта нового формата питания на работе — МикроМаркета “Го!Поедим”. Потребовалось создать новый формат зоны питания сотрудников: интегрировать в офисные кухни полноценные МикроМаркеты с бесконтактной оплатой, кофе-машинами, лаунж-зоной. Если правильно совместить вендинговые автоматы, облачную кассу, 1С и веб-технологии, то в результате будут не только сытые сотрудники, но и корректная работа всей системы офисного питания.

22.06.2019    5923    0    antonovintervolga    6    

1С + TecDoc + CMS Битрикс. Трудности перевода

Интеграция Оптовая торговля Оптовая торговля v8 1cv8.cf Автомобили, автосервисы Россия УУ Бесплатно (free)

Варианты подключения номенклатурных данных базы TecDoc, если у вас автобизнес.

12.04.2019    6150    0    n.saltsina    11    

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

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

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

21.03.2019    24269    0    barelpro    82    

Переход на "Зарплату и управление персоналом 3.1"

Интеграция Управление персоналом (HRM) Пользователю системы Бухгалтерский учет Управление персоналом (HRM) v8 v8::СПР ЗУП2.5 ЗУП3.x Россия БУ Бесплатно (free)

Сменила я тут работу и уже после того, как я приступила к исполнению обязанностей, мой новый начальник мне призналась, что выбор пал на меня только из-за того, что я знаю программу. Справедливости ради, эта уверенность была основана только на том, что я прошла тестирование, включающее только основные операции кадрового делопроизводства. Так или иначе, а работодатель попал в точку, нанимая меня в надежде, что я решу проблему: нужно перейти «с 8.2 на 8.3». Ничего сложного, скажет большинство, я тоже так говорю, но ситуация осложнялась некоторым количеством предшественников, которые уже «нафеячили» в программах до меня. Взять и сделать все заново мне не разрешили, так что пришлось исходить из того, что есть, и именно это дало пищу для размышлений и, в конце концов, привело к написанию этих рекомендаций. Если перед Вами стоит задача перехода с ЗУП 2.5 на ЗУП 3.1, я попробую облегчить Вам жизнь этой статьей.

01.02.2019    12398    0    VKuser24804875    33    

Выбор программы 1С

Пользователю системы Интеграция Управление проектом v8 1cv8.cf Россия Бесплатно (free)

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

16.01.2019    8652    0    itworks    22    

Проектирование архитектуры и модификация программных продуктов как технология в сложных проектах системной интеграции и автоматизации на базе 1С: СППР

Управление проектом Интеграция СППР v8 1С:Франчайзи, автоматизация бизнеса Бесплатно (free)

Как сделать проектирование функциональной архитектуры ПО технологией. Цель - устранить ряд типовых проблем на сложных проектах. Как использовать для решения этих задач 1С система проектирования прикладных решений (СППР). Статья полезна для директоров франчайзи, системных интеграторов, руководителей проектов, архитекторов и консультантов.

03.10.2018    15820    0    roman72    19    

Планы обмена 1С

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

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

10.09.2018    52620    0    zhichkin    27    

Создание web-площадки на технологиях 1С, или как Водоканал сделал "Личный кабинет потребителя"

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

Гончаров Максим делится опытом создания «Личного кабинета потребителя» на сайте водоканала. Он описывает архитектуру системы и объясняет, какую роль в ней играют технологии: «Битрикс», OData, веб-сервисы, «1С:БСП». Также в статье раскрываются возможности использования подсистемы «Анкетирование» в «1С:БСП» как конструктора документов.

25.06.2018    16624    0    maxx    32    

На что действительно способны HTTP-сервисы

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

В статье я собираюсь не только рассказать вам про HTTP-сервисы 1С, но и показать много прикольных слайдов с картинками. Я думаю, будет весело, и вы найдете для себя что-то полезное.

14.06.2018    34319    0    dalgaso2010    45    

Как написать обмен с 50 поставщиками и не сойти с ума. Теория

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

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

09.04.2018    11447    0    m-rv    12    

Может ли 1С выйти на рынок B2C

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

Размышляя о том, может ли 1С втиснуться на рынок сервисов типа Slack, Wrike и им подобных, текст незаметно углубился в размышления о том, где граница применимости платформы 1С. Что будет, если 1С пойдет на рынок таких продуктов и возможно ли это вообще. Рассказал свое представление о том, где у 1С есть преимущества и где слабые стороны. Получился такой себе вырожденный SWAT-анализ. Но без таблиц. Только буквы, только хардкор.

15.08.2017    13318    0    WanGoff    76    

Обмен сообщениями. Что это?

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

Большая часть моей работы посвящена интеграции приложений. Очень странно, что для «1С:Предприятие 8» нигде не описаны промышленные шаблоны интеграции, а если и есть какая-то информация — то ее очень мало. Цель данной статьи (или цикла статей, как получится) стало желание поделится опытом, источниками информации и самое главное полезными книгами.

27.10.2016    22102    0    pbazeliuk    11    

Контур.EDI изнутри, или история командной разработки тиражного продукта на 1С

Интеграция Практика программирования Математика и алгоритмы Оптовая торговля Оптовая торговля v8 Россия УУ Бесплатно (free)

“Система - больше, чем просто совокупность ее элементов”; “Несколько разработчиков - это еще не команда разработки”. Расскажу, как мы прочувствовали эти очевидные утверждения на своей шкуре.

17.11.2015    40324    0    skif47    94    

УПП + Perco + SDK

Интеграция v8 УПП1 Россия Бесплатно (free)

1С: УПП интеграция с Perco через SDK

24.10.2014    32203    0    Alex33614    12    

Интеграция 1С с Perco

Интеграция v8 УПП1 Россия Бесплатно (free)

Как работать с базой электронной проходной Perco через 1С.

16.10.2014    29604    0    Alex33614    17    

Автоматизация компании ЖКХ: задачи и решения

Интеграция v8 Энергетика и ЖКХ Россия Бесплатно (free)

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

29.05.2011    11215    0    verybig    14