Как я собрал для себя высокопроизводительный и бесплатный облачный бекенд для 1С на PosgreSQL + PostgREST

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

Администрирование - Производительность и оптимизация (HighLoad)

бекенд веб-сервис postgre SQL postgrest http мобильная разработка SimpleUI

В этой статье я расскажу о проблемах бека для мобильных приложений или другого фронта, который требует производительности, быстрой реакции и отказоустойчивости, и как я решил это благодаря opensource проекту PostgREST и СУБД Postgre SQL 12. Проведу простой тест производительности для сравнения 1С с данным решением. Это может быть полезно всем, кто разрабатывает мобильные приложения либо фронтсайд-приложения для 1С на чем угодно - на мобильной платформе или на нативном языке или на Simple UI. И также обзор новых функций SimpleUI для связи с этим бекендом.

 

Продолжение тут: //infostart.ru/public/1234475/

и вот тут: //infostart.ru/public/1264771/

 

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

Для начала я рассматриваю ситуацию с непосредственным подключением через веб-сервис как на картинке ниже:

 

Проблема №1 Время реакции веб-сервиса

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

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

Также или еще хуже дела обстоят и с OData. В описании 1С так и говорится – первый раз нужно подождать. Я добавил в SimpleUI работу с OData но работать с ним можно если ваши пользователи готовы немного подождать.

Проблема №2 Высоконагруженный веб-сервер

Я не берусь ничего утверждать и не могу привести конкретные цифры но на практике при около 300 ТСД подключенных к 1С через HTTP сервис начинают доставлять некоторые неудобства в виде подвисающих и отваливающихся запросов. Могу предположить что если на сервис 1С повесить тот уровень нагрузки котрый рассчитан на то, что в мире разработки (уточню, не 1С-разаработки) называется «высоконагруженный веб-сервис» , то это закончится лавинообразным падением запросов.

Проблема №3 «Данные наружу»

Никто не хочет выставлять свою 1Ску и сервер на котором она стоит во внешний интернет. Тут начинаются всякие решения от VPNов до промежуточной базы (опять же на 1С).

Проблема №4 Доступность 24/7

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

Проблема №5 Производительность запросов к данным и масштабирование

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

А теперь главный вопрос: возможно ли предположить (в порядке бреда) что запрос в 2-х звенной системе (клиент-SQL сервер) на чистом SQLе выполнится быстрее чем такой же запрос в 3-х звенной системе (клиент-сервер бизнес-логики с интерпретатором-SQL сервер)? Как так получается что в облачных WMS элементарный поиск по штрихкоду в базе с 500 тыс. штрих-кодов выполняется за считанные мс, а чтобы 1C показала такой же результат нужно дорогостоящее оборудование и специальный человек который это оптимизирует.

Я занимаюсь 1С с 2002 года, с тех времен когда еще встречалась 7.5, но в основном была 7.7 и мы для регистрации чеков на кассе не испытывали судьбу (задержка кассы могла обернуться проблемами, бизнесмены тогда были суровыми), а просто писали их в SQL таблицу через ADO, а потом читали. Прошло 18 лет, 1С выпустила 8.3 и конфигурации которые весят Гигабайты,  а я не могу придумать ничего лучше для решения проблем сейчас.

Я еще вернусь к проблеме производительности в разделе «Тестирование»

Путь к решению

Итак, что я должен был сделать чтобы решить все эти проблемы? Из Проблемы №5 вытекает что я должен использовать реляционную СУБД как промежуточное звено между фронтом и 1С. Но в чистом виде это вещь в себе, для того чтобы к ней цеплялись и клиенты и 1С нужно какое то API. SQL сервера сами по себе имеют API в виде драйверов ODBC и 1C может цепляться через них. А клиенты? А если эта база в облаке?

Вообще решения по бекендам для мобильных приложений  на текущий момент такие (имеется ввиду если не использовать 1С):

  • Собственно, взять и написать свой бекенд, т.е. свой сервер с каким то API. Если вы не фуллстек разработчик то придётся привлекать бекендщика который это сделает. Отсюда вытекает минус: бекенд пишется под конкретное решение/внедрение и его нужно поддерживать. Со временем это превращается в т.н. легайси, специалисты которые это писали уходят на другие проекты и знания теряются. Их надо добывать по новой. Но учитывая какая карусель со стеками технологий происходит в последнее время, скорее всего в нагрузку придется изучать «старый» стек технологий. Да, да в мире за пределами 1С творятся страшные вещи.
  • Облачные бекенды  от Гугл, Майкрософт, Амазон и менее известные например Backedless. Вроде бы плати деньги каждый месяц и наслаждайся готовым решением. Но нет и тут есть проблемы. Вкратце они такие:
    • Они почему-то No-SQL т.е.  нереляционные субд. Видимо считается что так проще для разработчика но во-первых множество вещей типа агрегатных функций в NoSQL базе сделать нельзя, во вторых вместо стандартного SQL нужно изучать местный стек технологий и вроде бы это и просто но есть нюансы
    • Ты не хозяин сервера и от тебя ничего не зависит. Однажды одна из вышеперечисленных компаний решила сменить версию своего решения допустим с 4 на 5 в результате, многое из того что было сделано в решении перестало работать, требовалось разобраться в новых доках и пились новую интеграцию. А да, и сделали они это с 1 января)) С утра мне стали поступать письма пользователей. Но коммент)
    • Не смотря на то что это вроде как технологические гиганты подобные облачные сервисы выглядят настолько сырыми что вызывают недоумение. Косяки и неочевидные решения, ради которых надо сидеть на формах и перечитывать кучу доков. Да и функционал убогий.
  • Собственно сторонний OData либо RESTful API для различных SQL-серверов т.е. решение которое прицепляет к SQL серверу API которое сделали уже за Вас, нужно только поставить и пользоваться. Сочетаний много есть такие, которые работают с разными серверами. Например DreamFactory. Ничего не могу сказать про него потому что он платный и довольно недешевый. Но это почти то что нужно.

 

