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 194 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 938 01.06.20 15:11 Сейчас в теме
(1) 1. Нет. Только 1C# + MS SQL + Kestrel. 1C может вызывать web-сервисы 1C#.

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

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

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

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

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

.net core установили ? Полный тект ошибки какой консоль выдаёт ?
25. savostin.alex 70 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 938 04.06.20 14:26 Сейчас в теме
(25)
TYPEOF(Документ.ПоступлениеТоваровУслуг) AS TYPEOF,

У Вас SQL Server какой версии ? Попробуйте на SQL Server 2016 Express. Возможно парсер младшей версии недогонят ...
29. zhichkin 938 04.06.20 14:30 Сейчас в теме
(25) Давайте так: по первой версии 1C# будем задавать вопросы здесь, а по второй - там.
31. zhichkin 938 05.06.20 03:20 Сейчас в теме
(25) Сделал всё по своей инструкции. Работает "из коробки". Прилагаю скриншот из Postman.
Прикрепленные файлы:
17. Fox-trot 127 03.06.20 08:24 Сейчас в теме
попробуй увеличить время простоя соединения
26. herfis 408 04.06.20 10:16 Сейчас в теме
Я вижу огромный труд и практически готовый коммерческий продукт.
Соответственно и вопрос (возможно, проглядел на него ответ) - какова схема распространения и использования сейчас и какова она в планах?
ЗЫ. В принципе, на гитхабе я вижу ответ на первую часть вопроса.
28. zhichkin 938 04.06.20 14:28 Сейчас в теме
(26) Никаких планов нет. Спасибо лицензионному соглашению от 1С.
Вы с какой целью интересуетесь ? Есть конкретное предложение - пишите в личку.
32. goodursus 08.06.20 14:33 Сейчас в теме
С 1С базами все получилось, спасибо за информацию. А вот с "SQL-база произвольного формата" желательно бы тоже подробный пример для подключения, так как Метаданные - Открыть подразумевают начальную загрузку xml файла, а потом уже подключение к базе MS SQL.
Заранее спасибо.
33. zhichkin 938 08.06.20 15:09 Сейчас в теме
(32) Выгружаете метаданные из 1С в xml. Смотрите формат этого xml - он очень простой. Делаете такой же для баз данных не на 1С. Дальше по инструкции.
Я понимаю, что такой ответ звучит сложно, но пока только так. Сейчас времени сделать автоматическое формирование xml по произвольной базе данных из SQL Server у меня нет. Возможно, что я вернусь к этому вопросу позже.
34. NeLenin 6 24.11.20 10:26 Сейчас в теме
Все это хорошо, наверное. Но мне непонятно, зачем создавать еще один абстрактный уровень. Задача по обмену между базами 8.х/ 7.7/произвольными в MS SQL Server вполне неплохо решается созданием новой пустой базы данных, автоматическим созданием представлений с человекочитаемыми именами таблиц и полей. Т.е. для каждой БД создаем таблицы с помощью запроса cre ate view , префикс таблиц для каждой БД свой. А далее нам доступен для этой промежуточной базы ВЕСЬ TSQL. И никаких расширений языка делать не надо.
35. zhichkin 938 27.11.20 12:20 Сейчас в теме
(34) Согласен. Вьюхи упрощают жизнь, но при этом имеют ряд своих ограничений. Кругом нюансы - ничего не поделаешь. На вопрос про ещё один уровень абстракции я не знаю что ответить. Хочется нормальный язык запросов в 1С иметь, а не обрубок от SQL. Ну пофантазировал на эту тему. Надо же себя как-то развлекать =)
36. NeLenin 6 30.11.20 23:38 Сейчас в теме
(35)Подождем 1с-ников, может, они лет через 10 сподобятся что-то сделать. А вообще ситуация с SQL немного анекдотичная. Если хочешь более менее полную поддержку SQL на уровне платформы - нужно переходить обратно на 7.7 )))) Там эта поддержка хорошо обеспечивается широко известными в узких кругах сторонними компонентами. Для себя в какой-то момент решил задачу просто - если нужен нормальный SQL, следует работать со средствами, которые его нормально поддерживают. Если нет такой поддержки, медленно и верно отправлять такое средство разработки в утиль.
Оставьте свое сообщение

