Оповещение об изменении публикации: обработки/конфигурации.

Публикация № 600373 24.03.17

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

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

Постановка задачи

Оформление обновлений в публикации

Программный код

для (внешней) обработки

для конфигурации

Предварительное тестирование

Заключение



Постановка задачи

Эта небольшая статья навеяна следующим. Я дважды внес изменения в свою последнюю публикацию, посвященную Построителю регулярных выражений, и дважды не заметил на сайте никаких признаков изменений после обновления файла обработки. Даже дата обновления на странице публикации не сдвинулась. В третий раз я не менял обработку, но немного изменил раздел "Обновления" в своей публикации, сделал две записи, чтобы отработать предлагаемое в этой статье решение сего маленького недоразумения. И... в этот раз поменялась дата обновления публикации. Опять же, я не увидел свою работу в перечне обновленных публикаций. И мне это не надо, в-общем-то. Но в этом могли бы быть заинтересованы те, кто уже пользуются обработкой. Полагаю, проблема у нас у всех одна: донести наиболее комфортным способом информацию об обновлениях конечным потребителям наших обработок/конфигураций.

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

Оформление обновлений в публикации

Перехожу теперь к описанию самого подхода. Для получения информации по обновлениям будет использовано текстовое содержимое вашей публикации на этом ресурсе. В качестве наглядного примера рекомендую использовать публикацию Построитель регулярных выражений. В этой публикации уже организован текстовый блок "Обновления".  Сверху этот блок ограничен текстовым маркером Желаю приятного просмотра!\s*Обновления. Снизу маркером Скачать файлы. Для описания маркеров здесь я использовал шаблон регулярного выражения, заключенный в „“. На роль маркеров подходит любая комбинация символов, удовлетворяющая требованию уникальности в рамках публикации. Если есть какие-то сомнения насчет уникальности, можно использовать один и тот же уникальный идентификатор для обоих маркеров, разместив его на странице публикации в начале и в конце тестового блока обновлений. А чтобы маркеры были не видны, указать белый цвет текста на белом фоне. Я не ограничиваю фантазию авторов на этот счет... 

Каждое сообщение об обновлении публикации начинается с даты обновления в жестком формате ДД.ММ.ГГГГ ЧЧ:ММ, как в примере. После чего следует текст, описывающий обновление. Количество сообщений не ограничивается, естественно.

Вот и все описание организации обновлений на странице публикации.

Перейти к оглавлению

Программный код

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

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

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

Программный код для (внешней) обработки

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

На форме обработки создаете декорацию с именем  СтатьяНаИнфоСтарт (Статья на infostart.ru), указываете, что это гиперссылка.

Обработчик показать/скрыть
&НаКлиенте
Процедура СтатьяНаИнфоСтартНажатие(Элемент)
	
	Меню = Новый СписокЗначений;
	Меню.Добавить(1, "Читать статью");
	Меню.Добавить(2, "Проверить обновления");
	Меню.Добавить(3, "Получить обновления");
	
	Пункт = ВыбратьИзМеню(Меню, Элементы.СтатьяНаИнфоСтарт);
	
	Если Пункт = Неопределено  Тогда
		Возврат;
	КонецЕсли;
	
	Пункт = Пункт.Значение;
	Если Пункт = 1 Тогда
		ЗапуститьПриложение("//infostart.ru/public/" + ПараметрыОбновлений.НомерПубликации);
		
	ИначеЕсли Пункт = 2 Тогда
		ПроверитьОбновления();
		
	ИначеЕсли Пункт = 3 Тогда
		
		Адрес = "//infostart.ru/public/" + ПараметрыОбновлений.НомерПубликации;
		Если НЕ ПустаяСтрока(ПараметрыОбновлений.ЯкорьОбновлений) Тогда
			Адрес = Адрес + "/#" + ПараметрыОбновлений.ЯкорьОбновлений;
		КонецЕсли;
		ЗапуститьПриложение(Адрес);
		
	КонецЕсли;
	
КонецПроцедуры


Создаете три рабочих реквизита формы, значения их сохраняете в настройках формы:

  • ДатаТекущегоОбновления
  • ДатаПоследнейПроверкиОбновлений
  • КвоОбновлений

В модуль формы включаете блок процедур/функций:

Блок показать/скрыть
&НаКлиенте 
Перем	ПараметрыОбновлений;