Решение

Пришло время раскрыть карты. Формула решения всех проблем – это перенос высоконагруженных операций в отдельный SQL на том же сервере или в облаке,  а для связи использовать REST API со стороны фронта(клиентов) и тотже REST API либо ODBC со стороны 1С. Либо можно посадить на брокер сообщений типа RabbitMQ но со стороны 1С не так уж это важно.

И это очень, очень просто!  Все гораздо проще чем можно себе представить. Потому что есть PostgREST . Именно так пишется. Смысл: это бесплатный опенсорс REST API для Postgre SQL который организует веб интерфейс для CRUD и некоторых других операций для вашего PostgreSQL. Точнее таких API два – есть еще pREST (они говорят что они лучшие, а PostgREST -… ну вы поняли).

Таким образом мы имеем: бесплатную современную СУБД PostgreSQL 12, бесплатный открытый веб сервер к ней PostgREST через который можно простыми запросами хоть даже в браузере просматривать, создавать, удалять и т.д.  Но ведь эта штука еще и ставится на Линукс! А это значит что можно арендовать VPS сервер за пару евро в месяц, поставить туда  PostgreSQL c PostgREST и мы получим облако которое будет работать 24/7! И еще которое можно легко масштабировать по производительности – поменять конфигурацию на вирт. сервере при необходимости.  

Таким образом у вас в облаке организуется сервер который может делать такие вещи:

  • Запросы на запись, обновление (upsert) в том числе в Bulk-режиме (POST). 5000 записей принимаются и сохраняются за 50 мс
  • Различные запросы на выборку данных из таблиц и views (GET). Самый простой запрос аналог запроса Select * from goods выглядит так: /goods далее при необходимости к строке прибавляются условия, упорядочивание и т.д.
  • Выполнять хранимые процедуры и функции
  • Работать с бинарными данными. Это актуально для мультимедиа и больших документов.
  • Удаления
  • Работает через JSON но может выгружать и в дргом формате, через текст с разделителями. Это настраивается в заголовках

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

Вот инструкция как поставить и как начать пользоваться: http://postgrest.org/en/v6.0/tutorials/tut0.html

Я сам ставил это и на виндовс и на CentOS 7. В инструкции для линукс я не использовал Докер. Больше всего времени я потратил на то чтобы подключить pgAdmin к базе на VPS сервере точнее сделать так чтобы к самому Postgre можно было цепляться извне. Ну я не линуксоид, вообще профан в этих делах, а так как проект экспериментальный все делал своими силами. Остальное проще.  

Связь с 1С

Если PostgreSQL доступен через драйвера ODBC то можно подключаться через них. Хорошей возможностью является использование Внешних источников данных. С ними потом легко стоить отчеты СКД.

Ну и конечно 1С может работать через REST интерфейс. Т.е. точно через то же API что и клиенты.

Вот пример отправки товаров через HTTP - запрос:

	АдресТерминала =Константы.АдресБекенда.Получить();
		Соединение = Новый HTTPСоединение(АдресТерминала);
		Заголовки = Новый Соответствие();
		Заголовки.Вставить("Content-Type","application/json");
		Заголовки.Вставить("Prefer","resolution=merge-duplicates");
		Запрос = Новый HTTPЗапрос("/goods", Заголовки);
		
		З = Новый Запрос;
		З.Текст =  "ВЫБРАТЬ
			           |	ШтрихКоды.Штрихкод КАК Штрихкод,
			           |	ШтрихКоды.Владелец.Наименование КАК Наименование,
			           |	ШтрихКоды.Владелец.Артикул КАК Артикул
			           |ИЗ
			           |	РегистрСведений.ШтрихКоды КАК ШтрихКоды" ;

			
		ТаблицаДанных = З.Выполнить().Выгрузить();
		CтpoкaJSON = "[";
		Для каждого строкаТаблицы из ТаблицаДанных Цикл
				CтpoкaJSON = CтpoкaJSON+?(СтрДлина(CтpoкaJSON)>1,",","")+"{"+"""name"":"+""""+СокрЛП(строкаТаблицы.Наименование)+""""+","+"""article"":"+""""+СокрЛП(строкаТаблицы.Артикул)+""""+","+"""barcode"":"+""""+СокрЛП(строкаТаблицы.Штрихкод)+""""+"}";
		КонецЦикла;	
			
		CтpoкaJSON =CтpoкaJSON+ "]";
		Запрос.УстановитьТелоИзСтроки( CтpoкaJSON,КодировкаТекста.UTF8);
		
		Ответ = Соединение.ОтправитьДляОбработки(Запрос).ПолучитьТелоКакСтроку();

 

