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

Публикация № 947222 23.11.18

Администрирование БД - HighLoad оптимизация

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

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

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

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

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

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

Однако если логика решаемой задачи позволяет распараллелить процессы обработки данных, то распараллеливание - это наиболее и эффективный способ кратного увеличения производительности системы. Многопоточная обработка данных – гармоничный путь развития современных систем учета и 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 и выше. В конфигурации используются управляемые формы.

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

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

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

Наименование Файл Версия Размер
Универсальные механизмы: пакеты данных (открытый код)

.cf 214,36Kb
64
.cf 2.1.1.8 214,36Kb 64 Скачать

Инструкция

Наименование Файл Версия Размер
Инструкция УМ - Пакеты данных v02.pdf

.pdf 1,84Mb
45
.pdf 02 1,84Mb 45 Скачать

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

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

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

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

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

То, что соотношение 840 (код закрыт) к 1 000 (код открыт) действительно странное, но автор вроде решил исправиться и это радует :)
11. rpgshnik 2731 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) Отправка данных на веб-сервис.
Коротко о том, что получили:
Значительное увеличение скорости обработки данных.
Быстро и наглядно можно увидеть состояние обработки необходимых данных и отреагировать на появление ошибок (некорректная загрузка, неудачное внесение доработок в конфигурацию и др.)
Ввиду архитектуры данной разработки, после калибровки настроек способов обработки, удалось очень равномерно распределить нагрузку на сервер.
Гибкость настройки. В момент запуска блока или после исправления ошибки для ускорения скорости обработки нужного способа обработки, отключали все способы, кроме одного нужного.
12. _ASZ_ 127 05.03.19 05:50 Сейчас в теме
Время пришло. Хотел сделать разработку бесплатной, но не вышло... Минимум 1sm. Пусть будет так.
FilatovRA; +1 Ответить
15. k1rs 14.12.19 15:34 Сейчас в теме
(12) Как вариант можно выложить в гитхаб и оставить ссылку в публикации. Как например здесь: https://infostart.ru/public/709325/
13. Serg O. 199 03.09.19 07:50 Сейчас в теме
хорошая идея... надо попробовать...
небольшая опечатка в тексте: Процедура СоздатьПакетыОбработки ...
сразу видно не подсвечено красным... ТекущаяПорция = НеопредеЛНо;
14. _ASZ_ 127 03.09.19 11:07 Сейчас в теме
16. Skif1989 24.04.21 16:03 Сейчас в теме
Тупой вопрос мне для бухгалтерии подойдет? Перечитал много статей разных, мне необходимо ускоренное восстановление последовательности документов.
17. _ASZ_ 127 26.04.21 07:20 Сейчас в теме
(16) Добрый день.

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

См. также

Универсальный редактор данных (УРД) Промо

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

Универсальный редактор данных (УРД) - это лучший инструмент в своем классе, который позволяет редактировать реквизиты и движения объектов

1 стартмани

27.08.2021    6248    129    Adeptus    51    

Изыскания на тему записи в регистр сведений

HighLoad оптимизация v8 Платформа 1C v8.2 1cv8.cf Абонемент ($m)

Уважаемые коллеги, здравствуйте! Сегодня хочу поделиться с Вами своими изысканиями на тему записи в регистр сведений в контексте оптимизации одной операции. Однажды мы столкнулись со следующей проблемой: поступили жалобы от разработчиков сайта, что наш веб-сервис очень медленно реагирует, точней, обработка запроса не укладывается в таймаут 5 секунд, и сайт получает ошибку 500. Стали разбираться, и вот что выяснили.

1 стартмани

21.09.2021    4751    0    METAL    57    

Доп. панель Alt+Z

Инструменты администратора БД v8 1cv8.cf Абонемент ($m)

Панель, вызываемая для объекта комбинацией клавиш Alt+Z (для документа, справочника, плана вида характеристик, плана счетов и т.д.). Возможности: Редактор всех реквизитов, таблиц и движений, Анализ прав к объекту, Поиск ссылок на объект с фильтрами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Подключается как Расширение.

2 стартмани