&НаКлиенте 
Процедура НастройкаОбновлений()
	
	//СтатьяНаИнфоСтарт - декорация формы, гиперссылка
	//ДатаТекущегоОбновления - дата, реквизит формы
	//ДатаПоследнейПроверкиОбновлений - дата, реквизит формы
	//КвоОбновлений - число, реквизит формы
	
	
	//Настраиваемые параметры обновлений...
	ПараметрыОбновлений = Новый Структура;
	
	ПараметрыОбновлений.Вставить("НомерПубликации", "592108");
	ПараметрыОбновлений.Вставить("ЯкорьОбновлений", "L26");
	ПараметрыОбновлений.Вставить("НачальнаяМетка", "Желаю приятного просмотра!" + "\s*" + "Обновления");
	ПараметрыОбновлений.Вставить("КонечнаяМетка", "Скачать файлы");
	
	ПараметрыОбновлений.Вставить("ДатаТекущегоОбновления", '201703141300');
	ПараметрыОбновлений.Вставить("ПроверятьОбновленияЧерезДней", 7);
	//Конец настройке.
	
	Если ДатаТекущегоОбновления <> ПараметрыОбновлений.ДатаТекущегоОбновления  Тогда
		ДатаПоследнейПроверкиОбновлений = ТекущаяДата();
		ДатаТекущегоОбновления = ПараметрыОбновлений.ДатаТекущегоОбновления;
		КвоОбновлений = 0;
	КонецЕсли;
	
	Если ПараметрыОбновлений.ПроверятьОбновленияЧерезДней <> 0  Тогда
		ПрошлоДней = (ТекущаяДата() - Макс(ДатаПоследнейПроверкиОбновлений, ПараметрыОбновлений.ДатаТекущегоОбновления)) / 86400;
		ДавноНеПроверяли = (ПрошлоДней > ПараметрыОбновлений.ПроверятьОбновленияЧерезДней);
	Иначе
		ДавноНеПроверяли = Ложь;
	КонецЕсли;
	
	Если КвоОбновлений <> 0 ИЛИ ДавноНеПроверяли  Тогда
		Элементы.СтатьяНаИнфоСтарт.Заголовок = "Статья на infostart.ru (" + Формат(КвоОбновлений, "ЧДЦ=") + ?(ДавноНеПроверяли, "?", "") + ")";
		Элементы.СтатьяНаИнфоСтарт.ЦветТекста = Новый Цвет(255, 0, 0);
	Иначе
		Элементы.СтатьяНаИнфоСтарт.Заголовок = "Статья на infostart.ru";
		Элементы.СтатьяНаИнфоСтарт.ЦветТекста = Новый Цвет(0, 127, 0);
	КонецЕсли;
	
КонецПроцедуры



&НаКлиенте
Процедура ПроверитьОбновления()
	
	Попытка
		Соединение = Новый HTTPСоединение("infostart.ru",,,,Неопределено,Ложь);
		Запрос = Новый HTTPЗапрос("public/" + ПараметрыОбновлений.НомерПубликации + "/");
		Ответ = Соединение.Получить(Запрос);
		Тело = Ответ.ПолучитьТелоКакСтроку();
		
		Чтение = Новый ЧтениеHTML;
		Чтение.УстановитьСтроку(Тело);
		
		ПостроительDOM = Новый ПостроительDOM;
	    ДокументHTML   = ПостроительDOM.Прочитать(Чтение);
		ТекстПубликации = ДокументHTML.Тело.ТекстовоеСодержимое;
	Исключение
		ТекстПубликации = "";
	КонецПопытки;
	
	Если ПустаяСтрока(ТекстПубликации) Тогда
		КвоОбновлений = 0;
		Элементы.СтатьяНаИнфоСтарт.Заголовок = "Статья на infostart.ru (?)";
		Элементы.СтатьяНаИнфоСтарт.ЦветТекста = Новый Цвет(127, 127, 127);
		Возврат;
	КонецЕсли;
	
	СписокОбновлений = ПолучитьСписокОбновлений(ТекстПубликации);
	
	ДатаТекущегоОбновления = ПараметрыОбновлений.ДатаТекущегоОбновления;
	КвоОбновлений = ОпределитьКвоНовыхОбновлений(СписокОбновлений);
	ДатаПоследнейПроверкиОбновлений = ТекущаяДата();
	Если КвоОбновлений <> 0  Тогда
		Элементы.СтатьяНаИнфоСтарт.Заголовок = "Статья на infostart.ru (" + КвоОбновлений + ")";
		Элементы.СтатьяНаИнфоСтарт.ЦветТекста = Новый Цвет(255, 0, 0);
	Иначе
		Элементы.СтатьяНаИнфоСтарт.Заголовок = "Статья на infostart.ru";
		Элементы.СтатьяНаИнфоСтарт.ЦветТекста = Новый Цвет(0, 127, 0);
	КонецЕсли;
	
КонецПроцедуры



&НаКлиенте
Функция ОпределитьКвоНовыхОбновлений(СписокОбновлений)
	
	Кво = 0;
	Для каждого Элем Из СписокОбновлений Цикл
		Если Элем.Значение > ПараметрыОбновлений.ДатаТекущегоОбновления  Тогда
			Кво = Кво + 1;
		КонецЕсли;
	КонецЦикла;
	
	Возврат Кво;
	
КонецФункции


