Универсальный HTTP-сервис на платформе 1С, аля HTTP-сервер с примером

Публикация № 1059046

Разработка - Инструментарий разработчика

HTTP HTTP-сервис

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

Приветствую коллеги!

В комментариях к статье 1C + Python + Django Rest Framework + Vue.js. Опыт несложной full-stack разработки я оставил комментарий и предложил другой путь решения подобных задач. Завязалась дискуссия в ходе которой я предложил свой подход, который успешно опробован на наших клиентах к решению аналогичной задачи (личный кабинет для техподдержки).

Исходная задача

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

Задач такого круга масса: личный кабинет покупателя для заказа товаров онлайн, внесение показаний счетчиков в сфере ЖКХ, службы доставки товаров, техподдержка и прием заявок клиентов и т.д.

Варианты решений

Первый вариант. Классический. Разделить личный кабинет и информационную базу 1С. Это самый древний способ, который к нам пришел еще с бородатых времен 1С версии 7.7. Личный кабинет при этом делается на каком-нибудь веб-движке и при необходимости какой-нибудь веб-ориентированной СУБД. Например, PHP + MySQL или Django Rest Framework + Vue.js + MariaDB. При этом время от времени происходит обмен данными между веб-частью и центральной ИБ на 1С и происходит синхронизация данных.

Плюсы:

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

Минусы:

  • Оперативность обмена данными. Необходимо время, чтобы выгрузить информацию из 1С и загрузить ее в веб-часть, а так же время на обратную операцию. Соответственно это влечет за собой паузы между обменами и в некоторых случаях это критично.
  • Сложность дальнейшего сопровождения. Сопровождать две системы практически всегда сложнее чем одну при условии, что выполняют по сути они одну и ту же задачу.
  • Длинная цепочка взаимодействий всей системы. Здесь я имею ввиду повышение риска остановки обмена, если одно из цепи перестанет работать: остановка регламентных заданий в случае зависания, недоступность FTP-сервера если его используют для обмена, какие-то ошибки, связанные с выгрузкой для веба и т.д. Крепость всей цепи определяется крепостью самого слабого звена.

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

С развитием платформы и выходом версии 8.2 появился еще один способ.

Вариант два. Использование стандартного web-клиента 1С. Зачем делить систему на части, если можно дать пользователям доступ к рабочей базе, разграничить все права и пользователь сможет видеть только то, что ему нужно?

Плюсы:

  • Все в одном месте. Тут комментарии излишни.
  • Простота разработки. Мы вообще не вникаем в веб и все делаем на платформе 1С.

Минусы:

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

Вариант три. Использование HTTP-сервисов 1C. С выходом 8.3 в платформу были добавлены новые механизмы: сначала web-сервисы для интеграции с другими информационными системами, а потом и HTTP-сервисы, предназначеные для обработки HTTP-запросов, которые сначала поступают на веб-сервер, который передает на обработку эти запросы 1С, а уже 1С обрабатывает эти запросы и возвращает результат так же по протоколу HTTP, браузер видит ответ и отображает пользователю результат. При этом мы можем возвращать HTTP-запросам клиентов АБСОЛЮТНО любые данные: картинки, HTTP-страницы, JSON-данные, обычный текст и т.п.

Плюсы:

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

Минусы:

  • Лицензии. Тут не все понятно, но понятно то, что они нужны. Как лично понял я, они нужны в объеме онлайн-сеансов (возможно ошибаюсь и если есть более точная информация поправьте меня). Т.е. если в онлайне одновременно работают 10 человек в личном кабинете, то необходимо 10 лицензий. Сеансы живут какое-то время, а потом уничтожаются, временем жизни сеансов можно управлять настройками.
  • При изменении поведения HTTP-сервиса необходимо остановить работу.

На ИСе много примеров использования HTTP-сервисов среди которых:

На что действительно способны HTTP-сервисы
HTTP-сервис: отчеты [Расширение]
Реализация простого http-сервиса "Просмотр карточки номенклатуры(товара) в браузере"

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

Вариант четыре. Он же гибридный вариант три. Универсальный HTTP-сервис.

Это уже мой подход к этому вопросу. Я долго думал, на тему как сделать так, чтобы HTTP-сервис не нужно было постоянно бы изменять в конфигураторе (хотя это спорно, так как сейчас все идет к расширениям и этот функционал можно реализовать через расширение конфигурации) и реализовать что-то универсальное. И мысли примерно следующие: по факту HTTP-сервис всегда работает по алгоритму: пришел какой-то запрос вида http://site.ru/hs/lk/index.html необходимо понять, что от нас хотят, покопаться в 1С, возможно сделать какой-то запрос или еще что-то и отдать соответствующий ответ. Т.е. схема работы HTTP-сервиса примерно такая:

Схема

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

Т.е. если мы в браузере открыли страничку по адресу: http://site.ru/hs/lk/index.html которую обработал HTTP-сервис и вернул нам:

<html><body><img src="/images/1.png" alt="Моя картинка"></body></html>

То автоматически браузером будет выполнен второй запрос по адресу: http://site.ru/hs/lk/images/1.png и в браузер будет подставлена картинка, которая получена вторым запросом.

Т.е. количество запросов к HTTP-сервису будет 2, а показана всего одна страничка, но на ней будет картинка. Если ссылок в документе будет несколько, то каждый раз браузер будет обращаться к HTTP-сервису и просить у него то, чего ему не хватает. Круто да?

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

Т.е. пусть:

index.html - это вот эта страничка с текстом. Где ее тип text/html, а текст вот такой <html><body><img src="/images/1.png" alt="Моя картинка"></body></html>
/images/1.png - это картинка и она имеет тип image/png и содержит вот такие-то двоичные данные, в которых хранится картинка.

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

Структура выше ничего не напоминает? Это ведь справочник чистой воды :) Давайте его прикрутим.

Далее скриншоты из нашего решения. Файл index.html - имеет адрес от корня HTTP-сервиса, а вот эта картинка:

Имеет адрес /images/nophoto.png

