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

Публикация № 1510179 06.09.21

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

Web-клиент HTTP-сервисы интеграция web-приложение Веб-клиент

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

Сделайте мне, пожалуйста, скрипт (заказчик)

Я расскажу про свой опыт использования 1C при разработке веб-приложения. Опыт вышел достаточно путаный и продолжительный по времени, поэтому надеюсь, будет интересно.

Меня зовут Эльдар Мингалиев, я разработчик 1C. Начинал свой путь с веб-разработки, трудился в веб-студии на PHP. На 1С разрабатываю 7 лет и люблю комбинировать подходы и технологии. На текущий момент работаю в компании Neti.

 

О задаче

 

 

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

Заказчик – владелец таксопарка по франшизе Яндекса. Он пришел к нам со следующей болью: у него было много водителей, и он каждый день тратил очень много времени на выплату денег таксистам.

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

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

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

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

  • потом зайти снова в диспетчерскую и списать эту сумму с баланса у водителя.

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

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

Также у владельца таксопарка был доступ к API Яндекс.Такси и к API платежной системы Qiwi, которая использовалась для выплат сотрудникам.

 

Идеи, как все реализовать

 

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

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

 

 

Но тут пришел заказчик и сказал: «А я еще хочу, чтобы хранилась история выплат».

Тогда к PHP добавился еще MySQL.

 

 

Результат на первой итерации

 

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

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

 

Но, когда заказчик увидел, как это работает, и сколько времени на другие дела у него появилось, он попросил еще:

  • статистику выплат;

  • автоплатеж с настройками;

  • возможность видеть несколько таксопарков в одной системе.

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

 

Результат на второй итерации

 

 

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

Для его интерфейса я использовал достаточно популярный шаблон AdminLTE, построенный на Bootstrap. Он позволил быстро накидать интерфейс, и содержал в себе базовые возможности отображения форм, управление отображением таблиц и диаграмм.

В этом интерфейсе мы можем:

  • управлять водителями;

  • заводить таксопарки;

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

  • можем статистику посмотреть и т.д.

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

 

Дальнейший процесс разработки

 

 

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

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

 

 

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

 

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

Но требования заказчика росли и накапливались. Он хотел:

  • выгрузку статистики в Excel;

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

  • журнал ошибок и действий в системе

  • антифрод выплат;

  • ручную активацию/деактивацию водителя в системе

  • выплаты через ведомость Сбербанка;

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

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

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

 

 

Фреймворк поможет структурировать код, там будет встроенная авторизация, инструменты миграции и реструктуризации базы. Потому что, разрабатывая приложения на чистом PHP, я столкнулся с тем, что внесение изменений в СУБД – достаточно тяжелая для разработчика операция. Нужно всегда держать в голове все взаимосвязи и сущности в базе, и, если ты изменил одну колонку, надо правильно реструктуризировать и перенести данные на новую структуру. В 1С эта задача решена классно, поэтому дальше об этом поговорим.

 

 

Первоначально схема приложения у нас выглядела так:

  • у нас был Linux-хостинг. На нем стоял Apache, MySQL;

  • регламентные задания выполнялись в Cron;

  • управлял всем PHP;

  • админку для владельца и личный кабинет водителя мы сделали на традиционных HTML и JS с использованием Bootstrap и AdminLTE;

  • кэши пользователей мы хранили в Redis.

 

Выбор фреймворка

После некоторых раздумий мы приступили к выбору фреймворка. Нам были важны такие моменты, как:

  • скорость переноса проекта на новые рельсы;

  • скорость внедрения новых возможностей;

  • широкий инструментарий для управления системой;

  • совокупная стоимость владения системой.

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

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

  • сделать сущность в базе;

  • написать обертки для операций CRUD;

  • нарисовать вью, который отображает список;

  • вью, который отображает объект;

  • вью, который позволяет редактировать объект.

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

Я выбирал из трех PHP-фреймворков – Laravel, YII, Codelgniter.

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

Да, для каждого из этих фреймворков есть RBAC плагины (Role Based Access Control – то, что у нас называется ролями пользователя) содержащие какие-то минимальные возможности для управления доступом на уровне записей, но они требовали время на изучение, внедрение и доработку, а в исходном виде они не позволяли настроить доступ так, как нам хотелось.

Фреймворк я выбирал по следующим критериям:

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

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

  • Codelgniter тоже не был мною изучен и тоже требовал доработки модели управления доступом.

Я сделал выбор в пользу Laravel, и начал делать небольшой прототип.

Но пока я делал прототип, ко мне пришел заказчик и сказал: «Я видел 1С, на нем все быстро и удобно, дизайн мне понравился. А еще я пообщался с конкурентами, они сделали себе такую систему на 1С, и у них все хорошо».

В результате мы добавили к сравнению 1С.

Естественно, у 1С в данном случае есть свои недостатки:

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

  • нужны лицензии;

  • есть проблемы с отображением веб-клиента на смартфоне.

Но я добавил Laravel еще один минус:

  • по сравнению с 1С у Laravel более медленный процесс разработки форм и классов – в 1С, как мы все знаем, это очень быстро, если мы написали backend, то добавить frontend почти ничего не стоит.

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

 

Web-приложение на 1С

 

 

Система была построена следующим образом.

  • Я взял 1С и добавил туда БСП – она избавила меня от большинства проблем и решила большинство, даже возможных, требований заказчика. Сюда входят и появившиеся в будущем требования о добавлении изображений водителям, тонкой настройки управления доступом, удобной панели управления и всяких сервисных функций.

  • Также хочу отметить HTTP-коннектор от Владимира Бондаревского для работы с внешними API. Это решение развязало мне руки, и я смог настраивать и конфигурировать интеграцию с внешними API Qiwi и Яндекс достаточно быстро и просто – достаточно только разобрать структуру входного и выходного сообщения. Проблемы с редиректами, доступностью и преобразованием данных HTTP-коннектор берет на себя.

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

  • Личный кабинет для водителя я оставил на PHP + JS. Он уже написан, и мне ничего не помешало использовать уже готовую функциональность. В данном случае решено было оставить личный кабинет водителя на PHP + JS, потому что у водителей разные устройства. Это решение позволило добиться максимальной кроссплатформенности, максимальной легкости в разработке и деплое.

 

Встроенный веб-клиент для личного кабинета владельца

 

 

Переходим дальше. На слайде я демонстрирую работу встроенного веб-клиента.

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

Хочу обратить внимание на адресную строку. Это не такой адрес, как формирует 1С по умолчанию. И в этом главная сила того, что появилось во встраиваемом веб-клиенте.

 

 

Теперь веб-клиент 1С может быть частью веб-приложения.

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

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

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

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

 

 

Давайте погрузимся в «недра». На слайде я демонстрирую, как скрыть окно загрузки и вместо него установить спиннер.

Ничего особенного здесь не сделано. По большей части этот код представлен в документации на ИТС. Единственное, что я добавил:

  • в начале у нас создается блок с id=’webClientContainer’ со «скрытой» видимостью (visibility: hidden);

  • а в момент, когда веб-клиент загрузился (функция onStartWebClient), у нас этот блок ставится «видимым» (visibility: visible);

  • также при старте запускается спиннер – блок с id=’page-preloader’, и в момент, когда приложение загружено, спиннер отключается.

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

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

 

 

Хочу сказать про работу с версткой веб-клиента. Я немного переделал функцию onStartWebClient, которая запускается при старте веб-клиента, чтобы было нагляднее.

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

Здесь я получаю сформированный документ, когда он готов, удаляю не нужные мне элементы, и добавляю новый класс ‘pulsing’ – он работает в момент, когда человек в первый раз зашел в нашу систему, чтобы подсветить ему важные элементы в веб-клиенте.

 

 

Личный кабинет водителя

 

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

Вы можете видеть, что с момента нажатия на кнопку «Отправить код» до выдачи сообщения о том, что код отправлен, проходит немного времени.

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

Личный кабинет построен на PHP + JS. PHP получает данные из 1С, для этого написан минимальный коннектор к HTTP-сервисам 1С, и личный кабинет эти данные успешно получает. Задержки при получении данных минимальные. Сейчас у нас около 150 пользователей, которые периодически заходят в нашу систему для использования функциональности выплат – нагрузка не ощущается и незаметна.

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

Личный кабинет умеет загружать фотографии в 1С, в том числе и с камеры смартфона, умеет отображать эти фотографии.

Благодаря функциональности прикрепленных файлов БСП удалось сохранять все файлы в томе, и на клиент приезжают не данные из 1С, а только ссылки на эти файлы.

 

 

Текущая архитектура компонентов выглядит следующим образом.

  • На Windows-VDS стоит 1С и PostgreSQL.

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

  • Еще стоит Apache, на котором опубликована 1С и крутятся скрипты на PHP.

  • Личный кабинет остался на PHP + JS.

  • А админкой для владельца стал веб-клиент 1С.

  • Кэши пользователей все так же храним в Redis.

 

Результаты после года работы

 

 

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

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

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

  • Даже в файловом варианте скорость работы была достаточно высокая.

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

 

 

Мне стало интересно, насколько быстро работает 1С, и я сделал нагрузочные тесты с использованием jmeter. Для тех, кто не осведомлен, – это разработка Apache на Java, которая позволяет запустить какое-то количество запросов, указанное в настройках теста, в многопоточном режиме.

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

Я представил небольшие описания машин, на которых это запускалось:

  • Файловая 1С была установлена локально на SSD, оперативы 16 gb процессор Ryzen 5 3600.

  • Удаленная база на PostgreSQL – это Intel Core 2.6 ГГц, 6 ГБ оперативы и HDD.

В таблице нагрузочных тестов первая строка для файловой базы, вторая – для базы с PostgreSQL.

  • Видно, что отправлялось 400 пакетов.

  • Средний запрос

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

    • средний запрос к базе на PostgreSQL занимает 1,5 тысячи миллисекунд, грубо говоря, 1,5 секунды.

  • Как можно увидеть на показателях min и max:

    • деградация производительности при использовании PostgreSQL и кластера серверов даже на более слабой машине заметно меньше. То есть при увеличении количества соединений максимальное время растет не такими большими темпами, как на файловой базе.

    • Но и на файловой базе скорость вполне удовлетворительная.

  • Также мы можем увидеть в последней колонке (throughput – количество запросов в секунду):

    • на файловой базе количество запросов в секунду больше;

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

 

Немного про Redis

 

 

Расскажу немного про Redis.

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

Не хотелось делать анонимную авторизацию в 1С, поскольку это совсем уж дырка в безопасности, поэтому решили хранить данные сессии в Redis – так как эти данные нужны до момента аутентификации в 1С, под них нужно отдельное хранилище.

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

Для удобства администрирования Redis, чтобы не сидеть в консоли, есть хороший клиент phpRedisAdmin, который позволяет подконнектиться к Redis, посмотреть все ключи и информацию по ним

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

 

 

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

В нашей ситуации большая часть компонентов (1С, Apache, PostgreSQL) закрыты для внешнего доступа и, как правило, доступны только на локалхосте, если специально доступ не открывать.

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

 

Резюме

 

 

Какие выводы можно сделать по результатам работы:

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

  • За год с лишним онлайна ни один из элементов стека не проявил сильных недостатков. За исключением Redis – я не знал, что нужно закрывать порт.

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

  • Хочу всем посоветовать не замыкаться на 1С – комбинация технологий поможет получить наилучший результат.

 

Вопросы

 

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

Нет, на демонстрации было видно, что у нас есть блок, в который выводится встроенный веб-клиент – и, используя встроенное событие onStartWebClient, мы можем этот блок скрыть или отобразить. Там все двумя строчками кодами решается.

А сам логин/пароль каким образом передают в 1С?

Логин и пароль передается в строке подключения.

Какое максимальное количество пользователей вам удалось подключить?

У нас около 150 пользователей, активно использующих систему. Это водители. Но они не работают, как правило, 8 часов 7 дней в неделю, они работают несколько часов в неделю или когда есть свободное время. И у них потребность в сервисе не настолько постоянная, они используют его час в неделю, грубо говоря. Но эти 100-150 пользователей регулярно заходят и что-то делают в системе.

Количество одновременных пользователей вы не замеряли?

Замеряли. Мы, как честные люди, захотели сделать все по-правильному и максимально разобраться с вопросом клиентского лицензирования – изучили материалы на ИТС, использовали Aladdin Monitor, чтобы убедиться, точно ли не используется лицензия при запросах к базе от кабинетов водителей. Да, при подключении водителей к HTTP-сервисам лицензия не тратится, но мы обязаны для всех одновременных пользователей иметь ключи. Мы замерили и до сих пор постоянно замеряем, сколько у нас пользователей могут работать одновременно – при старте сессии мы на кластере смотрим активные соединения. И как только у нас увеличивается количество пользователей, мы принимаем решение о докупке лицензий. В текущий момент максимум, который у нас был, это 50 пользователей. Мы так посчитали, что в принципе при такой загрузке количество потенциальных пользователей можно делить на 5 и иметь столько ключей. То есть их не так много получается.

Это у вас клиент-серверная база или файловая?

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

И даже файловая база у вас такой объем пользователей тянула?

Да, без проблем.

Как на мобильных устройствах отображается?

Личный кабинет водителя заточен для просмотра на смартфоне. И слайды, которые я показывал, это то, как он выглядит у пользователей - Developer Tools браузера позволяет отобразить, как интерфейс будет выглядеть на смартфоне.