&НаКлиенте
Функция ПолучитьСписокОбновлений(ТекстПубликации)
	
	//	Выражение = <Проверка обновлений>
	//
	//	Левая скобка параметра = <
	//	Правая скобка параметра = >
	//	Шаблон имени = [А-ЯA-Z][-_ А-Яа-я0-9A-Za-z]*?
	//
	//	+-	<Проверка обновлений> = <НачальнаяМетка><ПС><Текст обновлений><ПС><КонечнаяМетка>
	//	+-	<Текст обновлений> = (?:.*(?:<ПС>.*)*?)
	//	+-	<ПС> = \s*
	//	+-	<Начальная метка> = НачальнаяМетка
	//	+-	<Конечная метка> = КонечнаяМетка
	
	idПС = "\s*";
	idНачальнаяМетка = ПараметрыОбновлений.НачальнаяМетка;
	idКонечнаяМетка = ПараметрыОбновлений.КонечнаяМетка;
	idТекстОбновлений = "(?:.*(?:" + idПС + ".*)*?)";
	idПроверкаОбновлений = idНачальнаяМетка + idПС + idТекстОбновлений + idПС + idКонечнаяМетка;
	idPattern = idПроверкаОбновлений;
	
	RegExpLocal = Новый COMОбъект("VBScript.RegExp");
	
	RegExpLocal.Multiline = Истина;
	RegExpLocal.Global = Истина;
	RegExpLocal.IgnoreCase = Истина;
	RegExpLocal.Pattern = idPattern;
	
	Найдено = RegExpLocal.Execute(ТекстПубликации);
	Для каждого Стр Из Найдено Цикл
		
		Начало = Стр.FirstIndex;
		Длина = Стр.Length;
		ТекстОбновлений = Стр.Value;
		
		Прервать;
		
	КонецЦикла;	
	
	
	СписокОбновлений = Новый СписокЗначений;
	
	
		
	//	Выражение = <Текущее обновление>
	//
	//	Левая скобка параметра = <
	//	Правая скобка параметра = >
	//	Шаблон имени = [А-ЯA-Z][-_ А-Яа-я0-9A-Za-z]*?
	//
	//	+-	<Текущее обновление> = (?:^<Дата обновления><ПС><Текст текущего обновления><ПС>)(?=(?:^(?:\d\d\.\d\d\.\d\d\d\d \d\d:\d\d))|(?:<Конечная метка>))
	//	+-	<Дата обновления> = (?:<День>\.<Месяц>\.<Год> <Часы>:<Минуты>)
	//	++	<Текст текущего обновления> = ((?:.|\s)*?)
	//	+-	<Конечная метка> = КонечнаяМетка
	//	+-	<ПС> = \s*
	//	++	<День> = (\d\d)
	//	++	<Месяц> = (\d\d)
	//	++	<Год> = (\d\d\d\d)
	//	++	<Часы> = (\d\d)
	//	++	<Минуты> = (\d\d)


	idМинуты = "(\d\d)";
	idЧасы = "(\d\d)";
	idГод = "(\d\d\d\d)";
	idМесяц = "(\d\d)";
	idДень = "(\d\d)";
	idКонечнаяМетка = ПараметрыОбновлений.КонечнаяМетка;
	idТекстТекущегоОбновления = "((?:.|\s)*?)";
	idПС = "\s*";
	idДатаОбновления = "(?:" + idДень + "\." + idМесяц + "\." + idГод + " " + idЧасы + ":" + idМинуты + ")";
	idТекущееОбновление = "(?:^" + idДатаОбновления + idПС + idТекстТекущегоОбновления + idПС + ")(?=(?:^(?:\d\d\.\d\d\.\d\d\d\d \d\d:\d\d))|(?:" + idКонечнаяМетка + "))";
	idPattern = idТекущееОбновление;
		
	RegExpLocal = Новый COMОбъект("VBScript.RegExp");
		
	RegExpLocal.Multiline = Истина;
	RegExpLocal.Global = Истина;
	RegExpLocal.IgnoreCase = Истина;
	RegExpLocal.Pattern = idPattern;
		
	Найдено = RegExpLocal.Execute(ТекстОбновлений);
	Для каждого Стр Из Найдено Цикл

		Начало = Стр.FirstIndex;
		Длина = Стр.Length;
		Значение = Стр.Value;
			
		vidДень = Стр.SubMatches(0);
		vidМесяц = Стр.SubMatches(1);
		vidГод = Стр.SubMatches(2);
		vidЧасы = Стр.SubMatches(3);
		vidМинуты = Стр.SubMatches(4);
		vidТекстТекущегоОбновления = Стр.SubMatches(5);
			
		СписокОбновлений.Добавить(Дата(vidГод+vidМесяц+vidДень+vidЧасы+vidМинуты), vidТекстТекущегоОбновления);
		
	КонецЦикла;	
	
	Возврат СписокОбновлений;
	
КонецФункции

В процедуре НастройкаОбновлений указываете свои параметры текущей обработки (публикации):

  • НомерПубликации - из публикации;
  • ЯкорьОбновлений - можно не указывать, но если указан, то будет осуществлен переход по указанной ссылке при чтении обновлений (см.код обработчика СтатьяНаИнфоСтартНажатие);
  • НачальнаяМетка, КонечнаяМетка - из публикации, ограничивают блок обновлений;
  • ДатаТекущегоОбновления - последняя дата обновления;
  • ПроверятьОбновленияЧерезДней - через сколько дней напоминать пользователю, что не мешало бы проверить обновления. В особенности, если ожидаются изменения в обработке. При нулевом значении параметра, напоминалка выключается.