А вот сама страница:

Обратите внимание, что это шаблон заполнения. Область <!--include(header.html)---> означает, что найди файл по адресу /header.html и вставь его содержимое в это место. Области на страницах повторяются поэтому так делать имеет смысл во избежание дублирования HTML-кода.
Далее, находим все остальные языковые константы вида <!---TEXT---> и заполняем их используя вкладку "Локализация" - это позволит заменить постоянные строки, чтобы их можно было внести в одном месте, а потом использовать как константы:

Далее, когда текст более или менее готов, мы выполняем дополнительный код на встроенном языке 1С, который находится на закладке "Алгоритм заполнения" и дозаполняем глобальную переменную для HTTP-сервиса "Переменные" и/или выполняем какие-то дополнительные действия. У нас есть в этом случае то, что должны вернуть:

  • Тело - переменная в которой ответ, который будет передан. Уже с заполненными языковыми переменными и вставленными областями.
  • Переменные - если есть переменная, которая отсутствует в локализации, то ее можно дополнительно объявить в алгоритме заполнения добавив ее в структуру.
  • Запрос - собственно исходный HTTPЗапрос.

И то, что можем использовать в алгоритме: 

  • ОтносительныйURL - какой запрос пришел.
  • ОтносительныйURLПеренаправления куда безусловно перенаправить если это необходимо. Например реализовав редирект 301 или 302.
  • ИмяФайла - наименование элемента  в справочнике ЛичныйКабинет.
  • Путь - группа где находится элемент в справочнике ЛичныйКабинет.
  • POST - POST-переменные, которые были нам переданы в виде Соответствия. Здесь мы можем получить и обработать что-то от веб-форм (например файлы из браузера).

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

В общем случае подобный подход позволит всегда работать по принципу шаблонизатора и на платформе 1С. HTML-страницы формируются автоматически, анализируя запрос от пользователя. Т.е. если пользователь введет адрес или перейдет в личном кабинете по ссылке, например: http://адрес_сервера_1с.ru/имя_публикации/hs/lk/folder1/folder2/file.html?param=1 То для построения страницы пользователю система все, что после lk, т.е. /folder1/folder2/file.html?param=1 будет разбито на блоки и по шагам выполнен алгоритм, который описан выше. При этом мы так же можем использовать различные фреймворки для работы. В справочнике "Личный кабинет" есть возможность загрузить папку с фреймворком, а потом на своих страничках использовать стили и скрипты оттуда. Мы в своей разработке, например, использовали Bootstrap + JQuery + chart.js.

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

PS: Для работы с демо-базой необходимо опубликовать базу на веб-сервере, и ввести в браузере http://адрес_сервера_1с.ru/имя_публикации/hs/lk/, после ввести данные для аутентификации "Администратор" (без кавычек) и пустой пароль. Можете параллельно в справочнике "Личный кабинет" изменять странички и после смотреть что получается в браузере.

PS: Спасибо, что дочитали до конца! :)

Скачать файлы

Наименование Файл Версия Размер
Универсальный HTTP-сервис на платформе 1С (dt-файл 1С 8.3.14.1630)
.dt 283,57Kb
13.05.19
118
.dt 283,57Kb 118 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. Sedaiko 357 13.05.19 13:31 Сейчас в теме
Крута. Я подобный шаблон для в расширения сделал, если вдруг понадобится какой-нибудь front сделать. Тянет html c *.css и *.js модулями. Отлаживать правда сложновато на чистом 1С.
acanta; Diversus; +2 Ответить
2. Diversus 2073 13.05.19 13:34 Сейчас в теме
(1)
. Я подобный шаблон для в расширения сделал, если вдруг понадобится какой-нибудь front сделать. Тянет html c *.css и *.js модулями. Отлаживать правда сложновато на чистом 1С.

Спасибо! Сущая правда на счет отладки. А если еще и замер производительности включить, то тут будут вообще сюрпризы при отладке ;)
3. sovbuh2006 8 13.05.19 14:33 Сейчас в теме
Подскажи а сколько она тянет лицензий 1с ?
4. Diversus 2073 13.05.19 14:39 Сейчас в теме
(3) http://v8.1c.ru/predpriyatie/questions_licence.htm#mvv
58. Организация с помощью продукта "1С:Предприятие 8. Web-расширение" делает веб-витрину для собственной торговой системы, работающей на "1С:Предприятии 8". Предполагается, что к ней одновременно будут подключаться до 100 пользователей. Сколько клиентских лицензий должна приобрести организация для создания веб-витрины?

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

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

Про HTTP-сервисы здесь прямо не сказано, но я предполагаю, что это не имеет значения и суть будет та же. Нужно ровно столько, сколько в данный момент работает сеансов. Но дело в том, что HTTP-сеансы могут "жить" не долго, поэтому "в онлайне" будет находится не много народу - только те, чей сеанс активен.
5. sovbuh2006 8 13.05.19 14:42 Сейчас в теме
(4) Я же правильно пони маю сеанс будет жить только когда идет запрос к базе ? и дальше сеанс умирает?
6. Diversus 2073 13.05.19 14:46 Сейчас в теме
(5) Все зависит от настроек. Если использовать настройки HTTP-сервисов по умолчанию, то он живет только когда идет обращение к ИБ.
Это медленно, но экономятся лицензии. В версии 8.3.9 была добавлена возможность настройки переиспользования сеансов, в этом случае скорость возрастает примерно в 10 раз (как пишут сотрудники 1С), но тогда сеанс живет какое-то время, которое будет задано в настройках.
7. ellavs 704 13.05.19 14:49 Сейчас в теме
Вот и дожили - 1С в качестве CMS :)
portwein; biz-intel; WellMaster; aka Любитель XML; kriscannabis; Sedaiko; DMSDeveloper; Diversus; +8 Ответить
8. Diversus 2073 13.05.19 14:56 Сейчас в теме
(7) Я думаю в этом ничего удивительного нет. 1С предназначена для построения бизнес-приложений. CMS - система управления сайтом. Ну а сайты, в свою очередь, имеют прямое отношение к бизнесу :)
9. pbabincev 115 13.05.19 16:32 Сейчас в теме
Автор, у меня небольшой вопрос (просто стало интересно):
Ты используешь свою функцию "Функция СтрокаВСтроку64"
А почему не подходит функция платформы "Base64Строка"?
Спасибо!
10. Diversus 2073 13.05.19 16:45 Сейчас в теме
(9) Спасибо за вопрос. Тут все банально :)
Там есть функция РазобратьКонтентHTML, которая возвращает POST-данные HTTP-запроса (массив структур Тип,Имя,ИмяФайла,Значение).
Нашел я ее где-то на просторах интернета (уже и не упомню где), там это все было. Честно говоря, просто побоялся ее трогать, т.к. мне показалось, что она работает не совсем стандартно (обратите внимание, что внутри РазобратьКонтентHTML используется встроенная Base64Значение, но так же используется и СтрокаВСтроку64).
Писать свое получение и разбираться как это работает на низком уровне не стал, она отлично отрабатывает.

Возможно стоит это пересмотреть.
11. pbabincev 115 13.05.19 16:48 Сейчас в теме
12. riposte 288 13.05.19 19:21 Сейчас в теме
Получается, что узких мест в этом случае будет два:

1. Если сервер 1С не на хостинге с высокой отказоустойчивостью, а за обычным натом в локалке какого-то офиса, с интернетом для юр.лица и полосой мегабит 30 - отдать большое количество сеансов без захлебывания интернет-канала не выйдет. Не говорю про потенциальную угрозу забить весь канал, все равно все шейпят или как-то еще осуществляют Bandwidth Management. Но выделенные под сервер 5-10 мегабит вполне себе легко заспамить и сервер уйдет в 500. Проблемы, которые могут возникнуть при таком раскладе, когда сервер 1С и IIS\Apache - на одном логическом устройстве тоже рассматривать не будем, это можно легко изменить.
Итого, остается узкое место - доступность сервера.

2. Таки лицензирование. Если между клиентом, осуществляющим запрос, и сервером 1С нет посредников, то каждый клиент, каждый его сеанс - это лицензия. Учитывая, что авторизация идет через вэб-сервер, лицензию также будет запрашивать этот самый вэб-сервер. Даже если в сети стоит ORGL-свиток, вэб-сеансы будут лицензироваться посеансово, а не по устройствам. Таким образом, организация анонимных соединений оставит компанию без свободных лицензий... ну очень быстро. (Это не точно, но определенно, что текущая схема лицензирования продуктов 1С такой халявный доступ к базам крайне не хотела бы).
Другое дело, если перед сервером 1С есть некий посредник, который от своего имени и осуществляет все запросы и сам авторизуется. Тогда мы можем контролировать и число соединений, и максимально утилизировать каждое из них. Тем более, если этот посредник будет осуществлять запросы через очередь в ограниченное число потоков. Тогда мы точно будем знать - у нас максимум 10 поток, а значит максимум может быть занято 10 лицензий.
НО, мы получаем те же яйца, только в профиль. Вместо бэкенда - прокси-бэкенд со своей базой для авторизации, а HTTP-контент он берет из 1С, поедая лицензии.

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

Наработками обязательно воспользуюсь, если понадобится соорудить что-то свое, локальное, для манагеров, экспедиторов или еще кого.
Спасибо, что поделился.
13. pbabincev 115 13.05.19 21:47 Сейчас в теме
(12)
Отвечу по п.2.
Технически http-сеансы лицензии не съедают. То есть имея 0 (ноль) лицензий на сервере, можно к нему подрубить сколько угодно http-соединений.
Тут лишь вопрос юридический. 1С, помнится, давала разъяснени о том, что лицензия нужна на каждого конечного активного пользователя. Но отследить и доказать это, конечно, будет сложно. Да и нужно ли?
portwein; bulpi; +2 Ответить
14. Diversus 2073 13.05.19 22:06 Сейчас в теме
(12) Спасибо за развернутый комментарий. Наверное и ваш метод и мой - они хороши в определенных ситуациях. Есть недостатки и там и там, но каждый из методов прекрасно существует.
Хочу акцентировать внимание на одну важную вещь: лет 10 назад такие возможности платформы казались фантастикой, сейчас это реальность. Вполне может быть, что в недалеком будущем в платформе произойдут изменения, которые позволят работать гораздо быстрее с HTTP-сервисами и ситуация улучшиться.
28. avk72 73 14.05.19 19:00 Сейчас в теме
(12)
Другое дело, если перед сервером 1С есть некий посредник, который от своего имени и осуществляет все запросы и сам авторизуется. Тогда мы можем контролировать и число соединений, и максимально утилизировать каждое из них. Тем более, если этот посредник будет осуществлять запросы через очередь в ограниченное число потоков. Тогда мы точно будем знать - у нас максимум 10 поток, а значит максимум может быть занято 10 лицензий.


Вы реально что-то подобное проворачивали? Тема интересная.
15. vano-ekt 728 14.05.19 06:38 Сейчас в теме
гонять статику из 1С, и занимать под неё сеанс - не аис
лучше сложить картинки, стили, скрипты на сам веб-сервер, который отдаст их быстрее, не отъедая сеанс и CPU время
Жолтокнижниг; Irwin; 🅵🅾️🆇; Aleskey_K; +4 Ответить
24. 🅵🅾️🆇 462 14.05.19 13:35 Сейчас в теме
(15) Не забыв их закэшировать)
16. vano-ekt 728 14.05.19 06:43 Сейчас в теме
а с лицензированием 1С вродь давно разъяснили:

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

