Многопоточная обработка данных

03.09.19

База данных - HighLoad оптимизация

Конфигурация "Универсальные механизмы: пакеты данных". Набор инструментов для быстрой организации отказоустойчивой многопоточной обработки данных.

Комплекты поставки

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Универсальные механизмы: пакеты данных (открытый код)
.cf 214,36Kb
121
121 Скачать (1 SM) Купить за 1 850 руб.

Инструкция

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Инструкция УМ - Пакеты данных v02.pdf
.pdf 1,84Mb
76
76 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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


Проблемы и решения

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

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

Для решения этих и многих других (менее явных, но не менее важных) задач предназначена конфигурация «Универсальные механизмы: пакеты данных».

Конфигурация «Универсальные механизмы: пакеты данных» может быть внедрена в любую конфигурацию на платформе 1С 8.3 без доработок. Она полностью независима и самодостаточна.


Базовые понятия

В конфигурации есть 2 основных понятия, вокруг которых строится вся работа:

  • Пакет данных
  • Способ обработки пакетов данных

Пакет данных

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

У каждого пакета данных есть данные пакета – произвольный набор сведений (массив ссылок, двоичные данные, таблица значений, …), который используется при обработке этого пакета.

Пакет данных имеет статус, который зависит от результата его обработки:

  • К обработке – пакет еще не обработан.
  • В обработке – в данный момент пакет обрабатывается.
  • Обработан – пакет успешно обработан.
  • Ошибка – при обработке пакета возникла ошибка.

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

Ну и главное – пакет данных обязательно содержит ссылку на способ обработки пакетов.

Способ обработки пакетов

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

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

  • Количество параллельных рабочих потоков.
  • Максимальное время жизни рабочего ФЗ – это время, которое мы отводим на обработку нашего пакета данных. Если оно истекло – система автоматически прервет рабочее фоновое задание, в котором обрабатывается этот пакет.

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

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


Организация многопоточной обработки

Многопоточная обработка организуется с использованием фоновых заданий. У фоновых заданий есть 2 роли:

  • Рабочее ФЗ – в этом фоновом задании выполняется написанный Разработчиком алгоритм по обработке пакета данных.
  • Управляющее ФЗ – данное фоновое задание занимается запуском рабочих ФЗ и отслеживанием их состояния.

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

Укрупненно алгоритм работы системы следующий:

  • По расписанию запускается РЗ обработки пакетов. В нем выбираются необработанные пакеты с активным способом обработки.
  • Для каждого способа обработки запускается управляющее ФЗ, куда передается выборка необработанных пакетов по этому способу, а также параметры многопоточной обработки.
  • Управляющее ФЗ в течение времени своей жизни организует многопоточную обработку пакетов в рабочих ФЗ.

По истечении времени жизни управляющего ФЗ оно завершает свою работу, даже если не все пакеты были обработаны. Необработанные пакеты будут переданы в новое управляющее ФЗ при очередном запуске регламентного задания обработки пакетов.

Так как считывание параметров способа обработки пакетов производится каждый раз при запуске нового управляющего ФЗ, становится возможным управлять многопоточной обработкой, изменяя параметры способа обработки. Можно остановить/запустить обработку пакетов, изменить количество параллельных рабочих потоков и пр.


Быстрый старт

Рассмотрим основные понятия и объекты, которые используются в конфигурации на простейшем примере – решении БОЛЬШОЙ ЗАДАЧИ.

БОЛЬШАЯ ЗАДАЧА: нужно заполнить поля и записать 100 тысяч элементов справочника. Каждый элемент может быть обработан независимо, но обработка трудоемка.

Для организации многопоточной обработки БОЛЬШОЙ ЗАДАЧИ её нужно разбить на маленькие порции – пакеты данных, которые могут быть выполнены параллельно. У каждого пакета данных есть свои входящие параметры – данные пакета, которые определяют, какая часть БОЛЬШОЙ ЗАДАЧИ будет выполнена при обработке этого пакета. При этом нам нужно указать способ обработки пакета, который будет хранить информацию о том, какая функция будет обрабатывать наши пакеты данных и сколько параллельных рабочих потоков будет запущено для обработки.

Создание обработчика пакета данных

Создадим в любом серверном модуле экспортную функцию – обработчик пакета данных. В качестве данных пакета выступает массив из нескольких элементов справочника из нашей БОЛЬШОЙ ЗАДАЧИ в 100 тысяч элементов.

