TGViewer
1С и AI, полезные инструменты и сервисы, стандарты и паттерны 1С и AI, полезные инструменты и сервисы, стандарты и паттерны @usefultools1c · 2.25K subscribers
Post #192 1.38K

Forwarded from Андрей Соколов | Sokolov:Dev

Всем привет! 🖐

⭐️ Сейчас много разговоров о новом механизме «Очередь», представленном в платформе 8.5.4.
Вендор позиционирует его так:
С помощью очередей можно оптимизировать, например, проведение документов, разделив его на действия, выполняемые синхронно в обработчике проведения, и действия, которые обязательно будут выполнены позже. Запрос на выполнение отложенных действий оформляется в виде сообщения очереди.

И тут сложились звёзды: я понял, что пора рассказать вам, что… очереди в ERP уже есть 😁

➡️ Реализованы они в составе механизма ОтложенныеЗадания.
В него входят как специализированные очереди:
▪️ЗаданияКРасчетуНормативногоГрафикаПроизводства;
▪️ЗаданияКОтражениюЛимитовПоДаннымБюджетирования;
так и УниверсальнаяОчередьОперативныхЗаданий.

Именно о ней поговорим подробнее.

➡️ Как это работает:
▪️ Бизнес-код решает, что задачу нужно выполнить отложенно.
▪️ Вызывается метод постановки задания в очередь.
▪️ Механизм добавляет строку в регистр очереди.
▪️ Позже обработка запускается:
➕ либо явно через ...Запустить(...);
➕ либо регламентным заданием ВыполнениеОтложенныхЗаданий.
▪️ Управляющий поток выбирает задания из регистра.
▪️ Задания группируются по аналитике и разбиваются на порции.
▪️ Для каждой порции определяется метод выполнения.
▪️ Порция выполняется в текущем сеансе, в управляющем потоке или в рабочих фоновых потоках.
▪️ Успешные записи удаляются из очереди, а ошибки остаются для повторной попытки или фиксируются как окончательные.

➡️ Пример можно посмотреть в УчетНДСРФ.ЗарегистрироватьЗаданияАктуализацииСчетаФактуры.
Там используется:
▪️ УниверсальнаяОчередьОперативныхЗаданий.ДобавитьЗадание - добавляет задание в очередь и при необходимости инициирует запуск управляющего потока;
▪️ управляющий поток, в свою очередь, вызывает обработчик УчетНДСРФ.ОбновлениеСчетовФактурВыданных.

➡️ Доработать механизм достаточно просто.
Например:
▪️ Откройте перечисление ЗаданияУниверсальнойОчереди и добавьте новый элемент, например МоеНовоеЗадание.
▪️ Определите, где будет расположен метод обработки.
В общем случае обработчик лучше размещать там, где уже находится основная бизнес-логика процесса.
▪️ Реализуйте обработчик с сигнатурой:
Процедура ОбработатьМоеНовоеЗадание(
Задания,
ИдентификаторыНеОбработанныхЗаписей,
ДополнительныеСвойства = Неопределено) Экспорт

Для Каждого СтрокаЗадания Из Задания Цикл
Попытка
// Здесь основная бизнес-логика.
Исключение

ТекстОшибки = ОтложенныеЗадания.ТекстОшибкиВыполнения(
Новый Структура("Объект", Объект),
СтрокаЗадания,
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));

ИдентификаторыНеОбработанныхЗаписей.Вставить(
СтрокаЗадания.ИдентификаторЗаписи,
ТекстОшибки);

КонецПопытки;
КонецЦикла;
КонецПроцедуры

▪️ Затем определите метод для нового задания.
В УниверсальнаяОчередьОперативныхЗаданий.ОчередиЗаданий нужно добавить по аналогии:
ДобавитьВложеннуюОчередь(
ТаблицаОчередей,
Перечисления.ЗаданияУниверсальнойОчереди.МоеНовоеЗадание,
"ИмяМодуля.ОбработатьМоеНовоеЗадание");

▪️ После этого задание можно ставить в очередь:
УниверсальнаяОчередьОперативныхЗаданий.ДобавитьЗадание(
СсылкаНаОбъект,
Перечисления.ЗаданияУниверсальнойОчереди.МоеНовоеЗадание);


Профит! 👍

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

ℹ️ Важный нюанс: выполнение отложенного задания может быть назначено сеансу пользователя, отличного от инициатора задания.
Например, пользователь Иванов обработает счёт-фактуру, хотя задание было поставлено пользователем Петров, при проведении РТиУ.

На этом сегодня всё. До связи! ✌️
  • 👍 15
More from @usefultools1c
  1. Sep 23, 2026📚 Программа A&PM EVENT 2026 готова! Можно открывать и выбирать, на что идти 12–14 ноября.…
  2. Sep 18, 2026Самодостаточность регистров 🟡 При проектировании структуры регистров придерживайтесь прав…
  3. Sep 11, 2026Post #229
  4. Sep 11, 2026🍁 Программа INFOSTART TECH EVENT 2026 полностью готова! Если вы работаете с 1С и хотите п…
  5. Sep 7, 2026Пока искал себе стажёров-программистов 1С, вспомнил, что у меня есть 2 бесплатных курса по…
  6. Aug 31, 2026Большой опрос сообщества 1С Ландшафт технологий 1С - карта инструментов, которыми пользует…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →