Встраивание форм 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 54 30.08.21 13:01 Сейчас в теме
Спасибо за подробное руководство по новой теме!
2. gubanoff 54 30.08.21 13:32 Сейчас в теме
(0) нужны ли какие-то особые настройки при публикации базы на веб-сервере по сравнению с обычной публикацией веб-клиента? У меня веб-клиент работает, а встроить на сайт не получилось, похоже, что не видит скрипт scripts/webclient1ce.js
3. 7OH 67 31.08.21 22:00 Сейчас в теме
Дочитал до половины, увидел как прячут заголовок 1С.
Полистсал дальше и так и не понял - а при чём тут ODATA, если по сути у нас запускается 1С ?
Не проще форму проработать и пусть в саму 1С-ку в чистом виде ?
4. skyboy13 12 01.09.21 15:22 Сейчас в теме
Получается минус лицензия на каждый запуск?
5. KUAvanesov 03.09.21 08:54 Сейчас в теме
(4)а вот это хороший вопрос.
7. rudick 02.11.21 19:53 Сейчас в теме
6. e2v 19.10.21 13:33 Сейчас в теме
Первое, что мы делаем, – загружаем JavaScript-интерфейс в виде

<sc ript src=”%АдресВебСайта%/%ИмяИБ%/scripts/”></sc ript>

Чего -то у меня лыжи не едут. А как получить скрипт webclient1ce.js?
Интеграция в iframe получилась , а скрипт не получаю .
8. rudick 02.11.21 19:54 Сейчас в теме
(6) Согласно документации:

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

скрипт становится доступен после публикации
9. e2v 12.11.21 09:17 Сейчас в теме
Оставьте свое сообщение

См. также

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions Промо

WEB-интеграция Облачные сервисы, хостинг Платформа 1С v8.3 Бесплатно (free)

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    11803    comol    31    

Возможности доработки выгрузки из 1С в Битрикс

WEB-интеграция Платформа 1С v8.3 Управленческий учет Бесплатно (free)

В статье собраны некоторые полезные и интересные примеры доработок выгрузки из 1С на сайты на платформе Битрикс (Возможно, что-то подойдёт и для WordPress и других платформ, принимающих типовую выгрузку на сайт из 1С). Доработки рассмотрены без привязки к конкретным конфигурациям, примеры кода взяты в основном из доработок УТ 10 и 11. Некоторые доработки требуют изменений на стороне Битрикса, некоторые укладываются в типовой функционал. Примеры взяты из личного опыта, возможно, описание где-то не полное, т.к. доработки делались в разное время. Если материал будет интересен или будут аналогичные актуальные задачи, буду стараться дополнять статью более подробным описанием и примерами.

01.11.2022    588    de0nis    2    

Реализация нестандартных (для 1С) интерфейсных решений в Web-клиенте

WEB-интеграция Идеи и тренды в разработке Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Онлайн-сервисы, построенные на 1С, могут использовать все многообразие веб-технологий. О том, как спроектировать, реализовать и красиво оформить интерфейс продукта 1С, в докладе на конференции Infostart Event 2021 Post-Apocalypse рассказал CTO компании WiseAdvice Олег Филиппов.

21.10.2022    4823    comol    14    

Rest API от чайника для чайников

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

На написание статьи побудило чтение книги "Технологии интеграции "1С:Предприятия 8.3"" Хрусталевой Е.Ю. В первой главе там постоянно чередуются слова REST, REST-интерфейс, архитектура REST и т.д. Мне стало интересно, я начал копать, что это такое, и тема оказалась достаточно интересной.

06.06.2022    7228    zeltyr    2    

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

WEB-интеграция Платформа 1С v7.7 Платформа 1С v8.3 Бесплатно (free)

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

10.03.2016    69473    Serginio    33    

Загрузка выпусков подкаста Радио 1С Энтерпрайз

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Код для загрузки всех выпусков подкаста Радио 1С Энтерпрайз для оффлайн-прослушивания.

29.04.2022    957    q_i    9    

УПП: Ошибка при взаимодействии с ФСС

Регламентированный учет и отчетность WEB-интеграция Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет ФОМС, ПФ, ФСС Бесплатно (free)

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

28.04.2022    1173    alex_bob    8    

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

WEB-интеграция Платформа 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

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

10.03.2017    28465    ruha    21    

Методика интеграции HTML редакторов в поле HTML документа базы 1С

WEB-интеграция Платформа 1С v8.3 Платформа 1C v8.2 Бесплатно (free)