А вот пример отчета  на СКД и модуль его заполнения:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь; 

	Настройки = КомпоновщикНастроек.ПолучитьНастройки(); 
	
	
	ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;  
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; 
	
	СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, 
							Настройки, ДанныеРасшифровки);
							
							
	ВнешниеДанные.Очистить();
	
	АдресТерминала = Константы.АдресБекенда.Получить();
	Соединение = Новый HTTPСоединение(АдресТерминала,3000,,,,,);
	Заголовки = Новый Соответствие();
	Заголовки.Вставить("Content-Type","application/json");
		
   
    Запрос = Новый HTTPЗапрос("/bal");
        Результат = Соединение.Получить(Запрос);
	СтрокаJSON = Результат.ПолучитьТелоКакСтроку();	
	Чтение = Новый ЧтениеJSON;
 	Чтение.УстановитьСтроку(СтрокаJSON);
 	Данные = ПрочитатьJSON(Чтение, Ложь);
	Если типЗнч(Данные) = Тип("Структура") Тогда
		НовСтр = ВнешниеДанные.Добавить();
		ЗаполнитьЗначенияСвойств(НовСтр,Данные);

	ИначеЕсли типЗнч(Данные) = Тип("Массив") Тогда
		для каждого стр из Данные Цикл
			НовСтр = ВнешниеДанные.Добавить();
			ЗаполнитьЗначенияСвойств(НовСтр,стр);
		КонецЦикла;	
		
	КонецЕсли;	
	
 	Чтение.Закрыть();	

							
							
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,
		Новый Структура("ВнешниеДанные", ВнешниеДанные.Выгрузить()), 
		ДанныеРасшифровки);	

	 
	ДокументРезультат.Очистить();
	
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);	
	ПроцессорВывода.Вывести(ПроцессорКомпоновки);


КонецПроцедуры

 

 

Тест производительности

Для экспериментов я нашел в сети самый слабый вариант какой только смог найти: VPS за 45р/мес: 1 проц Athlon, 1Гб ОЗУ, 5 ГБ HDD (не SSD) на CentOS. И сравнивал с 1С файловый вариант на i5 ,SSD, 16ГБ ОЗУ, Windows.

Методика у меня конечно примитивная, но некоторые выводы можно сделать. Для проведения сравнительных тестов я встроил в SimpleUI возможность измерять время исполнения команд. Так, я помещаю на экран определенную  группу команд и выполняю и в 1С и в бекенде. Потом сравниваю результат. На экраны я поместил следующие команды:

  • Поиск по штрихкоду – 1 штрихкод
  • Вывод списка номенклатуры в таблицу
  • Запись в базу (или в бекенд) 1й операции

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

 

Еще я не создавал индексы в Postgre, а в 1С они есть.

Вот такие получились результаты:

Сначала я провел тест при заполненности таблицы товаров  в р-не 20 строк:

:  1-й запрос – 330 мс, запросы после первого запроса – 19-20 мс в среднем

Postgre: 1-й запрос - 38 мс, последующие запросы – 32 мс

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

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

  • 150,34с  в 1С (в режиме транзакции)
  • 1,05с в Postgre (в Bulk режиме)

И после этого я снова замерил результаты:

:  1-й запрос – 480 мс, запросы после первого запроса – 230 мс в среднем

Postgre: 1-й запрос - 40 мс, последующие запросы – 33 мс

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

 

Связь с Simple UI и новые фишки

Я развиваю собственную платформу-конструктор мобильных приложений - Simple UI. Конечно же я пустился на поиски замены 1С не от хорошей жизни и очень рад что нашел Postgre. Сложно переоценить важность этого инструмента для моих проектов. Теперь легко можно собрать себе свой бесплатный бекенд в максимально упрощенном режиме, прицепить к нему бесплатные клиенты на Simple UI и полноценная система готова.

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

В Simple UI я добавил возможности для CRUD- операций и выполнения процедур:

Вот так например выглядит  запрос типа Select..Where:

А вот так запрос на добавление строки в таблицу:

И конечно же теперь на своем сервере можно организовать свой облачный магазин приложений. Магазин не в смысле продавать за деньги – а просто место, куда можно выкладывать конфигурации, чтобы на клиентах их скачивать/обновлять. Конфигурация в Simple UI – это XML-строка. Вот так выглядит отправка конфигурации из 1С:

А вот так сам магазин в приложении:

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

Ну и коротко, что можно посмотреть в тестовой конфе для работы с бекендом, которую тоже можно скачать из магазина без скачивания базы 1С: показан пример где можно ввести в справочник в бекенде свою номенклатуру. Потом, в проекте есть процесс, в котором имитируется приемка: сканируется либо вводится артикул номенклатуры, она идентифицируется, показываются текущие остатки, вводится количество которое отправляется в облако и, соотвественно меняет остаток. Это можно увидеть в приложении, можно в 1С. Можно отправить/получить данные из 1С. Основная статья, где демо база, доки и остальное тут: //infostart.ru/public/1153616/

Для Pro-версии доступны также дополнительные возможности:

Можно отсылать и получать данные в фоновом потоке (не UI-потоке приложения) – т.е. если надо скачать или закачать большой объем данных программа будет выполняться без торможения. При этом само приложение может взаимодействовать чисто с собственным SQL полностью автономно (без связи) и при необходимости обмениваться с бекендом в фоне.

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

 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. user609151_work 01.04.20 13:27 Сейчас в теме
А дело не в конкатенации? Просто если сравнить 2 идентичных куска кода, то разница во времени выполнения минимум 15 раз. И это всего 5000 строк.

&НаСервере
Процедура КонкатенацияНаСервере()
З = Новый Запрос;
З.Текст = "ВЫБРАТЬ первые 5000
| АЗС.КлиентВладелец.Наименование как наименование,
| АЗС.КлиентВладелец.Код как код,
| АЗС.ЭлПочта как элпочта
|ИЗ
| Справочник.АЗС КАК АЗС";

