Встраивание форм 1С на страницы сайта

Публикация № 1504895 27.08.21

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

В платформе 8.3.16 появилась возможность выводить на страницах сайта информацию из веб-клиента 1С так, что пользователь даже не заметит, что работает с платформой. Руководитель компании Айтон Михаил Пинягин на онлайн-митапе «Web-клиенты для 1С» рассказал о том, какие особенности нужно учесть при настройке встраиваемого веб-клиента, и какие возможности он дает.

 

 

Меня зовут Михаил Пинягин, я руководитель компании Айтон, мы партнеры 1С уже 15 лет.

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

Расскажу, как я пришел в ИТ. В свое время я учился в художественной школе, рисовал, мне хотелось рисовать мультики. Казалось бы, как связаны мультики и информационные технологии? Но мультики я решил рисовать на компьютере, с помощью 3D-моделирования, а 3D-моделирование и компьютерная анимация без программирования ничто, поэтому мне пришлось погрузиться в программирование.

Поскольку я начал заниматься графикой, то естественно у меня в конце 90-х – начале 2000 гг. начали появляться заказы по разработке сайтов. Я стал специалистом по 1С-Битрикс, и наша компания некоторое время занималась разработкой сайтов.

А где сайты, там интернет-магазины, где интернет-магазины, там, естественно, учетная система. И потихоньку мы отошли от сайтов, начали заниматься просто учетными системами, и сейчас интеграция учетных систем с сайтами – это наше все.

 

Зачем встраивать 1С на сайт

 

 

По какой причине может понадобиться встроить 1С на сайт:

  • Это может быть нужно руководителям:

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

  • Это может быть нужно сотрудникам. Например, можно вывести на сайт функциональность какой-то внешней CRM-системы:

    • чтобы сотрудник мог выставить счет;

    • или проконтролировать дебиторку.

  • Это может понадобиться для внешних пользователей:

    • чтобы оформить самостоятельный заказ товаров через личный кабинет;

    • или посмотреть состояние расчетов, баланс лицевого счета

Понятно, что кейсы бывают абсолютно разные, и реализация возможна разная.

 

Как встроить 1С на сайт: варианты

 

 

Например, встроить 1С на сайт можно с помощью технологии oData.

  • на стороне 1С мы настраиваем доступ к данным по oData;

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

Какие минусы у этого подхода?

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

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

Среди плюсов:

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

 

 

Следующий вариант, как можно встроить 1С на сайт, – использовать какой-то веб- или http-сервис.

  • Опять же на стороне 1С программируем какую-то логику запросов и реакцию на них.

  • На стороне сайта мы программируем обращение к этим сервисам, визуализируем данные.

Какие есть минусы:

  • требуется разработка как в рамках платформы 1С, так и на сайте.

Но есть и плюс:

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

 

 

Еще один вариант, как можно встроить 1С на сайт, – сделать периодическую выгрузку/загрузку данных. Это классика жанра.

  • На стороне 1С мы программируем или настраиваем выгрузку/загрузку данных в необходимом формате (xml, xls или картинки просто выгружаем и т.д.).

  • На стороне сайта это визуализируем.

Но опять-таки минусы:

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

  • это будет не онлайн-обмен.

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

Мы в свое время делали проект, когда 1С просто выплевывал картинки в виде графиков, а на сайте руководители смотрели эти графики. Не было какого-то онлайн обмена, но такая работа велась.

 

 

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

Эта возможность появилась очень давно. Например, до версии 8.3.10 это можно было сделать так, как показано на слайде:

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

Дальше было много возможностей:

  • мы могли опубликовать базу таким образом, чтобы там каким-то образом проходила аутентификация;

  • можно было нарисовать на клиенте свой интерфейс 1С, где был доступ только к нужным функциям.

Но были проблемы:

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

 

 

В платформе версии 8.3.10 появились режимы основного окна. Например, можно было указать в строке запуска параметр MainWindowMode=Workplace, у нас прятались некоторые элементы, но заголовок окна все равно оставался.

 

 

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

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

 

 