И ,последнее, в событие ПриОткрытии вставляете строку:

Событие показать/скрыть
&НаКлиенте
Процедура ПриОткрытии(Отказ)

	НастройкаОбновлений();

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


Действующий пример включен в обработку Построитель регулярных выражений

Перейти к оглавлению

Программный код для конфигурации

Собственно, можно было бы ограничиться и описанными выше алгоритмами, но душа просит чего-то более современного. А нечто более современное мне видится таким:

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

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

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

На форме обработки создаю декорацию с именем  СтатьяНаИнфоСтарт (Статья на infostart.ru), указываю, что это гиперссылка. Никаких меню в обработчике. Если есть обновления на сайте, - переход на блок обновлений по нажатию гиперссылки, иначе открывается статья на чтение с самого начала.

Обработчик показать/скрыть
	
	Адрес = "//infostart.ru/public/" + ПараметрыОбновлений.НомерПубликации;
	
	Если Элементы.СтатьяНаИнфоСтарт.ЦветТекста = Новый Цвет(255, 0, 0) Тогда
		Если НЕ ПустаяСтрока(ПараметрыОбновлений.ЯкорьОбновлений) Тогда
			Адрес = Адрес + "/#" + ПараметрыОбновлений.ЯкорьОбновлений;
		КонецЕсли;
	КонецЕсли;
	
	ЗапуститьПриложение(Адрес);
	

В модуль формы включаете блок процедур/функций:

Блок показать/скрыть
&НаКлиенте 
Перем	ПараметрыОбновлений;

&НаКлиенте 
Процедура НастройкаОбновлений()
	
	//СтатьяНаИнфоСтарт - декорация формы, гиперссылка
	
	//Проверить обновления...
	ПараметрыОбновлений = Новый Структура;
	ПараметрыОбновлений.Вставить("НомерПубликации", "592108");
	ПараметрыОбновлений.Вставить("ЯкорьОбновлений", "L26");
	ПараметрыОбновлений.Вставить("НачальнаяМетка", "Желаю приятного просмотра!" + "\s*" + "Обновления");
	ПараметрыОбновлений.Вставить("КонечнаяМетка", "Скачать файлы");
	
	ПараметрыОбновлений.Вставить("ДатаТекущегоОбновления", '00010101');
	
	
	ВызовСервера.ЗапуститьФоновоеЗадание(ПараметрыОбновлений);
	ПодключитьОбработчикОжидания("ПосчитатьКвоНовыхОбновлений", 10, Истина);
	
	Элементы.СтатьяНаИнфоСтарт.Заголовок = "Статья на infostart.ru";
	Элементы.СтатьяНаИнфоСтарт.ЦветТекста = Новый Цвет(0, 127, 0);
	
КонецПроцедуры


&НаКлиенте
Функция ПосчитатьКвоНовыхОбновлений()
	
	СписокОбновлений = ВызовСервера.ПолучитьИзХранилища();
	
	Если СписокОбновлений <> Неопределено  Тогда
		Кво = 0;
		Для каждого Элем Из СписокОбновлений Цикл
			Если Элем.Значение > ПараметрыОбновлений.ДатаТекущегоОбновления  Тогда
				Кво = Кво + 1;
			КонецЕсли;
		КонецЦикла;
		
		Если Кво <> 0  Тогда
			Элементы.СтатьяНаИнфоСтарт.Заголовок = "Статья на infostart.ru (" + Кво + ")";
			Элементы.СтатьяНаИнфоСтарт.ЦветТекста = Новый Цвет(255, 0, 0);
		КонецЕсли;
	Иначе
		Элементы.СтатьяНаИнфоСтарт.Заголовок = "Статья на infostart.ru (?)";
		Элементы.СтатьяНаИнфоСтарт.ЦветТекста = Новый Цвет(127, 127, 127);
	КонецЕсли;
	
КонецФункции

Такая деталь: после запуска фонового задания, через 10 секунд я однократно опрашиваю результат. Полагаю, для примера этого достаточно. А там уже у кого на сколько фантазии хватит.

В событие ПриОткрытии вставляете строку:

Событие показать/скрыть
&НаКлиенте
Процедура ПриОткрытии(Отказ)

	НастройкаОбновлений();

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


Серверный общий модуль с именем ВызовСервера:

ВызовСервера показать/скрыть
Процедура ЗапуститьФоновоеЗадание(ПараметрыОбновлений) Экспорт 
	
	Массив = Новый Массив;
	Массив.Добавить(ПараметрыОбновлений);
	ФоновоеЗадание = ФоновыеЗадания.Выполнить("ВызовСервера.ПолучитьОбновления", Массив, "ОбновлениеПубликации");
	
КонецПроцедуры