ТаблицаДанных = З.Выполнить().Выгрузить();
CтpoкaJSON = "[";
для каждого строкаТаблицы из ТаблицаДанных цикл
CтpoкaJSON = CтpoкaJSON+?(СтрДлина(CтpoкaJSON)>1,",","")+"{"+"""name"":"+""""+СокрЛП(строкаТаблицы.Наименование)+""""+","+"""article"":"+""""+СокрЛП(строкаТаблицы.код)+""""+","+"""elpochta"":"+""""+СокрЛП(строкаТаблицы.элпочта)+""""+"}";
конеццикла;
CтpoкaJSON =CтpoкaJSON+ "]";
сообщить(стрдлина(CтpoкaJSON));
КонецПроцедуры

&НаКлиенте
Процедура Конкатенация(Команда)
КонкатенацияНаСервере();
КонецПроцедуры

&НаСервере
Процедура джейсонНаСервере()
З = Новый Запрос;
З.Текст = "ВЫБРАТЬ первые 5000
| АЗС.КлиентВладелец.Наименование как наименование,
| АЗС.КлиентВладелец.Код как код,
| АЗС.ЭлПочта как элпочта
|ИЗ
| Справочник.АЗС КАК АЗС";

ТаблицаДанных = З.Выполнить().Выгрузить();
Массивчик=новый массив;
для каждого строкаТаблицы из ТаблицаДанных цикл
Структурка=новый структура;
Структурка.Вставить("name",СокрЛП(строкаТаблицы.Наименование));
Структурка.Вставить("article",СокрЛП(строкаТаблицы.код));
Структурка.Вставить("elpochta",СокрЛП(строкаТаблицы.элпочта));
Массивчик.Добавить(Структурка);
конеццикла;
ЗаписьJSON = Новый ЗаписьJSON;
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON( ,Символы.Таб);
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, Массивчик, Новый НастройкиСериализацииJSON);
CтpoкaJSON=ЗаписьJSON.Закрыть();

сообщить(стрдлина(CтpoкaJSON));

КонецПроцедуры

&НаКлиенте
Процедура джейсон(Команда)
джейсонНаСервере();
КонецПроцедуры
Показать

2. informa1555 1979 01.04.20 16:03 Сейчас в теме
(1) Вы имеете ввиду тот кусок где я товары на сервер отправляю? Не, я мерил от момента отправки PUSH до получения результата запроса. Не, BULK - операции в SQL все таки реально быстрые))
3. user609151_work 01.04.20 16:35 Сейчас в теме
(2) Конечно быстрее,тут даже сравнивать нечего. Проблема в том, что очень часто нужны не просто select или insert а именно пред- или пост- обработка данных.
4. informa1555 1979 01.04.20 16:52 Сейчас в теме
(3) Да, я Вашу мысль понял. Но дело в том что во-первых на примере облачных WMS там простые сущности (т.е. там где требуется быстрота там нет всего что есть в типовых конфах 1С) соответственно и проверки, обработки при транзакциях они проще чем в 1С, во-вторых если это вешается на хранимые процедуры, триггеры, поддержание целостности на уровне БД - ну это еще быстрее работает. Я сравнивал производительность в режиме ОбменДанными.Загрузка =Истина.
5. saa@kuzov.org 01.04.20 19:53 Сейчас в теме
Получается, чтобы 1С узнала об изменениях в базе postgres, мне нужно ее регулярно опрашивать?

Или можно как-то организовать типа триггеров, но через rest?
6. informa1555 1979 01.04.20 20:17 Сейчас в теме
(5) там в хранимых процедурах несколько языков можно использовать. Но я не уверен что Postgre может запросы отправлять. Интересный вопрос. Обычно интеграции с sql делают через опрос. И в случае с интеграцией с wms например это совершенно нормально. Там некуда торопиться. Распоряжения отправил, периодически факт забираешь и все.
9. mixsture 02.04.20 13:20 Сейчас в теме
(5) визуально, такой функционал есть у самого постгреса есть. Так что теоретически это возможно. Возможно через эту реализацию rest не пролезет и придется написать свой промежуточный сервис для доставки уведомлений.
https://tapoueh.org/blog/2018/07/postgresql-listen-notify/#postgresql-notifications
7. Chelper 6 02.04.20 12:44 Сейчас в теме
Насчет "в первый раз нужно подождать" - это точно.
Разработал систему для проведения теннисных соревнований, на бэке - 1С.
Первое получение данных - достаточно долгое, в дальнейшем - страницы генерируются достаточно быстро.
Вот ссылка на сайт.
Планирую переписать весь фронт на Vue.js
Вот основная страница сайта:
https://odinservice.asuscomm.com/fntm/
8. mixsture 02.04.20 13:09 Сейчас в теме
Имхо, могут вылезать проблемы 2х-звенной архитектуры:
1) сложности с поддержанием консистентности. Когда появится много связей между таблицами - в 2х звенной придется либо
а) это решать на фронтэнде, что прям очень странный подход. При нем по сути только фуллстэк разработчик может заниматься фронтом, потому что понимает, что там в базе происходит. Выдать этот кусок фронтэнд-разработчикам не выйдет.
либо
б) на уровне базы данных, что посложнее и требует отдельной области знаний. И все равно база может выкидывать глубоко системные сообщения об ограничениях на фронт, что опять же - нетипично для фронтэнд-разработчиков.