http://v8.1c.ru/predpriyatie/questions_licence.htm#mvv
17. Smaylukk 815 14.05.19 08:55 Сейчас в теме
В нашем полку прибыло :) Однозначно плюс. Цель одна, но реализации немного разные. Не подскажете, как вы реализовывали у себя Ajax-запросы, если они у вас есть?
18. Diversus 2073 14.05.19 09:35 Сейчас в теме
(17) Ajax не используем, но на самом деле нет ничего сложного.
На самом деле подсистема "Личный кабинет" тут вообще не причем.
Чтобы добавить Ajax-запросы представьте, что вы пишите все вручную. AJAX-запрос - это фоновый запрос какой-то информации у веб-сервера, вот и делаете по этому адресу получение информации в 1С, т.е. в справочнике по адресу получения фоновой информации добавьте скрипт, который бы возвращал данные.
19. Smaylukk 815 14.05.19 09:37 Сейчас в теме
(18) Так у себя я сделал. Хотел узнать у вас, как вы сделали.
20. Diversus 2073 14.05.19 09:38 Сейчас в теме
(19) Ясно. Надо поделиться с народом :)
21. Smaylukk 815 14.05.19 09:39 Сейчас в теме
(20) У меня только статья. Скачать нечего. https://infostart.ru/public/1042420/
Diversus; +1 Ответить
22. Sla 14.05.19 10:00 Сейчас в теме
Для доступа клиентов в "личный кабинет" была у нас идея сделать вторую базу ERP, которую опубликовать вовне и настроить план обмена с основной базой ТОЛЬКО ТЕМИ данными, что необходимы для работы внешних пользователей штатными средствами ERP.
Или, как вариант, не вторую ЕРП, а маленькую самописку опять же с планом обмена с основной базой.
Плюсы и минусы в основном такие, как и в "Вариенте два" в статье у Автора, за исключением того, что данные разнесены, меньше вопросов с конфиденциальностью. Дополнительный плюс - внешние пользователи не толпятся в боевой базе.
До реализации пока не дошли, проект отодвинут по времени.
35. 🅵🅾️🆇 462 15.05.19 16:53 Сейчас в теме
(22) Минус - актуальность данных.
С гораздо большим успехом вы могли бы выгружать в MariaDB (SQLite если данных не много) и обслуживать микросервисом на Go.
Скорость запредельная, нагрузка никакущая, о лицензиях думать не надо.

Если волнует именно конфиденциальность и нужны актуальные данные - почему бы просто не забрать у пользователя http сервиса все права, оставив минимально необходимые?
23. 🅵🅾️🆇 462 14.05.19 13:28 Сейчас в теме
(0)

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

В общем архитектура с монолитом рендерящем html на сервере себя уже изжила и в "современном" вебе так уже никто не делает.

Современная тенденция: SPA или PWA приложение на фронте (желательно реактивное) и микросервисы на бэке (в идеале с http/2, но мы этого счастья в 1с пока лишены, также как и вебсокетов).
В общем, наиболее оптимальный вариант (без вк и на чистом 1с) - это отдавать json реактивщине на фронте.

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

А так - молодцом, может быть выпущу ответную статью на вашу ответную статью)

P.S. не стоит забывать, что "НаКлиенте" есть аж 5 БД: Local/Session Storage, IndexedDB, WebSQL, Cookies (и желательно применять их по предназначению, это серьезно разгрузит бэк если у вас довольно много сложной логики, особенно завязаной на пользователе).
А также можно воткнуть перед iis/apache - nginx и кэшировать некоторые запросики (ну или хотя бы делать примерно тоже самое с модулями, с повторно возвращаемыми значениями)

P.P.S. примерно про вот это будет статья (если она будет):
Demo PWA
user1021675; Жолтокнижниг; Irwin; madvovik; dsdred; avk72; +6 Ответить
25. riposte 288 14.05.19 16:06 Сейчас в теме
(23)
Апач уже давно сам в кэширование умеет. Так что проксировать динамику через нгинкс только ради статик-кэша - такое себе. Другое дело, когда нужны именно апачевые модули пыха, с которыми очень геморно морочиться, проксируя нгинском php-fpm. Например, если ты несчастный обладатель битрикса. Ну или если у тебя уже нгинкс на 80 порту, а нужен сайт с применением апача.
26. 🅵🅾️🆇 462 14.05.19 16:49 Сейчас в теме
(25) В моей жизни пыхи нет (почти не было и не будет теперь уж точно).

Nginx это не только инструмент кэширования.
Там мильёрд полезнейших модулей (например как проксирование) и все это работает запредельно быстро.

А LAMP это моветон и легаси.
Но если у вас небольшой проект и быстренько надо накостылить - почему бы и да, воткнуть убунту с LAMP, взять вордпресс, накатить плагинов-шаблонов.
kriscannabis; +1 Ответить
27. riposte 288 14.05.19 18:45 Сейчас в теме
(26)
Я не о том вообще говорил, нгинкс перед апачем только из соображений кэширования - как раз таки моветон.
Лампы еще живы и прекрасно применяются. Как и Лемпы.
Примение нгинкса != крутой проект и применение Апача != одностранички на джумлах.
Сам я пересел с иглы апача на нгинкс уже давно просто потому, что он мне удобнее и функциональнее, пых-cms уже не пользуюсь, но вот 1С на нем закрутить - даже не пробовал, не знаю, взлетит ли. И ставить нгинкс для вэбморды 1С только ради того, чтобы тот отдавал статику, а сама 1С крутилась на апаче - это как раз таки плодить сущности с минимальным выхлопом.
29. kriscannabis 15.05.19 08:38 Сейчас в теме
Зачем изобретать велосипед за который нужно в 1с постоянно денежку отправлять когда есть Apache и Nginx? Да и потом придет веб программист наводить порядок в этом и его инфаркт накроет. Это какая-то вредная привычка виндовых админов городить все в кучу. Так чтобы если сломалась одна мелочь отказало вобще все. Определенно вариант с отдельной бд и отдельным вебсервером.
Вебсервисы можно использовать для создания api это упростит интеграцию.
30. acanta 74 15.05.19 10:41 Сейчас в теме
(29) подробнее можно? Что по вашему следует делать?
Как Битрикс?
31. kriscannabis 15.05.19 11:45 Сейчас в теме
(30) Да. Будет проще интегрировать или в сайт на битрикс фреймворк или в CRM Битрикс24. Слишком много недостатков в описанных способах реализации. И достоинства вроде "Все в одном месте" это вовсе не достоинства, а возможное звено отказа.
Использование непрофильных технологий приведет к тому что обслуживать это никто кроме создателя не сможет, а не предназначенность для веба создаст дополнительные проблемы.
Irwin; acanta; +2 Ответить
32. hardcodder2020 15.05.19 14:11 Сейчас в теме
Если реализовать механизм рассылки, то это тоже методом из 1С?
Но будет работать медленно..Как считаете?
33. dsdred 1407 15.05.19 14:25 Сейчас в теме
по Использование стандартного web-клиента 1С мало минусов перечислили ))

-Перевод тяжелых обработок\отчетов на длительные операции(иначе сеанс в некоторых браузерах может быть разорван)
-Конфликты блокировок
-Глючное отображение в разных браузерах (в зависимости от версии платформы). Либо некорректная работа в некоторых браузерах (в зависимости от версии платформы)

Вариант три. Использование HTTP-сервисов 1C.
При изменении поведения HTTP-сервиса необходимо остановить работу.

Не совсем понял, что Вы имели ввиду под "изменении поведения HTTP-сервиса".
Что за поведение HTTP-Сервиса из-за которого надо останавливать работу?
34. Diversus 2073 15.05.19 16:42 Сейчас в теме
(33)
Не совсем понял, что Вы имели ввиду под "изменении поведения HTTP-сервиса".
Что за поведение HTTP-Сервиса из-за которого надо останавливать работу?

Написали HTTP-сервис, который предположим выдает список номенклатуры. Работаем. Руководство говорит, вот выводится только наименования и цена, а можно сделать, чтобы бы звездочками отображалось (мало, достаточно, много)? Для этого необходимо этот механизм доработать и тут без дописок не обойтись... Можно использовать расширения, но я честно говоря не пробовал как оно там будет работать по скорости, все таки это еще одна прослойка. Да и в 8.3.12 (или 8.3.10 не помню точно), была проблема с доступностью из расширений модулей.
Возможно ошибаюсь в этом вопросе.
mammadov.zaur.77; +1 Ответить
36. dsdred 1407 16.05.19 08:02 Сейчас в теме
(34)
Можно использовать расширения, но я честно говоря не пробовал как оно там будет работать по скорости, все таки это еще одна прослойка. Да и в 8.3.12 (или 8.3.10 не помню точно), была проблема с доступностью из расширений модулей.
Возможно ошибаюсь в этом вопросе.

С расширением проблем нет, если есть проседание по скорости то оно незначительное.
Модули доступны с 8.3.9. Проблем с ними в 8.3.10 и 8.3.12 не замечал. Хотя я конечно не все релизы ставил.
mammadov.zaur.77; +1 Ответить
37. vitalbasl 59 16.05.19 21:59 Сейчас в теме
(36)Расширения еще до конца не протестили. Наш вопрос в 1С:
В расширении был создан собственный документ, который делает движение по заимствованному регистру накоплений "ЗначенияОперативныхПоказателейРасчетаЗарплатыСотрудников" (оборотный).
После этого при запуске механизма "Удаление помеченных объектов" программа стала вылетать (завершаться аварийно).

Ответ 1С от 25.01.19
"Это ошибка 10202120, исправлена в версиях, начиная с 8.3.13.1721, пока еще не опубликован релиз"
но ошибку исправили в 8.3.14
38. dsdred 1407 16.05.19 22:17 Сейчас в теме
(37) Ну в плане модулей работает стабильно.
А с регистром Накоплений уже были прецеденты https://forum.infostart.ru/forum9/topic191359/
mammadov.zaur.77; +1 Ответить
40. Программе 2 12.12.19 10:20 Сейчас в теме
Добрый день, разбираюсь с функционалом работы HTTP сервера на 1С, и возник вопрос.
Как можно вернуть в JS параметр
т.е. у меня есть команда в HTML которая вызывает JS который что-то возвращает в Запрос. Но при этом мне необходимо в JS обратно вернуть ответ в виде параметра, для дальнейшей отработки JS. Вопрос как правильно вернуть ответ в JS в заданную переменную?
41. Diversus 2073 12.12.19 10:23 Сейчас в теме
(40) Здравствуйте. Как бы вернули переменную в обычном HTML/JS? Здесь все точно также.
Абстрогируйтесь от 1С. Сделайте все, что вам нужно на обычном HTML, а потом переносите в 1С.
42. Программе 2 12.12.19 10:33 Сейчас в теме
(41) так в этом то и суть что не понятно как вернуть обратно JS переменную без обновления страницы через Ajax запрос
Вот код HTML исполняемой команды.

Текст = Текст + "<div class='col-2'>
				|<button class='link-btn link-btn--blue control-order control-order-add' 
				|data-id-product='"+ ВыборкаДетальныеЗаписи.Ссылка.УникальныйИдентификатор() +"'>
				|<span class='icon icon--bag'></span>
				|Добавить в заказ
				|</button> <!-- Добавление товара в корзину -->
				|</div>";


после ее выполнения страница не обновляется, а производится вызов функции JS
success: function(response) {
if (response=== true) {
alert('еще раз текст');
}  
}
});

задача передать в response результат выполнения.
43. Diversus 2073 12.12.19 10:41 Сейчас в теме
(42) Тут 1С вообще не причем. Я про это. Сделайте тоже самое в отдельной странице на HTML+JS не используя 1С (на тестовых данных), а уже потом портируйте в 1С.
Можете, например, завести скрытый div, дайте ему id, в js запишите в него что-то с помощь jquery, а потом считайте где нужно из div это значение. Я вашей задачи не знаю, может это и не подойдет, но тут вы должны понять саму суть. Сделайте все сначала не в 1С. Вполне возможно, вам надо не на этот форум, а на JS.
Оставьте свое сообщение

См. также

Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) Промо

