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

Публикация № 1799875 30.01.23

Разработка - Мобильная разработка

Юрий Лазаренко, ведущий разработчик компании «Цифровой кот», на конференции Infostart Event 2021 Post-Apocalypse рассказал, как устроен самодельный веб-клиент, и какие практические приемы помогут эффективно интегрировать сайт с базой 1С.

О своем веб-клиенте я на Infostart Event рассказывал уже три раза:

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

 

Компромисс. Что общего между Кадиллаком и веб-клиентом для 1С?

 

 

Я автомобилист, вожу машину с 1992 года. Права получил в 1994-м. На слайде представлены 2/3 моего автопарка. Как видите, у меня было очень много всяких разных машин, я долго подбирал себе что-то подходящее – менял машину в среднем каждые два года, потому что обязательно находился какой-то фатальный косяк.

 

 

Последние 7 с лишних лет я катаюсь на таком Кадиллаке. Это уже морально устаревшая модель, на таких давно никто не ездит, но мне он нравится – «зашел», что называется.

 

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

Но у этой машины есть недостаток, который мне не нравится.

И дело не только в том, что запчасти на него стоят в 10 раз дороже, чем на Ладу Весту. И не в том, что он жрет 20 литров – это приемлемо.

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

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

Чтобы сделать это на Кадиллаке, нужно потратить минимум два часа и 11 тысяч рублей, потому что, чтобы заменить лампочку на Кадиллаке, его сначала нужно привести в сервис, там поднять на подъемник, открутить бампер, снять бампер, открутить фару, снять фару. И только тогда можно достать лампочку. Потом то же самое нужно сделать и для второй фары, потому что обычно лампочки выгорают парами – если одну поменял, значит, сразу нужно и вторую менять.

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

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

 

 

При этом меня душит жаба, потому что обслуживать Бентли очень дорого.

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

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

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

Я понимаю, что хорошие вещи стоят дорого, и я готов за новую машину заплатить, как за новый Кадиллак. Но мне хотелось бы, чтобы у нее были мощность, комфорт и понты Бентли, а обслуживание – как у Лады Приоры. Чтобы ее можно было, если она на дороге сломалась, тут же починить и поехать дальше.

И если в мире автомобилей это – утопия, то в мире 1С таким компромиссом является собственный веб-клиент на 1С.

 

Преимущества собственного веб-клиента. Скидки в браузере одним запросом

 

 

Например, у вас есть компания, которая продает товары оптовикам – тысяча постоянных клиентов, 10 000 товаров, 15 видов цен, 3 вида скидок, 15 типовых соглашений, у 20% клиентов – индивидуальные соглашения.

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

 

 

А теперь посмотрите, как это делается в собственном веб-клиенте.

Если мы кликнем на ссылку «Рассчитать скидки», то видим, что там вызывается функция JavaScript «РассчитатьСкидки()». Идем в нее – и там, обратите внимание, всего одна строка, которая вызывает функцию «Рассчитать скидки» общего модуля.

 

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

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

 

Реалии стандартной интеграции 1С и веб-сайта

 

 

Но, когда вы хотите запустить WordPress + 1C + Обмен, разработчиков должно быть как минимум двое – 1С-ник и веб-программист.

А чаще всего, над ними нужен еще и третий, потому что эти двое обычно договориться не могут, и нужен третий, который их поставит и скажет: «Любитес!».

И это еще не все – чаще всего, нужен еще и фронтендер.

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

 

 

Потом они еще долго будут договариваться – спихивать друг на друга ответственность за возникающие проблемы: «Мы вам отправили JSON, а от вас ничего не пришло».

И за все то время, пока они не договорятся друг с другом, им нужно платить.

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

 

Как безопасно выставить базу в интернет

 

 

Что такое в принципе свой собственный веб-клиент на 1С?

 

Это подсистема, в которой есть HTTP-сервис, принимающий запросы от JavaScript, обрабатывающий их и возвращающий обратно в HTML. В принципе, все довольно просто.

 

Веб-клиент может использоваться в двух режимах:

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

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

Эти режимы работы отличаются.

 

 

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

 

 

А при работе в интрасети – когда мы не используем промежуточный сайт – оранжевые значки HTML и JS у нас попадают на тот же веб-сервер, где опубликована база 1С.

Это – два основных отличия, но они очень много означают.

 

Авторизация: с помощью 1С или собственный алгоритм – в чем различия

 

 

Вход в базу, естественно, начинается с ввода логина и пароля.

 

 

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

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

 

 

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

При работе через промежуточные скрипты у нас создается справочник, который называется «Авторизация пользователей». Там есть реквизиты «Логин», «Пароль» и ссылка «Объект информационной базы». Это – ссылка на произвольный справочник базы – на справочник «Контрагенты», «Партнеры». Если у нас это кабинет партнера, логично, что мы здесь сразу укажем партнера, который у нас залогинился.

 

 

У этого алгоритма авторизации есть свои плюсы:

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

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

Минус у него такой:

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

 

 

Есть два основных варианта, которые позволяют задать этого пользователя:

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

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

 

Преимущества работы через служебного пользователя

 

 

Чем так хорошо работать через служебного пользователя?

Когда кто-то подключается к базе через HTTP-сервис, на сервере создается сеанс, который называется «Соединение HTTP-сервиса».

