Горыныч (групповое многопоточное проведение)

29.04.25

Задачи пользователя - Подбор и обработка объектов

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Горыныч (групповое многопоточное проведение)
.epf 287,42Kb
5
5 Скачать (10 SM) Купить за 4 550 руб.

Документы

 

 

Выбор организации (1)

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

 

 

Создавать остатки (2)

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

Останавливаться по ошибке (3)

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

Кнопка «Еще» (4)

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

Пункт «Установить таймер» устанавливает время запуска проведения.

 

 

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

Потоки (5)

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

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

Отбор по номенклатуре (6)

Виден при наличии справочника «Номенклатура». Подбор открывает стандартную форму выбора справочника номенклатура. Вариант из файла или из буфера подразумевает что названия номенклатур хранятся в разных строках. Чтобы отбор применился жмите кнопку выбрать.

 

 

Отбор по периоду (7)

Тут все стандартно, влияет на заполнение по кнопке (9) и при выборе документов (20)

Режим (8)

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

 

 

По вводам остатков выберет только те документы, для которых существуют вводы остатков.  Партии в минус найдет документы, где есть минус по партиям на счетах 41, 45, 004

Найти ссылки на документы (9)

Формирует список документов с учетом отборов.

Выбор типов документов (10)

С этой кнопки следует начать настройку. Каких-то особых пояснений думаю не требуется.

 

 

Сохранить настройки (11)

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

Выбор документов для проведения (12)

После кнопки (9) и поиска ссылок на документы можно исключить не нужные. Общее время проведения и общее количество будут скорректированы.

Среднее время проведения (13)

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

Количество документов (14)

Есть нюанс, если встать в поле количество, то в окне справа (25) будут подгружены и показаны все ссылки на документы. При большом количестве не рекомендую лишний раз вставать в эти ячейки. Сделано чтобы иметь возможность удалять документы прямо здесь, видеть выбранные (удобно при вставке из буфера обмена).

Вводы остатков (15)

Аналогично предыдущему пункту (14), но нельзя удалить. Остаток из таблицы уберется автоматически, как только будет удален документ, связанный с остатком.

Контекстное меню документы (16)

 

 

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

Скопировать условие относится к пункту (18).

Добавить из буфера ищет ссылки на документы из текста. Например, можно сформировать ОСВ, выделить все и скопировать.

Признак участия документа в разных потоках (17)

Иконка отображается напротив документа синхронизации потоков.

Условие в запросе выборки (18)

«Док» будет заменен на имя документа, в данном примере в запрос подставится:

ГДЕ
   ПоступлениеТоваровУслуг.Комментарий ПОДОБНО "Загружен%"

Место в общем времени проведения (19)

Клик по полю показывает график в окне (25).

Выбор документов вручную (20)

Двойной клик мыши по имени документа открывает форму выбора данного типа документа. Накладывается отбор по организации и периоду.

Общее время проведения (21)

Учитываются только выбранные документы (с галочкой). Теоретическое расчетное время при проведении в один поток.

Общее количество документов (22)

Учитываются только выбранные документы (с галочкой).

Дополнительные свойства проведения (23, 24)

Добавляются в момент проведения документа в реквизит «ДополнительныеСвойства». По умолчанию «ГрупповоеПерепроведение», используется во многих конфигурациях. 
(24) Если выбрать тип строка и ввести более одной строки, то будет восприниматься как код. Инициализируется на сервере перед проведением.


 

Поле дополнительной информации (25)

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

 

Прогресс

Появляется после старта проведения.

 

 

Время проведения (1)

Показывает общее время проведения. Не учитывает паузы проведения.

Количество документов (2)

Документ перемещения считается и в потоке отправителе, и в потоке получателе. Клик по количеству показывает график по документам. 

Текущий проводимый документ (3)

На самом деле это не всегда так, потому что информация приходит с интервалом 2 сек. В случае падения фонового задания, стартует именно с этого документа.

Оставшееся время проведения потока (4)

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

Статус ожидания (5, 6)

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

 

Прерывание проведения

 

 

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

 

 

Общее расчетное время проведения в одном потоке – 1 час 43 минуты.

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

 

 

Ввод остатков

Работает только в бухгалтерии.

 

 

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

Документ проводится повторно. И вуаля… все довольны и счастливы. Ну а если серьезно, это временное решение чтобы провести все, а потом разбираться что пошло не так. Откуда берется партия и себестоимость? Методика такая:

Если есть остаток, но не хватает количества, берем ту же партию.

Если нет остатка, ищем последний документ поступления.

Если не найден документ поступления, ищем документ «Партия» с той же организацией и счетом учета 76.09.3, ставим сумму равной количеству.

Если не устраивает такой механизм, создаем свой. В функции «ДобавитьОстаткиБухгалтерия» сначала ищется общий модуль "Горыныч", если найден, выполняется код из модуля, иначе из обработки.


 

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

 

Пропущенные

Здесь добавляется информация о документах, которые не провелись.

 

 

Перезапуски

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

 

 

Блокировки

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

 

 

История

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

 

 

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

Проверено на следующих конфигурациях и релизах:

  • Бухгалтерия предприятия КОРП, редакция 3.0, релизы 3.0.174.25

групповое многопоточное проведение

См. также

