Решение предназначено для встраивания в любой конфигурации 1С, работающие на платформе 1С:Предприятие 8.3.
Позволяет выполнять алгоритмы в многопоточном режиме.
Технические требования:
- Работа в режиме «клиент-сервер».
- Платформа 1С:Предприятие для Windows конфигурация в режиме совместимости 8.2.12 или выше.
- Возможность внесения изменений (дополнений) в конфигурации, в которую встраивается решение "Менеджер потоков"
Концепция решения Менеджер потоков является решением позволяющем разработчику перевести исполнение длительного по времени алгоритма на обработку в потоках. Обычно к таким обработкам относятся переработка больших массивов (коллекций) информации, а именно:
- Выгрузка / загрузка / обновление списков (справочник «Номенклатура»);
- Формирование объектов (создание цепочек документов);
- Формирование отчетов (формирование «Расчетных листов» по каждому сотруднику);
- Обработка объектов (заполнение, перезапись, перепроведение, удаление);
- Обработка сложно связанных объектов (графовая последовательность);
Последний пункт можно выделить, как уникальную возможность, позволяющую решить проблемы блокировок объектов при массовых обработках, а также строгую обработку объектов в определенной последовательности (текущий объект не обрабатывается пока не будут обработаны все объекты от которых он зависит), к таким задачам можно отнести
«Восстановление последовательности партий»,
«Восстановление взаиморасчетов» и т.д.
Менеджер потоков включает в себя весь функционал связанных с:
- Запуском потоков;
- Поддержанием жизнеспособности потоков (в случае «падения», поток перезапускается);
- Определением порции данных для каждого потока;
- Передачей данных между всеми участниками;
- Автоматической сборкой коллекций после обработки (если требуется);
- Выводом сообщений клиенту, выведенных при обработке в потоке;
- Созданием структуры взаимосвязей объектов (Граф);
- Контролем результатов обработки;
- Возможностью многократной обработки одного объекта и многое другое. Все взаимодействие разработчика с менеджером потоков происходит через «События».
Все, что было в первой версии, переработано, улучшено и дополнено. В связи с чем она (первая версия) переходит в разряд статьи с основными объяснениями и картинками.
Сразу договоримся, если в тексте будет указано «v1» - это отсылка к реализации в первой версии, если «v2.х» - к текущей.
Очень кратко, о чем речь…
Фреймворк в виде одного общего модуля, позволяющего при получении объектов на обработку запускать их в несколько потоков. Особенности:
- Нет необходимости рассчитывать «порции» для обработки;
- Нет необходимости организовывать файловый обмен между потоками;
- Возможность запускать несколько менеджеров потоков одновременно, при этом потоки одного менеджера, могут запускать новые менеджеры со своими задачами и потоками;
- Можно выстраивать граф зависимости объектов, что позволяет, например, избегать взаимоблокировок и/или организовать восстановление партий (на нашем предприятии удалось добиться 10х+ ускорения при 10 потоках в рабочее время – 200+ активных пользователей - Результаты работы механизма);
- Все необходимые "вмешательство" в алгоритмы происходят с помощью событий;
- Возможность описывать алгоритмы событий, как в модуле менеджера, так и в любом другом модуле БД (предпочтительно), а также во внешней обработке.
- Автоматический рестарт потока в случае ошибок;
- Контроль за количеством рестартов по каждому объекту;
- Возможность получать «ответы» от потоков;
- Возможность контролировать работу с помощью «Инструментов разработчика» или иных отчетов;
- Возможность срочного прерывания работы;
- И многое другое…
так было в «v1»
- Увеличена скорость обработки зависимых объектов на 15-25%, в ряде случаев до 50% по сравнению с версией "v2.0";
- Полностью переписан весь код;
- Код проверен с помощью АПК 1.2 (исправлено 350+ замечаний и не соответствий стандартам 1С, осталось 9 :));
- Работа с графом "неограниченного" размера;
- Объекты для обработки теперь передаются пакетами, а не по одному;
- Приоритизирована раздача заданий потокам;
- Реализована возможность в событиях (не во всех) дополнять "Параметры для объекта" для передачи в другие события - см. Руководство.
- Теперь поток, а не менеджер контролирует количество попыток обработать объект;
- События потоков теперь выполняются в "Попытка-Исключение" - позволяет избежать лишних перезапусков потоков;
- Добавлены методы для формирования файлов с данными для построения и анализа графов;
- ПолучитьГраф_Gephi();
- ПроизвольнаяОбработкаГрафа().
ВАЖНО!!!
Изменен состав и имена событий, а так же переименованы некоторые экспортные методы, в связи с чем, Ваши «события разработчика» реализованные на прошлых версиях «менеджера потоков» потребуют изменений, но незначительные.
Для примера, корректировка событий разработчика для «Восстановления партий» заняла примерно 10-15 мин с учетом анализа (80%) и написанием кода(20%).
Разработка проводилось на 1С:Предприятие 8.3 (8.3.9.1850) 32x; Режим совместимости 8.2.15
Теперь обо всем по порядку в деталях и с картинками...
Техническая поддержка и обновления
Бесплатный период техподдержки составляет 1месяц со дня покупки
Также после приобретения вы получаете 3 месяца бесплатных обновлений.
По окончании бесплатного периода вы можете приобрести услугу технической поддержки с доступом к обновлениям на платной основе.
Проверить наличие обновлений можно в личном кабинете. Если обновления недоступны - загрузить новую версию можно после покупки обновлений/технической поддержки.
Задать вопрос по программе можно по кнопке "Техподдержка" на странице описания.
При создании тикета необходимо предоставить:
- Номер заказа
- Описание вопроса. Если это ошибки - напишите порядок ваших действий с программой, которые к ней привели (приложите видео/скриншоты/отчеты об ошибке)
- Точную конфигурацию 1С, и версию платформы, на которой используете купленное решение (наименование и версию 1С можно взять из раздела "О программе"), версию купленной программы.
К созданной заявке подключается специалист. Дальнейшее обсуждение проблемы будет проходить в тикете техподдержки. Стандартный срок реакции - 24 часа в рабочие дни с момента обращения.