То есть интерфейс вполне нормально работает на мобильных устройствах, и с этим проблем нет?

Да. Владелец таксопарка использует либо компьютер, либо iPad. А там достаточно большой экран, поэтому с веб-клиентом проблем нет.

Почему не рассматривался личный кабинет на чистом JS-фреймворке + 1С без PHP?

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

А если на форме надо вывести два отчета из одной базы 1С в двух фреймах. Это две сессии 1С или одна?

Это две сессии.

Веб-клиент не потребляет лицензию?

Потребляет. Как раз веб-клиент здесь – самый большой потребитель лицензии, потому что сессия http-соединения длится, конечно, в зависимости от того, как мы настроили, может, 20 секунд, а может, 5, а может, и бесконечно. А веб-клиент живет достаточно долго, потому что там и операций больше выполняется, и данные постоянно обновляются.

В докладе была фраза «подсветить нужный элемент в веб-клиенте». То есть вы из JavaScript управляли элементами самого веб-клиента или фрейма, в котором он находится?

Нам доступна вся верстка во фрейме, в котором он выводится. И поэтому мы можем делать там все, что угодно. В определенных рамках, конечно, но можем.

Даже версткой самого веб-клиента управлять?

Да. Я же показывал в презентации, что удалил лишние кнопки, которые мне были не нужны.

 

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

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

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

 

Другие публикации:

Разбираемся с web-kit в 1С, на примере интеграции TinyMCE в управляемую форму в УТ 11.4.

Веб-форма авторизации/регистрации/восстановления пароля для веб-клиента 1С с помощью HTML/CSS/PHP/HTTP-сервисов 1С

 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Steelvan 126 07.09.21 11:30 Сейчас в теме
Что мешало хранить часто забываемые пароли в печеньках в обозревателе клиента ?
Что мешало добавить кнопку "Напомнить пароль" с отправкой забытого пароля в беседку, СМС или на почту ?

Это же обычная практика для веба.
Бэнни; +1 Ответить
2. Бэнни 180 07.09.21 12:44 Сейчас в теме
(1)Заказчиком выбрана стратегия с двухфакторной аутентификацией, пароль выдается на сессию. Если сессию принудительно не завершать кнопкой "Выйти", то сессия условно бессмертная.
Пароли хранить в куках нельзя из соображений безопасности. В куках можно хранить токен авторизованной сессии, что собсно и происходит, а все сессионные данные лежат в Redis, куда имеет доступ только сервер.
"Напомнить пароль", так же не актуально, в связи с выбранной заказчиком стратегии аутентификации
3. the1 920 07.09.21 14:57 Сейчас в теме
Логин и пароль передается в строке подключения.
Это разве безопасно? Специалисты, просветите.
Бэнни; +1 Ответить
4. Steelvan 126 07.09.21 18:49 Сейчас в теме
(3) Если https, то все данные шифруются.
Это же шифрование применяют на сайтах, где принимаю оплату насвязи.
Вот и прикинь насколько безопасно :)

Но это только при условии, что https соединение уже установлено.
Если это первый взять запрос к серверу, то любой прокси сервер данные перехватит.

Плюс если http без шифрования, то любой прокси сервер данные перехватит даже в процессе работы, когда соединение уже установлено.
Бэнни; +1 Ответить
5. Steelvan 126 08.09.21 12:49 Сейчас в теме
(2)

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

Например, мы храним внутренний ид справочника "Учетки".
При запросе от клиента просто берем ид из заголовка и ищем ссылку по этой строке ида.
Если находим => опознаем.
Если не находим => отдаем запрос опознавания.
Бэнни; +1 Ответить
6. Бэнни 180 08.09.21 12:50 Сейчас в теме
(5)Ну собсно и мы тоже храним идентификатор сессии.
hornet_X; +1 Ответить
7. shura_k 09.09.21 13:29 Сейчас в теме
не сталкивались с вопросом CORS?
когда iframe 1с запускается с другого сайта, домен второго уровня один, а вот сами сайты разные.
в таком случае не дает обратиться к document 1с
9. Бэнни 180 14.09.21 12:18 Сейчас в теме
(7)Нет, с таким не работал, но Гугл говорит что нужно просто передать заголовок разрешающий ваш домен.
8. Степной 26 14.09.21 11:44 Сейчас в теме
(5) Интересен опыт, подробнее получится описать?

Как я понял:

1. Первичная аутентификация предполагает указание логина и пароля.
Под аутентификацией понимается поиск пользователя в справочнике?
При этом доступ к веб-сервису (или что там) не предполагает аутентификации как таковой?