Функция  ОбработчикПакетаДанных(Данные, ПараметрыПакетаДанных, ПараметрыСпособаОбработки) Экспорт	

	// Данные – это массив с порцией ссылок 
	// В ТЧРезультат мы будем хранить результат обработки наших данных
	ТЧРезультат = Новый ТаблицаЗначений;
	ТЧРезультат.Колонки.Добавить(«СсылкаЭлемент»);
	ТЧРезультат.Колонки.Добавить(«ОписаниеРезультата»);
	
	// Приступим к обработке данных пакета
	НачатьТранзакцию();	
	Для каждого СсылкаЭлемент из Данные Цикл
		// в этой функции происходит непосредственно обработка ссылки
		ОписаниеРезультата = ОбработатьЭлементСправочника(СсылкаЭлемент);
		СтрРезультат = ТЧРезультат.Добавить();
		СтрРезультат.СсылкаЭлемент = СсылкаЭлемент;
		СтрРезультат.ОписаниеРезультата = ОписаниеРезультата;
	КонецЦикла;
	ЗафиксироватьТранзакцию();

	// Пакет обработан – сообщим системе, как завершилась обработка. 
	РезультатОбработкиПакета = Новый Структура;
	РезультатОбработкиПакета.Вставить(«СостояниеПакетаДанных», Перечисления.ум_СостоянияПакетаДанных.Обработан);
	РезультатОбработкиПакета.Вставить(«Сообщение», «Обработано: »+Данные.Количество()+« элементов.»);
	РезультатОбработкиПакета.Вставить(«Результат», ТЧРезультат);

	Возврат РезультатОбработкиПакета;	
           	
КонецФункции

В функции ОбработатьЭлементСправочника происходит непосредственно обработка элемента справочника. Функция возвращает структуру с описанием результата обработки элемента.

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

Описание способа обработки пакета

Откроем справочник «Способы обработки пакетов» и создадим там новый элемент с наименованием «Большая задача». Заполним его следующим образом:

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

Создание пакетов данных

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

Процедура СоздатьПакетыОбработки(БольшойМассивСсылок)

	РазмерПорции = 10; // максимальный размер порции данных на пакет	

	// алгоритм ниже разбивает большую задачу на части и для каждой части создает пакет данных
	ТекущаяПорция = Неопределено;
	Для каждого СсылкаЭлемент из БольшойМассивСсылок Цикл

		Если ТекущаяПорция = Неопределено Тогда
			ТекущаяПорция = Новый Массив;
		КонецЕсли;
		ТекущаяПорция.Добавить(СсылкаЭлемент);

		Если ТекущаяПорция.Количество() >= РазмерПорции Тогда
			Результат = ум_ПакетыДанныхСерверПривелегированный.СоздатьНовыйПакетДанных(ТекущаяПорция, «Большая задача»);
			Если Резульатат.ОшибкаЗаписиПакета Тогда
				ВызватьИсключение Результат.ОписаниеОшибки;
			КонецЕсли;
			ТекущаяПорция = Неопределено;
		КонецЕсли;

	КонецЦикла;

	Если НЕ ТекущаяПорция = Неопределено Тогда
		ум_ПакетыДанныхСерверПривелегированный.СоздатьНовыйПакетДанных(ТекущаяПорция, «Большая задача»);
		Если Резульатат.ОшибкаЗаписиПакета Тогда
			ВызватьИсключение Результат.ОписаниеОшибки;
		КонецЕсли;
	КонецЕсли;

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

У функции СоздатьНовыйПакет() два обязательных параметра:

  • Данные – произвольное значение. Данные пакета.
  • ИмяСпособаОбработки – наименование способа обработки, которым созданный пакет должен быть обработан.

Функция СоздатьНовыйПакет()  возвращает структуру данных, которая содержит:

  • идентификатор созданного пакета данных;
  • флаг ошибки записи пакета;
  • описание ошибки записи нового пакета (если она произошла).

В результате вызова функции СоздатьНовыйПакет() в системе будет зарегистрирован новый пакет в статусе «К обработке».

ГОТОВО!!!

При установке флага «Активность» в способе обработки пакетов «Большая задача» система автоматически запустит многопоточную обработку пакетов.


Особенности работы

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

Лог работы с пакетом данных

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

Если при обработке пакета пользователь в структуре результата указал какое-либо значение как результат обработки пакета – его можно также просмотреть в логе обработки пакетов.

Повторная обработка пакетов

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

К примеру, в способе обработки можно указать, что если обработка пакета завершилась с ошибкой, содержащей строку «Конфликт блокировок при выполнении транзакции», то такой пакет будет повторно направлен на обработку через заданный промежуток времени.

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

К примеру, пакет «Загрузка счет-фактуры» может ожидать появления в системе ссылки на свой документ-основание «Поступление ТМЦ» в течение заданного периода. Для этого при обработке пакета, если документ основание не найден, достаточно вернуть статус обработки пакета «К обработке», а если найден – создать счет-фактуру и вернуть статус «Обработан».

Администрирование пакетов

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