В версии 8.3.16 появилось много интересных плюшек, о которых я расскажу. До нее были следующие проблемы:

  • Внешний сайт, куда мы встраиваем веб-клиент, ничего «не знал» о том, что делает пользователь в 1С. Т.е. запустили iframe, пользователь что-то делает в 1С, но внешний сайт никак не реагирует на это. Я сейчас имею в виду типовые возможности, а не какие-то дополнительные возможности, которые можно было в принципе реализовать при программировании.

  • 1С также «не знала», что происходит на внешнем сайте. Например, у нас есть какие-то кнопки, ссылки на сайте, мы их нажимаем, но 1С не знает, что происходит на внешнем сайте.

  • Режимы основного окна отображали системную командную панель, которая не очень удобна и не нужна в принципе, если мы встроили 1С в страницу.

 

 

Что сделали разработчики 1С в 8.3.16?

  • Они создали JavaScript-интерфейс веб-клиента, который позволяет:

    • запустить веб-клиент в указанном элементе div с необходимыми параметрами;

    • выполнить переход веб-клиента по навигационной ссылке;

    • отправить сообщение веб-клиенту;

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

  • В новой версии появился новый режим основного окна – EmbeddedWorkplace (встроенное рабочее место).

  • Также появилось свойство ОкноВнешнегоСайта в 1С, с помощью которого мы можем:

    • проверить доступность внешнего сайта – если ОкноВнешнегоСайта доступно, значит, мы запустили клиент 1С внутри сайта;

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

    • отправлять сообщения сайту.

 

Встраивание веб-клиента на сайт

 

 

Давайте посмотрим, как все это работает.

Первое, что мы делаем, – загружаем JavaScript-интерфейс в виде

<script src=”%АдресВебСайта%/%ИмяИБ%/scripts/webclient1ce.js”></script>

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

 

 

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

Например, это будет пустой div с идентификатором container.

 

 

Далее мы пишем скрипт, в котором:

  • создадим переменную, допустим, webClient – чуть ниже мы этой переменной присвоим значение, новый объект WebClient1CE().

  • Затем создадим функцию init(). В данном случае, функция init() загружает веб-клиент с определенными параметрами в div с id=“container”.

 

 

Эту функцию init мы вызываем при загрузке страницы.

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

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

Если мы это реализуем, что будет происходить?

 

 

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

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

 

 

Поэтому следующее, что мы сделаем, – пропишем режим основного окна EmbeddedWorkplace и посмотрим, как теперь будет работать.

 

 

Что дает этот новый режим?

  • Сверху пропало системное меню, которое и так не нужно.

  • Внизу появляется надпись «Работает на 1С». Фирма 1С свой бренд всегда продвигает, поэтому даже если мы убрали все ненужное, то момент, что система работает на 1С, мы оставляем.

 

Конструктор объекта WebClient1CE и возможности по его настройке

 

Давайте подробнее рассмотрим, какие возможности нам дает объект WebClient1CE, и зачем все это было сделано.

 

 

У конструктора new WebClient1CE, который мы вызываем при создании веб-клиента 1С на странице сайта, есть два параметра.

  • webClientContainerID – в нем мы указываем идентификатор того div-а, куда встраивается наш веб-клиент.

  • config – объект, в котором мы указываем некоторые свойства нашего веб-клиента.

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

    • Со свойствами – ширина и высота div-а – все понятно.

    • Следующее, наверное, самое интересное – это объект events, который содержит в себе подписки на события. Подписки могут быть такие: onStart, onEnd, onMessage, onFormOpen и onFormClose.

Посмотрим, как работает.

 

Подписка на событие onStart

 

 

Модернизируем наш пример, добавим объект events, подпишемся на onStart и укажем, что будет вызываться функция onStart1С, и пропишем в этой функции, что при старте 1С фон сайта должен стать красным.

 

 

Запускаем страницу, авторизуемся.

 

 