2) сложности с контролем прав доступа. Доступ к таблицам базы приходится выдавать заметно более широкий (по сути по-таблично), а само приложение может работать в недоверенных средах.
10. informa1555 1979 02.04.20 14:07 Сейчас в теме
(8) Частично согласен
консистентность на уровне базы в Postgre поддерживается ничего сложного там нет - все виды есть: удаление, запреты, очистка.Как и везде. Частично проверки на уроне фронта. Да, согласен, и я об этом пишу что в принципе тот кто делает фронт сам себе делает и базу. И он частично бекндщик. Но! Одно дело сделать таблички, дать права и т.д. в стандарнтном SQLе, другое дело писать еще к этому RESTful интерфейс. Просто если это делали бы бекендщики они сделали бы какие то функции типа Добавить Товар там которое бы все делала, потом поди разберись что там эта функция делает. А тут все на чистом SQLе, который все знают. Я знаю несколько "облачных" WMS на чистом SQLе - люди как то это сделали. У них нет фронта либо они используют SimpleUI, а раньше использовали веб-интерфейс.
11. maxx 929 05.04.20 20:53 Сейчас в теме
Спасибо за то, что делитесь таким опытом.

Похоже нужно выводить новое понятие

фулстэк русский разрабочик
это веб + 1с + мобильный технологии + субд
NoRazum; qazaz2; +2 Ответить
12. informa1555 1979 05.04.20 21:30 Сейчас в теме
(11) спасибо. Ну ещё там интеграции всякие, кролик и т.д. Да в кризис чем шире стек тем лучше...
13. Kondratenko.as 477 06.04.20 17:01 Сейчас в теме
День добрый. А elasticsearch не рассматривали? Там скорость на get запросы максимальная. Сам продукт создан для быстрой записи и отдачи + сама структура хранения базы NoSQL в формате JSON.

https://www.elastic.co/elasticsearch/service?baymax=rtp&elektra=home&storm=sub1&rogue=default&iesrc=ctr
14. informa1555 1979 06.04.20 17:19 Сейчас в теме
(13) Добрый день! Так нет, мне NoSQL не нужен, я больше WMS и т.д. занимаюсь - мне нужны итоги, триггеры, целостность - вот это вот все. Простейшие учетные задачи. Понятно что NoSQL пишет быстрее, но мне надо еще быстро получать например остатки в ячейках (которые нужно быстро пересчитывать)
15. Region102 30.04.20 15:09 Сейчас в теме
Кстати тоже уперся в 350+ соединений с HTTP сервисом в 1С, при большем количестве лезли уже ошибки или вообще не было ответа, но тут проблема скорее в Apache из коробки. Когда я провел нагрузочное тестирование на автономном сервере 1С, то он уже спокойно держал 15000+ одновременных соединений. Скоро выложу на канале тесты.
16. Xershi 1149 13.05.20 22:53 Сейчас в теме
Я так понял это тоже самое, что одата в 1с.
Таблички сделал в СУБД. СУБД опубликовал на веб-сервере, далее ашттп запросы к БД?
17. informa1555 1979 14.05.20 07:20 Сейчас в теме
(16) Да. Очень похоже. Даже синтаксис похож.
18. Xershi 1149 14.05.20 09:07 Сейчас в теме
(17) и выдумывать ничего не нужно. Шикарное решение!
Уровень вхождения практически нулевой. В крайнем случае админа подключить для настройки софта.
o.nikolaev; informa1555; +2 Ответить
19. informa1555 1979 14.05.20 09:41 Сейчас в теме
20. o.nikolaev 204 22.05.20 15:45 Сейчас в теме
Шикарная статья.
informa1555; +1 Ответить
21. informa1555 1979 22.05.20 16:17 Сейчас в теме
22. qazaz2 16 22.07.20 14:26 Сейчас в теме
Подскажите, если помните, в чем были трудности с pgAdmin и как их решили. Уперся в него, возвращает:
{"info":"","success":0,"result":null,"errormsg":"'Request' object has no attribute 'is_json'","data":null}

Спс
23. informa1555 1979 22.07.20 14:49 Сейчас в теме
24. qazaz2 16 22.07.20 15:08 Сейчас в теме
(23) Пробую, спасибо за подсказку
25. VVi3ard 50 28.07.20 13:00 Сейчас в теме
Как вы решаете вопросы доступа к данным и аутентификации?

Т.е. я же правильно понимаю что ваш сервер с PostgREST доступен в интернет всем желающим?

Как вы разграничиваете доступы?

И как вообще происходит аутентификация и авторизация пользователей (мобильных приложений)?
26. informa1555 1979 28.07.20 13:25 Сейчас в теме
(25) конкретно мой - да)) Его можно ломать не жалко. А так там есть и ограничения доступа на уровне публикации сервиса(типа по IP и т.д.) и на уровне уже внутри API : http://postgrest.org/en/v7.0.0/auth.html
27. ITSolncev 02.08.20 22:39 Сейчас в теме
Прекрасное решение, спасибо за статью!+
informa1555; +1 Ответить
28. informa1555 1979 03.08.20 08:14 Сейчас в теме
29. malikov_pro 697 23.09.20 07:11 Сейчас в теме
(8)
"1) сложности с поддержанием консистентности." - на сколько понимаю реализуется через хранимые процедуры
"б) на уровне базы данных, что посложнее и требует отдельной области знаний." - в этом правы, нужно повышать свой уровень владения PG.

"Доступ к таблицам базы приходится выдавать заметно более широкий (по сути по-таблично)" - не правы
http://postgrest.org/en/v7.0.0/auth.html
"Anyone accessing the generated API endpoint for the chat table will see exactly the rows they should, without our needing custom imperative server-side coding."
"Любой, кто обращается к сгенерированной конечной точке API для таблицы чата, увидит именно те строки, которые они должны видеть, без необходимости в пользовательском императивном кодировании на стороне сервера."
30. TODD22 18 23.09.20 15:10 Сейчас в теме
Они почему-то No-SQL т.е. нереляционные субд.