Представьте, что это кафе на рисунке – ваш сервер, в котором по умолчанию четыре «кассы», больше он не вмещает. Пока никто не подключился, сеансов нет.

 

 

Может быть, вы замечали, когда через HTTP-сервис первый раз к базе подключаешься, она долго тупит – 3-5 секунд. И только потом появляется результат. Знаете, почему так?

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

 

Клиент ушел, но «касса» при этом остается работать. Т.е. сеанс у вас не гасится. А это означает, что если к вам заходит следующий клиент, то база готова принимать его запросы сразу.

 

 

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

 

 

Если вдруг так получилось, что пришло одновременно два запроса – не проблема, поднимается вторая «касса».

 

 

И так далее до тех пор, пока ваш «ресторан» не заполнится полностью.

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

 

 

Получается, что следующие клиенты – следующие HTTP-запросы – становятся в очередь.

С точки зрения 1С это выглядит так, что вы пытаетесь нажать кнопку, открыть форму, там колесико загрузки крутится, но форма не открывается. И пока предыдущие «черные» запросы не отработают, «красные» у нас в очереди не продвинутся.

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

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

А Иванов 1С запустил и ушел – у него автоматически каждые 60 секунд обновляется какая-то форма списка и не дает сеансу заснуть. Получается, что сервер забивается неработающими сеансами («кассирами»), которые место занимают, но ничего не делают.

 

 

Вот так выглядят открытые кассы на сервере 1С:Предприятие. Создаются сеансы, которые называются «Соединение HTTP-сервиса».

Вот этот скрин взят из моего доклада 2017-го года. Здесь сейчас поднято 5 сеансов. Как вы думаете, сколько реально пользователей через браузер работает здесь?

Это скриншот одновременной работы 1000 пользователей. Т.е. мультиплексирование здесь – 200, один кассир обслуживает сразу 200 пользователей. Нагрузка на сервер существенно отличается.

 

Безопасность

 

 

Поговорим немного про безопасность, потому что часто переживают: «Как же мы 1С выставим наружу, на нас же злодеи нападут!»

 

 

Если вы работаете в интрасети, у нас и так все от внешнего мира защищено – выставлять нестрашно.

Если вы работаете через промежуточный сайт, вы можете средствами вашей операционной системы настроить так, что запросы к HTTP-сервису будут приниматься только от того IP, где находится ваш промежуточный сайт. Тогда никакие бармалеи с других IP-шников в вашу 1С не попадут.

К тому же зачем вам публиковать полностью всю базу? Вы публикуете только HTTP-сервис – не публикуете тонкий, веб-клиент, OData и все остальное. А работа через HTTP-сервис подразумевает, что в его модуле еще есть код, вы в коде можете свои проверки добавить.

 

 

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

 

Передача ссылки из 1С в браузер и обратно

 

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

 

 

Если мы в автоподборе выбираем элемент, его наименование помещается в реквизит «Номенклатура», а цена этого товара выводится в поле «Цена».

Получается, что сначала мы в реквизит положили ссылку и представление выбранного элемента, а потом у нас сработало событие «При изменении реквизита», выполнился запрос к серверу, который получил цену для этой номенклатуры и положил ее в реквизит «Цена».

 

 

Как это делается?

В 1С это реализуется очень просто:

  • мы берем ссылку, кладем ее в функцию «ЗначениеВСтрокуВнутр», у нас получается строка, содержащая служебные символы;

  • чтобы избавиться от символов, выполняем функцию КодироватьСтроку();

  • далее – формируем из этого структуру, у которой есть два ключа – «Ссылка» и «Представление»;

  • упаковываем эту структуру в JSON и передаем на сайт – там у нас получается точно такая же структура.

 

 

Значения из этой структуры мы кладем в элемент HTML-формы input.

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

 

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

 

Как выполнить бесконтекстный вызов функции 1С и обработать результат синхронно и асинхронно

 

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

 

 

В JavaScript есть объект XMLHttpRequest – это полный аналог 1С-ного HTTP-запроса.

 

У нас есть структура данных строки – она так и называется «ДанныеСтроки». Мы ее упаковываем в JSON и выполняем функцию ПолучитьДанныеИз1С() – код этой функции можно посмотреть на нашем демо-сайте, если вызвать F12 и изучить текст скрипта v-can_site.js. Не передирайте скрипты подчистую для собственного использования, все-таки они у нас под авторскими правами, но посмотреть, как они работают – пожалуйста.

 

Что происходит после того, как мы вызываем эту функцию:

  • сначала в самой верхней строке мы превращаем эту структуру в настоящую ссылку;

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

  • потом – превращаем все эти значения обратно в структуру и возвращаем ее назад.

15 строк кода, и у нас все работает.

 

Как правильно сгенерировать веб-форму

 

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

Но это в теории. На практике мы передаем HTML-код, и это та самая штука, из-за которой настоящие веберы меня давно хотят убить.

 

 

Я часто представляю, что иду по коридору, и веберы меня с двух сторон зажимают: «Лазаренко, ты что, формы передаешь в виде готового HTML? Это как?»

 

 

Как передать форму из 1С в браузер?