24.06.2021    8260    100    sapervodichka    57    

Мастер создания копии информационной базы для отчетности

HighLoad оптимизация Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Прототип инструмента для подготовки реплики в режиме только для чтения к использованию. Позволяет использовать "read-only" реплики как обычные информационные базы 1С.

10 стартмани

28.08.2020    9671    7    YPermitin    13    

Многопоточность. Универсальный «Менеджер потоков» 2.1 Промо

HighLoad оптимизация Инструментарий разработчика Математика и алгоритмы Универсальные функции v8 1cv8.cf Россия Платные (руб)

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

5000 руб.

07.02.2018    82453    194    80    

Оптимизация размера изображений из присоединенных файлов УТ 11.4

Инструменты администратора БД Обработка справочников Управление торговлей v8 УТ11 Россия Абонемент ($m)

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

5 стартмани

10.07.2020    8984    6    Neti    4    

Транслятор запросов 1С в SQL

HighLoad оптимизация Администрирование СУБД v8 v8::Запросы 1cv8.cf Абонемент ($m)

Инструмент для трансляции запросов платформы 1С в SQL, а также их диагностики.

10 стартмани

07.01.2020    28426    224    YPermitin    89    

Работа с базами данных 1С в SQL Server Management Studio (Расширение для SSMS)

Администрирование СУБД HighLoad оптимизация Инструменты администратора БД Структура метаданных v8 Абонемент ($m)

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

10 стартмани

27.11.2019    17518    46    akpaevj    46    

Очистка кэша 1С 8 (8.0, 8.1, 8.2, 8.3). Грамотная чистка кэша 1С с сохранением настроек. Промо

Чистка данных Сервисные утилиты Инструменты администратора БД v8 1cv8.cf Россия Абонемент ($m)

Эффективное средство для устранения ошибок, возникающих в локальном кэше 1С на клиенте, которым легко сможет воспользоваться пользователь с любым уровнем знаний. Wsf-скрипт, созданный на стандартном языке автоматизации Windows - "WSH JScript", очищает кэш 1С просто, быстро и безопасно. Кроме варианта, очищающего кэш текущего пользователя, имеется также вариант для чистки кэша 1С всех пользователей терминального-сервера.

1 стартмани

04.11.2018    54496    539    Eugen-S    35    

Быстрая реструктуризация базы данных

HighLoad оптимизация Конфигурирование 1С v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Внешняя обработка для быстрой реструктуризации клиент-серверной базы данных. Способ ускорения реструктуризации - замена таблиц большого объема пустыми копиями перед проведением обновления БД и возврат к исходным таблицам после обновления с предварительной корректировкой их структуры. Полностью автоматизировано создание и выполнение всех требуемых скриптов SQL. Представлены версии обработки для обычных форм (1С:Предприятие 8.2 (8.2.19.130)) и управляемого приложения (1С:Предприятие 8.3 (8.3.9.1818)).

1 стартмани

05.11.2019    23555    105    dmitrydemenew    39    

Конфигурация для администраторов "Центр управления базами" для 8.3 УФ

Инструменты администратора БД БСП (Библиотека стандартных подсистем) v8 v8::УФ 1cv8.cf Абонемент ($m)

Конфигурация предназначена для централизованного управления информационными базами предприятия. Разработана на БСП версии 2.4.4.76. В работе использует COM-соединение.

3 стартмани

09.10.2019    10910    36    WhiteOwl    17    

Информация о программных лицензиях 1С (Ring GUI)

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

Обработка, представляющая из себя обертку функций Утилиты лицензирования 1С (ring) в понятном для обычного человека виде. По сути, это GUI утилиты RING

5 стартмани

18.09.2019    9765    34    MaxxG    6    

DroidRAC2 - консоль администрирования кластера серверов 1С:Предприятие 8.3 под Android Промо

Инструменты администратора БД v8 1cv8.cf Абонемент ($m)

DroidRAC2 - клиент для RAS-сервиса кластера серверов платформы 1С:Предприятие 8.3 под Android.

1 стартмани

24.02.2017    27721    12    user700211_a.straltsou    20    

Обновление конфигурации 1С из cf по расписанию

