Картинка - Многопоточность в 1С. Универсальный

Многопоточность в 1С. Универсальный "Менеджер потоков"

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

Арт.: 778905

Продано: 65

00 Лого.PNG
01_1 Архитектура-проблемы.png
01_2 Архитектура-решения.png
06_8 Ресурсы.png
01 Методы и события.png
02_1 ОбработатьОбъект.png
02_2 ОбработатьОбъект Ошибка при обработке.png
02_3 ОбработатьОбъект Передача частных параметров.png
02_4 ОбработатьОбъект Файлы графа Gephi.png
02_5 ОбработатьОбъект Файлы графа произвольная программа.png
02_6 Обработка коллекции Простая.png
02_7 Обработка коллекции Автосборка.png
02_8 Обработка коллекции Автосборка и передача общих параметров.png
02_9 Обработка коллекции Произвольная сборка.png
02_10 Обработка коллекции Произвольная сборка с выводом.png
00 Лого.PNG
01_1 Архитектура-проблемы.png
01_2 Архитектура-решения.png
06_8 Ресурсы.png
01 Методы и события.png
02_1 ОбработатьОбъект.png
02_2 ОбработатьОбъект Ошибка при обработке.png
02_3 ОбработатьОбъект Передача частных параметров.png
02_4 ОбработатьОбъект Файлы графа Gephi.png
02_5 ОбработатьОбъект Файлы графа произвольная программа.png
02_6 Обработка коллекции Простая.png
02_7 Обработка коллекции Автосборка.png
02_8 Обработка коллекции Автосборка и передача общих параметров.png
02_9 Обработка коллекции Произвольная сборка.png
02_10 Обработка коллекции Произвольная сборка с выводом.png
Лицензии

6 100 руб.

Техподдержка и обновления

4 500 руб.

7 320 руб.

Назначение решения

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