Вариант № 1: Мы в 1С из шаблонов собираем готовый HTML-код. Т.е. у нас в 1С, если мы передаем таблицу, есть шаблон шапки, шаблон строки, шаблон подвала таблицы. Мы это все компонуем в коде 1С и кидаем в виде готового HTML.

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

 

 

Они считают, что правильнее использовать вариант №2 – брать структуру данных, упаковывать в JSON, закидывать на клиент, где есть Vue, React и другие фреймворки, которые все это собирают.

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

На это веберы начинают мне возражать: «А как вы с помощью такого древнего способа будете обеспечивать 100 тысяч запросов в час?»

Да никак! Потому что мне это не нужно!

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

  • Также есть привычная схема – WordPress, база 1С и обмен между ними. Она тоже прекрасно выполняет свои функции.

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

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

Мне для выступления нужна была штука для дачи с загогулиной на конце, и я попросил у терминатора привезти мне ее. Он мне на мою просьбу привез шотган, который мне пригодится только в параллельной реальности, если у меня на даче случится зомби-апокалипсис. Точно так же Vue, React и все остальное мне пригодятся только тогда, когда на меня повалится 100 тысяч HTTP-запросов в час, от которых нужно отстреляться.

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

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

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

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

 

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

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

Зачем нам Бентли, если нам нужно на дачу ездить?

 

Применение варианта №2 мне понадобилось только в двух случаях – это:

  • Загрузка таблиц с большим количеством колонок. Однажды мы столкнулись с тем, что при загрузке очень широкой таблицы, она очень долго собиралась в HTML. Поэтому нам было выгоднее JSON закинуть на клиента и там собрать эту табличку средствами JavaScript. Это намного быстрее работало. Но это – один случай из тысячи.

  • И второй раз пригодилось, когда была нужна загрузка большого количества иконок.

 

Формируем отчет с параметрами, отображаем в браузере и скачиваем в xls и pdf

 

 

Расскажу еще один кейс – как мы формируем печатную форму

 

 

Распространенная задача – сделайте так, чтобы можно было в списке кликнуть, сформировать печатную форму, нажать «Скачать», и она у нас в виде PDF-файла скачалась.

 

В табличной части у нас есть строка – элемент tr. У него есть атрибут ref – ссылка.

Когда мы в этой строке нажимаем на иконку печати, вызывается функция Взаиморасчеты_ПечатьНажатие().

 

 

В ней мы извлекаем атрибуты текущей строки списка:

  • doctype – это строка «Счет покупателю»;

  • ref – ссылка на конкретный документ.

Компонуем из этого структуру в виде JSON и передаем ее в 1С – мы уже знаем, как это делается.

 

 

На слайде показана вся функция, которая отвечает за формирование печатной формы. Она состоит из двух основных частей.

 

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

 

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

  •  

Как сделать из табличного документа печатную форму? Элементарно.

Табличный документ записываем в файл с типом HTML5.

При чтении его текстовым документом получаем готовый HTML. Достаточно просто кинуть его на просмотр в браузер, и он нам его нормально отобразит.

 

 

А чтобы скачать, нужно сделать примерно то же самое, только сохранить файл не HTML5, а в PDF, и вернуть его в виде двоичных данных.

Все это в целом – два часа работы.

 

Важный момент, который стоит помнить: когда вы формируете печатную форму с помощью СКД, у пользователя должны быть права не только на чтение, но и на просмотр объектов.

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

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

В интрасети при авторизации средствами 1С работать будет.

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

 

«Начинаю продолжать заканчивать» – что не так с закачиванием файлов в 1С?

 

 

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

 

Под тяжелыми HTTP-запросами я подразумеваю передачу файлов. Например, тяжелым HTTP-запросом может быть запрос длиной больше 4 Кб.

Многие пытаются закинуть данные в 1С через HTTP-сервис методом GET. А у большинства HTTP-серверов стоит ограничение, что длина тела HTTP-запроса, отправленного методом GET, не может быть больше 4Кб, он ее просто обрезает. Поэтому первая фишка – передавайте запрос методом POST.

При этом, если мы методом POST через XMLHttpRequest передаем какой-нибудь небольшой файл (например, размером 100 Кб), у нас данные до HTTP-сервиса 1С доходят примерно через секунду.

 

 

Но, когда мы передаем файлы от 3Мб, файл передается в платформу 1С, но на точке останова у нас ничего нет. Потом проходит 30 секунд, и данные приходят. Т.е. файл загрузился куда-то в платформу 1С, но там есть какое-то непонятное пространство, где большие файлы застревают. Такое ощущение, что на месте этой красной стрелки Суэцкий канал, в котором судно Evergreen перекосило, приезжают 1С-ные фиксики в желтых футболках и желтым экскаватором его раскапывают. Он там 50 секунд висит.

 

 

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

 

 

Решение – простое до элементарности. Оказывается, если один и тот же файл пихать в 1С напрямую, она ответит: «Нет, подожди 50 секунд». Но если ей сказать: «Скачай этот файл», она его идет и качает за одну секунду.

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

Все это занимает примерно 2.2 секунды.

 

 

 

 

Статья написана по итогам доклада (видео), прочитанного на конференции Infostart Event 2021 Post-Apocalypse.

Больше статей можно прочитать здесь.