Процедура ПолучитьОбновления(ПараметрыОбновлений) Экспорт
	
	Попытка
		Соединение = Новый HTTPСоединение("infostart.ru",,,,Неопределено,Ложь);
		Запрос = Новый HTTPЗапрос("public/" + ПараметрыОбновлений.НомерПубликации + "/");
		Ответ = Соединение.Получить(Запрос);
		Тело = Ответ.ПолучитьТелоКакСтроку();
		
		Чтение = Новый ЧтениеHTML;
		Чтение.УстановитьСтроку(Тело);
		
		ПостроительDOM = Новый ПостроительDOM;
	    ДокументHTML   = ПостроительDOM.Прочитать(Чтение);
		ТекстПубликации = ДокументHTML.Тело.ТекстовоеСодержимое;
		
		СписокОбновлений = ПолучитьСписокОбновлений(ТекстПубликации, ПараметрыОбновлений);
	Исключение
		СписокОбновлений = Неопределено;
	КонецПопытки;
	
	ВХранилище = Новый ХранилищеЗначения(СписокОбновлений);
	
	Сообщение = Новый СообщениеПользователю;
	Сообщение.Текст = XMLСтрока(ВХранилище);
	Сообщение.Сообщить();
	
КонецПроцедуры


Функция ПолучитьСписокОбновлений(ТекстПубликации, ПараметрыОбновлений)
	
	//	Выражение = <Проверка обновлений>
	//
	//	Левая скобка параметра = <
	//	Правая скобка параметра = >
	//	Шаблон имени = [А-ЯA-Z][-_ А-Яа-я0-9A-Za-z]*?
	//
	//	+-	<Проверка обновлений> = <НачальнаяМетка><ПС><Текст обновлений><ПС><КонечнаяМетка>
	//	+-	<Текст обновлений> = (?:.*(?:<ПС>.*)*?)
	//	+-	<ПС> = \s*
	//	+-	<Начальная метка> = НачальнаяМетка
	//	+-	<Конечная метка> = КонечнаяМетка
	
	idПС = "\s*";
	idНачальнаяМетка = ПараметрыОбновлений.НачальнаяМетка;
	idКонечнаяМетка = ПараметрыОбновлений.КонечнаяМетка;
	idТекстОбновлений = "(?:.*(?:" + idПС + ".*)*?)";
	idПроверкаОбновлений = idНачальнаяМетка + idПС + idТекстОбновлений + idПС + idКонечнаяМетка;
	idPattern = idПроверкаОбновлений;
	
	RegExpLocal = Новый COMОбъект("VBScript.RegExp");
	
	RegExpLocal.Multiline = Истина;
	RegExpLocal.Global = Истина;
	RegExpLocal.IgnoreCase = Истина;
	RegExpLocal.Pattern = idPattern;
	
	Найдено = RegExpLocal.Execute(ТекстПубликации);
	Для каждого Стр Из Найдено Цикл
		
		Начало = Стр.FirstIndex;
		Длина = Стр.Length;
		ТекстОбновлений = Стр.Value;
		
		Прервать;
		
	КонецЦикла;	
	
	
	СписокОбновлений = Новый СписокЗначений;
	
	
		
	//	Выражение = <Текущее обновление>
	//
	//	Левая скобка параметра = <
	//	Правая скобка параметра = >
	//	Шаблон имени = [А-ЯA-Z][-_ А-Яа-я0-9A-Za-z]*?
	//
	//	+-	<Текущее обновление> = (?:^<Дата обновления><ПС><Текст текущего обновления><ПС>)(?=(?:^(?:\d\d\.\d\d\.\d\d\d\d \d\d:\d\d))|(?:<Конечная метка>))
	//	+-	<Дата обновления> = (?:<День>\.<Месяц>\.<Год> <Часы>:<Минуты>)
	//	++	<Текст текущего обновления> = ((?:.|\s)*?)
	//	+-	<Конечная метка> = КонечнаяМетка
	//	+-	<ПС> = \s*
	//	++	<День> = (\d\d)
	//	++	<Месяц> = (\d\d)
	//	++	<Год> = (\d\d\d\d)
	//	++	<Часы> = (\d\d)
	//	++	<Минуты> = (\d\d)


	idМинуты = "(\d\d)";
	idЧасы = "(\d\d)";
	idГод = "(\d\d\d\d)";
	idМесяц = "(\d\d)";
	idДень = "(\d\d)";
	idКонечнаяМетка = ПараметрыОбновлений.КонечнаяМетка;
	idТекстТекущегоОбновления = "((?:.|\s)*?)";
	idПС = "\s*";
	idДатаОбновления = "(?:" + idДень + "\." + idМесяц + "\." + idГод + " " + idЧасы + ":" + idМинуты + ")";
	idТекущееОбновление = "(?:^" + idДатаОбновления + idПС + idТекстТекущегоОбновления + idПС + ")(?=(?:^(?:\d\d\.\d\d\.\d\d\d\d \d\d:\d\d))|(?:" + idКонечнаяМетка + "))";
	idPattern = idТекущееОбновление;
		
	RegExpLocal = Новый COMОбъект("VBScript.RegExp");
		
	RegExpLocal.Multiline = Истина;
	RegExpLocal.Global = Истина;
	RegExpLocal.IgnoreCase = Истина;
	RegExpLocal.Pattern = idPattern;
		
	Найдено = RegExpLocal.Execute(ТекстОбновлений);
	Для каждого Стр Из Найдено Цикл

		Начало = Стр.FirstIndex;
		Длина = Стр.Length;
		Значение = Стр.Value;
			
		vidДень = Стр.SubMatches(0);
		vidМесяц = Стр.SubMatches(1);
		vidГод = Стр.SubMatches(2);
		vidЧасы = Стр.SubMatches(3);
		vidМинуты = Стр.SubMatches(4);
		vidТекстТекущегоОбновления = Стр.SubMatches(5);
			
		СписокОбновлений.Добавить(Дата(vidГод+vidМесяц+vidДень+vidЧасы+vidМинуты), vidТекстТекущегоОбновления);
		
	КонецЦикла;	
	
	Возврат СписокОбновлений;
	