Инструментарий разработчика Универсальные обработки v8 1cv8.cf Абонемент ($m)

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

2 стартмани

06.10.2014    142358    1941    ekaruk    164    

Консоль запросов 9000

Консоль запросов v8 v8::Запросы 1cv8.cf Абонемент ($m)

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

1 стартмани

24.02.2020    7762    155    kuza2000    113    

Помощник работы с идентификаторами объектов

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Инструмент для расширенного анализа идентификаторов объектов.

2 стартмани

24.01.2020    5826    19    YPermitin    22    

Инструменты оптимизации для 1С на MS SQL Server

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Набор базовых инструментов для поиска узких мест в работе 1С на MS SQL Server.

1 стартмани

15.12.2019    13931    184    berezdetsky    23    

Навигатор по конфигурации базы 1С 8.3 Промо

Инструментарий разработчика Универсальные обработки v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.59 от 07.05.2020

3 стартмани

28.10.2018    28103    269    ROL32    67    

CF & SQL : конструктор прямых запросов к БД 1С

Инструментарий разработчика Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

02.10.2019    14268    178    dmitrydemenew    43    

Конвейер проверки качества кода

Инструментарий разработчика Практика программирования Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

3 стартмани

04.09.2019    18815    20    Stepa86    44    

Просмотр и анализ структуры базы данных (отчет на СКД)

Инструментарий разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

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

5 стартмани

24.07.2019    17258    153    YPermitin    27    

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо

Универсальные функции Инструментарий разработчика Учет ТМЦ Учет ТМЦ v8 1cv8.cf Россия БУ Абонемент ($m)

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

1 стартмани

17.08.2015    44232    155    ekaruk    31    

Переводим рутину ручного тестирования 1C на рельсы Jenkins-а и ADD

Инструментарий разработчика Jenkins v8 Абонемент ($m)

Вы все еще тестируете свои конфигурации 1С вручную? Да вы просто тратите жизнь впустую! В данном туториале попробуем скрестить ADD и jenkins для автоматического запуска тестов.

1 стартмани

03.06.2019    19700    5    ripreal1    88    

Групповая проверка доработок

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР. Выдает список обнаруженных ошибок. Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям. В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем. Проверялась на Зарплата и управление персоналом КОРП 3.1.8.216, Управление торговлей 11, 1С:ERP Управление предприятием 2.4.7.141, Бухгалтерия предприятия КОРП 3.0.68.66.

2 стартмани

05.05.2019    12384    89    sapervodichka    23    

1C + Python + Django Rest Framework + Vue.js. Опыт несложной full-stack разработки

Практика программирования Внешние источники данных Обмен через XML WEB Разработка v8 1cv8.cf Абонемент ($m)

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

1 стартмани

22.04.2019    27218    32    riposte    63    

Faster - многофункциональный ускоритель работы программиста 1С Промо

Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

Программа Faster 8.7 позволяет ускорить процесс работы программиста 1С (и не только 1C). Программа Faster позволяет делится кодом с другими программистами в два клика или передать ссылку через QR Код. Исправление введенных фраз двойным Shift (с помощью speller.yandex) Полезная утилита для тех, кто печатает много однотипного текста, кодирует в среде Windows на разных языках программирования. Через некоторое время работы с программой у вас соберется своя база часто используемых словосочетаний и кусков кода. Полностью переделан механизм перехвата клавиш, теперь не зависает при обработке скриптов.

1 стартмани

24.05.2012    74888    206    moolex    145    

Расширение "Быстрая проверка кода" для конфигурации 1С:Автоматизированная проверка конфигураций

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Расширение для конфигурации "1С:Автоматизированная проверка конфигураций", позволяющее проверять произвольный код.

1 стартмани

26.03.2019    16156    52    Bazil    25    

Настройка отладки на сервере 1С

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Обработка для настройки отладки на сервере, включение отладки COM-соединений и отладки Web-сервисов.

1 стартмани

26.03.2019    21075    83    frkbvfnjh    37    

Методика оптимизации программного кода 1С: проведение документов

Обработка документов Производительность и оптимизация (HighLoad) Инструментарий разработчика v8 v8::УФ Абонемент ($m)

Описание простого метода анализа производительности программного кода 1С, способов его оптимизации и оценки результатов в виде числовых показателей прироста производительности. Не требует сторонних программных продуктов, используются только типовые возможности платформ 1С. Методика проверена на линейке платформ начиная с 1С:Предприятие 8.2 (обычные формы, управляемые формы). Позволяет ускорить проведение проблемных документов в 3 и более раз, провести проверку корректности формирования проводок оптимизированным кодом и подтвердить результаты оптимизации реальными замерами производительности в режиме предприятия. К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).

1 стартмани

19.03.2019    20848    16    dmitrydemenew    83    

Модель объекта Промо

Инструментарий разработчика v8 Абонемент ($m)

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    10164    0    vadim1980    5    

Отчет по подпискам на события

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

18.02.2019    8456    49    tomvlad    8    

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

Пользователю системы Инструментарий разработчика v8 v8::УФ Россия Абонемент ($m)

Прототип дружелюбного и эффективного инструмента для написания пользовательских экспресс-инструкций. Задействована штатная утилита Windows, о существовании которой многие не знают и которая умеет делать огромную работу по логированию действий и снятию скриншотов на всех ПК с Windows (начиная с версии Win7). "Инструктор" не требует никакой установки и дополнительных библиотек! Это означает, что инструмент будет работать и на домашнем ПК и на "чужом ноутбуке" и на терминальном win-сервере у заказчика, где ваши права сильно ограничены. Вы просто подключаете легкую файловую базу 1С и получаете инструмент по снятию скриншотов с интересной функциональностью...

1 стартмани

15.02.2019    11144    39    ROM_NN    8    

Управление задачами в 1С - готовая подсистема с открытым кодом и широким базовым функционалом. Версия 1.0.6

Инструментарий разработчика Управление бизнес-процессами (BPM) Управление проектом v8 Абонемент ($m)

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