2. В случае успеха, в ответ клиент получает УИД элемента справочника, который хранится в cookie.

3. При последующих запросах УИД передается в заголовке. Наличие УИД в запросе и его корректность = идентифицированный пользователь.
Не думали в сторону выдачи не УИД, а что-то типа токена с ограниченным сроком действия?
Функцию восстановления пароля как-то реализовывали?
10. Бэнни 180 14.09.21 12:23 Сейчас в теме
(8)нет все немного не так. У каждого юзера личного кабинета есть обычный логин и пароль в 1С, только эти логин и пароль не светятся наружу. Аутентификацию выполняет php-сервер с помощью двух факторной аутентификации, после того как она пройдена php-сервер кладет в redis временный логин и пароль юзера в 1С а юзеру возвращает токен из данных redis, некий гуид записи в redis, сначала токен был срочный, потом переделали на бессрочный. Этот токен уже кладется в куки, используя который он может уже пройти авторизацию в 1С с помощью опять же php-сервера.

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

Но если вам интересно, в другой моей публикации есть форма логина с восстановлением пароля.
форма авторизации
11. Степной 26 14.09.21 12:56 Сейчас в теме
(10) Мой комментарий был к посту 5)
Все равно благодарю за доп. информацию, в принципе, все понятно.
Оставьте свое сообщение

См. также

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 Промо

Практика программирования Внешние источники данных WEB Универсальные функции Инструментарий разработчика Универсальные обработки v8 1cv8.cf Платные (руб)

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

2000 руб.

31.01.2019    79377    492    212    

Использование Gatekeeper для авторизации доступа к HTTP публикации сервера 1С

Системное администрирование Информационная безопасность WEB v8 Бесплатно (free)

В статье опишу вариант настройки Keycloack и GoGatekepper для авторизации доступа к HTTP публикации сервера 1С

22.10.2021    167    malikov_pro    0    

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

WEB Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

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

20.10.2021    531    sorter1    2    

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

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

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

04.10.2021    4234    Neti    14    

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

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

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

10.03.2016    58406    Serginio    33    

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

Обмен через XML WEB v8 ERP2 Ювелирная промышленность и торговля Россия Бесплатно (free)

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

30.09.2021    2007    1СERP    19    

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

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

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

15.09.2021    1323    TyurinArt    5    

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

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

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

07.09.2021    2207    ix5s    21    

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

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

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

10.03.2017    27314    ruha    21    

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

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

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

03.09.2021    5722    UltraUnion2005    8    

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

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

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

31.08.2021    752    ldmonster    4    

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

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

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

30.08.2021    1519    user5300    39    

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

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

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

11.04.2013    43058    YPermitin    42    

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

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

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

27.08.2021    1836    greencactus    6    

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

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

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

27.08.2021    2426    mikepin    6    

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

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

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

20.08.2021    2761    TitanLuchs    19    

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

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

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

03.06.2013    31268    anig99    6    

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

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

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

18.08.2021    4110    greencactus    36    

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

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

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

28.07.2021    746    Pervuy    4    

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

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

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

21.07.2021    3968    M_A_D    19    

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

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

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

08.07.2021    987    rst_filippov    0    

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

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

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

04.07.2021    814    Koder_Line    0    

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

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

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

20.04.2021    857    www76    0    

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

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

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

05.04.2021    1956    keat24    1    

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

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

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

17.03.2021    11838    Nikola23    39    

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

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

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

01.03.2021    2985    kite2    2    

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

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

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

01.03.2021    1149    osivv    1    

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

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

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

24.02.2021    975    user823999    6    

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

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

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

18.01.2021    29310    jenyavp    57    

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

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

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

28.12.2020    3940    SizovE    25    

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

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

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

24.11.2020    1243    SizovE    4    

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

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

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

19.11.2020    8819    markbraer    12    

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

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

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

17.11.2020    2243    SizovE    2    

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

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

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

10.11.2020    14099    SizovE    2    

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

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

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

30.10.2020    4471    Максим-777    18    

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

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

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

29.10.2020    1367    SizovE    0    

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

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

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

29.10.2020    5859    John_d    26    

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

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

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

05.10.2020    1725    malikov_pro    2    

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

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

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

28.09.2020    2705    dmitry-irk38    4    

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

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

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

23.09.2020    5404    hpi    12    

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

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

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

22.09.2020    8646    hpi    7    

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

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

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

22.09.2020    1850    malikov_pro    4    

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

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

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

18.09.2020    1624    R_o_n_n_y    5    

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

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

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

11.09.2020    5638    malikov_pro    15    

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

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

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

24.08.2020    2702    ComboBoy    1