В статье описаны критерии WYSIWYG HTML редакторов и общая картина интеграции с платформенными механизмами. На момент платформы 1С 8.3 и возможно для будущих релизов описание будет скорее всего актуально. Апробировано на 1С 8.3.20 и 8.2.12, а также на мобильной платформе 8.3.19.59.

12.04.2022    1276    user1206119    0    

Создание кодогенератора для Postman

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Опишу порядок разработки кодогенератора для Postman c использованием OneScript и HTTPКоннектор.

13.03.2022    1109    malikov_pro    2    

Ювелирсофт: Ювелирный торговый дом. Настройка интеграции с ГИИС ДМДК

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Ювелирная промышленность и торговля Россия Бесплатно (free)

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

21.02.2022    3431    Drasha    22    

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

Внешние источники данных WEB-интеграция Обмен между базами 1C Платформа 1С v8.3 Россия Бесплатно (free)

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

11.04.2013    44360    Infostart    42    

Как из 1С отдать миллионы строк в BI и успеть это сделать быстро

Консолидация данных Анализ и проектирование ИТ-систем WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

На онлайн-митапе «Бизнес-анализ по данным базы 1С. Интеграция c платформами BI» выступил ведущий разработчик WiseAdvice.tech Дмитрий Фурцев. Дмитрий рассказал о том, как отдать миллионы строк из 1С в платформу бизнес-аналитики и не потратить на это сутки.

14.02.2022    4355    Fudj1k    11    

Передача сообщений из 1С в MS Teams

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример организации уведомлений в канал MS Teams.

09.02.2022    1866    Alex_YAM    3    

Работа с 1С через протокол OData

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

В данной статье мы будем рассматривать работу с данными информационной базы через протокол OData (далее OData).

17.12.2021    20333    ProgrammingStore    21    

Подключение к HTTP-сервису с авторизацией посредством передачи клиентского SSL-сертификата

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

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

07.12.2021    8157    kholkin    12    

Тонкости и подводные камни работы типового модуля интеграции Битрикс24 и 1С (Часть 2)

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Это вторая часть цикла статей, посвящённых типовому модулю интеграции 1С Предприятия и Битрикс24. Цель данной части: рассмотреть тонкости, связанные с обменом товарами и сопутствующими сущностями (спойлер - единицы измерения и свойства товаров). Также затронем некоторые нюансы связи сущностей 1С и Б24 (относящиеся не только к товарам) и их побочное влияние при переносе данных из модуля в модуль (при смене конфигурации, переустановки или обновлении модуля).

27.11.2021    5669    freegman74    15    

Web консоль управления сеансами 1С

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Мы дали ему название adm1c, он позволяет посредством веб доступа удалять или смотреть на сеансы в 1С базах и при необходимости удалять их. Да и что тут такого, сказали бы, есть же консоль на win, с нее же это можно делать, и все верно, но есть пара но.

26.11.2021    2920    4ernuy    16    

Необычно-экономное использование 1С:Предприятие 8 на Asp.Net-хостинге для реализации Интернет-магазина Промо

WEB-интеграция Анализ и проектирование ИТ-систем Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Статья описывает, как можно сэкономить на реализации Интернет-магазина предприятия, в который данные поступают из 1С:Предприятие 8. Данные размещаются в базе данных MSSql удаленно у хостинг-провайдера. Предлагается практический опыт гармоничной интеграции 1С:Предприятие и Asp.Net через LINQ и прямой доступ к информационной базе 1С. Строится простейшее решение, с одной стороны имеющее веб-интерфейс, а с другой стороны построенное как desktop-приложение. Тем самым достигается эффективность в наполнении веб-сайта контентом. Максимальный эффект достигается, когда Интернет-магазин проектируется «с нуля» с уникальной для предприятия структурой.

12.11.2010    43726    Elisy    13    

Реализация перевода текста средствами Azure

WEB-интеграция Локализация решений Платформа 1С v8.3 Россия Бесплатно (free)

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

19.11.2021    628    user1559835    2    

Тонкости и подводные камни работы типового модуля интеграции Битрикс24 и 1С

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Цель статьи - указать на подводные камни и нюансы, о которых “не пишут на заборах” и которые встретились мне за время внедрения типового модуля интеграции 1С и Битрикс24. Будет интересна для людей, кто подумывает о том, чтобы настроить интеграцию, и хотят понять, с чем столкнутся. А также для тех, кто уже работает с подобным обменом, столкнулся с какими-то из описанных ситуаций и хочет понять, что пошло не так и “как жить дальше”. Постараюсь все описать “человеческим” языком с минимальной долей терминов, так как статья, надеюсь, будет полезна не только программистам.

