HTML-клиент у конфигурации 1С

17.04.19

Интеграция - WEB-интеграция

Приветствую. В этой публикации опишу свой опыт создания html-клиента для конфигурации 1С с помощью http-сервисов. HTML-клиент в этом случае - это frontend (html + css+ js), который генерирует и выдает пользователю конфигурация + backend, который тоже реализован в этой же конфигурации.

С чего все началось

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

  1. Простой
  2. Приятный
  3. Доступ с браузера
  4. Не надо устанавливать ничего дополнительного

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

Общее описание

Самописная конфигурация на основе БСП, которая ведет простой учет движения заказа - от момента приемки на ПВЗ и до выдачи либо отправки возвратов, а также учет денежных средств. Но это не главное, можно настроить и над типовой.
С заказчиком были утверждены определенные сценарии и под каждый были добавлены шаблоны URL в http-сервис и создана страница с контентом.

Для связи с клиентом используются куки, которые также хранятся в БД.

Практически все страницы используют модальные окна, иначе количество сценариев бы выросло в разы. В моем случае я использовал JQuery, для интерактивности Ajax. Но ничто не мешает использовать другие библиотеки.

Благодаря такой реализации, frontend можно изменять на лету. Но для backend надо каждый раз прописывать изменения в модуле http-сервиса и обновлять ИБ.

По сценариям пользователь может делать следующее:

  1. Просмотр списка заказов с разными фильтрами по статусу.
  2. Поиск заказа по номеру, штрихкоду, данным покупателя.
  3. Просмотр данных заказа
  4. Оформить выдачу или отказ от заказа
  5. Принять заказы, отправленные со склада и напечатать акт приема-передачи
  6. Собрать возвраты, отменить сборку, отправить возвраты на склад - и напечатать соответствующие акты
  7. Провести инвентаризацию
  8. Сделать инкассацию денег, полученных за заказы
  9. Сформировать и вывести произвольные отчеты.

Демонстрация

HTTP-сервисы

 
Основой являются http-сервисы, которые формируют и отображают контент, а также реализовывают backend функции - прочитать или внести изменения в БД. Реализовать взаимодействие с сайтом можно было двумя способами: для каждой операции реализовать страничку со своим адресом или же все делать в пределе одной странице с помощью Post-запросов. Я выбрал первый вариант, но Post-запросы тоже использую (шаблон-URL API).

Контент


Справочники "Изображения", "Скрипты", "Стили", "ФайлыHTTP"  являются вспомогательными (css + js + img) и содержат в себе соответствующую информацию. Можно как загрузить туда текст или изображение, так и указать URL (подключить файл). За их передачу на клиент отвечают одноименные http-сервисы.

 
Скриншоты


Для формирования динамического содержимого используются справочники "МакетыБлоков" и "ИсточникиДанных". Источники данных - это описание запроса, параметров и полей, которые он вернет. В макетах описывается выборка из источников, связь параметров и формирования HTML-представление данных.

 
Скриншоты


Основным источником контента является справочник "Страницы". Страница отвечает за отображение контента для определенных сценариев (в моем случае список заказов, открытие заказа, выдача заказа и т.д.)
К странице можно подключить произвольное количество стилей и скриптов. Подключаются с помощью тегов <link> и <script src="">. Также была реализована возможность выгрузки в каталог на веб-сервере, для уменьшения нагрузки на 1С и ускорения загрузки веб-страницы.
В зависимости от состояния выгрузки каждого файла в каталог будут прописываться разные адреса.  В тексте страницы прописывается html-код, вставить определенный параметр, который http-сервис преобразует в значение, вставить блок (список заказов ПВЗ, данные конкретного заказа и т.д.).

Печать документов и отчеты

Для фиксации факта определенных операций необходимо было обеспечить печать документов, как результат их проведения. Необходимо было, чтобы это работало сразу на большинстве популярных браузеров без установки дополнительно ПО. Можно было экспортировать в PDF, но была вероятность, что файл будет загружаться, а не открываться.  Благо Табличный документ можно выгрузить в HTML-формате. Оставалась проблема со штрихкодом, но ее решил, реализовав печать штрихкодов в SVG-формате. Спасибо за Формирование штрихкода EAN-13 в SVG с помощью XDTO.

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

Авторизация

При авторизации на сервер передается логин и пароль, по логину ищется пользователь ИБ, от пароля берется SHA1-хеш и ищется в свойстве СохраняемоеЗначениеПароля пользователя ИБ. Спасибо Антону Ширяеву за его обработку, но на ИС не могу найти публикацию.

После авторизации работником ПВЗ создается запись в регистре сведений Сессии с уникальным идентификатором, сроком действия (длина срока зависит от галочки "Запомнить меня" на странице Авторизации) и вспомогательными данными. Идентификатор передается в куки на клиент через Set-Cookie и при последующих обращениях на сервер можно определить активна ли эта сессия (если нет - надо опять авторизацию проходить), а также получить ключевые данные (Пользователь, ПВЗ и их данные).

Позже пришлось добавить авторизацию по токену, для возможности входа под определенным ПВЗ и исключить передачу паролей. В ИБ можно сформировать токен и ссылку для входа, типа localhost/pvz/hs/index/token?id=1760e3d7-4ec0-4e89-89f9-44bbc6b50162. После перехода по этой ссылке ищется токен, если он актуален - деактивируются все сессии этого клиента, создается новая сессия и высылается идентификатор с ответом.

Frontend и backend

Как я уже описал выше, frontend можно изменять на лету, не обновляя конфигурацию.
Для backend http-сервис определяет команду, делает необходимые операции и возвращает результат. Результатом является сериализованная структура в json, которая содержит в себе ключи result(тоже в json) и error(текст). Но для каждой операции надо прописывать ее обработку.

Публикация

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

Итоги

За время полноценной работы системы (уже больше полгода) система показала себя с лучшей стороны. Пользователей около 20, так что про замеры нагрузки говорить не приходится. Но со своей изначальной задачей она справилась - новые ПВЗ заходят и сразу же адаптируются. О каких-то критических замечаниях я не слышал. Постепенно допиливаю и улучшаю. На у с помощью html + css + js можно сделать очень многое.

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