Фреймворк в виде одного общего модуля, позволяющего при получении объектов на обработку запускать их в несколько потоков. Особенности:

  • Нет необходимости рассчитывать «порции» для обработки;
  • Нет необходимости организовывать файловый обмен между потоками;
  • Возможность запускать несколько менеджеров потоков одновременно, при этом потоки одного менеджера, могут запускать новые менеджеры со своими задачами и потоками;
  • Можно выстраивать граф зависимости объектов, что позволяет, например, избегать взаимоблокировок и/или организовать восстановление партий (на нашем предприятии удалось добиться 10х+ ускорения при 10 потоках в рабочее время – 200+ активных пользователей;
  • Все необходимые "вмешательство" в алгоритмы происходят с помощью событий;
  • Возможность описывать алгоритмы событий, как в модуле менеджера, так и в любом другом модуле БД (предпочтительно), а также во внешней обработке.
  • Автоматический рестарт потока в случае ошибок;
  • Контроль за количеством рестартов по каждому объекту;
  • Возможность получать «ответы» от потоков;
  • Возможность контролировать работу с помощью «Инструментов разработчика» или иных отчетов;
  • Возможность срочного прерывания работы и многое другое…

Концепция решения

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

  • Выгрузка / загрузка / обновление списков (справочник «Номенклатура»);
  • Формирование объектов (создание цепочек документов);
  • Формирование отчетов (формирование «Расчетных листов» по каждому сотруднику);
  • Обработка объектов (заполнение, перезапись, перепроведение, удаление);
  • Обработка сложно связанных объектов (графовая последовательность) уникальная возможность, позволяющая решить проблемы блокировок объектов при массовых обработках, а также строгую обработку объектов в определенной последовательности (текущий объект не обрабатывается до тех пор, пока не будут обработаны все объекты от которых он зависит), к таким задачам можно отнести «Восстановление последовательности партий», «Восстановление взаиморасчетов» и т.д.

Технические требования

  • Разработка проводилось на 1С:Предприятие 8.3.9.1850 32x; Режим совместимости 8.2.15
  • Работа в режиме «клиент-сервер»
  • Возможность внесения изменений (дополнений) в конфигурации, в которую встраивается решение "Менеджер потоков"

Код открыт.

Возможности продукта

Менеджер потоков включает в себя весь функционал связанный с:

  • Запуском потоков;
  • Поддержанием жизнеспособности потоков (в случае «падения», поток перезапускается);
  • Определением порции данных для каждого потока;
  • Передачей данных между всеми участниками;
  • Автоматической сборкой коллекций после обработки (если требуется);
  • Выводом сообщений клиенту, выведенных при обработке в потоке;
  • Созданием структуры взаимосвязей объектов (Граф);
  • Контролем результатов обработки;
  • Возможностью многократной обработки одного объекта и многое другое. Все взаимодействие разработчика с менеджером потоков происходит через "События*".


*События – это произвольный код разработчика находящийся в определенном контексте и выполняемый «Менеджером потоков» в разные моменты своего использования.
События используемые в «Менеджера потоков» (2.1.0):

  • ПередЗапускомМенеджераПотоков (Основная программа);
  • ПриЗапускеМенеджераПотоков (ФЗ Менеджера потоков);
  • ПередЗапускомПотока (ФЗ Менеджера потоков);
  • ПриЗапускеПотока (ФЗ Потока);
  • ПриРасчетеРесурсов (ФЗ Потока);
  • ПриОбработкеПотоком (ФЗ Потока);
  • ПриОбработкеОшибки (Основная программа);
  • ПриОбработкеПропуска (Основная программа);
  • ПриОбработкеРезультата (Основная программа);
  • ПриПроизвольнойОбработкеГрафа (ФЗ Менеджера потоков);
  • ПередЗавершениемМенеджераПотоков (ФЗ Менеджера потоков);
  • ПриСохраненииГрафа (Основная программа);
  • ПриСборкеФрагментовКоллекции (Основная программа);
  • ПослеЗавершенияМенеджераПотоков

 Алгоритмы:

  • Увеличена скорость обработки зависимых объектов на 15-25%, в ряде случаев до 50%;
  • Полностью переписан весь код;
  • Код проверен с помощью АПК 1.2  (исправлено 350+ замечаний и не соответсвий стандартам 1С, осталось 9 :));
  • Работа с графом "неограниченного" размера;
  • Приоритезирована раздачи заданий потокам;
  • Реализована возможность в событиях (не во всех) дополнять "Параметры для объекта" - см. Руководство.
  • Теперь поток, а не менеджер контролирует количество попыток обработать объект;
  • События потоков теперь выполняются в "Попытка-Исключение" - позволяет избежать лишних перезапусков потоков;
  • Модуль "мпОсновнаяПрограмма" - изменил идентификатор на: "мпОсновнаяПрограммаВызовСервера";
  • Процедуры и функции уменьшены в размерах, для сокращения контекста (средний размер 17 строк; минимум 3 строки, максимум 73 строки);
  • Все алгоритмы разнесен по областям;
  • Шаблон модуля событий разработчика теперь выделен в отдельный модуль: "мпСобытияРазработчикаШаблон";

        Исключено:

  • механизм мониторинга (появится в след. релизах);
  • механизм "безпотокового" выполнения.
  • возможность написать весь код в модуле объекта обработки (противоречит работе в безопасном режиме).

    Транспорт:

  • Обмен данными теперь происходит пакетами;

    События:

  • Изменены:

            Изменен состав параметров всех событий (требуется корректировка событий разработчика). - см. Руководство.
            Имена:

  • ПриПолученииРесурсов             ->    ПриРасчетеРесурсов
  • ПриОбработкеДействияПотока   ->    ПриОбработкеПотоком
  • ПриОбработкеОтвета                 ->    ПриОбработкеРезультата
  • ПриОбработкеМассиваОбработанныхФагментовКоллекции     ->    ПриСборкеФрагментовКоллекции        
  • Добавлены:
    • ПриПроизвольнойОбработкеГрафа - см. Руководство.
    • ПриСохраненииГрафа - см. Руководство.
  • Исключены:
    •  ПриДобавленииВОчередьОбработки - теперь "Менеджер потоков" сам добавляет объект, если есть ресурсы, так же есть параметр "УчитыватьОбъектыБезРесурсов" - см. Руководство;
    •  ПриОбработкеДополненногоФагментаКоллекции - теперь и обработку, и дополнение можно осуществить через метод "Обработать коллекцию";
    •  ПриПолученииМестаХраненияФайловМониторинга - т.к. исключены механизмы мониторинга, данное событие утратило свою силу;

    Параметры "Менеджера потоков":

  • Изменены:
    • Структура хранения параметров (полная структура параметров предоставлена в общем макете "мпПолнаяСтруктураПараметров")
    • Имена:
      • КоличествоЭлементовКолекцииНаПоток ->    КоличествоЭлементовКолекцииНаОбъект
      • РазрезМенеджера                                  ->    ИдентификаторМенеджера
  • Добавлены:
    • Общие.КоличествоОбъектовВПакете;
    • Разработчик.Общие;
    • Разработчик.ПоСобытиям;
    • ОбработатьКоллекцию.СобратьКоллекциюИзФрагментов;
    • ОбработатьКоллекцию.КоличествоЭлементовКоллекцииНаОбъект;
    • ПолучитьГраф_Gephi.Каталог;
    • Граф.ОграничениеРазмера;
    • Граф.УчитыватьОбъектыБезРесурсов;
  • Исключены:
    • ДинамическийРассчетКоличестваПотоков              ->    Данный параметр больше не нужен, см. Руководство (параметр "КоличествоЭлементовКолекцииНаОбъект")
    • КоэффициентКратностиОчередиПотоковКПотокам -> теперь "Менеджер потоков" работает с полным графом;
    • ВестиМониторингМенеджераПотоков, т.к. механизм мониторинга исключен;
    • ВестиМониторингПорядкаОбработкиОбъектов, т.к. механизм мониторинга исключен;
    • ВестиМониторингОчередиНаОбработку, т.к. механизм мониторинга исключен;

    Прочие изменения:

  • добавлены методы и свойства формирования файлов для программ анализа графов;
  • обработки демонстрирующие возможности "Менеджера потоков" реализованы более наглядно и обособленно друг от друга;
  • восстановление партий УПП так же поддерживает версию 2.1.0