У гугла можно развернуть PG, разве нет? С AWS не работал, но и там мне кажется можно развернуть PG.

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

sql и nosql каждая для своих задач.
31. informa1555 1979 23.09.20 15:50 Сейчас в теме
(30) Не, я имел в виду такой класс сервисов котрый есть у Гугла, Амазон, backendless и т.д. как "облачный бекенд" а не просто хостинг для СУБД. Там смысл в том что без программирования, SQL создается документоориентированное хранилище со свои API котрый можно юзать через REST и другими способами. Т.е. как бы готовый бекенд для тех, кто не хочет делать свой бекенд (не заморачиваться с бекенд разработкой) т.е. сделал приложение например и надо где то хранить данные - ты арендуешь это и с этим работаешь
32. MuI_I_Ika 842 25.12.20 16:21 Сейчас в теме
Если я правильно понял статью, то у вас имеется база, опубликованная на хостинге. К ней могут подключаться как ваши приложения на 1С, так и мобильные клиенты. По приложениям на 1С вопросов нет, они вроде как вами контролируются.

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

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

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

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

Не очень понятно, как такой подход застрахует от подобных вещей?

Если я написал глупость не судите строго.
33. informa1555 1979 25.12.20 16:59 Сейчас в теме
.(32) Добрый день! Статья прежде всего о том, что каждый может собрать такой сервак на постгресте за немного времени, ну т.е. DIY и получить свою быструю базу. Мой сервак котрый в Simple UI - для поиграться/поломать - там ниче интересного не храниться и его обычно юзают те, кто разрабатывает на Simple UI просто как демку.
Вариантов авторизации для PostgREST может быть много вплоть до ограничений по ip и роли для доступа к схемам тоже настраиваются.
Пароль в приложухе не хранится, хранится в зашифрованном виде и передается тоже. Но это конечно слабая защита.
Общедоступный API есть и в 1С же и ее также можно ломануть. Только вот разница будет - ломануть ERP систему или ломануть промежуточную СУБД в которой только данные для мобильных клиентов.

По поводу полной выгрузки - не получится. Через REST - нет, админские логины/пароли раздавать рядовым клиентам тоже не надо. Максимум это CRUD доступ к таблицам котрые выведены в схему REST. Ну как с ODATA в 1С. Ну вообще вопрос конечно интересный. Я то больше для складов использую - там внутренняя сетка.
34. MuI_I_Ika 842 25.12.20 17:10 Сейчас в теме
(33)
стему или ломануть промежуточную СУБД в которой только данные для мобильных клиент


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

Например нужно организовать обмен текстовыми сообщениями между пользователями. Каждое сообщение адресовано 1 пользователю системы.

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

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

Пользователи должны иметь возможность самостоятельно регистрироваться.

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

Возможно ли это организовать только средствами субд или все таки без серверной части, которая будет обеспечивать логику работы шлюза не обойтись?
35. informa1555 1979 25.12.20 17:27 Сейчас в теме
(34)
(34)
Пользователи должны иметь возможность самостоятельно регистрироваться.
- уже какая то страница должна быть с логикой... по поводу разделения средствами СУБД - посмотрите row level security в постгре. Я честно говоря давно не смотрел как у них там. Ну кстати адресация то сообщений - это на уровне и таблиц можно сделать.
Оставьте свое сообщение

См. также

Как я начал администрировать сервер 1С: Предприятие 8.3 с телефона Промо

Администрирование данных 1С Мобильная разработка v8 Бесплатно (free)

Развитие инструментов управления кластером серверов 1С:Предприятие 8.3.

14.04.2017    65075    user700211_a.straltsou    29    

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

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

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

30.04.2021    2652    ripreal1    10    

Поиск причин блокировок СУБД

Производительность и оптимизация (HighLoad) v8 v8::blocking 1cv8.cf Бесплатно (free)

Расследование блокировок СУБД. Статья написана по мотивам вебинара Виктора Богачева.

28.04.2021    3843    vasilev2015    12    

Решение нестандартных проблем производительности на реальных примерах

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

На екатеринбургском Infostart Meetup выступил с докладом архитектор ИС центра разработки ФТО Александр Криулин. Он поделился с коллегами кейсами нестандартных проблем производительности и рассказал о способах их решения.

24.03.2021    3437    AlexKriulin    37    

Обмен данными. Консистентность vs Многопоточность Промо

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

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

03.09.2019    14162    m-rv    1    

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

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

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

17.03.2021    7995    Nikola23    35    

Служебные http-сервисы, которые работают даже в заблокированной базе

Администрирование веб-серверов Apache v8 Бесплатно (free)

В этой публикации описывается опыт доступа к служебным http-сервисам в обход установленной блокировки информационной базы.

16.03.2021    3231    ardn    9    

Соединение вложенными циклами

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

Nested loops и отсутствующие индексы. Статья написана по мотивам вебинара Виктора Богачева.

12.03.2021    2813    vasilev2015    21    

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

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

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

10.03.2016    57306    Serginio    33    

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

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

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

28.12.2020    2521    SizovE    25    

Некоторые особенности установки Apache 2.4 для 1С + SSL

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

Проблемы, возникшие при установке Apache 2.4, их решение.

30.11.2020    3087    jenyavp    23    

Сказ о том, как в одной крупной компании документооборот внедряли, или проблемы типовых обменов между КА и ДО

Интеграция Документоборот 2 Перенос данных из 1C8 в 1C8 v8 ДО КА2 Бесплатно (free)

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

10.11.2020    5615    maks_20    23    

Фитнес – твой личный тренер в зале и дома Промо