И еще - на все, кроме первичных макетов страниц, ушли силы одного-двух программистов 1С и не пришлось искать веб-мастеров. В этом и есть выгода.
Если кто-то захочет "пощупать вживую" - пишите в личку, могу организовать доступ.

Конфигурация http html css js http-сервис сайт

См. также

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

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17799    19    22    

17

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

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    19881    13    17    

17

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    14435    42    8    

18

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

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

24000 руб.

27.09.2024    1202    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. alexey.karmanov 189 18.04.19 04:17 Сейчас в теме
Дмитрий, спасибо за статью. Я же правильно понимаю, что при этом у вас куплено как минимум 20 пользовательских лицензий 1С (при 20 текущих возможных подключениях через браузер)?
3. GreenDragon 18.04.19 07:40 Сейчас в теме
(1) Что вы имеете ввиду под термином "подключение"? Ясно же написано - данные передаются посредством http-сервисов. Они тем и хороши, что лицензии потребляются только на момент установления короткой сессии передачи данных от фронта к энду и получения ответа.
8. alexey.karmanov 189 18.04.19 08:41 Сейчас в теме
10. Smaylukk 186 18.04.19 09:04 Сейчас в теме
(8) Лицензии есть. Но пользователи прямо вот чтобы все одновременно подключались - нет. Само подключение на нормальном железе срабатывает меньше секунды, а подключение еще остается висеть. А сформированная html-страничка, которая загржена в браузер, думаю, что уже не должна что-то по лицензиям.
12. GreenDragon 18.04.19 09:09 Сейчас в теме
(8) Различайте web и http сервисы. Подумайте над ситуацией, когда у вас с фронтэндом работает тысяч 15 человек (например, личный кабинет ЖКХ, написанный на пыхе), а бэком является база 1С. Взаимодействие их построено на http-сервисах (данные для формирования платёжки, приём показателей разнообразных счётчиков и прочее). Сколько необходимых лицензий для покупки вы озвучите заказчику решения?
19. alexey.karmanov 189 18.04.19 09:39 Сейчас в теме
(12) К огромному сожалению, я бы озвучил цифру в 15 тысяч лицензий.

Вот как отвечает сама 1с по этому поводу (пункт 59 вот здесь http://v8.1c.ru/predpriyatie/questions_licence.htm):

59. Организация предоставляет доступ к веб-сервисам, реализованным в "1С:Предприятии 8". Какое количество и каких лицензий необходимо приобрести организации?

Ответ "1С":

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

Обратите внимание, что в ответе фигурирует конкретная фраза "доступ к данным" (хотя далее по этому же тексту "доступ к инф. базе").

Но это всё ИМХО, именно поэтому я и задал здесь вопрос по лицензированию, так как для меня самого позиция вендора по этому вопросу пока не ясна.

Если сможете прояснить ситуацию с конкретными ссылками от вендора - буду благодарен.
user643185_it; Diversus; BigB; +3 Ответить
27. rpgshnik 3795 18.04.19 10:09 Сейчас в теме
(19) Пока не ясна я думаю и наказывать не будут. А так да при грамотном знание веб-разработки можно мутить свои сверхтонкие клиенты и запускать тысячи пользователей :))
chemezov; +1 Ответить
49. GreenDragon 18.04.19 10:54 Сейчас в теме
(19) "Доступ к данным" осуществляется в рамках 20-секундной (максимальный дефолт) сессии. Вы когда из 1С распечатали справку и понесли её, допустим в банк. Банк этими данными будет пользоваться. Вы тоже будете на банк лицензии покупать? Пример понятен? Front обратился к web-серверу с post-запросом. Веб-сервер Через коннектор перенаправляет запрос на получение/запись порции данных. Вот в этот момент потребляется лицензия. Далее 1С приложение возвращает ответ web-серверу и... всё. Лицензия больше не нужна. То, что web-сервер будет делать с полученными данными - это как ситуация со справкой в банк, которую я описал выше.

В приведённом ответе от 1С это и написано.
...на такое количество рабочих мест, с которых одновременно осуществляется доступ к информационной базе.


Видите в тексте слово "одновременно"? Вам сама 1С не даст превысить число лицензий.
chemezov; Ditron; +2 Ответить
54. alexey.karmanov 189 18.04.19 11:08 Сейчас в теме
(49) Пример с банком, конечно, утрированный. ИМХО сам вопрос лежит не в технической плоскости, а в юридической. И совершенно очевидно, какую позицию в данном вопросе выгоднее занять вендору. А ответ "1С" можно толковать двояко, поэтому видимо единственный способ выяснить - сделать конкретный запрос в "1С" по лицензированию конкретного программного решения. Попробую задать его и, если не забуду, отпишусь здесь - что они ответили.
114. babys 90 06.08.19 09:30 Сейчас в теме
(54) Нет смысла запрашивать. У меня проект под контролем 1С, 1с + битрикс, все запросы через http, ЗАКУПЛЕНО по рекомендации 1С лицензий под ОДНОВРЕМЕННОЕ КОЛИЧЕСТВО ПОЛЬЗОВАТЕЛЕЙ В 1С. По проекту общая численность пользователей ~100тыс, лицензий 5тыс.

ЗЫ: Возможно, что это мнение 1С только для данного проекта, там много кто на пятки, по цене, наступает.
user1021675; alexey.karmanov; +2 Ответить
115. s_vidyakin 68 06.08.19 15:44 Сейчас в теме
(114) И будет наступать, если жадность "АО 1С" будет продолжать стоять на 1 месте
Сейчас ничего не стоит написать самописную системку с веб-клиентом, хранящую нужные данные в себе, с периодическим обменом с 1С
Доступа к базе напрямую нет - не надо и лицензии. А то что обмен идет раз в секунду это уже технические моменты )
53. GreenDragon 18.04.19 11:08 Сейчас в теме
(19) К вопросу о 15 тысячах лицензий. Я бы вас застрелил из рогатки, если честно. Используйте шину. В случае нехватки лицензий у вас будет только увеличиваться время обработки очереди. Если очередь на кассе растёт, значит пора нанять ещё одного кассира (купить лицензию)
user1021675; +1 Ответить
55. alexey.karmanov 189 18.04.19 11:10 Сейчас в теме
(53) Не надо так. Я уже отписался выше. С технической точки зрения у меня вопросов здесь никаких нет. Здесь вопрос чисто юридического характера.
68. GreenDragon 18.04.19 13:06 Сейчас в теме
(55) Перефразирую. Вы технически не сможете юридически нарушить лицензию.
69. 🅵🅾️🆇 524 18.04.19 13:08 Сейчас в теме
(68) Все так, если вы делаете свой интерфейс через OData, http сервисы, web сервисы.
То можете делать сколько угодно рабочих мест, главное чтоб суммарное количество сеансов в консоле кластера (НЕ РАБОТАЮЩИХ ОДНОВРЕМЕННО ЛЮДЕЙ!) не превышало количество ваших лицензий.
Причем этот пункт четко прописан и оговорен.
Ditron; BigB; +2 Ответить
79. TitanLuchs 413 18.04.19 13:45 Сейчас в теме
(68)
Перефразирую. Вы технически не сможете юридически нарушить лицензию.

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