2 стартмани

17.12.2018    16981    93    for_sale    38    

Консоль запросов + ТЗ как параметры Промо

Консоль запросов v8 1cv8.cf Украина Абонемент ($m)

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

2 стартмани

12.11.2010    31813    58    Kashemir    24    

Реализация простого http-сервиса "Просмотр карточки номенклатуры(товара) в браузере"

Практика программирования v8 1cv8.cf Абонемент ($m)

Практический пример реализации простого http-сервиса средствами 1С Предприятие 8.3. Обеспечивает просмотр списка товаров и просмотр данных товара в браузере.

1 стартмани

07.12.2018    19962    15    dmitry1975    32    

Go. Разбор лога технологического журнала. Достойная альтернатива perl'у

Сервисные утилиты Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Началось все с того, что я познакомился с перловыми скриптами для парса ТЖ которые размещены на kb.1c.ru (например в этой статье https://kb.1c.ru/articleView.jsp?id=113). По началу мне дико понравилось то, что перл разбирал гигабайты логов за считанные минуты, но позитив мой угасал обратно пропорционально с тем, насколько глубже я погружался в "кроличью нору" ....

1 стартмани

24.10.2018    17932    6    lazarenko    39    

HTTP Сервисы: Путь к своему сервису. Часть 4

Инструментарий разработчика Практика программирования v8 1cv8.cf Абонемент ($m)

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 3». В предыдущих частях мы уже о многом поговорили. В этой части поговорим про размер сообщений, о файлах, о порциях и немножко, о регламентах.

1 стартмани

28.09.2018    21340    36    dsdred    13    

[x1c.ru] 1CDBin: Работа с файлами *.1CD на низком уровне средствами языка 1С с возможностью чтения таблиц (поддерживается формат 8.3.8.0) Промо

Тестирование и исправление Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Обработка позволяет просматривать файловые базы 1CD на низком уровне средствами встроенного языка. Реализована часть функциональности Tool_1CD, но на языке 1С Предприятия. Показываются таблицы, параметры таблиц, поля таблиц, записи таблиц, значения полей BLOB, есть 16-ричный просмотр страниц базы и консоль кода. Можно использовать для изучения структуры файлов 1CD, просмотра баз 1CD для выявления повреждений, создания своих обработок для выгрузки данных без открытия исследуемой базы в 1С:Предприятии.

1 стартмани

07.10.2014    48145    197    GusevNA    75    

Консоль Внедренца v.3.6.1

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

27.08.2018    18341    319    evvakra    40    

HTTP Сервисы: Путь к своему сервису. Часть 3

Инструментарий разработчика Практика программирования v8 1cv8.cf Абонемент ($m)

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 2». В предыдущих частях мы использовали только Get, в этой части поговорим о других методах и длительных операциях.

1 стартмани

27.08.2018    28929    45    dsdred    13    

HTTP Сервисы: Путь к своему сервису. Часть 2

Инструментарий разработчика Практика программирования v8 1cv8.cf ERP2 УТ11 КА2 Абонемент ($m)

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 1». В этой части будет "Микс" из OData+HTTP-Сервис(Get)+СКД. Наш пример будет работать как в браузере, так и в написанной нами обработке. Работать будем с разными версиями платформ.

1 стартмани

13.08.2018    28105    31    dsdred    0    

Редактор объектов информационной базы 8.3 Промо

Инструментарий разработчика Универсальные обработки v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Универсальная внешняя обработка для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.45 от 01.05.2020

2 стартмани

23.01.2019    22413    245    ROL32    33    

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

Инструментарий разработчика Практика программирования v8 Абонемент ($m)

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    24330    25    informa1555    26    

На что действительно способны HTTP-сервисы

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

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

14.06.2018    33263    0    dalgaso2010    45    

Консоль HTTP-запросов с генерацией кода

Консоль запросов v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

25.05.2018    20999    251    leongl    16    

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019) Промо

Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Мобильная разработка Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ v8 v8::Mobile БУ УУ Абонемент ($m)

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    37000    241    informa1555    200    

Работа со схемой запроса

Инструментарий разработчика Практика программирования v8 v8::Запросы Абонемент ($m)

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

1 стартмани

24.04.2018    39741    83    kalyaka    34    

Тестирование: пример создания сценарного UI теста для платформы 1С

Инструментарий разработчика v8 ERP2 УТ11 Абонемент ($m)

В этой статье мы расскажем, как создать сценарный UI-тест. Опишем последовательность действий и покажем, как это сделать с использованием инструментария. Рассмотрим пример, максимально приближенный к боевому, покажем на примере конфигураций УТ11/ERP проверку бизнес-процесса "Продажа". Вы сможете убедиться, что создание сценарных тестов для платформы 1С на самом деле относительно быстрый и простой процесс.

1 стартмани

17.04.2018    18757    34    ivanov660    11    

Регистры правил [Расширение]

Инструментарий разработчика Информационная безопасность v8 v8::Права УТ11 Абонемент ($m)

Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

10 стартмани

15.03.2018    15650    7    33lab    1    

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

Инструментарий разработчика v8 КД Абонемент ($m)

При переносе данных между различающимися данными частенько приходится смотреть в правила. И часто, чтобы выяснить, к примеру, каким документом формируются остатки по конкретному ПВД, нужно заглядывать в него и искать, какое ПКО в нем вызывается. А может вызываться и алгоритм, в котором вызывается ПКО ;-) А если правил много? Чтобы не мучить себя утомительными поисками, предлагаю воспользоваться этой обработкой.

1 стартмани

14.10.2011    20661    29    Meta    17    

Тестирование интерфейса в обычном приложении 8.2 при помощи SikuliX

Инструментарий разработчика Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Как же не хватает клиента тестирования на платформе 8.2. Не кликнешь на кнопку, не выберешь из списка, не проверишь видит ли надпись пользователь. Воспользуемся внешним инструментом SikuliX, который позволит нам протестировать функционал форм. Данный инструмент легко встраивается в линию сборки и может "дружить" с уже известным многим Open-source продуктами.