После авторизации, когда у нас завершилась процедура ПриНачалеРаботыСистемы, фон сайта стал красным.

Этот пример слишком простой – вы вряд ли будете перекрашивать цвет сайта.

Но эта подписка может пригодиться в случае, когда мы при запуске клиента не хотим, чтобы у нас при этом появлялась заставка с «1С:Предприятие 8.3» – мы можем div в это время прятать, не показывать до тех пор, пока 1С-клиент не запустился. И только после этого div будет отображаться.

Конечно, это применимо только в том случае, если у нас авторизация сделана не через логин и пароль, а каким-то другим образом.

 

Подписка на событие onEnd

 

 

Также можно подписаться на событие onEnd. Подписка onEnd работает аналогично onStart, то есть вызывается перед завершением работы веб-клиента, после процедуры ПриЗавершенииРаботыСистемы.

Прописываем, что при завершении работы системы будет вызываться функция onEnd1С, которая раскрасит сайт в аквамарин.

 

 

Как это будет выглядеть? Я нажимаю «Завершить работу веб-клиента».

 

 

И после выхода из 1С у меня перекрасилась страница.

Если практический пример брать, мы можем, к примеру, переадресовывать страницу куда-то, прятать это окно или рисовать какие-то кнопки.

 

Подписки на события onFormOpen и onFormClose

 

 

События onFormOpen и onFormClose очень похожи друг на друга, потому что параметры у них абсолютно одинаковые:

  • onFormOpen вызывается после события ПриОткрытии формы;

  • onFormClose вызывается после события ПриЗакрытии формы.

У них два параметра, к ним приходят:

  • url – навигационная ссылка;

  • formName – имя открываемой формы для английского варианта языка.

Давайте посмотрим, как это работает. У меня пример будет только на onFormOpen, потому что на onFormClose он аналогичный.

 

 

Итак, мы подписываемся на событие onFormOpen, и вызываем функцию, где в div с идентификатором messageArea пишем текст «Открыта форма:» и вставим имя формы.

 

 

Посмотрим, что получается. У нас открылся веб-клиент, открывается форма с именем «Форма» обработки «Текущие дела» и форма с именем «Форма».

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

 

Подписка на событие onMessage

 

 

Еще одно событие, наверное, самое главное событие – это onMessage.

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

У обработчика этого события есть параметры:

  • message – это текст сообщения, строка.

  • origin – основной адрес веб-клиента, строка, которая включает в себя протокол, домен и порт.

Реализуем пример.

 

 

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

На слайде конструктор, который используется для создания объекта СообщениеВнешнемуСайту. Допустим, внешнему сайту мы отправляем сообщение «Hello World!».

 

 

Что мы делаем теперь на стороне сайта? Подписываемся на событие onMessage, и в области с идентификатором messageArea я буду выводить надпись «Получено сообщение:» и текст сообщения.

 

 

Посмотрим, как это работает. Нажимаем кнопочку «Отправить сообщение», у нас веб-клиент получает сообщение и в соответствии с тем, что у нас написано в скрипте, отрабатывает свою логику.

В данном случае он пишет: «Получено сообщение: Hello World!».

Я вам показал самый простой пример. Но мы можем сделать примеры гораздо сложнее: можем разработать собственный протокол общения, текст может содержать не какое-то сообщение, которое сайт выводит, а могут какие-то данные отправляться.

Допустим, менеджер создает заказ, нажимает кнопочку «Провести и закрыть», в этот момент 1С отправляет сообщение с информацией о сумме заказа, номере, дате. А потом, например, внешняя CRM-система получает эту информацию и уже по своей логике ее отрабатывает, к примеру, записывает в сделку или в лид информацию о том, что выставлен такой-то счет или создан такой-то заказ.

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

 

Метод postMessage объекта WebClient1CE

 

 

У нашего объекта WebClient1CE есть ряд методов. Первый метод, который мы рассмотрим – это postMessage, с его помощью уже внешний сайт может отправить 1С свое сообщение.

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

 

 

