Выполнение произвольной функции в монопольном режиме
Разработка - Инструментарий разработчика
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Поставка lock.cf (8.3.24.1467)
- включает подсистему дпДополнительныеПодсистемы.ВиртуальныеБлокировки
Назначение объектов подсистемы
Справочник.дпВиртуальныйБлокировки предназначен для хранения списка виртуальных блокировок
- Ресурс - ресурс блокировки, любая ссылка или строка (например имя или хеш функции)
- Виртуальная блокировка обеспечивается жизнью объекта Блокировка.БлокировкаОбъект и автоматически заканчивается с его уничтожением при завершении функции, завершении сеанса или присвоении переменной значения Неопределено
// использовать до начала транзакции
Блокировка = дпВиртуальныеБлокировки.ЗаблокироватьРесурс("Тест");
Если Не Блокировка.Установлена Тогда
ВызватьИсключение Блокировка.ТекстОшибки;
КонецЕсли;
// заблокированный код функции
РегистрСведений.дпСвойстваВиртуальныхБлокировок предназначен для хранения информации о последней блокировке ресурса
- ДатаУстановки - дата последней установки
- Пользователь - имя пользователя
- НомерСеанса - номер сеанса блокировки
Пример использования подсистемы
- Регламентное задание взаимодействует с внешней системой, по ошибке одно и тоже задание запускается одновременно более одного раза и возникают коллизии, можно в начале функции регламентного задания добавить виртуальную блокировку на имя функции и успешно отрабатывать будет только первое запущенное регламентное задание.

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

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