Приглашаем на мероприятия Инфостарта 2023 года:

  • 25-27 мая, Анализ & Управление в ИТ-проектах - первая практическая конференция для аналитиков и руководителей проектов, 30% докладов и 70% практических сессий.
  • 11-13 октября, Infostart Event 2023 - самое масштабное событие в сфере 1С-индустрии, 1000+ участников, 130+ докладов.

 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Darklight 30 01.02.23 16:36 Сейчас в теме
Хороший доклад. Хоть и в начале, на мой взгляд, слишком много времени выделено общему описанию бизнес-задачи, архитектуры веб взаимодействия и безопасности. Что-то боле менее стоящее начинается только со второй половины доклада.
По изложенному могу лишь поспорить с проблемой применения реактивных фреймворков и сборкой HTML страницы на стороне браузера. На мой взгляд - при правильной реализации всю эту стороннюю фреймворкность вполне можно скрыть с глаз программистов 1С - просто передав им API чёрного ящика, реализованного на 1С (а на случай проблем внутри чёрного ящика - делать его хорошее тестирование, и иметь спеца на горячей линии поддержки, ну а при желании со временем и рядовые 1С смогут ковырять и исправлять этот чёрный ящик). На стороне web-клиента, уж нужно постараться минимизировать технические проблемы.

И ещё "мультиплексирование" сеансов вроде бы запрещено лицензионной политикой компании 1С. Т.е. схема работы через выделенного пользователя вполне может нарушать лицензионное соглашение. Хотя тут много нюансов - ведь при работе через WEB лицензии всегда выделяются на сеанс, а не на пользователя - т.е. один и тот же пользователь-робот но в 5 сеансах всегда займёт минимум 5 лицензий (и больше ему то и не требуется). И никакой параллельной работы свыше заданных 5 слотов обслуживания не будет - остальные пользователи буду стоять в очереди, пока не закончится обслуживание запросов предыдущих. Это классическая web-схема. Вот только она всё-равно вроде бы нарушает лицензионное соглашение 1С - которое в этой части составлено очень жёстко!
4. TitanLuchs 344 01.02.23 22:13 Сейчас в теме
(1) Добрый вечер! Спасибо за оценку. В данном докладе мы решили проверить некоторые новшества, не все они оказались эффективными, как показала обратная связь. Последующие доклады уже были подготовлены с учетом замечаний аудитории.
По сути доклада.

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

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

И ещё "мультиплексирование" сеансов вроде бы запрещено лицензионной политикой компании 1С

Не запрещено. Просто для всех пользователей, которые одновременно работают с порталом, должен быть запас клиентских лицензий.
11. Darklight 30 02.02.23 14:10 Сейчас в теме
(4)Я сейчас хочу пойти другим путём - сделать готовые "компоненты" а-ля 1С (с использованием современных реактивных фреймворков). И генерацию выходной формы по xml форме в формате 1С. А на втором этапе прикрутить конвертер кода 1С клиентского контекста в код целевой платформы и сделать хотя бы основные классы прикладных объектов, доступные в клиентском контексте. На третьем этапе сделать автогегнерцию прокси для клиент-серверного взаимодействия и его автовстраивание. В идеале - форма из 1С сможет перейти на другую целевую платформу в почти неизменном виде. А её разработка может остаться в лоне платформы 1С Предприятие. Но таковы пока только планы (хотя один ключевой компонент я уже почти разработал)... Но раз фирма 1С это делает для WEB клиента и для Мобильного клиента - то это реально сделать и сторонним разработчикам. Пока меня особо смущает только реализация компонента для табличного документа. Для моего эго статической таблицы явно не достаточно! Но до этого пока далеко - там видно будет. Может дело и не дойдёт - это уже моя вторая попытка такого проекта. Первый просто неудачно начал с платформы JavaScript - которую знаю плохо...
13. TitanLuchs 344 05.02.23 20:09 Сейчас в теме
(11) Задача непростая, но если получится - демонстрируйте, посмотрим.

(11)
Пока меня особо смущает только реализация компонента для табличного документа.

Гриды всегда были и всегда будут болью всех разработчиков интерфейсов.
19. Darklight 30 06.02.23 10:13 Сейчас в теме
(13)
Гриды всегда были и всегда будут болью всех разработчиков интерфейсов

Ну коммерческие решения а-ля свой EXCEL я уже видел - выглядит очень круто!
20. TitanLuchs 344 06.02.23 10:19 Сейчас в теме
(19) Мы тоже в 2016 году написали свой аналог Экселя для 1С: с формулами, взаимодействием с СУБД 1С, разграничением прав и прочими фишками. Часов на это дело было положено столько, что сейчас уже и не сосчитать.
2. van_za 184 01.02.23 16:46 Сейчас в теме
Всем привет!


"В ПараметрыСеансы.ТекущийПользователь у вас всегда будет какой-то служебный пользователь" - переопределяем на пользователя которого мы получили собственной авторизацией

"3Мб, файл передается в платформу 1С, но на точке останова у нас ничего нет. Потом проходит 30 секунд, и данные приходят" - попробуйте использовать возможности работы платформы с потоками (прием отдача картинки 1.2 м.б - 0.1 секунды)