Посмотрим, как это работает.

Для примера я создал расширение, но реализация может быть абсолютно разной.

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

Процедура, которая будет выполняться у меня прописана в модуле ИС_ИнтеграцияКлиент, но это не так важно. Главное – мы подключили обработчик сообщений.

Этот обработчик сообщений у нас очень простой – мы сейчас не будем придумывать логику общения между сайтом и 1С, мы просто получаем данные сообщения и просто выводим текст на клиенте методом Сообщить().

 

 

Затем мы на сайте добавили кнопку с обработчиком webClient.postMessage («Данные с сайта») – при ее нажатии у нас будет выполняться данный метод.

 

 

Как это работает? Мы открыли сайт, нажали кнопку «Отправить сообщение», и появилось сообщение «Данные с сайта», т.е. 1С его получила и выполнила ту логику, которая у нас запрограммирована.

 

Метод gotoURL объекта WebClient1CE

 

 

Следующий метод, который есть в объекте WebClient1CE, – это gotoURL. В качестве параметра этого метода мы указываем стандартную навигационную ссылку. Это, по сути, аналог ПерейтиПоНавигационнойСсылке на встроенном языке 1С.

Рисуем кнопочку webClient.gotoURL и прописываем навигационную ссылку. В данном случае я буду открывать отчет «Динамика поступления денег».

 

 

Мы нажимаем на сайте нашу кнопочку «Открыть отчет», у нас во встроенном клиенте открывается отчет.

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

 

Итог

 

 

Если подводить итог:

  • С версии 8.3.16 у нас появилась возможность тесно интегрировать 1С и сайт.

  • Мы можем с помощью обмена сообщений сделать так, что сайт будет знать, что происходит в 1С, а 1С будет знать, что делает пользователь на сайте.

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

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

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

 

Вопросы

 

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

Количество лицензий будет зависеть от количества запущенных веб-клиентов, т.е. будет потрачено две лицензии.

Вы прорабатывали вопрос авторизации средствами сайта? Возможно ли авторизоваться не в окне 1С?

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

То есть можно использовать все способы стандартной авторизации веб-клиента?

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

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

Только строки. Если вы обратили внимание, когда мы отправляем сообщения, у нас есть объект, который называется СообщениеВнешнемуСайту. Это целый объект, у которого есть конструктор, но внутрь мы все равно вставляем текст. И непонятно, почему сделан специальный конструктор, почему не сделать просто ОкноВнешнегоСайта.ОтправитьСообщение, а внутри текст. У меня предположение, что все-таки у разработчиков 1С были какие-то планы расширить эту возможность. Потому что практика показывает, что даже если взять систему взаимодействия, там тоже все менялось: раньше можно было передавать только строки сообщений, сейчас уже больше различных типов передавать. Поэтому надеюсь, что возможно когда-то что-то будет добавлено. Но пока только текст.

Есть ли ограничение на размер передаваемых строк? И можно ли передавать сериализованные объекты?

Передавать можно только строки, но как мы их дальше разберем – это уже вопрос взаимодействия, это уже сам разработчик будет свою логику делать. Т.е. можно передать все, что угодно. Это может быть xml, json и все, что угодно. Дальше уже разработчик обрабатывает сообщение. По поводу размера могу ошибаться, не было экспериментов. Но, по-моему, это ограничено только настройкой максимального размера передаваемого сообщения для веб-сервера.

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

Если речь идет о том, как передать массив, структуру и т.д., это все заворачивается в JSON. По сути, это строка. Передаем ее сайту, а сайт ее замечательно декодирует.

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

Еще один вопрос – как открыть в окне встроенного веб-клиента отдельный отчет?

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

 

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

Данная статья написана по итогам доклада (видео), прочитанного на онлайн-митапе "Web-клиенты для 1С". Больше статей можно прочитать здесь.