Пользователю системы Мобильная разработка v8 Развлечения, искусство, спорт Бесплатно (free)

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

15.04.2016    37625    Baksheev-Nikita    54    

[mobile] Переносим HTML интерфейс на 1С

Работа с интерфейсом Мобильная разработка v8 v8::Mobile 1cv8.cf Бесплатно (free)

Разберем методы переноса HTML интерфейса на 1С на примере реализации нижнего меню для мобильного приложения. Сравним методы между собой. Данные методы можно применять не только для мобильной разработки, но и для веб-клиента и т.д

02.11.2020    6985    leobrn    66    

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

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

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

29.10.2020    4646    John_d    26    

Настраиваем PWA приложение на платформе 8.3.18 с бесплатным действительным сертификатом SSL

Информационная безопасность ИТ-инфраструктура IIS v8 1cv8.cf Бесплатно (free)

Вышла платформа 8.3.18 с поддержкой PWA приложений. Получаем БЕСПЛАТНЫЙ действительный сертификат SSL. Настраиваем прогрессивное веб приложение для опубликованной бухгалтерии 3.0 на IIS сервере.

18.10.2020    5593    IamAlexy    29    

Исследование технологического журнала 1С при помощи регулярных выражений в блокноте Промо

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

Все из тех, кто пробовали сдать на сертификат "Эксперт по технологическим вопросам 1С", сталкивались с методикой ЦКТП - разбор файлов технологического журнала при помощи консоли bash. Я, в свою очередь,внёс изменения в данную методику. Мне хотелось достичь более понятного вида и сфокусироваться на Perl, в качестве предпочтительного средства обработки файлов ТЖ. Вот что из этого вышло:

30.10.2017    31656    MrWonder    42    

Анализ проблем производительности по динамике мониторинга RAS 1C

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

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

07.10.2020    4225    ivanov660    12    

Ускорение медленной работы строк в 1С на примере 1С:Документооборот КОРП

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

Если у вас в 1С:Документооборот КОРП 2.1.11.5 (часть более старых и новых конфигураций): 1) Долго отправляется почта в формате HTML; 2) Медленно открывается документы внутренние / входящие / исходящие; 3) Тормозит область просмотра или открытие задач. Тогда вам сюда.

02.10.2020    4856    Nykyanen    16    

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

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

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

22.09.2020    6687    hpi    7    

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

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

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

10.03.2017    26718    ruha    21    

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

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

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

11.09.2020    3989    malikov_pro    11    

Описание почти всех событий технологического журнала

Технологический журнал v8 Бесплатно (free)

Краткое описание событий технологического журнала с примерами. Все для быстрого старта.

19.08.2020    19522    YPermitin    34    

Интеграция с Трелло. Готовый код

Обмен данными 1С Интеграция Agile (XP, SCRUM, Канбан) v8 Бесплатно (free)

Код основных действий, интеграция с API Трелло.

19.08.2020    3935    Yashazz    14    

Отладка конфигураций на мобильной платформе Промо

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

Настройка и подключение отладчика для отладки конфигураций на мобильной платформе.

25.09.2016    51995    spezc    49    

SQL для 1С: пишем правильно, красиво, сложно

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

Многие программисты боятся работать с Null, считая, что от этих данных в запросах нужно избавляться. О том, как с помощью Null-полей в запросе решать востребованные в учете задачи по выборке данных, на конференции Infostart Event 2019 Inception рассказал ведущий разработчик ГК WiseAdvice Дмитрий Дудин.

14.08.2020    12990    dmurk    33    

Загрузка или обновление файла на яндекс диске через rest-api

Практика программирования Файловые протоколы обмена, FTP WEB v8 Бесплатно (free)

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

12.08.2020    3197    pavelpribytkin96    10    

Самый простой парсинг и обработка веб-страниц в 1С

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

Рассмотрим самый простой парсинг веб-страниц средствами платформы 1С и еще некоторые полезные приемы работы с веб-страницами.

07.08.2020    8854    YPermitin    22    

Долго открывается конфигуратор Промо

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

В ОС Windows Server 2012 бывает полезно выключать службу Dynamic Fair Share Scheduling (DFSS позволяет балансировать и распределять ресурсы между пользователями), чтобы повысить производительность 1С:Предприятие 8 в ряде случаев.

22.04.2015    42786    Gilev.Vyacheslav    1    

Загрузка или обновление файла на гугл диске

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

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

06.08.2020    2272    pavelpribytkin96    6    

Чат и задачи с интерактивными объектами через PostgREST. Новый подход к управлению бизнес-процессами и интерфейсу

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

В новой версии Simple UI появилась возможность организовать свой корпоративный мессенджер и список задач с 1С, но не напрямую, а через PostgreSQL, чтобы не забивать 1С всякими пустяками. Причем не просто чат и задачи, а с множеством уникальных фишек: прием задач прямо из ленты чата, формат статусов в сообщении, старт процессов из задач с предопределенным состоянием переменных и сохранение переменной в задаче, отправка сообщений и задач из процессов и другое. Т.е. это такой новый способ доставки и контроля задач до исполнителя. Кроме того, в этом паке обновлений еще полный инструментарий для работы с JSON.

17.07.2020    3142    informa1555    8    

Ограничение доступа к HTTP публикациям 1С сервера используя NGINX

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

В статье опишу вариант ограничения доступа к HTTP публикациям 1С сервера используя NGINX.

02.07.2020    8140    malikov_pro    9    

Как можно "положить" SQL сервер с помощью обычной консоли запросов 1С Промо

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