КонецФункции


Функция ПолучитьИзХранилища() Экспорт
	
	Задания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Новый Структура("Ключ", "ОбновлениеПубликации"));
	
	Если Задания.Количество() <> 0  Тогда
		Задание = Задания[0];
		Сообщения = Задание.ПолучитьСообщенияПользователю(Истина);
		
		Если Сообщения.Количество() <> 0  Тогда
			СписокОбновлений = XMLЗначение(Тип("ХранилищеЗначения"), Сообщения[0].Текст).Получить();
			Возврат СписокОбновлений;
		Иначе
			Возврат Неопределено;
		КонецЕсли;
		
	Иначе
		Возврат Неопределено;
	КонецЕсли;
	
КонецФункции

Перейти к оглавлению

Предварительное тестирование

Для пущей уверенности, что все сделано правильно, текстовые метки блока обновлений прописаны верно, - можно протестировать публикацию, записанную в черновик. Текст ее перенесите в Построитель регулярных выражений, а само выражение восстановите в Построителе на закладке Код 1С из процедуры ПолучитьСписокОбновлений (особо не задумываясь, можно перенести туда полный текст процедуры). Как это делается, подробно описано в Построителе регулярных выражений. И я настойчиво советую тем из вас, кто скачал Построитель регулярных выражений до опубликования этой статьи, - предварительно обновить его на последнюю версию, в которой есть важные изменения и применительно к обсуждаемой теме.

Значения параметров <Начальная метка> и <Конечная метка> установите такие же, что и в процедуре НастройкаОбновлений.

Потом запустите на выполнение выражение <Проверка обновлений>. Если текстовый блок обновлений из публикации выбран правильно, включая ограничители, - все хорошо.

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

Заключение

Оба примера проверены мной в работе на 1С 8.3.7.1873 под Win'7, ошибок не выявлено.

Тем не менее, загодя приношу свои дикие извинения, если вдруг что-то не сложилось у вас по моей вине. Знаете, как это бывает: правой рукой исполняешь свои основные обязанности на работе; левой чешешь репу; а ногами выстукиваешь статью на ИнфоСтарт. Чудеса при этом могут случаться.

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

Писалось из лучших побуждений. Желаю удачи!

Перейти к оглавлению

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. MaxS 2613 24.03.17 14:16 Сейчас в теме
Спасибо за оформление публикации, полезная информация. ))
Вопрос скорее к функционалу сайта. Когда появится механизм, позволяющий простым запросом без анализа текста сайта получить небольшой текст-информацию об обновлении? Об этом спрашивалось несколько лет назад.
Сейчас есть удобный механизм не заходя в редактирование публикации обновить файл публикации.
Лично я лишний раз не рискую заходить в редактирование публикации, т.к. не знаю чего ожидать - то вдруг она заблокируется и отправится на модерацию, то вдруг испортятся наименования файлов, то ещё что-нибудь, что не сразу заметишь.
Поэтому хотелось бы ещё получить аналогичный функционал по загрузке некоторой дополнительной информации не переходя в режим редактирования.
2. romasna 285 24.03.17 14:27 Сейчас в теме
(1)Наверное, этот вопрос уместней вынести на форум. :) Но как я уже вскользь упомянул в статье, рассчитывать на то, что разработчики сайта удовлетворят всех нас и все наши интересы не приходится, в силу невозможности. По-любому, чтобы они не предложили, придется за этим зайти на сайт. А предлагаемый в статье подход исключает такую необходимость для конечного потребителя программного продукта. Зайдут на сайт по прямой ссылке тогда, когда появится обновление. Как-то так...
3. MaxS 2613 24.03.17 14:55 Сейчас в теме
(2) Вопрос где-то в авторском разделе висит уже не помню где.
Про пользователей всё понятно. Хочется ещё и удобства автору разработки, чтобы тоже лишний раз не ходить на сайт, а программно отправить запрос на обновление информации на сайте.
Наверное это не критично, но Инфостарт продаёт свои обработки через партнеров... Внимательный покупатель заметит, что купил/скачал на одном сайте, а за обновлением обработка стучится на другой. )) Как это разрулить я сам не знаю.
4. romasna 285 24.03.17 15:05 Сейчас в теме
(3)Для учета партнеров пришлось бы напрячь как-то покупателей. Например, в меню, связанном с гиперссылкой на форме, предлагать выбор этого самого партнера. Дальше дело техники. В плане реализации как-бы не сложно, но... захочет ли покупатель сообщить эти данные в настройке? Можно, правда, принудить его при первой попытке проверить обновления... Надо только иметь полный список партнеров или озаботиться о его закачке с какого-то ресурса ИнфоСтарта. В-общем, решение может быть.
5. adapter 405 27.03.17 15:32 Сейчас в теме
хорошо было бы добавить RSS ленту к публикации. Клиенты могут подписаться, программно можно читать.