" о помните, что мы разрабатываем свой софт в первую очередь для 1С-ников" - мне кажется не нужно так делать, это будут проблемы в первую очередь для конторы который внедрена система не имеющая аналогов, Фреймворк решает и проблемы с наймом и архитектурные проблемы и открывает возможности использования огромного количества библиотек и готовых решений.
5. TitanLuchs 344 01.02.23 22:25 Сейчас в теме
(2) Приветствую!


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

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


попробуйте использовать возможности работы платформы с потоками

Каким образом? Мы же не можем в коде 1С задействовать поток - код 1С не начинает выполняться, пока платформа не "переварит" файл где-то у себя внутри. Инициировать поток на стороне javascript? Возможно, это наш Epic fail и решение лежит где-то на поверхности, но мы его не видим. Если подскажете решение - буду признателен.


это будут проблемы в первую очередь для конторы который внедрена система не имеющая аналогов

Количество наших клиентов растет, уже даже начинает формироваться пока небольшое сообщество разработчиков, которые освоили наш конструктор веб-порталов. А библиотеки и заготовке на стороне фронта нам доступны точно так же, как и любому другому фреймворку, мы их активно используем при необходимости. При этом тот факт, что мы в свое время отказались от сторонних фреймворков, позволил нашим клиентам абсолютно безболезненно пережить события последнего года - нигде ничего не упало, не сломалось, не отказалось работать. Поэтому пока будем продолжать использовать данную архитектуру.
21. ONLYTILT 6 10.02.23 14:28 Сейчас в теме
(5)
попробуйте использовать возможности работы платформы с потоками

Я как то делал загрузку больших файлов с веб страницы в 1с, и там использовал загрузку порциями. Было вроде даже не сильно и медленно, но там задача была больше в надежности, загрузка должна была быть возобновляемой в случае например когда сеть прыгнет с 4g на 3g и т.д. На клиенте я нарезал файл на блобы методом slice, отправлял эту часть в 1с и через объект ЗаписьДанных записывал в поток уже существующую часть файла и ту что пришла. На клиент потом возвращалось количество полученных байтов (размер двоичных данных), и клиент соответственно нарезал файл дальше с полученной начальной позиции. Я бы сказал быстрее это чем получать файл целиком или нет, только я изначально задумывал возобновляемую загрузку и по этому даже в голову не пришло замерять что быстрее, возможно время которое платформа переваривает пришедший файл увеличивается нелинейно, тогда с моим подходом можно было бы даже получить выигрыш по времени.
3. alem 46 01.02.23 17:07 Сейчас в теме
(1)
И ещё "мультиплексирование" сеансов вроде бы запрещено лицензионной политикой компании 1С. Т.е. схема работы через выделенного пользователя


Привет,

вот этот момент тоже бы хотел раз и на всегда прояснить, можно так или нельзя? Если читать лицензионную политику - вроде нельзя. Есть ли реальные случаю когда 1с "пожаловалась " на такой сервис.
6. TitanLuchs 344 01.02.23 22:27 Сейчас в теме
(3) У нас есть ответ от компании 1С, где сказано, что владелец нашего веб-портала не нарушает лицензионного соглашения, если в наличии есть запас неиспользуемых в данный момент клиентских лицензий, превышающий или равный количеству одновременно работающих пользователей веб-портала.
7. van_za 184 01.02.23 23:12 Сейчас в теме
(5)
"Не всегда может работать корректно. Необходимо помнить, что на одном сеансе может работать одновременно несколько пользователей."
- не могу представить что каким то образом установленный параметр сеанса может измениться в однопоточной системе, если есть пример просьба привести, не понятно.
8. TitanLuchs 344 01.02.23 23:22 Сейчас в теме
(7) При подключении http-сервиса будет поднят сеанс, у которого в ПараметрыСеанса.ТекущийПользователь будет содержаться пользователь, указанный, например, в default.vrd. Неважно, какой это пользователь, пусть Иванов ИИ. Вы предлагаете переопределить этого пользователя в какой-то момент? Чтобы в ПараметрыСеанса.ТекущийПользователь был Петров ПП? Или я неправильно понял?
9. van_za 184 01.02.23 23:30 Сейчас в теме
(8) в методе авторизации который вы используете поверх 1с ного
устанавливаете Петров ПП и все будет хорошо. по крайней мере я так думаю :)
10. TitanLuchs 344 01.02.23 23:34 Сейчас в теме
(9) Теоретически - да. Необходимо проверять на разных сценариях.
12. пользователь 05.02.23 18:19
Сообщение было скрыто модератором.
...
14. пользователь 05.02.23 20:11
Сообщение было скрыто модератором.
...
15. пользователь 06.02.23 06:22
Сообщение было скрыто модератором.
...
16. пользователь 06.02.23 09:10
Сообщение было скрыто модератором.
...
17. пользователь 06.02.23 09:59
Сообщение было скрыто модератором.
...
18. пользователь 06.02.23 10:11
Сообщение было скрыто модератором.
...
22. TitanLuchs 344 10.02.23 14:34 Сейчас в теме
(21) Мы обнаружили взаимосвязь между размером файла и задержкой, которая предшествует его загрузке. Поэтому ваш метод скорее всего даст существенный выигрыш времени.
Оставьте свое сообщение

См. также

"Штрихкод-информер" - мобильный ТСД и прайс-чекер в смартфоне

Мобильная разработка Сканер штрих-кода Терминал сбора данных Розничная торговля Управляемые формы Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн. Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