Хотя вопрос "Какого пользователя надо считать работающим, а какого - нет" остается открытым.
Dach; ellavs; BigB; +3 1 Ответить
100. ellavs 1052 19.04.19 17:10 Сейчас в теме
(79) Долго обсуждали в чате эту тему с коллегами. Выяснили, что клиентские лицензии в этом случае "не кушаются". Нужна только одна серверная лицензия (на кластер). В учебном центре 1С эту информацию также подтвердили ("клиентские лицензии при получении данных через http-сервис не нужны"), также коллеги делали запрос в 1С, где эту информацию опять же подтвердили. Клиентские лицензии нужны только если вы подключаетесь через тонкий/толстый/веб-клиенты (не путать веб-клиента с http-сервисами).
user1021675; Tarlich; Dach; +3 Ответить
103. alexey.karmanov 189 22.04.19 04:11 Сейчас в теме
(100) Итого мы имеем 2 противоречащих друг другу позиции от вендора:
- цитата из переписки с вендором, приведенная Юрием в (75) ... "1000 лицензий во всех трех вариантах."
- "клиентские лицензии при получении данных через http-сервис не нужны" ... "также коллеги делали запрос в 1С, где эту информацию опять же подтвердили"
104. Smaylukk 186 22.04.19 09:21 Сейчас в теме
(103) Нет, походу не так. Лицензии для http-соединений не ищутся в момент создания этого соединения. Можно посмотреть в утилите администрирования консоли кластера 1С. Но они по информации от вендора должны быть под количество активных пользователей (как писали выше - не распечатанные программные или usb-ключ).
Правда об этом четко нигде не написано - что такое "активные пользователи", как считать их количество.
106. alexey.karmanov 189 22.04.19 11:14 Сейчас в теме
(104) Давайте попробуем зайти с другой стороны... :)

Вот я читаю Лицензионное соглашение на "1С:Предприятие 8.3"

Раздел "ОПИСАНИЕ ПРАВ И ОГРАНИЧЕНИЙ"

Цитата "Лицензиат имеет право установить и использовать в соответствии с сопроводительной документацией ПРОГРАММНЫЙ ПРОДУКТ на одном компьютере в один момент времени. Использование ПРОГРАММНОГО ПРОДУКТА на нескольких компьютерах допускается только при наличии у Лицензиата Клиентской лицензии "1С:Предприятия 8" на соответствующее количество рабочих мест и только в соответствии с правилами лицензирования рабочего места пользователя (см. далее)."

Раздел "Лицензирование рабочего места"

Цитата "Доступ к ПРОГРАММНЫМ ПРОДУКТАМ осуществляется в один момент времени с такого количества рабочих мест, которое обозначено в Клиентской лицензии "1С:Предприятия 8", правомерно приобретенной Лицензиатом. При этом считается, что к ПРОГРАММНЫМ ПРОДУКТАМ получен доступ с данного компьютера и что они используются в тех случаях, когда осуществляется запись ПРОГРАММНЫХ ПРОДУКТОВ или их частей в память компьютера, а также в иных случаях, когда имеет место прямая или косвенная связь между компьютером, рабочей станцией, карманным персональным компьютером или иным цифровым электронным устройством и ПРОГРАММНЫМИ ПРОДУКТАМИ."

ИМХО рабочее место клиента, который делает запрос к базе через веб-сервисы со своего рабочего места через браузер, попадает под условия необходимости лицензирования рабочего места, так как имеется косвенная связь между его компьютером и ПРОГРАММНЫМ ПРОДУКТОМ (база 1с) через веб-сервисы.
107. Smaylukk 186 22.04.19 11:21 Сейчас в теме
(106) Доступ в один момент времени - вы это не выделили. Лицензия нужна на момент формирования в моем случае HTML-кода (когда идет чтение/запись в память). Загруженная и выведенная в браузер страничка - нужна ли лицензия, когда она просто показывается и никаких действий не делается?
AlexK_2012; Irwin; +2 Ответить
108. alexey.karmanov 189 22.04.19 11:26 Сейчас в теме
(107) Точно, я упустил этот момент.
52. TitanLuchs 413 18.04.19 11:05 Сейчас в теме
(12) А чем в данном случае принципиально отличаются web и http сервисы? Ничем.
56. alexey.karmanov 189 18.04.19 11:12 Сейчас в теме
(52) Юрий, я знаю, что вы специализируетесь как раз на этой теме. Наверняка уже разобрались для себя в вопросах лицензирования и знаете позицию вендора?
59. TitanLuchs 413 18.04.19 11:43 Сейчас в теме
(56) Позиция вендора - количество лицензий должно быть равно количеству одновременно работающих пользователей. То есть, 100 человек сидят в интерфейсе, аналогичном интерфейсу ТС - 100 лицензий должно быть зарезервировано в шкафу, несмотря на то, что физически они не используются сервером.
user1021675; BigB; alexey.karmanov; +3 Ответить
62. Smaylukk 186 18.04.19 11:49 Сейчас в теме
(59) Вопрос в том, как посчитать и доказать, что они одновременно это делали.
70. GreenDragon 18.04.19 13:15 Сейчас в теме
(59) Юрий, лишний раз выражу своё уважение за сверхтонкий клиент. Хоть мы его и не используем, но решение просто потрясающее. С удовольствием слушал ваш доклад на конференции в 2017 году. Но вот в данном случае, меня терзают смутные сомнения в вашей правоте.
У нас организация продаёт запчасти. Обычная торговля в опт и розницу. Для оформления заказов клиентами, уточнения их баланса, остатков складских, отслеживания статусов заказов используется asp.net приложение. Это фронт.
В качестве бэка база 1С, которую сайт дёргает, когда ему требуется информация. Внимание вопрос - сколько лицензий 1С нам требуется приобрести?
TitanLuchs; Elisy; +2 Ответить
75. TitanLuchs 413 18.04.19 13:25 Сейчас в теме
(70) За добрые слова спасибо!
По поводу лицензий - меня спросили про позицию вендора, я привел цитату из моей переписки с вендором. Приведу цитату из моего письма:


Описание примера работы пользователей с БД 1С из браузера:
Используется фронт для создания заказов клиента из браузера: https://digitcat.ru/demo/di-unf/
Одновременно с фронтом работает 1000 человек. Для обработки их запросов на сервере 1С:Предприятия создается 5 сеансов.


Описание технологии:

Вариант 1. Прямой запрос. Пользователь подключается к БД 1С путем набора в адресной строке браузера прямого пути к базе: http://servername.ru/basename/hs/servicename?parameter1=value1¶meter2=value2¶meterN=valueN. 1С возвращает готовый html-код, который отображается в браузере. Все дальнейшие запросы к БД 1С происходят также по прямым ссылкам "http://servername.ru/basename/hs/servicename"

Вариант 2. Запрос через посредника без промежуточной БД на сайте. Есть сайт, который содержит набор php-скриптов. Пользователь подключается к странице сайта: http://sitename.ru/scriptname.php?parameter1=value1¶meter2=value2¶meterN=valueN.
Скрипт получает запросы из браузера, дополнительно их модифицирует: меняет кодировку, часть параметров переводит в понятный 1С формат (например, перевод из кириллицы в формат URL), дополняет запрос новыми параметрами (например, идентификатор сессии, токен для проверки подлинности запроса). Также проверяется доступность БД 1С и если она недоступна, выполняются определенные действия (вывод сообщения об ошибке или редирект на другую страницу).
Конфигурация 1С выполняет этот запрос и возвращает результат, который снова обрабатывается скриптами на сайте: результат декодируется, определяется успешность выполнения запроса (несмотря на то, что номинально запрос выполнен успешно и возвращает ответ "200", с точки зрения логики решения запрос может считаться невалидным; пример - неверный токен или идентификатор сессии и 1С возвращает сообщение об ошибке авторизации, которое выводится вместо страницы со списком номенклатуры).

Вариант 3. Запрос через посредника с использованием промежуточной БД на сайте.
Нам незачем все запросы, поступившие от пользователей, перенаправлять к БД 1С, если с момента выполнения предыдущего запроса данные в 1С не менялись. Например, мы выводим список номенклатуры с актуальными остатками и ценами. С базой работают несколько посетителей, и все их запросы на отображение списка товаров будут возвращать один и тот же результат до тех пор, пока в БД 1С не будут изменены остатки или цены.
Для разгрузки базы 1С мы создаем на сайте собственную БД на MySQL, которая хранит результаты выполнения запросов к БД 1С. Когда первый пользователь в браузере выполняет запрос, он перенаправляется к БД 1С, его результат сохраняется в БД сайта и в дальнейшем сразу возвращается всем остальным пользователям. Вместе с результатом запроса в БД сайта мы храним дату актуальности данных этого запроса.
После модификации данных в 1С конфигурация делает запрос к сайту и устанавливает в БД сайта новую дату актуальности данных.
При следующем запросе пользователя к сайту скрипты php проверяют актуальность данных в БД сайта, определяют, что данные пора обновить, перенаправляют запрос к БД 1С, возвращают его результат пользователю и в этой же транзакции обновляют результат этого запроса в БД сайта.
По сути, получаем работу пользователей с БД сайта с обновлением данных в ней по мере утраты их актуальности (аналог работы сайта на битрикс с собственной базой и периодическим обменом с БД 1С, только обмен делается не по расписанию, а по событию в конфигурации 1С). Блок-схема данного процесса приведена ниже.


С учетом того, что со страницей сайта одновременно работают 1000 пользователей, на стороне сервера 1С во всех трех случаях задействовано 5 сеансов, сколько клиентских лицензий 1С должен купить владелец такого сайта в каждом случае?



Ответ от вендора:
1000 лицензий во всех трех вариантах.


Насколько я понял, интерфейс ТС - это 100% первый вариант. Попадает ли ваш пример под один из трех вариантов - затрудняюсь ответить. Если у вас на сайте нет своей СУБД, а все данные берутся из 1С, то скорее всего это вариант 2 со всеми вытекающими.

Как-то так. Оперируем пока только этими исходными данными, от себя ничего не придумываем. Всех клиентов предупреждаем, что запас лицензий должен быть.
Irwin; vv2; tormozit; GreenDragon; alexey.karmanov; BigB; Soloist; acanta; +8 Ответить
116. AlX0id 06.08.19 16:20 Сейчас в теме
(75)
Вполне себе хамская позиция, на мой взгляд. Да и вряд ли ее можно юридически обосновать в 3 случае.
На мой взгляд напрашивается вопрос - а если из одного сеанса базы я распечатываю 100 тыс листов прайсов и тем самым ознакамливаю клиентов с ценами из БД 1С - мне тоже надо купить 100 тыс лицензий?
handscenter; luckma; mivari; +3 Ответить
72. GreenDragon 18.04.19 13:20 Сейчас в теме
(59) Разжуйте мне, пожалуйста логическую связь между официальной позицией вендора, озвученной в (12) и вашей фразой "100 человек сидят в интерфейсе, аналогичном интерфейсу ТС - 100 лицензий должно быть зарезервировано в шкафу".
78. TitanLuchs 413 18.04.19 13:36 Сейчас в теме
(72) Не уверен, что смогу более подробно разжевать фразу "На каждого работающего пользователя должна быть куплена лицензия". Сервер 1С при работе через http-сервисы лицензию не кушает, но она должна быть - пусть в нераспечатанном виде стоит на полке в шкафу, но она есть и она куплена.
А то, что в одном случае используются web-сервисы, в другом http-сервисы, не меняет сути дела, так как web-сервис это подвид http-сервиса.
BomjBandit; ellavs; GreenDragon; +3 Ответить
2. CodeNull 18.04.19 05:30 Сейчас в теме
При авторизации на сервер передается логин и пароль, по логину ищется пользователь ИБ, от пароля берется SHA1-хеш и ищется в свойстве СохраняемоеЗначениеПароля пользователя ИБ. Спасибо Антону Ширяеву за его обработку, но на ИС не могу найти публикацию.