1 стартмани

03.01.2018    26245    3    kraynev-navi    40    

Универсальный конструктор отчетов СКД (Управляемые формы, тонкий клиент)

Инструментарий разработчика v8 v8::УФ v8::СКД 1cv8.cf Россия Абонемент ($m)

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

3 стартмани

20.11.2017    22657    242    Boneman    22    

Программное формирование форматированной строки в стиле html+inline CSS

Работа с интерфейсом Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

18.11.2017    27409    30    bonv    9    

Интерфейс сопоставления объектов для обмена (для типового регистра СоответствиеОбъектовДляОбмена) Промо

Инструментарий разработчика Универсальные обработки Перенос данных из 1C8 в 1C8 v8 КА1 БП2.0 ЗУП2.5 УТ10 УПП1 Абонемент ($m)

Вы внедряете обмен данными между двумя типовыми или основанными на типовых БД и вам необходим инструмент, чтобы сопоставить между собой справочники этих конфигураций? Вы хотите навести порядок в обмене данными, потому что вам надоело вылавливать дублирующиеся объекты? Вам очень хочется перепоручить сопоставление объектов обменивающихся баз пользователям, но нет подходящего и понятного пользователям интерфейса? Тогда вам нужна именно эта обработка!

4 стартмани

11.11.2015    36027    131    catsam    8    

Макет в СКД - пример всех возможных типовых вариантов

Практика программирования Инструментарий разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

Макет СКД: наглядное представление того, что, как и куда выводится при типовых настройках.

1 стартмани

09.11.2017    19635    76    freelancer    4    

Полезный код для программистов 1С (часть 1). Управление свойствами элементов формы. Хранение копии данных реквизитов

Инструментарий разработчика Практика программирования v8 Абонемент ($m)

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

1 стартмани

24.09.2017    38810    15    vandalsvq    80    

Тестирование: пример из семи шагов создания Unit-теста для платформы 1С

Инструментарий разработчика v8 ERP2 УТ11 Абонемент ($m)

В этой статье мы расскажем, как создать Unit-тест. Опишем как это сделать с использованием Фреймворка xUnitFor1C. Рассмотрим пример максимально приближенный к боевому, покажем процесс отладки теста, поделимся советами и приложим несколько обработок-примеров. Вы сможете убедиться, что создание тестов на самом деле это относительно быстрый и простой процесс.

1 стартмани

29.08.2017    27270    16    ivanov660    46    

Exec - Выполнение кода, консоль запросов и не только! Промо

Консоль запросов v8 1cv8.cf Абонемент ($m)

Незаменимый инструмент администратора БД и программиста: Выполняйте произвольный код из режима 1С Предприятие; сохраняйте/загружайте часто используемые скрипты; выполняйте запросы с замером производительности запроса в целом и каждой из временных таблиц в частности, а также с просмотром содержимого временных таблиц; произвольным образом изменяйте любые объекты БД, редактируя даже не вынесенные на формы реквизиты и записывая изменения в режиме "ОбменДанными.Загрузка = Истина"; легко узнавайте ИД объектов БД; выполняйте прямые запросы к SQL с замером производительности и не только!

5 стартмани

10.11.2015    38644    75    catsam    11    

"Исследователь" планировщика 1С

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

10.08.2017    27258    120    new_user    33    

Трансформатор 1С - SQL

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка для представления SQL запросов в терминах 1С, с возможностью захвата SQL запросов трассировкой.  Поддерживается также форматирование текста запроса через интернет сервис. Работает в управляемых и обычных формах, в том числе на веб-клиенте.

1 стартмани

28.06.2017    32472    333    Synoecium    49    

OneStyle. Улучшенное форматирование кода в конфигураторе

Инструментарий разработчика v8 Абонемент ($m)

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

1 стартмани

19.06.2017    21595    22    Stepa86    45    

КонЗап - консоль запросов с улучшенным интерфейсом и дополнительными функциями Промо

Консоль запросов v8 1cv8.cf Абонемент ($m)

Консоль запросов (Платформа 8.х режим - обычное приложение) с улучшенным интерфейсом и дополнительными функциями (загрузка параметров запроса из файла, работа с временными таблицами, замер времени выполнения, групповая обработка результатов запроса). Часть функций позаимствованы из других обработок, часть разработаны "с нуля".

1 стартмани

16.07.2014    13449    20    serjpsv    18    

"Конвертация данных" + Git. Решение проблемы различий в файлах

Инструментарий разработчика Обмен через XML v8 КД Абонемент ($m)

Как известно, типовая конфигурация «Конвертация данных» обладает одним недостатком, мешающим работать с ней в Git-е. Если выгруженные из нее правила обмена загрузить в другую КД, а потом снова выгрузить, то полученные два файла будут очень сильно отличаться друг от друга, и при сравнении (diff) доработок будет невозможно провести код-ревью, равно как найти сами изменения, которые закоммитил разработчик.

1 стартмани

08.06.2017    22476    39    stas_ganiev    13    

Шаблон внешней обработки регламентного задания с формой настройки параметров выполнения

Инструментарий разработчика Универсальные функции v8 v8::УФ 1cv8.cf Абонемент ($m)

Шаблон внешней обработки призван упростить программисту процесс реализации внешнего регламентного задания. Пригоден к использованию во всех конфигурациях на управляемых формах, в которых присутствует подсистема "Дополнительные отчеты и обработки" из состава библиотеки стандартных подсистем (БСП) версии 2.1 и выше.

1 стартмани

28.05.2017    22906    164    Bassgood    10    

Набор подсистем "Умные таблицы"

Инструментарий разработчика v8 Беларусь Россия Казахстан Абонемент ($m)

Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.

1 стартмани

22.05.2017    30386    94    Silenser    33    

Регулярные выражения – это просто. Построитель и отладчик регулярных выражений

Инструментарий разработчика Практика программирования v8 1cv8.cf Абонемент ($m)

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

1 стартмани

13.03.2017    27769    110    romasna    49