Приглашаем всех 11-12 ноября принять участие в INFOSTART EVENT 2021 в Москве: //infostart.ru/events/1451228/

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. gubanoff 50 30.08.21 13:01 Сейчас в теме
Спасибо за подробное руководство по новой теме!
2. gubanoff 50 30.08.21 13:32 Сейчас в теме
(0) нужны ли какие-то особые настройки при публикации базы на веб-сервере по сравнению с обычной публикацией веб-клиента? У меня веб-клиент работает, а встроить на сайт не получилось, похоже, что не видит скрипт scripts/webclient1ce.js
3. 7OH 32 31.08.21 22:00 Сейчас в теме
Дочитал до половины, увидел как прячут заголовок 1С.
Полистсал дальше и так и не понял - а при чём тут ODATA, если по сути у нас запускается 1С ?
Не проще форму проработать и пусть в саму 1С-ку в чистом виде ?
4. skyboy13 9 01.09.21 15:22 Сейчас в теме
Получается минус лицензия на каждый запуск?
5. KUAvanesov 03.09.21 08:54 Сейчас в теме
(4)а вот это хороший вопрос.
Оставьте свое сообщение

См. также

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

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

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

10.03.2016    58183    Serginio    33    

Интеграция 1С с Битрикс24 через вебхуки

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

Пример получения токена и http запрос к API битрикса.

15.09.2021    866    TyurinArt    3    

Обмен с HTTP сервисом файлами по формату multipart/form-data

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

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

07.09.2021    1824    ix5s    20    

Разработка гибридного web-приложения на 1С, возможности и ограничения

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

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

06.09.2021    2029    Бэнни    11    

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

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

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

10.03.2017    27166    ruha    21    

Работа с WEB-сервисами под HTTPS на примере прямого обмена между базами (1С – 1С) 

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

Использование веб-сервисов 1С при обмене 1С – 1С позволяет быстро передавать достаточно большие объемы данных из базы-источника в базу-приемник в объектах языка 1С. Данный метод обмена может применяться при бесшовной интеграции между двумя базами 1С, но требует определенной серверной инфраструктуры (установленного и настроенного WEB-сервера).

03.09.2021    5223    UltraUnion2005    8    

Глава 2. Как я написал (собрал с инфостарта) свой парсер сайта 1С Releases

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

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

31.08.2021    638    ldmonster    4    

Взаимодействие с api Честный знак (Молочная продукция)

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

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

30.08.2021    1072    user5300    38    

Кэширование COM-соединения. Три способа Промо

Практика программирования Перенос данных из 1С7.7 в 1C8.X Внешние источники данных WEB v8 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    42951    YPermitin    41    

Умная маршрутизация: о сложностях интеграции с 1С (часть 2)

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

В статье будет много примеров кода с комментариями работы расширения для обмена данными УТ11.4 с Яндекс.Маршрутизацией через выгрузку/загрузку EXCEL файла.

27.08.2021    1698    greencactus    6    

Гарри Поттер и подкапотное пространство веб-клиента

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

При разработке сайтов, интегрированных с 1С через HTTP-сервисы, приходится бороться с кодировками, искать производительные интерфейсные решения и задумываться над безопасностью. В ходе онлайн-митапа «Web-клиенты для 1С» Юрий Лазаренко показал на практике, как работает магия самодельного веб-клиента и как решать проблемы, возникающие при интеграции.

20.08.2021    2530    TitanLuchs    19    

Умная маршрутизация: кейс интеграции с 1С (часть 1)

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

Как мы решали проблемы с доставкой в нашем интернет-магазине, внедрили новый бизнес-процесс за 3 месяца и научились меньшим количеством машин привозить больше заказов клиентам.

18.08.2021    3873    greencactus    36    

Заготовка для загрузки файлов по ftp Промо

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

3 процедуры и 1 макет

03.06.2013    31202    anig99    6    

Примеры вызова в 1С методов API до реестров открытой части Электронного кабинета налогоплательщика (Украина)

WEB v8 Украина Бесплатно (free)