07.11.2021    8191    freegman74    13    

Окей, Google

WEB-интеграция Платформа 1С v8.3 Россия Бесплатно (free)

Пример интеграции Google Ассистента с 1С. В основе которого лежит платформа Dialogflow CX для понимания естественного языка.

28.10.2021    1899    Soloist    6    

Повышение производительности веб-сервисов. Переиспользование сеансов

WEB-интеграция HighLoad оптимизация Платформа 1С v8.3 Бесплатно (free)

Повышение производительности веб-сервисов. Переиспользование сеансов. Практическая реализация.

20.10.2021    3937    sorter1    2    

WEB/HTTP сервисы. Базовые отличия и применение на практике

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Рассказываем о WEB и HTTP сервисах, их практическом применении, о шишках, которые мы набили, и о выводах, которые сделали. Спойлер: тех, кто дочитает статью до конца, ждет бонус от автора.

04.10.2021    20578    Neti    18    

Интеграция 1С с ГИИС ДМДК

WEB-интеграция Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 Ювелирная промышленность и торговля Россия Бесплатно (free)

ГИИС ДМДК - единая информационная платформа для взаимодействия участников рынка драгоценных металлов и драгоценных камней. с 01.09.21 стартовал обязательный обмен данными с Федеральной пробирной палатой (ФПП) исключительно через ГИИС. А постепенно - с 01.01.2022 и с 01.03.2022 - все данные о продаже драгоценных металлов и камней должны быть интегрированы с ГИИС. У многих пользователей возникает вопрос как автоматизировать обмен между программой 1С и ГИИС ДМДК. В настоящей статье ВЦ Раздолье поделится своим опытом о реализации такого обмена. Автор статьи - Мордовин Антон - архитектор систем на базе 1С Внедренческого центра "Раздолье".

30.09.2021    32720    1СERP    158    

Быстрое чтение составных http сообщений multipart/form-data

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Алгоритм быстрого разбора составного http сообщения multipart/form-data.

26.09.2021    2641    cherkasovvitalik    3    

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

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

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

15.09.2021    7021    TyurinArt    10    

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

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

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

07.09.2021    8383    ix5s    25    

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

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

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

06.09.2021    4595    Бэнни    11    

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

WEB-интеграция Платформа 1С v8.3 Россия Бесплатно (free)

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

03.09.2021    10236    UltraUnion2005    9    

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

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

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

31.08.2021    2467    ldmonster    4    

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

WEB-интеграция Универсальные функции Обмен с ГосИС Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

30.08.2021    10514    user5300    64    

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

WEB-интеграция Платформа 1С v8.3 1С:Управление торговлей 11 Бесплатно (free)

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

27.08.2021    2591    greencactus    7    

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

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

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

20.08.2021    4867    TitanLuchs    19    

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

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

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

18.08.2021    5871    greencactus    42    

Сравнительный анализ вариантов интеграции между системами

Файловый обмен (TXT, XML, DBF), FTP WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

На Infostart Meetup «Интеграционные решения для 1С» выступил Сергей Наумов – руководитель центра аналитики и консалтинга WiseAdvice. Сергей поделился с коллегами кейсами из собственной практики: какие интеграционные решения остаются актуальными до сих пор, а каких приемов стоит избегать – даже в безвыходных ситуациях.

30.07.2021    3719    SergeyN    1    

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

WEB-интеграция Платформа 1С v8.3 Украина Бесплатно (free)

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

28.07.2021    2793    Pervuy    5    

Пример организации HTTP сервиса на 1С: Документооборот. Источник 1С: ЕРП => Приемник 1С: Документооборот

WEB-интеграция Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

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

13.05.2021    3921    Flover    0    

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

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

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

30.04.2021    5738    ripreal1    16    

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

WEB-интеграция ЭДО и ОФД Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

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

20.04.2021    2456    www76    0    

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

Внешние источники данных Обмен между базами 1C WEB-интеграция Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Бесплатно (free)

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

17.03.2021    17429    Nikola23    40    

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

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Автомобили, автосервисы Управленческий учет Бесплатно (free)

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

01.03.2021    2225    osivv    2    

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

WEB-интеграция Платформа 1С v8.3 Россия Бесплатно (free)

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

24.02.2021    1755    user823999    6