Ну и самый нормальный вариант - дать автору управляемую рассылку по вариантам "скачавшие", "купившие", "проголосовавшие" и т.д.
6. romasna 285 27.03.17 15:54 Сейчас в теме
(5)Наверное, решение задачи в такой постановке ближе разработчикам этого сайта. Пока что сделал то, что смог, на основе имеющихся возможностей и умений.
Оставьте свое сообщение

См. также

Публикация сборки сайта через 1С

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

Демонстрация возможного сценария развертывания сайта через 1С HTTP сервис на примере сборки react-app.

03.03.2023    1861    van_za    7    

25

Пагинация в 1С

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Те, кому приходилось делать REST API на базе HTTP-сервисов 1С, могли в какой-то момент столкнуться с необходимостью разработки методов, которые позволяли бы возвращать данные с пагинацией, т.е. последовательными порциями. В языках общего назначения пагинация реализуется простым использованием операторов OFFSET и LIMIT в SQL-запросе к базе данных. В языке запросов 1С оператора OFFSET нет, поэтому всем приходится решать эту задачу обходными способами. Один из таких обходных способов представлен в этой статье.

09.01.2023    1829    aleksei_adamov    36    

21

1С бакэнд (каталог товаров)

WEB-интеграция Платформа 1С v8.3 1С:Розница Россия Бесплатно (free)

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

01.01.2023    1343    aldar    5    

20

Возможности доработки выгрузки из 1С в Битрикс

WEB-интеграция Платформа 1С v8.3 Управленческий учет Бесплатно (free)

В статье собраны некоторые полезные и интересные примеры доработок выгрузки из 1С на сайты на платформе Битрикс (Возможно, что-то подойдёт и для WordPress и других платформ, принимающих типовую выгрузку на сайт из 1С). Доработки рассмотрены без привязки к конкретным конфигурациям, примеры кода взяты в основном из доработок УТ 10 и 11. Некоторые доработки требуют изменений на стороне Битрикса, некоторые укладываются в типовой функционал. Примеры взяты из личного опыта, возможно, описание где-то не полное, т.к. доработки делались в разное время. Если материал будет интересен или будут аналогичные актуальные задачи, буду стараться дополнять статью более подробным описанием и примерами.

01.11.2022    1130    de0nis    2    

12

Реализация нестандартных (для 1С) интерфейсных решений в Web-клиенте

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

Онлайн-сервисы, построенные на 1С, могут использовать все многообразие веб-технологий. О том, как спроектировать, реализовать и красиво оформить интерфейс продукта 1С, в докладе на конференции Infostart Event 2021 Post-Apocalypse рассказал CTO компании WiseAdvice Олег Филиппов.

21.10.2022    6374    comol    15    

69

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Rest API от чайника для чайников

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

На написание статьи побудило чтение книги "Технологии интеграции "1С:Предприятия 8.3"" Хрусталевой Е.Ю. В первой главе там постоянно чередуются слова REST, REST-интерфейс, архитектура REST и т.д. Мне стало интересно, я начал копать, что это такое, и тема оказалась достаточно интересной.

06.06.2022    11941    zeltyr    2    

11

Загрузка выпусков подкаста Радио 1С Энтерпрайз

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Код для загрузки всех выпусков подкаста Радио 1С Энтерпрайз для оффлайн-прослушивания.

29.04.2022    1129    q_i    9    

16

УПП: Ошибка при взаимодействии с ФСС

Регламентированный учет и отчетность WEB-интеграция Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет ФОМС, ЕФС Бесплатно (free)

При обновлении релиза УПП до 1.3.178.2 пользователи начали жаловаться, что не отправляются в ФСС документы "Ответ на запрос ФСС для расчета пособия" и "Сведения о застрахованных лицах, ФСС". В статье предложен вариант обхода данной ошибки, возможно, это кому-то поможет.

28.04.2022    1413    alex_bob    8    

3

Методика интеграции HTML редакторов в поле HTML документа базы 1С

WEB-интеграция Платформа 1С v8.3 Платформа 1C v8.2 Бесплатно (free)

В статье описаны критерии WYSIWYG HTML редакторов и общая картина интеграции с платформенными механизмами. На момент платформы 1С 8.3 и возможно для будущих релизов описание будет скорее всего актуально. Апробировано на 1С 8.3.20 и 8.2.12, а также на мобильной платформе 8.3.19.59.