Способы обработки данных:

  1. ОбработатьОбъект() - метод предназначен для обработки объектов с помощью графовой последовательности (например, восстановление партий, восстановление последовательности расчетов и т.д.). 
  2. ОбработатьКоллекцию() - метод предназначен для обработки ТаблицЗначений, СписковЗначений и Массивов. Менеджер потоков разобьёт коллекцию на фрагменты в зависимости от параметров и передаст их на обработку в потоки. Данным методом можно воспользоваться для:
    • простой обработки коллекции (без возврата коллекции);
    • обработки коллекции с возвратом такой же коллекции, но измененной (менеджер потоков сам соберет коллекцию из обработанных фрагментов);
    • обработки коллекции с произвольным результатом (разработчик сам собирает (в событии) как дополнительно обработать обработанные фрагменты)
  3. ПолучитьГраф_Gephi() - метод позволяет получить файлы для загрузки в программу Gephi (https://gephi.org/), для дальнейшего анализа графа. 
  4. ПроизвольнаяОбработкаГрафа() - если граф необходимо обработать по своему, то данный метод является альтернативой методу «ПолучитьГраф_Gephi»

 

Реализация движения данных

  1. «Основная программа» записывает в хранилище все необходимые данные для обработки.
  2. «Основная программа» записывает в зарезервированную для «Менеджера потоков» ячейку массив адресов с размещенными данными.
  3. «Менеджер потоков» на каждой итерации опрашивает ячейку с информацией о размещении новых данных.
  4. «Менеджер потоков» - считывает полученные данные для проведения анализа и построения графа (несвязанного).
  5. «Менеджер потоков» записывает в зарезервированные за каждым потоком ячейки, адреса, откуда потоку взять данные.
  6. «Поток» на каждой итерации опрашивает зарезервированную за собой ячейку на предмет появления информации о размещении данных.
  7. «Поток» по полученному адресу (п.6) считывает и обрабатывает данные.
  8. «Поток» после обработки формирует ответ и записывает его, туда же, откуда были считаны данные.
  9. «Поток» при штатном завершении обработки данных производит очистку своей зарезервированной ячейки.
  10. «Менеджер потоков» на каждой итерации производит опрос ячеек зарезервированные за потоками, куда были переданы адреса хранения данных для обработки. На данном этапе «Менеджер потоков» отслеживает активность потоков и в случае их «падения» запускает новый поток.
  11. «Менеджер потоков» считывает результат обработки и производит дальнейший анализ, при необходимости строит новый граф (связанный) и повторяет п.п. 5-10 (уже для обработки объекта по связям) или см. п. 12.
  12. «Менеджер потоков» записывает в зарезервированную для «Основной программы»  ячейку информацию о результатах обработки.
  13. «Основная программа» на каждой итерации опрашивает ячейку с информацией о результатах обработки.
  14. «Основная программа» - считывает результат обработки объекта.

События разработчика

Доступность событий от методов:

 

Состав поставки

После покупки на почту придет архив .zip, который содержит файлы:

  1. Конфигурация .cf
  2. Руководство.pdf - также доступно на вкладке Бнсплатные файлы

 

 

Техническая поддержка и обновления

Бесплатный период техподдержки составляет 1 месяц со дня покупки.

Также после приобретения вы получаете 3 месяца бесплатных обновлений.

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

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

Задать вопрос по программе можно по кнопке "Техподдержка" на странице описания.

При создании тикета необходимо предоставить:

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

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

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

 

 

Техподдержка
 

Остались вопросы?

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

Демоверсия Feedback Pro

 

Статистика:
Просмотры 113410
Загрузки 255
Рейтинг 321
Создание 07.02.18 16:13
Обновление 15.07.25 15:41
№ Публикации 778905
Характеристики:
Теги

"Фоновые задания" потоки "менеджер потоков" фоновых заданий" распараллелить  "восстановление партий"  многопоточность 

Рубрики Инструментарий разработчика
Кому Разработчик
Тип файла Конфигурация (md, cf)
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Платные (руб)
Код открыт Да
Наименование Файл Версия Размер
Руководство .pdf 2.1.0 1,13Mb 196 Скачать
Демо Многопоточность. Универсальный «Менеджер потоков» 2.1 Только демонстрационные обработки и модули событий разработчика к ним .zip 2.1.0 1,95Mb 195 Скачать

См. также

Database Compression Tool: Инструмент для свертки и сжатия баз данных 1С

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

24900 руб.

Infostart Toolkit Air: Инструменты разработки в 1С:8.3 и 8.5

Инструменты для разработчиков 1С 8.3 и 8.5: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

Infostart PrintWizard (конструктор печатных форм)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести ...

22570 руб.

Analyzer 1C — единый граф типовой и расширений плюс инструмент обновления поставки

Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и об...

14000 руб.

Infostart MCP: готовые MCP серверы для вайбкодинга в 1С

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

15250 руб.

Infostart DataFormWizard: Управление вводом данных в 1С 8.3

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

17000 руб.

Отладчик кода 1С в режиме «Предприятия»: OneDebugger

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

9500 руб.

Infostart MagicInput: улучшенный поиск по строке в 1С

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигацион...

6000 руб.

Infostart Validator: свои проверки ввода данных в 1С

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных усло...

6000 руб.