Инструменты администратора БД v8 1cv8.cf Абонемент ($m)

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

1 стартмани

09.09.2019    4218    1    sivin-alexey    2    

Кто уложил 1С, или мониторинг загрузки кластера в разрезе пользователей с помощью Grafana

Инструменты администратора БД v8 1cv8.cf Россия Абонемент ($m)

Мониторингом различных параметров работы кластера 1С в zabbix сейчас уже никого не удивишь. Собственно потребление памяти, процов и места на серверах обычно настраивают первыми. Потом идет мониторинг в разрезе rphost'ов и различные метрики функционирования SQL сервера. Но вот когда уже все это есть, то временами возникает вопрос - какой же конкретно нехороший человек пытается съесть все (ну не все, но много) ресурсы сервера? Можно смотреть в консоль кластера и ловить редиску там. Можно анализировать журнал регистраций, включать технологический журнал или накапливать статистку в специализированных базах 1С. Но, "настоящим" сисадминам проще как-то с внешними скриптами, базами данных и, например, Grafana. Расскажу что у нас получилось.

1 стартмани

02.09.2019    13830    31    DonAlPatino    26    

Установка 1C на Ubuntu 19.04

Инструменты администратора БД v8 1cv8.cf Россия Абонемент ($m)

Установка платформы на примере (8.3.15.1565) на Ubuntu 19.04

1 стартмани

28.08.2019    17590    7    gubar    33    

Отключение доступа уволенным пользователям Промо

Информационная безопасность Обработка справочников Инструменты администратора БД v8 v8::Права БП2.0 УПП1 Абонемент ($m)

Давно хотели навести порядок в пользователях? Надоело, что в списке мешаются давно уволенные сотрудники? Тогда эта обработка для Вас!

3 стартмани

15.10.2013    55682    109    VBod    17    

Удаленный доступ к 1С используя SSH Тунель

Инструменты администратора БД v8 1cv8.cf Абонемент ($m)

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

1 стартмани

04.08.2019    10944    4    Sedaiko    7    

Service Desk. Конфигурация для администрирования баз 1С и техподдержки IT-отдела.

Инструменты администратора БД v8 Россия Абонемент ($m)

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

2 стартмани

15.07.2019    10933    78    SanchoD    19    

Конфигурация: IT Unit

Инструменты администратора БД v8 1cv8.cf Абонемент ($m)

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

1 стартмани

03.07.2019    8173    73    riposte    15    

Инструкция по установке и настройке SQL Server и 1С Промо

Инструменты администратора БД v8 Россия Абонемент ($m)

Данный мануал позволит практически каждому пользователю пошагово установить и произвести первоначальную настройку SQL Server и 1С (клиент-серверный вариант). Основой для данной инструкции послужил SQL Server 2014 и 1С Предприятие 8.3, также данная инструкция может работать и для других версий SQL Server и 1С Предприятия.

1 стартмани

06.04.2016    94257    1115    LastSoldier    48    

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

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

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

1 стартмани

19.03.2019    32284    21    dmitrydemenew    85    

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

Универсальные обработки Сервисные утилиты Инструменты администратора БД v8 v8::УФ 1cv8.cf Абонемент ($m)

Аналог обработки БСП "РегламентныеИФоновыеЗадания". Не требует наличия библиотек, может использоваться в качестве внешней обработки. В отличие от обработки БСП предоставляет больше информации о свойствах регламентных и фоновых заданий, а также об ошибках и сообщениях для пользователей, возникших во время их выполнения. Позволяет управлять регламентными (создание, удаление, настройка расписания, ручной запуск) и фоновыми (прерывание) заданиями.

1 стартмани

06.02.2019    22397    212    Alxby    20    

Решение проблемы быстродействия в ERP на рабочем примере

HighLoad оптимизация v8 ERP2 Абонемент ($m)

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

3 стартмани

18.12.2018    25736    191    ivanov660    24    

Портал для входа в информационную базу Промо

Стартеры 1С Инструменты администратора БД v8 Россия Абонемент ($m)

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

10 стартмани

14.07.2015    50250    35    INTECH1    4    

