Многопоточное формирование резервов отпусков

25.06.25

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

Формирование резервов - когда у Вас тысячи сотрудников - занимает часы. И есть огромное желание у пользователей ускорить этот долгий процесс. Данное расширение позволяет ускорить расчет в десятки раз - зависит от мощности сервера. Например, на 8500 сотрудников идет порядка 2-х часов. После применения расширения - порядка 3-15 минут, на 20000 сотрудников - почти весь рабочий день. После применения - до получаса.

Файлы

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

Наименование Скачано Купить файл
Ускоряем формирование резервов отпусков
.cfe 54,44Kb ver:19.05.2025
8 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Данное расширение позволяет существенно ускорить расчет.

За счет чего

  1. Сделаны потоки расчета. В  итоге можно задействовать все ресурсы серверов. Количество потоков (максимальное) и количество человек в пачке потока - параметры в организации  и настройке расчета резервов
  2. При расчете остатка отпусков проверяет - надо ли перезаписывать данные, если не изменились.  Это ускоряет процесс и уменьшает нагрузку на скуль и приводит к минимизации блокировок. Типовой всегда перезаписывает.
  3. При расчете количества потоков смотрит загрузку сервера 1С (если есть права сервера запускать проверку загрузки) - если более 90% - новые потоки не создает и ждет очереди...  Пока закомментировано - так как только для виндоуз и если есть права - ищу другие способы. Но кто хочет использовать - просто раскоментируйте.

Дополнительно изменены формы прогресса и документа.

  1. В форме прогресса  выведен индикатор прогресса графически
  2. В форме документа ожидание не просто "ждите" - а более информативный: показывает, что делается и сколько осталось.

Настройки

При первом запуске -открытии формы документа расчета резервов создаются допреквизиты для двух объектов если есть права. 

  1. Организация - максимальное количество потоков.
  2. Настройка резервов в организации - количество людей в пакете

Если значения не заполнены, то срабатывает автомат и ставит оптимальные значения:

  • Максимальное количество потоков равно 64.
  • Количество людей в пачке 100 человек.

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

 

Изменения

19.05.2025

Оптимизация

 

 

Изменения

24.04.2025

Убран привилегированный режим и COM вызовы

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

  • Зарплата и управление персоналом КОРП, редакция 3.1, релизы 3.1.30.178, 3.1.30.133

Вступайте в нашу телеграмм-группу Инфостарт

Расчет резервов отпусков ускорение ЗУП

См. также

HighLoad оптимизация Администрирование СУБД Системный администратор Программист 1С v8.3 Бесплатно (free)

В статье речь пойдет про взаимодействие сервера 1С с MS SQL. Мы очень часто слышим, как важно оптимизировать все критические участки системы заблаговременно, в плановом режиме, как надо, «от и до» во всех деталях. Но в реальной жизни бывает по-другому. Очень часто клиенты обращаются к нам, когда система уже не дает работать: «спасите, помогите, болит очень сильно, надо решать». Об одном из таких случаев я и хотел бы вам сегодня рассказать.

11.07.2017    56207    R.Tsarenko    32    

229

HighLoad оптимизация Программист Запросы Бесплатно (free)

Наверное, каждый 1С-ник задавался вопросом "что быстрее, соединение или условие в ГДЕ?" или, например, "сделать вложенный запрос или поставить оператор В()"? В данной статье я не дам вам исчерпывающих инструкций по чтению планов запроса. Но я постараюсь объяснить доходчиво - что это такое и с какой стороны к ним подойти.

04.07.2017    61253    Evil Beaver    59    

393

HighLoad оптимизация Администрирование СУБД Системный администратор Программист 1С v8.3 Бесплатно (free)

Многие интересуются PostgreSQL, но не знают, насколько хорошо будет она работать с уже существующими системами. «Инфософт» - одна из первых компаний, кто опробовал PostgreSQL на Windows. О своем опыте перехода рассказывает руководитель отдела информационных технологий компании.      

23.06.2017    50484    a.doroshkevich    113    

167

HighLoad оптимизация Программист 1С v8.3 Управляемые формы 1C:Бухгалтерия Бесплатно (free)

Я являюсь автором и тренером курсов по оптимизации и повышению производительности в 1С. Большинство людей приходят ко мне на обучение, желая разобраться со своими проблемами, и я очень часто слышу от них: «эти блокировки замучили, достали, жизни нет, что делать – не знаем. Технологический журнал включали, галочки ставили, форумы читали – ничего не помогает». Я уверен, что эта тема актуальна для многих из вас, поэтому в статье, не вдаваясь глубоко в подробности, я хочу вам дать некоторые конкретные рекомендации, которые вы сможете применить у себя и сразу получить ощутимый эффект. Например, если у вас запрос из-за блокировок выполняется 15 секунд, то после оптимизации он начнет выполняться за 15 миллисекунд. Это обычная практика, никакой фантастики – все это можно сделать.