ККМ Кассовые операции Подбор и обработка объектов Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Модуль, ускоряющий подбор номенклатуры в 1С в чек ККМ и Заказе клиента. Оптимизированная форма подбора товаров с многократно ускоренным процессом поиска товаров в 1С в чек ККМ и Заказе клиента для конфигураций 1C:Управление торговлей 11.5, 1С:Комплексная Автоматизации 2.5 и 1С:ERP Управление предприятием 2.5

18000 руб.

30.10.2024    907    2    0    

4

Подбор и обработка объектов Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Россия Платные (руб)

Решение реализовано посредством расширения, предназначено для дополнительного контроля объектов (документов и справочников) от несанкционированного доступа и изменения. При этом используется не штатный механизм 1С, требующий зачастую достаточного опыта, а предельно упрощенный для пользователя - установить/снять галку «Проверен» для регулировки доступа к объекту.

3600 руб.

13.09.2024    609    1    0    

3

Подбор и обработка объектов Программист Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

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

1 стартмани

09.05.2025    385    11    Rafael-87    5    

6

Подбор и обработка объектов Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Управленческий учет Абонемент ($m)

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

1 стартмани

21.02.2025    433    3    andrey7617    0    

4

Подбор и обработка объектов Программист Платформа 1С v8.3 Россия Абонемент ($m)

Массовая работа с объектами типовыми методами платформы 1С.

10 стартмани

13.12.2024    967    4    nomad_irk    5    

4

Подбор и обработка объектов Программист Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Россия Абонемент ($m)

Обработка, очищающая двойные записи в регистре "График платежей". Решает проблему: Обнаружено дублирование ключевых значений в колонках: "Ссылка". Отображение данных в списке невозможно.

1 стартмани

26.09.2024    795    2    AlexHelmer    1    

4

Зарплата Подбор и обработка объектов Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Абонемент ($m)

После расчета и выплаты отпускных порой отпускные приходится пересчитывать. Причины: начислена годовая премия, или начислена зарплата, входящая в расчетную базу, и прочие. Делать вручную - непрактично. Можно воспользоваться отчетами (типовых, к слову, нет), но потом еще надо вручную создавать документы-исправления. Данная обработка автоматизирует весь процесс по принципу Plug-n-Play.

3 стартмани

14.08.2024    931    18    Vinzor    0    

5

Поиск данных Корректировка данных Подбор и обработка объектов Программист Пользователь Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Абонемент ($m)

Обработка позволяет найти и заменить битые ссылки справочников. Для всех конфигураций. Обработка универсальная! Незаменимая вещь как для IT-специалистов, так и для обычных пользователей!

10 стартмани

04.07.2024    1371    10    user1527257    2    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. akR00b 24 29.04.25 11:45 Сейчас в теме
2. DmitryKSL 175 29.04.25 11:49 Сейчас в теме
Извиняюсь за качество скриншотов. Инфостарт замылил картинки. Как получится решить проблему с помощью поддержки, исправлю.
3. Umix 133 30.04.25 06:35 Сейчас в теме
Уже много лет как в 1С:ЕРП разработал и успешно работает многопоточное создание + проведение цепочки документов.
Цепочка в зависимости от этапов может состоять из 8 - 15 документов (может и больше).
Каждое изделие - 1 цепочка с расчетами, наполнениями проверками и тд
При этом параллельно обрабатываются другие сильнонагружающие систему документы с проведением.
Работают пользователи причем вся эта махина и пользователи не мешают друг другу до определенной нагрузки.
В моем случае при одновременно выполняемых > 4 цепочек (напомню про количество документов в цепочке) блокировки начинают мешать друг другу, поэтому ограничил количество одновременно выполняемых параллелей + установил приоритетность обрабатываемых документов.
Если будет интересно, приложу скрины для наглядности)
4. ls600 30.04.25 08:53 Сейчас в теме
(3) Если не затруднит, интересно.
5. DmitryKSL 175 30.04.25 09:54 Сейчас в теме
(3) Не знаю о чем идет речь (нет ссылки на обработку), но судя по описанию, логика как и у других. Т.е. в потоке проводите 8-15 документов, потом заново формируете список и снова проводите в новом фоновом? Такой подход имеет огромный недостаток. Надо запускать очень много раз фоновые задания. Учитывая время запуска 1-2 секунды, в моем случае получаем неприемлемые задержки. Например, на первом скриншоте можно обратить внимание что перемещений более 45 тысяч. И в основном, это перемещения между потоками. На 3 потоках придется запускать фоновые задания более 100 тысяч раз, или практически сутки реального времени только на запуск. У меня на проведение хоть 1 тысячи, хоть 200 тысяч документов будет запущено фоновых заданий равное количеству потоков, т.е. три раза. Ну максимум еще несколько раз при падении фонового задания, такое бывает иногда.
6. RustIG 1882 04.05.25 14:57 Сейчас в теме
(3) если блокировки мешают, то нельзя называть "параллельным" потоком/обработкой/процессом
7. mrsmrv 127 04.05.25 19:33 Сейчас в теме
Эх, если бы брались документы и для них просто готовая таблица движений формировалась и просто в доки записывалась бы, то можно и распараллелить формирование такой таблицы. А запись результата в регистры одним потоком.
Оставьте свое сообщение