Средства отладки

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

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

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

Отказоустойчивость

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

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


Дополнительные возможности

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

 
 Обработка «Администрирование многопоточной обработки»
 
 Обработка «Групповое редактирование данных»

Примеры использования

 
 Отложенная «тяжелая» обработка данных
 
 Пошаговые алгоритмы обработки данных

Кроме описанных выше примеров, пакеты данных успешно используются для:

  • Автоматическое фоновое восстановление последовательностей.
  • Многопоточное отражение документов в регламентированном учете (для ERP 2, КА 2).
  • Реализации обменов между базами данных.
  • Обслуживания web-сервисов. При получении данных через web-сервис создается новый пакет данных. Это работает очень быстро и позволяет сократить время жизни web-сессии, а также получить полноценное логирование работы web-интерфейса базы данных.

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

Также в последующих публикациях попробую рассказать о некоторых приемах при работе в HiLoad системах:

  • Способ блокировки данных, блокировка которых не предусмотрена платформой. Организация ожидания блокировки и DeadLock в пакетах данных.
  • Способы распараллеливания «не распараллеливаемых» алгоритмов.

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

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

Для скачивания доступна конфигурация с открытым кодом.

 
 Информация об обновлениях версий конфигурации

HighLoad Параллельная обработка Многопоточная Фоновые задания Универсальные механизмы Пакеты данных

См. также

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    4162    24    14    

37

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

15600 руб.

06.12.2023    7607    34    5    

65

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

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

10000 руб.

10.11.2023    9285    33    10    

56

SALE! %

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

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

4800 3840 руб.

14.01.2013    185648    1127    0    

899

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    31805    97    151    

71

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    72215    625    45    

84

Инструменты администратора БД Системный администратор Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    62511    92    59    

77

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    102737    243    100    

305
Отзывы
10. HavtorinM 27.11.18 05:39 Сейчас в теме
Инструментарий очень даже порадовал. На данный момент накрутили на него очень много процессов:
1) Изменение данных в ИБ (корректировка/создание данных, перепроведение документов).
2) Загрузка данных из сторонних систем (Документооборот, ЗУП).
3) Рассылка сообщений пользователям (при создании/изменении пароля), общие уведомления.
4) Отправка данных на веб-сервис.
Коротко о том, что получили:
Значительное увеличение скорости обработки данных.
Быстро и наглядно можно увидеть состояние обработки необходимых данных и отреагировать на появление ошибок (некорректная загрузка, неудачное внесение доработок в конфигурацию и др.)
Ввиду архитектуры данной разработки, после калибровки настроек способов обработки, удалось очень равномерно распределить нагрузку на сервер.
Гибкость настройки. В момент запуска блока или после исправления ошибки для ускорения скорости обработки нужного способа обработки, отключали все способы, кроме одного нужного.
mistervoron; fatman78; _ASZ_; +3 Ответить
3. pashamak 330 23.11.18 16:48 Сейчас в теме
Здорово, ранее приходилось изобретать свой велосипед - теперь можно использовать готовое решение.
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. herfis 513 23.11.18 13:38 Сейчас в теме
1. При отслеживании сбоев анализируется журнал регистрации или технологический журнал?
2. Доступ к журналу - это обязательное условие нормального функционирования системы или опциональное для улучшения качества анализа причин сбоев и принятия решений?
2. _ASZ_ 165 23.11.18 14:03 Сейчас в теме
Если речь идет о нарушении работоспособности в связи с аварийным завершением работы ФЗ, то это выясняется не анализом журнала регистрации (его могут же вообще отключить) и не тех. журнала (включать его на продуктивных системах - не лучшее решение), а путем опроса кластера серверов 1С на предмет состояния ФЗ по ключу. При старте рабочего ФЗ или управляющего ФЗ запоминается его ключ и опрашивается сервер 1С по состоянию потока с этим ключом.
3. pashamak 330 23.11.18 16:48 Сейчас в теме
Здорово, ранее приходилось изобретать свой велосипед - теперь можно использовать готовое решение.
4. DarkAn 1093 26.11.18 10:06 Сейчас в теме
Добрый день!
Из предложенного описания не совсем понятно как реализуется "Автоматическое фоновое восстановление последовательностей."?