Примеры вызова в 1С методов API до реестров открытой части Электронного кабинета налогоплательщика, Украина. Тестирование проводил на 1С:Предприятие 8.3 (8.3.10.2561).

28.07.2021    638    Pervuy    2    

Телеграм-бот как инструмент

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

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

21.07.2021    3632    M_A_D    19    

Доработка в расширении Яндекс маркета (скачать все этикетки)

Практика программирования WEB v8 УТ11 КА2 Бесплатно (free)

Доработка кнопки "Скачать все этикетки" - выбрали каталог и сохранили все за один раз, а не 100500 раз нажимаем кнопку сохранить.

08.07.2021    951    rst_filippov    0    

Интеграция 1С 8 и HostCMS

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

Интеграции 1С с сайтами очень сложно оценивать, ибо на сайте разработчика CMS, а может, и на странице конкретного модуля, зачастую можно найти инструкцию подключения обмена, но в ходе работы постоянно появляются подводные камни: то одно не выгружается, то другое, порой, кажется, все данные передаются, но документы или элементы справочников не заполняются. А перерабатывать типовой механизм зачастую бывает себе дороже. Причем бывают и ситуации, когда нужно вносить изменения и в 1С, и на сайте. Стоимость таких работ возрастает и встает вопрос о том, нужно ли это вообще. Сейчас я расскажу о том, как мы подключали HostCMS, а в конце статьи приведу результаты обмена.

04.07.2021    777    Koder_Line    0    

API ОФД-Я разбор документации с примерами

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

Примеры запросов 1С для получения данных с ОФД-Ярус через API.

20.04.2021    786    www76    0    

Работа через сервис 1С-Отчетность нескольких пользователей

Регламентированная отчетность Зарплата WEB v8 v8::СПР ЗУП3.x Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

Организации, в которых количество сотрудников превышает установленное значение, обязаны отправлять отчетность по телекоммуникационным каналам связи. Это может быть Контур-Экстерн, Такском или любой другой провайдер. Все чаще пользователи 1С используют сервис 1С-отчетность. И все чаще сертификат оформляется на сотрудника отдела кадров или бухгалтерии. В случае, если нужно оформить несколько сертификатов, возникают трудности в версии ЗУП 3.1.14 и более поздних. О том, как с ними справиться, пойдет речь в данной публикации.

05.04.2021    1820    keat24    1    

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

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

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

17.03.2021    11418    Nikola23    39    

Как отправить сообщение Telegram в группу?

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

Отправка сообщения в группу Telegram.

01.03.2021    2402    kite2    2    

Альфа-Авто 5.0 и современные HTTP сервисы

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

Решение, позволяющее программным продуктам, работающим на устаревших версиях платформы 1С (8.2), интегрироваться с современными HTTP сервисами. Решение, интегрированное с HTTP-сервисом программы по расчету компонентов для изготовления ЛКМ, описанное в настоящей статье, успешно работает в одном из автосервисов, работающем на устаревшей платформе и конфигурации Альфа-Авто 5.0.

01.03.2021    1069    osivv    1    

Доступ из базы 1С к стандартному интерфейсу Odata базы 1С, в которой заведен пользователь

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

Есть база, с пользователем/паролем, нужно подключиться к Odata из другой базы 1С, получить элементы справочника.

24.02.2021    926    user823999    6    

Интеграция с API WB (Wildberries). Создание карточки товара (спецификации)

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

Опыт интеграции с API WB (Wildberries), опыт создания карточки товара, получение токенов API WB.

18.01.2021    25757    jenyavp    56    

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

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

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

28.12.2020    3732    SizovE    25    

Выгрузка HTML описаний с картинками (Base64) товаров на сайт/интернет-магазин/B2B, разберем регулярное выражение получения тега body, ПолучитьHTML, ФорматированныйДокумент

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

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

24.11.2020    1161    SizovE    4    

Как сделать интеграцию (обмен) с интернет-магазином? Пошаговый план действий (Часть 1)

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