Описано как из 1С, с помощью безобидной на первый взгляд обработки, можно сделать неработоспособным SQL сервер. Предложены меры, позволяющие избежать этого.

22.01.2014    68535    yuraos    112    

Автоматическая классификация ошибок технологического журнала

Технологический журнал v8 1cv8.cf Бесплатно (free)

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

25.06.2020    3571    ivanov660    13    

1C# – 1С моей мечты

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

Встроенных в платформу 1С возможностей не всегда хватает для построения сложных интеграционных схем между различными 1С и не-1С-решениями на базе MS SQL Server. Как сделать интеграцию между SQL-базами более гибкой с помощью платформы 1С# на конференции Infostart Event 2019 Inception рассказал Дмитрий Жичкин.

01.06.2020    12505    zhichkin    36    

История создания успешной системы чат-ботов на 1С

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

Использование чат-ботов в мессенджерах позволяет автоматизировать многие сложные бизнес-процессы путем диалога с системой через виртуального собеседника. О том, как создать универсальную систему ботов с бэкендом на 1С, работающую в Telegram, Viber и Facebook Messenger одновременно, на конференции Infostart Event 2019 Inception рассказал программист-фрилансер Константин Гейнрих.

21.05.2020    8904    CyberCerber    15    

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

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

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

11.04.2013    42534    YPermitin    41    

Интеграция Camunda BPM и 1С

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

Быстрый старт. Только практические примеры. Установка, запуск и публикация бизнес-процесса на сервере Camunda BPM. Управление бизнес-процессами из 1С при помощи Camunda REST API.

12.05.2020    5406    zhichkin    30    

"Микро-WMS": базовая WMS с упрощенной архитектурой, открытым кодом на PostgreSQL и клиентами на SimpleUI

Учет ТМЦ Оптовая торговля Терминал сбора данных УУ Бесплатно (free)

В статье приведен обзор простой, но функциональной SQL-ориентированной WMS с открытым кодом, базирующейся на бесплатных платформах от инфраструктуры СУБД и до клиентов, которая может послужить базой для своих разработок и внедрений. Решение можно развернуть на своем сервере или облаке(развернуть как «облачную WMS»). Статья может быть полезна с той точки зрения, что показывает "анатомию" WMS - как все устроено.

12.05.2020    4417    informa1555    13    

Как мы загружаем данные в "Центр управления кассами Магнита"

Внешние источники данных Интеграция v8 1cv8.cf Бесплатно (free)

Статья о том, как мы делали механизм загрузки больших объемов данных в "Центр управления кассами Магнита"

08.05.2020    5534    chernenko_vv    25    

Ускоряем списание партий УПП 1.2 / 1.3 / УТ 10.3 Промо

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

Не секрет, что многие пользователи, использующие партионный учет (а таких очень много, даже среди огромных холдингов, несмотря на пропаганду РАУЗ) при больших нагрузках сталкиваются с резким замедлением списания партий.

21.06.2013    58586    Антон Ширяев    117    

Синхронизация БИТ:СКУД 8 с Parsec.Net 2.5

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Настройка синхронизации БИТ:СКУД 8 с Parsec.Net.2.5, выгрузка данных из внешней системы контроля доступа.

04.05.2020    4580    RPGrigorev    0    

Измерительная лаборатория с использованием 1С+Ардуино

Периферийные устройства Интеграция v8 Россия Бесплатно (free)

1С в автоматизации "научных" и около... экспериментов.

02.05.2020    4872    maxlab    16    

Интеграция 1С и CMS WordPress посредством Rest API сайта. Первый шаг

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

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции 1С с комментариями внутри.

28.04.2020    6218    osivv    23    

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

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

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

03.06.2013    30996    anig99    6    

Выразительный Web API

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

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

27.04.2020    8836    nbeliaev    22    

Интеграция БИТ:СКУД с типовой конфигурацией

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

Интеграция БИТ:СКУД с типовой конфигурацией, обновление БИТ:СКУД в составе конфигурации и отдельно. Обновление системы защиты.

26.04.2020    5874    RPGrigorev    0    

Интеграция УАТ с топливными сервисами

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

Интеграция конфигурации Управление автотранспортом с топливными веб-сервисами.

21.04.2020    7985    RPGrigorev    2    

Сравнение скорости работы 1C+MSSQL и файлового варианта Промо

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

На форумах постоянно задается один и тот же вопрос: почему 1C+MSSQL медленнее обрабатывает запросы чем файловая? Затем обычно идет «флуд» на несколько десятков страниц. Есть два популярных «течения» в таких форумах — одни говорят что для клиент-серверного варианта это нормально, файловый вариант всегда должен работать быстрее, другие говорят что 1С плохо работает с субд. В результате «баталий и выяснения отношений» на форумах люди расходятся при своих мнения.

19.02.2013    58710    Gilev.Vyacheslav    46    

Интеграция 1С с веб-сервисами Лукойл ЛИКАРД

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

Описание интерфейса взаимодействия сервиса Лукойл- ЛИКАРД с информационной системой 1С.

20.04.2020    6005    RPGrigorev    0    

Эти занимательные временные таблицы

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

Кое-что интересное о временных таблицах и работе платформы 1С с ними.

06.04.2020    14496    YPermitin    0    

Анализ взаимоблокировок

Производительность и оптимизация (HighLoad) Технологический журнал v8 v8::blocking Бесплатно (free)

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

20.03.2020    6249    vasilev2015    27    

Многопоточность

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

Увеличиваем скорость загрузки данных в 20 раз. Как следует использовать многопоточность и готовый модуль для внедрения.

18.03.2020    8197    kaliuzhnyi    44