2880 руб.

03.12.2018    48043    101    98    

135

Что нам стоит бота построить? Нарисуем - будет жить! Графический конструктор телеграм-ботов

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С (есть сертификат 1С:Совместимо) и специалистами ООО "Инфостарт" (см. комментарии). Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 руб.

27.12.2021    24533    61    129    

151

"Мобильный ТСД" - инвентаризация и сбор штрихкодов для iOS и Android

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Платформа 1С v8.3 Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный терминал сбора данных для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    82952    413    185    

261

Склад 15 - программа для подключения ТСД к 1С

Учет ТМЦ Сканер штрих-кода Терминал сбора данных Мобильная разработка Управление складом и логистикой (WMS) Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

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

3450 руб.

28.04.2023    4482    2    0    

1

Виды асинхронности и фоновых заданий в Simple (памятка)

Мобильная разработка Мобильная платформа Абонемент ($m)

Асинхронность и фоновая работа в мобильном или ином фронт-сайд приложении нужна для того, чтобы не заставлять пользователя ждать, сгладить неловкие моменты выполнения долгих обработчиков и таким образом повысить юзабилити. В Simple существует широкая гамма средств для выполнения фоновых и асинхронных вызовов. Эта статья - своеобразная памятка по их использованию. В статье сделан акцент даже не на том, как это будет выполняться в фоне, а как будет взаимодействовать с пользовательским интерфейсом по мере выполнения. Ну и попутно показана работа с распознаванием речи и встроенным в клиенты веб-сервером. Дополнение к статье https://infostart.ru/public/1153616/

1 стартмани

23.05.2023    891    informa1555    7    

12

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

Работа с интерфейсом Мобильная разработка Мобильная платформа Бесплатно (free)

Чтобы разработать стильное мобильное приложение на 1С, достаточно научиться верстать адаптивные интерфейсы на HTML и задействовать возможности JavaScript (JQuery). О том, как сделать на 1С красивое и современное мобильное приложение для отслеживания клиентами начисленных бонусов и отправки сообщений сотрудникам компании, на конференции Infostart Event 2021 Moscow Premiere рассказал разработчик компании ООО СТХ-Менеджмент Максим Литвинов.

19.05.2023    2294    maksa2005    38    

37

Пакет обновлений SimpleUI. Апрель 2023

Мобильная разработка Мобильная платформа Бесплатно (free)

Новые функции мобильной платформы Simple в релизе 11.42. Дополнение к статье https://infostart.ru/public/1153616/

05.04.2023    1393    informa1555    1    

32

Архитектура 2.0 в Simple UI

Мобильная разработка Мобильная платформа Бесплатно (free)

11-й релиз платформы – своего рода перезагрузка проекта, внедрение новой архитектуры, новых принципов, которые должны стать базой для дальнейшего развития платформы. Цель – сделать мощнее и гибче, но одновременно проще и понятнее, сократить объем необходимой документации, сделать концепцию более целостной и логичной. Дополнение к статье https://infostart.ru/public/1153616/

03.02.2023    2253    informa1555    21    

28

Особенности разработки нативного мобильного приложения с бэкендом на 1С

Мобильная разработка Бесплатно (free)

Иногда команде 1С-ников, обслуживающей продукт, приходится привлекать к созданию мобильного приложения специалистов по нативной разработке и выстраивать с ними сотрудничество. О нюансах такого сотрудничества и технических решениях, обеспечивающих взаимодействие 1С и нативного мобильного приложения, на Infostart Event 2021 Post-Apocalypse рассказал директор центра облачных решений АО Арбис Матвей Серегин.

19.01.2023    1796    Akcium    5    

19

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

Мобильная разработка Мобильная платформа Бесплатно (free)

Олег Репников, руководитель департамента развития систем дистрибуции в ПАО «Вымпелком», рассказал о том, с какими сложностями можно столкнуться при внедрении в компании мобильного клиента: о реорганизации архитектуры решения, необходимости перестроения мышления всей команды разработки, и о том, что плохой код – враг мобильного клиента.

16.01.2023    1667    Repich    0    

13

Мобильное приложение 1С и Умный дом. В каждый дом. Пролог

Идеи и тренды в разработке Мобильная разработка Мобильная платформа Конфигурации 1cv8 Абонемент ($m)

Хотите попробовать свои силы в разработке собственного мобильного приложения на 1С для управления светом и электроприборами в своём доме? Добро пожаловать! Хочу поделиться собственными наработками в этой области. Это будет приложение, разработанное для мобильных устройств на базе Android. Основное предназначение: управление включением/выключением устройств, работающих от сети 220 V (свет, телевизор, чайник, вентилятор, микроволновка и т.д.). Управлять будем: из приложения, голосом, на заданный промежуток времени, интенсивностью света, расписанием работы.

1 стартмани

19.12.2022    1381    osivv    8    

20

Новый SimpleWEB – тот же Simple, теперь еще web

WEB-интеграция Мобильная разработка Мобильная платформа Бесплатно (free)

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

19.12.2022    2871    informa1555    9    

39

Как на мобильной платформе 1С сделать игру. Расширяем возможности через Поле HTML Документа

Мобильная разработка Мобильная платформа Бесплатно (free)