C 2011 года я занимаюсь интеграцией с интернет-магазинами и за это время, наверное, повидал все. Делал интеграцию как «культурными», так и «экзотическими» способами. Количество магазинов исчисляется сотнями. В этой серии статей я буду делиться своим опытом, а также выкладывать какие-то полезные наработки.

19.11.2020    8251    markbraer    12    

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

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

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

17.11.2020    2148    SizovE    2    

Web Dashboard (мобильная и десктопная версия): оптимальная схема организации взаимодействия с зоопарком систем

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

Задача: из множества систем (1С:ERP, 1C:CRM, Кронос:WMS, 1С:Розница, 1С:УПП...) оперативно и онлайн осуществлять мониторинг на телефоне/десктопе/планшете/телевизоре бизнес-аналитику в дашборде для директора. Рассмотрим в статье, как правильно интегрировать между собой все базы, какие для этого инструменты использовать.

10.11.2020    12170    SizovE    2    

Отладка модуля ДиадокПро

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

В обработке ДиадокПро все дополнительные модули встроены во внешние обработки, которые хранятся в макетах. Это усложняет процесс самостоятельной интеграции, так как теряется возможность попасть в них в режиме отладки. Но не всё так страшно, поэтому ниже инструкция)

30.10.2020    4151    Максим-777    18    

JSON примеры меню B2B web-приложения "Личный кабинет" на движке EDIbot для телефона/десктопа

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

Рассмотрим на примерах работу движка EDIbot при организации меню B2B "Личного кабинета" (мобильная версия, версия десктоп) грузовладельца WMS-системы.

29.10.2020    1305    SizovE    0    

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

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

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

29.10.2020    5689    John_d    26    

Организация HTTP публикации каталога товаров используя PostgREST

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

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

05.10.2020    1594    malikov_pro    2    

Интеграционная прослойка(middleware) на Golang. Часть 5 - Обмен с 1С через HTTP-сервисы платформы

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

В этой статье научим прослойку отправлять данные в 1С, для этого используем HTTP-сервисы платформы. Обменяемся данными с новым справочником Клиенты. Но главное создадим HTTP-сервис для получения сообщений из очереди RabbitMQ.

28.09.2020    2585    dmitry-irk38    4    

Отладка http сервиса

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

При разработке http сервиса возникает ситуация, а как протестировать http сервис? Создали мы сервис, настроили шаблоны, передали, если нужно параметры, открываем браузер заполняем строку подключения и БАХ, ошибка. Что делать?

23.09.2020    4980    hpi    12    

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

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

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

22.09.2020    8313    hpi    7    

Организация данных и вариант обработки для организации обмена с сайтом

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

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

22.09.2020    1807    malikov_pro    4    

Формирование списка документов и скачивание печатной формы документа через веб-сайт с использованием HTTP-сервиса, плюс особенности авторизации

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

В статье показан пример, как реализовать формирование списка документов клиента/пользователя по коду, а затем скачать его (документа) печатную форму по ссылке

18.09.2020    1537    R_o_n_n_y    5    

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

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

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

11.09.2020    5262    malikov_pro    13    

Ферма приложений на Kubernetes

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

При эксплуатации большого количества информационных систем 1С, предоставляющих интернет-сервисы, возникают проблемы, связанные с зависимостью от производительности и стабильности веб-сервера. Как объединить отдельно стоящие веб-сервера с помощью платформы Kubernetes для централизованного мониторинга всех опубликованных интернет-сервисов на конференции Infostart Event 2019 Inception рассказал программист компании BIA Technologies Владимир Кирбаба.

24.08.2020    2528    ComboBoy    1    

Использование шаблонного процессора для формирования HTML страниц

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

В статье опишу использование шаблонного процессора Handlebars запущенного на Node.js

24.08.2020    2000    malikov_pro    26    

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

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

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

12.08.2020    3748    pavelpribytkin96    11    

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

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

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

07.08.2020    12198    YPermitin    22    

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

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

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

06.08.2020    2873    pavelpribytkin96    6