Добавить в корзинуПозвонить
Найти в Дзене
1Cnik

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

Протестировал найсвежайшую 8.5.4.1306. Начал с очередей. Этот инструмент для асинхронной обработки задач недавно был анонсировали на DevCon 2026. Они похожи на регистры сведений: имеют измерения (для группировки) и реквизиты (для хранения данных). Расскажу, как их настроить и использовать. При создании в дереве метаданных задайте стандартные Имя, Синоним и Комментарий, а также: 🟠ВТранзакции - обработка в транзакции (платформа откроет её автоматически). 🟠РазмерПорцииОбработки - до 1 000 сообщений с одинаковыми значениями измерений за один вызов обработчика. 🟠АвтоматическаяОбработка - если Истина, система сама запустит обработку при появлении сообщений. Не работает в монопольном доступе. Измерения vs Реквизиты: 🛑Измерения группируют сообщения (например, по документу). 🛑Реквизиты - как параметры для обработчика (например, действие с документом). Сообщение = Очереди.ОчередьПроведения.СоздатьСообщение(); Сообщение.ДокументПроведения = Ссылка; Сообщение.Действие = "Партии"; Очереди.Оч

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

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

При создании в дереве метаданных задайте стандартные Имя, Синоним и Комментарий, а также:

🟠ВТранзакции - обработка в транзакции (платформа откроет её автоматически).

🟠РазмерПорцииОбработки - до 1 000 сообщений с одинаковыми значениями измерений за один вызов обработчика.

🟠АвтоматическаяОбработка - если Истина, система сама запустит обработку при появлении сообщений. Не работает в монопольном доступе.

Измерения vs Реквизиты:

🛑Измерения группируют сообщения (например, по документу).

🛑Реквизиты - как параметры для обработчика (например, действие с документом).

Сообщение = Очереди.ОчередьПроведения.СоздатьСообщение();

Сообщение.ДокументПроведения = Ссылка;

Сообщение.Действие = "Партии";

Очереди.ОчередьПроведения.Записать(Сообщение);

Важно:

🟠Запись в очередь происходит при завершении транзакции.

🟠В рамках одной транзакции новые сообщения не видны для чтения.

🟠При откате транзакции сообщения не попадут в очередь.

Нюансы обработки:

🛑Фоновое задание обрабатывает сообщения не дольше 20 секунд. Если очередь не пуста, то запускается новое задание.

🛑Для ручного запуска используйте: Очереди.ИмяОчереди.ОбработатьСообщения().

Методы:

🟠ОбработатьСообщения() - ручной запуск.

🟠Удалить() - удалить одно или несколько сообщений.

🟠Очистить() - удалить все сообщения очереди.

🟠ПолучитьАвтоматическуюОбработку() / УстановитьАвтоматическуюОбработку() - управление фоновой обработкой.

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

Обработка Всё или ничего. В обработчик приходит пачка сообщений (порция).

🟠Всё успешно → сообщения удаляются из очереди.

🟠Хотя бы одно не обработалось (исключение или отказ) → платформа повторит попытку для всей пачки позже.

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

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

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