См. также

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

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

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

03.09.2019    13958    m-rv    1    

Настраиваем авторизацию пользователей 1С через Okta

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

Чем больше в компании различных конфигураций и сервисов, тем актуальнее становится проблема единой системы авторизации single Sign-On. Его лидером практически безоговорочно считается Okta. Но на просторах интернета очень мало информации про интеграцию 1С с Okta через протокол OpenID Connect. Что ж, настало время восполнить недостающие пробелы и перевернуть эту печальную страницу в вашей истории

30.04.2021    1817    ripreal1    7    

«БИП: Бизнес-Процессы». Интеграция с Telegram и Конструктор чат-ботов

Управление бизнес-процессами (BPM) Интеграция v8 УУ Бесплатно (free)

В статье приводятся примеры настройки автоматических оповещений в системе «БИП: Бизнес-Процессы» с использованием мессенджера Telegram. Также, приводятся примеры создания и настройки произвольных чат-ботов с использованием Конструктора чат-ботов.

15.02.2021    616    YuriYuriev    0    

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

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

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

12.02.2021    984    Koder_Line    1    

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

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

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

28.12.2020    2239    SizovE    23    

Чтение вложенных свойств Структур Структуры, Соответствий, свойства через точку, разбор JSON

Практика программирования WEB Интеграция Универсальные функции v8 Бесплатно (free)

JSON: {user.device.type} - как получить значение {type}? А если вложенность значительно глубже? Как проверить, что оно заполнено или удалить его - всё это в публикации с открытым кодом и даже без рекурсии. Бонусом разбор дерева значений - ДанныеФормыЭлементДерева, СтрокаДереваЗначений.

17.11.2020    1804    SizovE    2    

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

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

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

10.11.2020    5336    maks_20    22    

Структура обработки загрузки номенклатуры поставщика с примерами и комментариями (часть 2)

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

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

17.10.2020    842    malikov_pro    2    

Управление соляриями из 1С через Arduino

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

Мой опыт автоматизации сети соляриев с интеграцией 1С и оборудования соляриев с помощью платформы Arduino.

01.10.2020    2289    impextr    31    

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

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

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

19.08.2020    3718    Yashazz    14    

Интеграции с сервером SQL. Быстро и просто

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

Решаем вопросы экспорта/импорта данных в базы отличного от 1С происхождения.

06.07.2020    2980    Infector    4    

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

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

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

30.06.2020    2112    malikov_pro    5    

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

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

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

24.06.2020    2022    direwest    4    

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

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

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

23.06.2020    7693    IssakN    32    

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

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

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

17.06.2020    7786    John_d    10    

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

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

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

31.05.2020    3434    barelpro    63    

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

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

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

12.05.2020    5046    zhichkin    30    

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

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

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

08.05.2020    5475    chernenko_vv    25    

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

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

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

08.05.2020    2626    vostok1.dz    3    

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

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

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

04.05.2020    4492    RPGrigorev    0    

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

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

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

02.05.2020    4792    maxlab    16    

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

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

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

26.04.2020    5728    RPGrigorev    0    

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

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

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

24.04.2020    4215    zhichkin    6    

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

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

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

1 стартмани

20.04.2020    9391    12    zhichkin    19    

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

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

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

06.04.2020    5338    Flyerink    2    

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

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

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

31.03.2020    14830    informa1555    35    

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

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

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

23.03.2020    3628    zhichkin    9    

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

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

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

02.03.2020    8098    RPGrigorev    3    

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

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

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

24.01.2020    6087    e-9    8    

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

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

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

23.09.2019    8620    malikov_pro    11    

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

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

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

18.09.2019    18667    feva    42    

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

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

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

15.07.2019    5130    ShurikDM    4    

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

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

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

22.06.2019    7135    antonovintervolga    6    

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

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

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

12.04.2019    7688    n.saltsina    12    

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

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

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

21.03.2019    28747    barelpro    87    

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

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

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

01.02.2019    14033    VKuser24804875    33    

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

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

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

16.01.2019    10503    itworks    22    

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

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

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

03.10.2018    18324    roman72    19    

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

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

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

10.09.2018    74783    zhichkin    32    

Способы оптимизации переносов данных

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

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

02.08.2018    18318    primat    7