Получается, что авторизация выполняется на уровне ИБ, а не платформы/веб-сервера? Все сервисы изначально доступны без basic или ntlm авторизации?
11. Smaylukk 186 18.04.19 09:07 Сейчас в теме
(2) Да, авторизации веб-сервера нет. Все прописано в http-сервисах. Но опубликованы таким образом у меня только 5 http-сервисов - Index, Изображения, Скрипты, Стили, Файлы - остальные http-сервисы, web-сервисы, oData, веб-клиент закрыты и опубликованы по другому адресу.
4. BudkoT 18.04.19 07:42 Сейчас в теме
Небезопасный велосипед?
5. CodeNull 18.04.19 08:00 Сейчас в теме
(4) Почему небезопасный? Все зависит от алгоритмов авторизации и настроек сервера.
13. Smaylukk 186 18.04.19 09:23 Сейчас в теме
(4) Не могли бы вы расширить свой коммент и обозначить в чем тут вы видите небезопасность?
rpgshnik; +1 Ответить
6. Elisy 951 18.04.19 08:20 Сейчас в теме
В свое время был выбор между http-сервисами 1С и Asp.Net-проектом с подключением к 1С. Выбрали 2й вариант
Какие ограничения у http-сервисов:
1. Производительность - 1С проиграет. Тяжело управлять кэшированием, асинхронные вызовы делать нельзя.
2. SEO-оптимизация затруднительна (URL имеет префикс)
3. Обработка изображений - в 1С ограничена. Изображения должны подаваться в нескольких размерах - для каталога мелкие, для карточки товара - крупные
4. Обработка 404, 500 ошибок. Перенаправление анонимных пользователей на регистрацию или вход.
Т.е. для мелких проектов допустимо использовать 1С. При росте проект упирается в ограничения.

Реализовали несколько крупных проектов. Веб-приложение подключается к 1С и получает необходимые данные или записывает их.
https://www.domosfera.kz
https://www.gallery.kz
https://ogo.kg
BomjBandit; user1464234; N!ghtmare; mivari; oleg-m; mvxyz; JohnConnor; testnv0; VVi3ard; acanta; TreeDogNight; alexey.karmanov; YPermitin; +13 Ответить
7. пользователь 18.04.19 08:30
(6) тот момент, когда комментарий не менее полезный, чем сама статья! :)

(0) спасибо автору за статью!
16. Smaylukk 186 18.04.19 09:31 Сейчас в теме
(6) Спасибо за ваш ответ. Согласен, для каждого проекта свои пути реализации. Ваши реализации больше для стороннего пользователя, мой проект - более внутренний. И у заказчика не очень складывалась работа с веб-мастерами по другим проектам.
28. TitanLuchs 413 18.04.19 10:25 Сейчас в теме
(6) Что имеется в виду под "асинхронные вызовы делать нельзя"? JS поддерживает асинхронные http-запросы, 1С способна обработать несколько запросов одновременно.
38. Elisy 951 18.04.19 10:42 Сейчас в теме
(28) Я имел ввиду многопоточность на сторон сервера. В Asp.Net AsParallerl(), async-await
Натолкнули на мысль
В 1С нельзя расшарить один статический объект в памяти среди подключений. Например, сделать счетчик онлайн посетителей.
42. Smaylukk 186 18.04.19 10:46 Сейчас в теме
(38) Через регистр сведений можно, только надо определиться, кто считается онлайн-посетителем.
57. Elisy 951 18.04.19 11:13 Сейчас в теме
(42) Регистры хранятся в БД. Обращения к БД на запись или чтение всегда ресурсоемки. Переменные в памяти намного быстрее работают.
45. TitanLuchs 413 18.04.19 10:49 Сейчас в теме
(38) Если речь конкретно о счетчике онлайн-посетителей, то можно считать активные сессии.
А работать с одним объектом в памяти (с временным хранилищем например) можно попробовать, если включить переиспользование сеансов. Но это при относительно небольшом количестве подключений, конечно же.
tacu; Elisy; +2 1 Ответить
9. logarifm 1122 18.04.19 08:49 Сейчас в теме
(0) Интересные мысли и отличная реализация. Поставил плюс.
14. nbeliaev 835 18.04.19 09:27 Сейчас в теме
Для чего нужна 1С в этом решении? Только ради БД?
17. Smaylukk 186 18.04.19 09:36 Сейчас в теме
(14) Вся логика, справочники, документы, движения - все сначала делалось в конфигурации, только потом делался http-сервис. Также идет обмен с центральной конфигурацией.
И работать можно получается и в тонком, веб-клиенте, и в html-клиенте.
Ну а если брать в целом - любой сайт использует какую-то БД.
И самой большой плюс - фронт и бек можно делать силами 1С разработчика
Zeskord; Elisy; +2 Ответить
20. nbeliaev 835 18.04.19 09:42 Сейчас в теме
(17) Я это к тому, что зачем упираться в ограничения платформы если можно было использовать реляционную (NoSQL) базу, а в качестве бэк энда взять тот же Node.js.
Но если я правильно понял, то так исторически сложилось, что сначала была база на 1С и только потом были прикручены http сервисы.
21. Smaylukk 186 18.04.19 09:49 Сейчас в теме
(20) Заказчик - компания транспортной доставки. Весь учет ведется другой базе на 1С. Этот проект - это только частный случай доставки, который вылился в отдельную базу. Также у заказчика были в наличии только 1С-ники
29. nbeliaev 835 18.04.19 10:26 Сейчас в теме
(21) Я понял. В целом очень достойно. Спасибо что поделились опытом!
34. Elisy 951 18.04.19 10:34 Сейчас в теме
(20)
1. 1C позволяет быстро создать прототип.
2. 1С позволяет не задумываться об интерфейсе администратора. В веб-проектах мало создать интерфейс пользователя, еще нужно управлять данными.
3. В 1С есть специализированные объяекты. Тяжело самому организовать регистр накопления, например.
4. У 1С есть сообщество и много написанных обработок на все случаи жизни.
oleg-m; neuromancer_aza; vovan_victory; EGOLEGE; TitanLuchs; Smaylukk; +6 Ответить
41. nbeliaev 835 18.04.19 10:46 Сейчас в теме
(34) 1-3 ничего не будет стоить, когда речь зайдет об масштабируемости, асинхронности. Про 4 - общество по той же ноде думаете меньше? ))
Тем более уже существует metadata.js
60. Elisy 951 18.04.19 11:45 Сейчас в теме
(41)
1-3 ничего не будет стоить, когда речь зайдет об масштабируемости, асинхронности.

