💡 Ключевые моменты при работе с очередями

Протестировал найсвежайшую 8.5.4.1306. Начал с очередей. Этот инструмент для асинхронной обработки задач недавно был анонсировали на DevCon 2026. Они похожи на регистры сведений: имеют измерения (для группировки) и реквизиты (для хранения данных). Расскажу, как их настроить и использовать.

При создании в дереве метаданных задайте стандартные Имя, Синоним и Комментарий, а также: 🟠ВТранзакции - обработка в транзакции (платформа откроет её автоматически). 🟠РазмерПорцииОбработки - до 1 000 сообщений с одинаковыми значениями измерений за один вызов обработчика. 🟠АвтоматическаяОбработка - если Истина, система сама запустит обработку при появлении сообщений. Не работает в монопольном доступе.

Измерения vs Реквизиты: 🛑Измерения группируют сообщения (например, по документу). 🛑Реквизиты - как параметры для обработчика (например, действие с документом). Сообщение = Очереди.ОчередьПроведения.СоздатьСообщение(); Сообщение.ДокументПроведения = Ссылка; Сообщение.Действие = "Партии"; Очереди.ОчередьПроведения.Записать(Сообщение);

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

Нюансы обработки: 🛑Фоновое задание обрабатывает сообщения не дольше 20 секунд. Если очередь не пуста, то запускается новое задание. 🛑Для ручного запуска используйте: Очереди.ИмяОчереди.ОбработатьСообщения().

Методы: 🟠ОбработатьСообщения() - ручной запуск. 🟠Удалить() - удалить одно или несколько сообщений. 🟠Очистить() - удалить все сообщения очереди. 🟠ПолучитьАвтоматическуюОбработку() / УстановитьАвтоматическуюОбработку() - управление фоновой обработкой.

Нюанс с FIFO: Глобальный порядок обработки идёт по возрастанию Позиции (головы очереди). Но сообщения с разными измерениями перемешиваются. Сначала обработаются все сообщения с набором измерений №1 (даже с большими позициями). Потом - с набором №2.

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

💡 Если нужно удалять успешные сообщения по одному, можно в обработчике вызывать метод Удалить() для каждого отработанного элемента.

Подписаться: TG | MAX

#Практика1С #ПримерКода1С #Релиз8_5наПроде


В этом посте были ссылки, но мы их удалили по правилам Сетки

💡 Ключевые моменты при работе с очередями
Протестировал найсвежайшую 8.5.4.1306. Начал с очередей. Этот инструмент для асинхронной обработки задач недавно был анонсировали на DevCon 2026 | Сетка — социальная сеть от hh.ru