Как вы считаете, можно ли создавать игры на мобильной платформе 1С? Независимый разработчик Никита Вельмаскин убежден – да, можно. На Infostart Event Post-Apocalypse он продемонстрировал, как работают гибридные приложения на мобильной платформе 1С и дал исходники игры, чтобы изучить все возможности веб-технологий применительно к мобильной разработке в 1С.

14.12.2022    4711    maskin    5    

37

Пакет дополнений к Simple UI. Ноябрь 2022

Мобильная разработка Мобильная платформа Бесплатно (free)

На этот раз сборная солянка, всего понемногу, но полезное: еще одна итерация улучшений по спискам, возможности кастомизации элементов интерфейса, специальные возможности для Urovo, общие возможности управления видимостью и даже новый вид события. Данная статья является дополнением к публикации https://infostart.ru/public/1153616/

21.11.2022    1566    informa1555    0    

18

Векторная графика в Simple UI. Октябрь 2022

Мобильная разработка Бесплатно (free)

В симпл добавлена возможность использовать в экранах векторные графические объекты, нарисованные в векторном редакторе или сгенерированные из кода, управлять ими из обработчиков (онлайн и оффлайн) и многое другое, с этим связанное. Дополнение к основной статье https://infostart.ru/public/1153616/

04.10.2022    1181    informa1555    15    

12

Особенности использования мобильной платформы на крупных предприятиях

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

Разработчик «Первый БИТ.Савеловский» Валерий Дыков на конференции Infostart Event 2021 Post-Apocalypse поделился своим опытом использования мобильной платформы 1С на примере крупного предприятия «Кордиант». Он рассказал, как удалось реализовать мобильное приложение для офлайн-работы с маркированными товарами, с какими проблемами столкнулись разработчики, и как их удалось решить.

02.09.2022    2630    Begemoth80    0    

13

Печатные формы, отчеты, HTML,JS в новом релизе SimpleUI. Август 2022.

Мобильная разработка Работа с интерфейсом Бесплатно (free)

В новом релизе решена тема печатных форм или в общем смысле выходных форм, причем сдельно это очень и очень просто. С 1С переучиваться не придется. А HTML и JS в «экранах» это попутный результат - теперь можно размещать HTML в контейнерах. Основная статья и комплект разработчика тут: https://infostart.ru/public/1153616/

29.08.2022    2934    informa1555    4    

29

Пакет обновлений SimpleUI Июль 2022

Мобильная разработка Бесплатно (free)

Обновление по большей части касается списков. Списки, карточки – важнейший элемент интерфейса для мобильных устройств и сколько ни добавляй возможностей – все мало. Также решено еще несколько задач. Данная статья является дополнением к статье https://infostart.ru/public/1153616/. Комплект разработчика можно скачать там.

22.07.2022    1834    informa1555    1    

20

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

Мобильная разработка Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Казахстан Абонемент ($m)

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

1 стартмани

07.06.2022    5608    18    3dice    8    

17

Новое приложение конструктора SimpleUI

Мобильная разработка Бесплатно (free)

Проект Simple UI обзавелся новым, самостоятельным инструментом создания/редактирования конфигураций с множеством улучшений. Также претерпели изменения сама архитектура решений и разработки. Основная статья, где содержатся файлы, тут: http://infostart.ru/public/1153616/

19.04.2022    2784    informa1555    20    

22

Настройка рабочего места для мобильной и веб-разработки в 1С для самых маленьких

Мобильная разработка Мобильная платформа Россия Бесплатно (free)

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

18.04.2022    9012    AntonChausov    16    

110

Новые подходы к дистрибуции решений Simple UI, GitHub, переопределение меню и другое

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

Множество полезных новшеств для Simple UI, в основном направленных на управление конфигурациями. Но также, например, по многочисленным просьбам решен вопрос с меню. Дополнение к основной статье https://infostart.ru/public/1153616/

02.02.2022    1837    informa1555    10    

11

Использование ORM вместо работы с чистым SQL

Мобильная разработка Мобильная платформа Бесплатно (free)

Маленькая заметка про небольшой, но полезный релиз Simple UI. Дополнение к основной статье https://infostart.ru/public/1153616/

25.11.2021    3507    informa1555    10    

27

1Scan. Интеграция веб-клиента 1С с устройством Android (смартфон, планшет, ТСД)

Мобильная разработка WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

15.11.2021    11091    39    kild    33    

30

Внешняя компонента для мобильного приложения

Разработка внешних компонент Мобильная разработка Мобильная платформа Россия Абонемент ($m)

Внешняя компонента для дополнения мобильной платформы некоторыми функциями.

1 стартмани

02.11.2021    9055    29    Prometeus2011    45    

37

Мобильное приложение на 1С без никого... За полчаса...

Мобильная разработка Платформа 1С v8.3 Бесплатно (free)

Мобильное приложение на коленке за полчаса без никого...

27.10.2021    18434    starik-2005    62    

132

Пакет обновление Simple UI Август 2021. Новый формат и новые возможности.

Мобильная разработка Бесплатно (free)

Много новых возможностей, уборка лишнего хлама и решение насущных проблем. Дополнение к основной статье Simple UI: https://infostart.ru/public/1153616/

23.08.2021    1237    informa1555    7    

14

Распознавание лиц