Многопоточное восстановление последовательностей

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

Универсальный алгоритм многопоточного фонового восстановления любой последовательности.

05.12.2018    15378    _ASZ_    33    

1С в Windows docker контейнерах

Инструменты администратора БД docker Windows v8 Абонемент ($m)

Создаем Docker-контейнер для windows-версии 1C. Контейнеры позволяют подготовить рабочую среду на любой актуальной версии windows. Благодаря данной технологии можно беспрепятственно запускать требуемую версию сервера 1С или несколько серверов различных версий на одном сервере.

1 стартмани

02.10.2018    32749    43    lishniy    42    

Веб приложение для управления сервером 1С в Linux.

Инструменты администратора БД v8 Казахстан Абонемент ($m)

Статья о том как комфортно администрировать сервер 1С:Предприятие 8.3 используя Linux. А именно дистрибутив ClearOS.

1 стартмани

25.08.2018    14032    23    held88    84    

Telemonitor - объединяем Telegram и 1С Промо

Сервисные утилиты Инструменты администратора БД Мобильная разработка v8 1cv8.cf Абонемент ($m)

Не так давно Telegram предоставил API для создания ботов. Telemonitor - программа, позволяющая легко настроить собственного бота для работы с 1С.

1 стартмани

09.08.2015    84699    231    salexdv    186    

Оптимизация настроек планировщика запросов в PostgreSQL

Инструменты администратора БД v8 Абонемент ($m)

Хочу сказать несколько слов о своем опыте настройки PostgreSQL для работы с 1С. А поскольку в сети уже достаточно много хороших мануалов о настройке Postgres, ограничусь тем, как я поборол неоптимальное использование плана nestloop.

1 стартмани

30.01.2018    17385    4    Gorus    8    

Вывод в windows-проводнике названия баз в каталоге кластера 1С и каталогах локального кэша и настроек пользователя

Инструменты администратора БД v8 1cv8.cf Абонемент ($m)

Вывод в windows-проводнике названия баз в каталоге кластера 1С и каталогов локального кэша и настроек пользователя. Используется создание файла desktop.ini, который автоматически размещается в подкаталогах кластера 1С. Теперь станет немного проще определить прямо в windows-проводнике, что, к примеру, каталог fd531400-428c-41c0-954f-b910bb5cc552 это именно база ERP.

1 стартмани

15.11.2017    14868    51    Alias    23    

Скрипт сбора параметров текущих сеансов 1С с отправкой в Elastic search

Инструменты администратора БД v8 Абонемент ($m)

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

1 стартмани

30.10.2017    16592    27    sergey.novikov    47    

Обработка для управления подключениями пользователей и создание бэкапа КЛИЕНТ-СЕРВЕРНОЙ базы данных 1С 8.2-8.3 (управляемое приложение,"такси") Промо

Архивирование (backup) Инструменты администратора БД v8 v8::УФ 1cv8.cf Абонемент ($m)

(©Топчий Д.Ю.) Данная обработка позволяет легко и быстро отключить от любой БД одного или несколько пользователей одновременно, установить блокировку сеансов, что необходимо при регламентных операциях с БД, создать резервную копию базы, удалить "дубли" сеансов. Обработка отключает соединения и сеансы указанных пользователей, даже если сеанс или соединение были "повисшими". Возможна интеграция в любую конфигурацию! (Обновление от 11.03.2016, версия 3.0)

2 стартмани

06.11.2012    60748    614    hakerxp    44    

Многопоточные фоновые задания

Инструменты администратора БД v8 Абонемент ($m)

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

1 стартмани

02.08.2017    16604    19    m-rv    12    

Автоматическое отключение неактивных веб-клиентов

Инструменты администратора БД v8 1cv8.cf Абонемент ($m)

У вас организован доступ в базу через веб-клиент для посторонних лиц (веб-портал, веб-витрина, и т.д.), и вы испытываете проблему нехватки лицензий 1С из-за того, что пользователи оставляют открытыми вкладки с 1С, не работая в них? Есть решение!

1 стартмани

20.07.2017    21722    28    VitaliyCeban    17    