Давайте конкретнее. Оптовая компания в нескольких странах получает заказы, оплату и делает реализации со складов в разных регионах.
Вы хотите сказать, что регистры накопления Остатки, Взаиморасчеты, регистр сведений Цены можно быстее реализовать, чем на 1С? Мало реализовать - ими нужно пользоваться - искать/исправлять ошибки, обрезать через 2-3 года, получать отчеты по ним. Еще нужно, чтобы они быстро работали, для этого крутить индексы в БД. А еще хочется права установить - этот может читать, а этот может записывать. Потом бухгалтерия попросит в свою бухгалтерскую программу выгрузку сделать.

Про 4 - общество по той же ноде думаете меньше? ))

Сообщество по ноде скажет, как вывести 2+2 или какой тип данных взять за основу. Как исправить ошибку сервера. Не более. Спросите это сообщество, как реализовать регистр накопления, в ответ будет тишина.

Тем более уже существует metadata.js

Я несколько лет назад слышал про metadata.js. На тот момент не увидел реализованных проектов. Появились работающие сайты в открытом доступе?
64. nbeliaev 835 18.04.19 12:27 Сейчас в теме
(60) Вы меня не поняли. Я не говорил, что спроектировать БД легче и быстрее сторонними стредствами. Я обратил внимание на маштабируемость системы.
По поводу регистров - а как же весь остальной мир живет без них? ))
Про сайты на метадате сказать ничего не могу, это лучше у автора спросить.
80. TitanLuchs 413 18.04.19 13:56 Сейчас в теме
(64) Мы подобные проекты делаем иногда по несколько штук в месяц - всем хватает масштабирования. Если проект изначально подразумевает, что в нем будет работать много тысяч пользователей, то лучше сразу делать его не на 1С. А если там будет "сейчас 100 посетителей одновременно, через 5 лет максимум 1000", то такие объемы 1С отлично тянет. И во многих случаях, когда больше и не надо, 1С подходит на 100%.
112. nicxxx 255 04.08.19 07:27 Сейчас в теме
(34)
Тяжело самому организовать регистр накопления, например.

Прямо скажем - не очень. Проверено.
Придется написать немного кода на SQL, пару триггеров (для обновления таблиц итогов, если они будут), хранимку для упрощения вызова этого всего, но сам алгоритм несложный.
Если система не планируется быть большой, то даже не надо заморачиваться с таблицами итогов.
113. Elisy 951 05.08.19 06:19 Сейчас в теме
(112)
Вы правы, всегда нужно разумно подходить к задаче. Если не делать итогов, то можно проиграть в скорости и потерять возможность обрезки баз.
Функции, которые выполняет регистр 1С, дополнительно к движениям и итогам
1. Итоги
2. Движения
3. Обмен при РБД
4. Оптимизация по скорости обращения
5. Возможность обрезки базы/данных на любой момент
6. Возможность использовать типы 1С (ссылки справочники, перечисления)
7. Богатые возможности отчетов СКД, в которых участвует регистр
15. FreeArcher 162 18.04.19 09:27 Сейчас в теме
Дмитрий, я правильно понимаю, что на стороне 1С реализован полноценный backend (1с формирует уже готовые HTML) страницы? А какие данные на web сервере расположены?
18. Smaylukk 186 18.04.19 09:38 Сейчас в теме
(15) Сама публикация, а также на веб-сервер можно выгружать в виде файлов изображения, скрипты, стили и другие файлы. 1С в этом случае смотрит - если файл выгружен, то поставляет "внешнюю ссылку", а если нет - то внутреннюю.
22. FreeArcher 162 18.04.19 09:50 Сейчас в теме
(18) А по каким причинам была выбрана именно такая реализация? Как альтернатива есть подход, когда бекенд предоставляет API на получение и изменение данных. А весь web стек (html+css+js) хранится на сервере и просто отрисовывает полученные AJAX запросом данные.
Мне кажется в случае работы с 1С это более удобный подход. Мне самому приходилось держать в макетах HTML код и это жутко не удобно. Почему вы пошли первым путем, есть какие то плюсы в этом?
26. Smaylukk 186 18.04.19 10:03 Сейчас в теме
(22)
(22)
А по каким причинам была выбрана именно такая реализация?

Хотел изучить http-сервисы и подтянуть соседнюю область.

(22)
Мне самому приходилось держать в макетах HTML код и это жутко не удобно