Мобильная разработка Мобильная платформа Бесплатно (free)

В новом релизе в режим дополненной реальности ActiveCV в платформе Simple UI добавлен новый тип детектора - распознавание лиц. Платформа детектирует лица в кадре, оправляет их на ваш сервер распознавания (написанный на открытом скрипте на python) получает ответ в виде идентификатора, а дальше отображает в видеопотоке и вписывает их в логику вашего приложения. Таким образом хранение семплов, выбор и настройки алгоритмов распознавания и сам сервер находится за пределами платформы, открыт и построен на бесплатных технологиях. Данный пост является дополнением к основной статье https://infostart.ru/public/1153616/

26.07.2021    3770    informa1555    9    

39

Распознавание речи в мобильном приложении 1С на Android

Мобильная разработка Разработка внешних компонент Мобильная платформа Абонемент ($m)

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

1 стартмани

15.07.2021    10207    9    salexdv    6    

36

Мобильное приложение для учета личных финансов

Работа с интерфейсом Мобильная разработка Мобильная платформа Домашние учет и финансы Россия Управленческий учет Бесплатно (free)

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

08.07.2021    4051    coollerinc    23    

12

Новая система хранения в Simple UI. Это все меняет.

Мобильная разработка Бесплатно (free)

Новая система хранения и синхронизации создания для того, чтобы радикально (в разы) упростить процесс разработки оффлайн-решений и открыть путь к созданию более гибких и мощных самостоятельных конфигураций. Она базируется на принципах NoSQL и JSON и идеально вписывается в архитектуру платформы. Теперь работать с хранимыми данными можно как с обычными переменными. Это, хоть и не слишком заметное, но важное событие, важная веха в развитии продукта. Эта статья является дополнением к основной статье по Simple UI: https://infostart.ru/public/1153616/

28.06.2021    10082    informa1555    3    

14

Фоновый сервис событий в Simple UI. Релиз Июнь 2021

Мобильная разработка Платформа 1С v8.3 Бесплатно (free)

В новом релизе появился постоянно висящий в памяти сервис для обработки внешних событий – штрихкодов, голосового ввода, сообщений от других программ и внутренних процессов. Который может управлять программой поверх стандартных процессов – что то спрашивать голосом, что то озвучивать(ассистент), показывать диалоги, запускать процессы и экраны, отправлять управляющие команды. С помощью этого можно получить многоплановый интерфейс и более удобное взаимодействие с пользователем не только через экран и ввод, но и с помощью событий голосового ввода и других средств взаимодействия. Эта статья является дополнением к основной статье по Simple UI: https://infostart.ru/public/1153616/

15.06.2021    3179    informa1555    0    

18

Мобильный сканер и ТСД для сбора штрихкодов, кодов маркировки и просмотра информации о них

Кассовые операции Сканер штрих-кода Терминал сбора данных Мобильная разработка Платформа 1С v8.3 Оперативный учет 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Бесплатно (free)

Расширение для 1С:УТ 11, КА 2, ERP 2, реализующее взаимодействие 1С с мобильным приложением "Штрихкод Коммандер", доступном в AppGallery (рекомендуется в России) и в Google Play на смартфонах и Терминалах Сбора Данных. Расширение публикует HTTP-сервис, благодаря чему при сканировании штрихкодов (например, кодов маркировки GS1 Data Matrix, EAN) на устройстве в приложении "Штрихкод Коммандер" моментально видны актуальные цены и остатки, а в учетной системе возможно заполнение табличных частей товаров в документах и обработках.

07.06.2021    9948    196    Tamadosky    25    

27

Мобильное приложение на 1С?

О жизни Мобильная разработка Мотивация, лидерство и личная эффективность Бесплатно (free)

История одного программиста, как он пришел в мир 1С и какой проделал путь к «мобильной платформе 1С». Какие выводы он для себя сделал, поработав с «мобильной платформой 1С».

18.05.2021    10128    dsdred    91    

52

Релиз Simple UI май 2021: плиточные экраны, плиточное главное меню, картинки из кеша, новое взаимодействие с ТСД и т.д.

Мобильная разработка Мобильная платформа Бесплатно (free)

В релизе Simple UI 5.75.00 добавлен новый вид интерфейса – «плитки» и возможность переопределения стартового экрана, а также другие нововведения. Также важное нововведение - новый режим взаимодействия с некоторыми моделями ТСД - через подписку на сообщения. Дополнение к основной статье: https://infostart.ru/public/1153616/

17.05.2021    3593    informa1555    0    

22

Режим дополненной реальности ActiveCV и его применение в конфигурациях. UPD:Добавил еще один пример

Мобильная разработка Мобильная платформа Абонемент ($m)

Новый режим дополненной реальности/компьютерного зрения может дополнить или даже заменить традиционный интерфейс – он организует непрерывный процесс работы в котором с видеопотока снимается все необходимое , обрабатывается в обработчиках и тут же рисуется на видеопотоке (как бы в дополненной реальности). Можно использовать как в онлайн-конфигурациях с обработкой в 1С, так и самостоятельных конфигурациях с обработчиками на Python. Настоящая статья является дополнением к основной статье по платформе Simple UI https://infostart.ru/public/1153616/

1 стартмани

20.04.2021    6300    informa1555    15    

86