Графический план выполнения запроса 1С

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

Просмотр графического отображения плана выполнения для запросов 1С. Для информационных баз на MS SQL Server.

1 стартмани

24.06.2017    19387    63    berezdetsky    28    

Запуск любой внешней обработки по расписанию Промо

Инструменты администратора БД v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

15.03.2012    92954    367    Skimen    60    

COM соединения с базами 1С на различных версиях платформы "Без перерегистрации и СМС"

Инструменты администратора БД v8 1cv8.cf Абонемент ($m)

Описание способа подключения к базам 1С с помощью ComConnector, на различных версиях платформы.

1 стартмани

16.04.2017    108697    325    WizaXxX    66    

Автоматическое отключение сеансов на сервере 8.3 (управляемые формы)

Инструменты администратора БД v8::УФ 1cv8.cf Россия Абонемент ($m)

Обработка предназначена для автоматического завершения неактивных и зависших сеансов на кластере сервера 1С. Есть возможность настроек.

1 стартмани

19.12.2016    22965    176    Pilokarpios    25    

Просмотр заблокированных строк в 1С

HighLoad оптимизация v8 1cv8.cf Абонемент ($m)

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

1 стартмани

25.10.2016    47777    855    Andreynikus    68    

Передача больших пакетов через веб-сервисы Промо

Инструменты администратора БД Внешние источники данных Практика программирования v8 Абонемент ($m)

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

1 стартмани

06.12.2015    67205    56    YPermitin    19    

Настройка PostgreSQL для работы в связке с 1С 8.х на платформе Windows Server 2012, объём БД более 200 Гб

HighLoad оптимизация Инструменты администратора БД v8 Россия Абонемент ($m)

Настройка бесплатной СУБД PostgreSQL для работы в связке с 1С 8.х на платформе Windows Server 2012 х64. Объём БД более 380 Гб для мощного сервака. Конфигурация КА 1.1.108.2, 50 пользователей. Более 1 млн. проводок при закрытии месяца. Время закрытия месяца сравнимо с MSSQL и составляет в среднем 2 часа. Время отмены закрытия месяца - всего 10 минут! Ликвидированы зависания PostgreSQL. Всё за счет настроек файла postgesql.conf.

1 стартмани

11.10.2016    98694    80    vsasav    48    

Настройка регламентных работ на SQL сервере + (сбор данных по работе SQL и т.д)

Инструменты администратора БД v8 Абонемент ($m)

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

1 стартмани

12.09.2016    24622    27    izidakg    19    

Получение информации о списке установленных лицензий с помощью утилиты RING начиная с 8.3.8

Инструменты администратора БД v8 Абонемент ($m)

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

1 стартмани

26.04.2016    73221    106    fixin    28    

Простые радости жизни администратора в 1С: блокировка информационной базы. Промо

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

В типовую обработку «Блокировка соединений с информационной базой» внесены интерфейсные изменения, призванные сделать работу в ней более удобной. Также обработка сделана максимально универсальной и может быть использована в любой, полностью не типовой базе.

1 стартмани

10.11.2013    101300    823    yuraos    98    

Просмотр структуры БД, парсинг запросов SQL

Статистика базы данных HighLoad оптимизация v8 1cv8.cf Абонемент ($m)

Получение некоторых данных о БД и сеансе, просмотр внутренней структуры таблиц БД 1С в SQL, "перевод" запросов SQL в терминологию 1С. Чуть больше, чем "ПолучитьСтруктуруХраненияБазыДанных"; чуть удобнее, чем аналоги; чуть другая, чем КИП.

1 стартмани

26.02.2016    33831    254    Yashazz    15    

Запуск сеанса RDP с заданным именем пользователя и паролем (управляемые формы)

Разработка внешних компонент Инструменты администратора БД Практика программирования v8 1cv8.cf Абонемент ($m)

Есть база данных (управляемые формы), общая для сотрудников IT-отдела, в которой ведется учет парка компьютерной техники на предприятии. Встала задача подключения по RDP прямо из окна с данными о компьютере пользователя.

1 стартмани

29.01.2016    21193    66    insurgut    16