У меня не в макетах, а в справочнике - т.е. можно менять в режиме Предприятия
23. FreeArcher 162 18.04.19 09:52 Сейчас в теме
Скажите у вас web сервер и 1С ws-сервер расположены на одном адресе? Вы не столкнулись с запретом CORS (кросс-доменных) запросов?
24. Smaylukk 186 18.04.19 09:57 Сейчас в теме
(23) Наверное на одном адресе, но я не понял вопроса. С запретом кросс-доменных запросов не сталкивался.
30. TitanLuchs 413 18.04.19 10:27 Сейчас в теме
(23) CORS 1Cка разруливает нормально.
35. FreeArcher 162 18.04.19 10:35 Сейчас в теме
(30) Так это не проблема 1С. Я как то пробовал на JS делать запросы к http сервису 1С и у меня не получилось из за CORS. Хотя этот же код вполне уходил на php сервер. Т.е. у меня не получилось задать правильно заголовки ответа 1С, чтобы разрешить кросдоменный запрос.
Вот если у вас есть пример или ответ был бы благодарен?
46. TitanLuchs 413 18.04.19 10:50 Сейчас в теме
(35) В заголовке ответа должен быть правильный origin - этого достаточно.
chemezov; +1 Ответить
25. ArchLord42 83 18.04.19 10:00 Сейчас в теме
"Я сделал отдачу фронта на 1С потому что могу", так?)
При +- нормальной нагрузке 1С перестанет вывозить вот это вот все, гораздо проще было вынести весь фронт за nginx с кеширование (это всего "10 строк" в конфиге nginx, вместо кучи кода и справочников в 1С), ну и 1С так и оставить бэкендом, но при этом перекрыть доступ в паблик.
Получилось бы абсолютно тоже самое, только не пришлось бы городить велосипед для отдачи статики из 1С, при этом её еще лишний раз нагружая.
32. s_vidyakin 68 18.04.19 10:33 Сейчас в теме
(25) Еще оптимальнее весь фронт переписать на фреймворке типа Vue.js, учится он за пару дней, справка шикарная на русском. Компонентов готовых навалом. А 1С должна быть только на бекенде.
EGOLEGE; Soloist; A_Max; FreeArcher; +4 Ответить
51. Torin 828 18.04.19 11:01 Сейчас в теме
(32) хотелось бы и Вашу статью увидеть с реализацией на фреймворке vue.js
58. s_vidyakin 68 18.04.19 11:24 Сейчас в теме
(51) есть такая статья в планах, времени никак не выделю ) Проект на работе с вебом не связан
Начинал пилить веб-компоненты для vue идентичные 1Сным, пока перенес только поле ввода, выглядит вот так
Прикрепленные файлы:
61. FreeArcher 162 18.04.19 11:45 Сейчас в теме
(58) vue идея хорошая. Вот только внешний вид бы не как 1С овский, а то смысла нет. Куча фреймворков сейчас довольно классных под vue, материальный дизайн и все тренды так сказать.
А проект интересный. Если бы на github то можно и попилить совместно.
63. s_vidyakin 68 18.04.19 11:51 Сейчас в теме
(61) Наоборот, хочу чтоб было точно как в 1С интерфейсе, можно тогда делать бесшовные приложения "продолжения 1С"
Материал не люблю, очень размашистый интерфейс получается, как будто мобильное приложение натянули на комп. Такси более компактен

Кстати куча фреймворков этолько на первый взгляд. Они в основном только под примитивные CMS подходят и дашборды с кнопочками и списками.
Под бизнес я так и не нашел бесплатные на 100% покрывающий нужды на уровне 1С-Такси. Пока у меня в топе iView и ElementUI, возможно они даже клоны. Китайцы рулят ) Платные есть красивые библиотеки но они стоят просто космос
36. Smaylukk 186 18.04.19 10:38 Сейчас в теме
(25) О какой нагрузке вы пишете, примерно?
Касательно остального сообщения - я уверен, что могут накидать еще 10+ способов реализации.
Я реализовал такой. Он справляется с задачей.
Тем более, что 1С сама продвигает веб-клиент, а это не укладывается в мышление, что 1С - только бэкенд.
Но все равно спасибо за ваше мнение
81. ArchLord42 83 18.04.19 13:57 Сейчас в теме
(36) продвигать то продвигает, только вот скорость всего этого решения какая? правильно очень плохая, тонкий клиент подключённый через урл работает раза в 2 быстрее.
А все почему, потому что каждый раз 1с отдаёт статику.
Ставим nginx перед веб клиентом с кешированием и вот тогда начинается более менее адекватная скорость, у вас такая же фигня, вместо того, чтобы просто положить статику за нормальный веб сервер, вы отдаёте её из 1с создавая лишнюю нагрузку и лишний труд для себя, это пока 10 юезров вы её (нагрузку) не ощущаете, как начнётся масштабирование вы поймёте о чем я говорю
83. Smaylukk 186 18.04.19 14:11 Сейчас в теме
(81) Под статикой вы что имеете ввиду - скрипты, стили, картинки? Если да - то у меня есть возможность эти файлы выгрузить в папку на веб-сервере (IIS, Apache) и настроить там кеширование.
87. ArchLord42 83 18.04.19 14:26 Сейчас в теме
(83) Ну так, а почему бы не хранить все изначально там, и редактировать \ поддерживать более цивилизованным способом?
Ну это слишком легко конечно, ни метаданных тебе в 1С не надо добавлять, ни материала на статью не будет, да и 1С совсем бездельничать будет, вместо обработки 30 запросов \ сек, всего-то 1-2 будет ловить, специализированные решения для слабаков, наше 1С - наше все :)
89. Smaylukk 186 18.04.19 14:47 Сейчас в теме
(87) Что-то вы не в настроении.
Я бы поотвечал, но вижу, что вам ответы не нужны.
Хорошего вам дня и прекрасного настроения.
91. ArchLord42 83 18.04.19 15:54 Сейчас в теме
(89) Да все прекрасно у меня с настроением)

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

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

Хочу дать 1 совет, если ваш клиент подает нажеды на расширение бизнеса = увеличение потребителей вашего проекта, то проведите тесты хотябы через какой нибуть jMeter или что-то подобные, некоторые недостатки сразу всплывут и Вы их сможете исправить \ переделать до того, как начнуться факапы.