12.04.2022    1772    user1206119    2    

13

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Создание кодогенератора для Postman

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Опишу порядок разработки кодогенератора для Postman c использованием OneScript и HTTPКоннектор.

13.03.2022    1371    malikov_pro    2    

9

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

Консолидация данных Анализ и проектирование ИТ-систем WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

На онлайн-митапе «Бизнес-анализ по данным базы 1С. Интеграция c платформами BI» выступил ведущий разработчик WiseAdvice.tech Дмитрий Фурцев. Дмитрий рассказал о том, как отдать миллионы строк из 1С в платформу бизнес-аналитики и не потратить на это сутки.

14.02.2022    5005    Fudj1k    11    

22

Передача сообщений из 1С в MS Teams

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

Пример организации уведомлений в канал MS Teams.

09.02.2022    2147    Alex_YAM    4    

23

Работа с 1С через протокол OData

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

В данной статье мы будем рассматривать работу с данными информационной базы через протокол OData (далее OData).

17.12.2021    29157    ProgrammingStore    26    

86

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Подключение к HTTP-сервису с авторизацией посредством передачи клиентского SSL-сертификата

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

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

07.12.2021    10264    kholkin    12    

104

Тонкости и подводные камни работы типового модуля интеграции Битрикс24 и 1С (Часть 2)

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Это вторая часть цикла статей, посвящённых типовому модулю интеграции 1С Предприятия и Битрикс24. Цель данной части: рассмотреть тонкости, связанные с обменом товарами и сопутствующими сущностями (спойлер - единицы измерения и свойства товаров). Также затронем некоторые нюансы связи сущностей 1С и Б24 (относящиеся не только к товарам) и их побочное влияние при переносе данных из модуля в модуль (при смене конфигурации, переустановки или обновлении модуля).

27.11.2021    7776    freegman74    16    

18

Web консоль управления сеансами 1С

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

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

26.11.2021    3068    4ernuy    16    

28

Реализация перевода текста средствами Azure

WEB-интеграция Локализация решений Платформа 1С v8.3 Россия Бесплатно (free)

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

19.11.2021    706    user1559835    2    

4

Тонкости и подводные камни работы типового модуля интеграции Битрикс24 и 1С

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

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

07.11.2021    11124    freegman74    13    

34

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Окей, Google

WEB-интеграция Платформа 1С v8.3 Россия Бесплатно (free)

Пример интеграции Google Ассистента с 1С. В основе которого лежит платформа Dialogflow CX для понимания естественного языка.

28.10.2021    2083    Soloist    6    

29

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

WEB-интеграция HighLoad оптимизация Платформа 1С v8.3 Бесплатно (free)

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

20.10.2021    4551    sorter1    3    

47

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

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

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

04.10.2021    26530    Neti    23    

111

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

WEB-интеграция Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 Ювелирная промышленность и торговля Россия Бесплатно (free)

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

30.09.2021    35939    1СERP    159    

30

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

Быстрое чтение составных http сообщений multipart/form-data

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Алгоритм быстрого разбора составного http сообщения multipart/form-data.

26.09.2021    2964    cherkasovvitalik    4    

56

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

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

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

15.09.2021    8793    TyurinArt    11    

30

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

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

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

07.09.2021    10225    ix5s    25    

66

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

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

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

06.09.2021    5014    Бэнни    12    

51

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

WEB-интеграция Платформа 1С v8.3 Россия Бесплатно (free)

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

03.09.2021    11408    UltraUnion2005    9    

35

Готовые переносы данных из различных конфигураций 1C Промо

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

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

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

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

31.08.2021    2786    ldmonster    9    

12

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

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

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

30.08.2021    13462    user5300    68    

54

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

WEB-интеграция Платформа 1С v8.3 1С:Управление торговлей 11 Бесплатно (free)

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

27.08.2021    2720    greencactus    7    

18

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

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

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

27.08.2021    7820    mikepin    10    

61

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

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

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

20.08.2021    5488    TitanLuchs    19    

41

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

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

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

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

18.08.2021    6401    greencactus    42    

61

Сравнительный анализ вариантов интеграции между системами

Файловый обмен (TXT, XML, DBF), FTP WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

На Infostart Meetup «Интеграционные решения для 1С» выступил Сергей Наумов – руководитель центра аналитики и консалтинга WiseAdvice. Сергей поделился с коллегами кейсами из собственной практики: какие интеграционные решения остаются актуальными до сих пор, а каких приемов стоит избегать – даже в безвыходных ситуациях.

30.07.2021    4229    SergeyN    1    

10

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

WEB-интеграция Платформа 1С v8.3 Украина Бесплатно (free)

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

28.07.2021    3186    Pervuy    5    

5

Пример организации HTTP сервиса на 1С: Документооборот. Источник 1С: ЕРП => Приемник 1С: Документооборот

WEB-интеграция Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

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

13.05.2021    4340    Flover    1    

23

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

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

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

30.04.2021    6266    ripreal1    16    

40