Из того, что было представлено - это обычное разделение данных на блоки и их обработка.
5. _ASZ_ 165 26.11.18 10:32 Сейчас в теме
(4) Все верно. Здесь описан инструмент для организации отказоустойчивой многопоточной обработки данных. Способ автоматического фонового восстановления последовательностей с использованием пакетов данных я постараюсь описать в ближайшее время в другой статье. Много людей обращаются с этим вопросом, проблема актуальная.
Maks_Alexey13; +1 Ответить
6. rpgshnik 3784 26.11.18 15:35 Сейчас в теме
10sm больше чем 1000р, по этому крайне странно, что за 10sm, код закрытый.
7. _ASZ_ 165 26.11.18 15:59 Сейчас в теме
(6) Действительно ситуация странная. Не вы первый обращаетесь. Честно говоря я только сейчас разобрался с местным ценообразованием. Выложу ка я везде открытый код...
Maks_Alexey13; DarkAn; rpgshnik; +3 Ответить
8. DarkAn 1093 26.11.18 16:57 Сейчас в теме
(7) В итоге я к такой же мысли пришел :)
Многопоточность. Универсальный «Менеджер потоков» 2.0

Радует, что движемся в одном направлении :)
9. DarkAn 1093 26.11.18 17:01 Сейчас в теме
(6) Почему дороже? Вроде текущий курс 84 руб * 10$m = 840 руб. Разве нет?

Вот разработчик вместо 10$m - получает только 8$m - это точно :)

То, что соотношение 840 (код закрыт) к 1 000 (код открыт) действительно странное, но автор вроде решил исправиться и это радует :)
11. rpgshnik 3784 27.11.18 07:37 Сейчас в теме
(9) 840 это вы со стороны авторов оцениваете (кто заработал стартмани на инфостарте), посмотрите сколько 1sm стоит для пользователей, которые их приобретают через инфостарт (https://infostart.ru/journal/news/mir-1s/infostart-novye-tarify-na-abonement-s-01-12-2018_942295/), по этому цена 10sm в эквиваленте в рубли для них становится от 4500р до 1050р. Возьмём грубо средне 2775р, что явно больше 1000р.

Кстати забавно посмотреть разницу. 840 ведь не чистая прибыл автора, а лишь будет 672 (хоть скачка и 10см, автору падает только 8см). Затем с них он ещё при выводе заплатит, итого 672-87,36-100(обычно 3%, но не меньше 100р)=484,64р. Веселая математика 4500-484,64=4015,36р разница :)
Прикрепленные файлы:
Interrupted; +1 Ответить
10. HavtorinM 27.11.18 05:39 Сейчас в теме
Инструментарий очень даже порадовал. На данный момент накрутили на него очень много процессов:
1) Изменение данных в ИБ (корректировка/создание данных, перепроведение документов).
2) Загрузка данных из сторонних систем (Документооборот, ЗУП).
3) Рассылка сообщений пользователям (при создании/изменении пароля), общие уведомления.
4) Отправка данных на веб-сервис.
Коротко о том, что получили:
Значительное увеличение скорости обработки данных.
Быстро и наглядно можно увидеть состояние обработки необходимых данных и отреагировать на появление ошибок (некорректная загрузка, неудачное внесение доработок в конфигурацию и др.)
Ввиду архитектуры данной разработки, после калибровки настроек способов обработки, удалось очень равномерно распределить нагрузку на сервер.
Гибкость настройки. В момент запуска блока или после исправления ошибки для ускорения скорости обработки нужного способа обработки, отключали все способы, кроме одного нужного.
mistervoron; fatman78; _ASZ_; +3 Ответить
12. _ASZ_ 165 05.03.19 05:50 Сейчас в теме
Время пришло. Хотел сделать разработку бесплатной, но не вышло... Минимум 1sm. Пусть будет так.
FilatovRA; +1 Ответить
15. k1rs 14.12.19 15:34 Сейчас в теме
(12) Как вариант можно выложить в гитхаб и оставить ссылку в публикации. Как например здесь: https://infostart.ru/public/709325/
13. Serg O. 294 03.09.19 07:50 Сейчас в теме
хорошая идея... надо попробовать...
небольшая опечатка в тексте: Процедура СоздатьПакетыОбработки ...
сразу видно не подсвечено красным... ТекущаяПорция = НеопредеЛНо;
14. _ASZ_ 165 03.09.19 11:07 Сейчас в теме
16. Skif1989 24.04.21 16:03 Сейчас в теме
Тупой вопрос мне для бухгалтерии подойдет? Перечитал много статей разных, мне необходимо ускоренное восстановление последовательности документов.
mistervoron; +1 Ответить
17. _ASZ_ 165 26.04.21 07:20 Сейчас в теме
(16) Добрый день.

Подойти то подойдет, главное не упереться в блокировки на регистре бухгалтерии и чтобы данные позволяли распараллелить процесс.
18. user737574 12.08.22 17:44 Сейчас в теме
Добрый день

А могли бы вы выложить эту прекрасную доработку на yandex disk ?
19. konstantinvasenev 97 25.03.23 21:00 Сейчас в теме
Расскажите, пожалуйста, как настроить обмен между базами через планы обмена между базами с помощью этой обработки
Оставьте свое сообщение