А если есть доступ к записям последней ИС конфы`18, рекомендую посмотреть доклад Игоря Антонова как раз на эту тему, он там как раз рассказывает про фронт на js (react) + бэк на 1С.
93. Smaylukk 186 18.04.19 17:29 Сейчас в теме
(91) Чтобы работать как веб-разработчик - надо быть веб-разработчиком. Вот вы им были до 1С - вам и пригорает. Я пока не вижу смысла учить их. И делаю, как умею. Учитываю, что в вебе постоянно появляются новые языки и фреймворки - люди не сидят на месте и развиваются. 1С тоже. Вполне возможно, что через несколько лет 1С будет уметь из коробки делать это.

А вот почему вы пришли из веба в 1С - я бы послушал/почитал :) , потому как тенденция в обратную сторону
94. ArchLord42 83 18.04.19 18:01 Сейчас в теме
(93) ну программисты, всегда куда-то кочует, это те кто не смог себя найти в данной экосистеме.
Веб. разрабы тоже кочуют хорошо, в ынтерпрайзы на джаву, на мобилки, достаточно в чатике в телеге по нужной тематике посидеть.
В 1С чатах орут, "1С говно, питон \ го \ любой другой язык - тру"
В веб орут, "веб говно, js отстой, джава - тру"

Я не сказать чтобы прям совсем ушел, т.к. кроме 1С проектов, сейчас веду еще и веб, но отношение 70 \ 30.

6 лет назад, я писал на ПХП, тогда еще 5.х версии (питон \ руби тогда в нашем регионе еще не зашел от слова совсем)
и писали (и щас некоторые пишут) на нем нечто убогое типа

<div class = "user" ><?php echo $User->name ?></div>


что приводило более менее большой хтмл шаблон в ужасный и нечитаемый пласт символов.

Ну, а на JS, пусть даже и с jQuery писался довольно низкоуровневый код, чувствовал себя программистом на ассемблере.
А потом была интеграция с 1С и мне она показалась довольно классной штукой, с хорошим уровнем абстракции...конец истории :)
98. Smaylukk 186 19.04.19 10:33 Сейчас в теме
(94) Спасибо за историю, необычно.
А потом была интеграция с 1С и мне она показалась довольно классной штукой, с хорошим уровнем абстракции...конец истории :)
Но все же непонятно, это было правильно решение или нет?
99. ArchLord42 83 19.04.19 14:06 Сейчас в теме
(98)
Да вполне верное.
1С может быть очень интересной :)
92. Steelvan 306 18.04.19 17:28 Сейчас в теме
(89) Автор молодец что сделал и описал.
На мусорные и критикующие комментарии забей.

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

После таких комментаторов нормальные люди устанавливают галочку "Запретить комментарии". Все желание отбивают что-то писать и чем-то делиться.

Умеешь ? Сделай свое, а мы посмотрим.
chemezov; ShalamovEV; +2 Ответить
82. ArchLord42 83 18.04.19 14:04 Сейчас в теме
(36) а ещё вот Вам завтра понадобится css / js поправить, вы вместо того, чтобы открыть нормальный редактор, с подсветкой и автокомлитом, пойдёте открывать невзрачную форму 1с и там мучаясь править, я конечно понимаю что гордость вам не позволит принять это скорее всего, но ваше решение абсолютно не production ready в такой архитектуре, это так побаловатся с 10 пользователями.
85. Smaylukk 186 18.04.19 14:16 Сейчас в теме
(82) Я и не настаиваю, что это решение очень правильное. Оно просто одно из.
CSS/JS правлю, да в невзрачной форме, но пока не напрягло. Если что -всегда можно прикрутить или открывать в нормальном редакторе.
Но я программист 1С в больше мере.
И это решение позволяет зарабатывать заказчику, его партнерам и мне.
Еще раз спасибо за ваше мнение
chemezov; +1 Ответить
50. Torin 828 18.04.19 10:58 Сейчас в теме
(25)с нетерпением ждём вашу статью с описанной Вами реализацией
86. ArchLord42 83 18.04.19 14:21 Сейчас в теме
(50) да какая там статья, пишем на css \ html + ванильном JS \ vue \ angular \ react \ мой самый любимый и самый лучший фреймворк, а на 1С пару ендпоинтов для отдачи \ принятия конкретных данных и все, по https сервисам написано много, про реакты писать тут смысла нет, не та аудитория.
88. Torin 828 18.04.19 14:38 Сейчас в теме
(86)
по https сервисам написано много, про реакты писать тут смысла нет, не та аудитория


:) Ну звиняйте тогда :)
101. FreeArcher 162 19.04.19 17:51 Сейчас в теме
(86) Раз уж пошел разговор: А OData не более универсальное решение, чем http сервисы. Не пробовали по этому протоколу работать?
31. muskul 18.04.19 10:27 Сейчас в теме
скока стоило если не секрет
43. Smaylukk 186 18.04.19 10:48 Сейчас в теме
(31) В то время работал фултайм и этот проект пилил в свободное время от других задач. Сейчас уже сложно оценить. Да и он не законен - перманентно развивается.
33. Steelvan 306 18.04.19 10:34 Сейчас в теме
Радуют подобные публикации.

Пожалуй, тоже добавлю свои пять копеек в тему 1С <-> веб.
Прикрепленные файлы:
Бэнни; chemezov; d.menyailov@ngslab.ru; arsvlg; Elisy; +5 Ответить
37. FreeArcher 162 18.04.19 10:39 Сейчас в теме
(33) Что это интепритатор 1С кода на JS или просто картинки?
39. Steelvan 306 18.04.19 10:43 Сейчас в теме
(37) Да, это интерпретатор кода 1С в код js. С расширением языка 1С для работы с объектами, операторами ++ и --, и еще некоторые изменения.
Прикрепленные файлы:
40. FreeArcher 162 18.04.19 10:45 Сейчас в теме
(39) Жесть ...
А ссылку на проект можно?
47. Steelvan 306 18.04.19 10:52 Сейчас в теме
(40) У проекта пока нет сайта, он ведется в закрытом режиме.
Как будет что показать обязательно опубликуем.
Сейчас работаем над конструктором форм.
44. Steelvan 306 18.04.19 10:49 Сейчас в теме
Ну и такие конструкции как попытка, циклы и условия.
Прикрепленные файлы:
48. Torin 828 18.04.19 10:54 Сейчас в теме
Статья очень познавательная и за это + однозначно.
65. 🅵🅾️🆇 524 18.04.19 12:47 Сейчас в теме
Позвольте небольшую корректировку:
слишком много http сервисов насоздавали.
Достаточно было одного "api" и в его модуле реализовать роутер.

По поводу авторизации, идеи к размышлению:
1) можно реализовать вход через oauth2 (социальные сети/почта) ну или свой openid
2) можно реализовать вход по номеру мобильного телефона или через мессенджер (отправлять короткий смс)

Если интересует дальнейшая веб разработка, вот вам точка роста:
последнее время уже не пишут на ванильном js и жукавери, жабаскрипт, нонче, компилируемый.
Тоесть стоит посмотреть в сторону vue/angular/react и почитать про SPA/PWA приложения, рендеринг на сервере это уже моветон)

А в целом вы большой молодец, сами автоматизируем такие вещи, ибо интерфейс 1с для обычного пользователя никуда не годится.
chemezov; oleg-m; Soloist; torbeev; +4 Ответить
Оставьте свое сообщение