13.06.2017    119724    Andreynikus    38    

455

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

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

26.05.2017    59681    DarkAn    87    

207

Архивирование (backup) HighLoad оптимизация Системный администратор Программист 1С v8.3 1C:Бухгалтерия Бесплатно (free)

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

19.05.2017    44558    MsDjuice    24    

73

HighLoad оптимизация Системный администратор Программист 1С v8.3 ИТ-компания Бесплатно (free)

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

01.02.2017    33302    BraunAlex    34    

55
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. paulwist 17.04.25 15:57 Сейчас в теме
При расчете остатка отпусков проверяет - надо ли перезаписывать данные, если не изменились.


Вопрос: где (в каком интерфейсе: на клиенте, на Сервере 1С, в табличках СУБД) проверяется условие проверяет - надо ли перезаписывать данные, (где этот код исполняется)??
2. ZAOSTG 190 17.04.25 17:16 Сейчас в теме
(1) естественно на сервере 1с
ОМ.Остатки отпусков
Функция ЗаработанныеОтпуска
рассчитывает - и записывает на всякий случай
тут проверяет -стоит ли перезаписывать если это уже и так в базе
3. paulwist 18.04.25 08:14 Сейчас в теме
(2)
естественно на сервере 1с


А как ,в таком случае, вы узнаёте, что данные не изменились (что с чем сравниваете)??
4. ZAOSTG 190 18.04.25 09:22 Сейчас в теме
(3) Набор записей что собираюсь записать и что в базе записано
Есть другие варианты?
5. paulwist 18.04.25 10:36 Сейчас в теме
(4)
Набор записей что собираюсь записать и что в базе записано


Меня как раз этот момент интересует, "что собираюсь записать" - это лежит на Сервере 1С, так?

"Что в базе записано" - это лежит в СУБД, так?

Какой код (можно псевдо-код, можно просто описать словами) выясняет, "что в базе записано".
6. ZAOSTG 190 18.04.25 22:07 Сейчас в теме
(5) В запрос передать таблицу значений -набор записей
и параметры отбора
и получить запросом что в базе
потом сложить со знаком
если итого не равен 0 -то записать
7. paulwist 21.04.25 08:37 Сейчас в теме
(6)
потом сложить со знаком
если итого не равен 0 -то записать


Правильно ли я понял.

1. На Сервер 1С вынимаем из табличек СУБД данные.
2. На Сервере 1С проверяем надо/не надо записывать (именно эта часть выполняет проверку стоит/не стоит записывать)
3. Если надо записать, то запись (recored)/строка записывается.

ТАК?

Если изложенный алгоритм реализован в обработке, то

Вопрос: каким образом "защищаются" записи, которые требуется перезаписать?

Например: Пусть будет всего одна запись, которую требуется перезаписать id = 1.

1. Вынимаем эту запись (id = 1) из СУБД на Сервер 1С
2. Проверили - надо перезаписать.

2.1. В этот момент другой поток, скрипт изменил эту запись (id = 1)

3. В вашем алгоритме что произойдёт? ведь значение у записи (id = 1) уже поменялось!!!

Как, с помощью чего защищается запись (id = 1) от изменения другим юзером??
8. ZAOSTG 190 21.04.25 12:46 Сейчас в теме
Резервы отпусков - считаются по каждому человеку и набор записей -по одному человеку
типовой
1.Посчитал -
2.записал
3.перешел к следующему


добавлена проверка
2.1 - прочитали с отбором по сотруднику
2.2 "вычли" что есть и что надо
2.3 - если итог не равно нулю -то есть что-то отличается - то записываем новый набор

что такое "защищается"?
в один момент пересчитывают по одному человеку резерв?
Так же как и всегда и в типовом - кто первый встал того и тапки - второй ждет
но в моем случае -если "тапки" не изменились - то записи не будет и никаких блокировок не будет -каждый пойдет дальше, а не будет пытаться переписать одно и тоже много раз.
9. paulwist 23.04.25 08:25 Сейчас в теме
(8)
что такое "защищается"?
в один момент пересчитывают по одному человеку резерв?


Да.

(8)

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


С помощью чего достигается "кто первый встал того и тапки - второй ждет"??
Для отправки сообщения требуется регистрация/авторизация