Оказывается, уже есть довольно много обработок по снятию резервов :)
Эта обработка снимает резервы с заказов с учетом двух дополнительных флагов в заказе клиентов, перед этим посылая менеджерам письма о том, что скоро резервы будут сняты. Менеджер может поставить первый флаг Продлить резерв на 5 дней (если включен в соответствующую группу) или попросить суперпользователя базы поставить флаг Продлить резерв бессрочно, если он уверен в оплате от клиента.
Для этой обработки нужно создать расширение и в нём в документ Заказ Клиента добавить флаги Расш1_ПродлитьРезервированиеНа5Дней (продляет резерв на 5 дней)
и Расш1_ПродлитьРезервированиеБессрочно (делает заказ невидимым для снятия резервов). Также нужно добавить одноименные роли и раздать их пользователям этой базы. Дальше нужно сделать профили и группы пользователей для этих ролей по типовой методике раздачи прав. Скорее всего, для действий в расширении вам потребуется программист, которому должно заведомо хватить этих инструкций.
Как работает обработка?
Кнопка Заполнить заполняет табличную часть Заказы к снятию резервов, которая вынесена на вторую неактивную закладку и нужна, в основном, для проверки. Также заполняется табличная часть Письма менеджерам, в которую попадают все менеджеры из этих заказов
При активизации строчки с менеджером в правой части показывается содержание письма к нему:
Кнопка Отправить письма отправляет письма менеджерам по списку.
Кнопка Снять резервирование снимает резервы по найденным заказам
Поле Глубина резервирования по умолчанию равно 7 дням, но его можно менять перед заполнением списка заказов.
Также можно менять поле Текущая дата. Эти два поля учитывает кнопка Заполнить.
Чтобы реквизиты Продлить резервирование на 5 дней и Продлить резервирование бессрочно появились в заказе, нужно
в расширении в форме документа Заказ клиента в процедуру Расш1_ПриСозданииНаСервереПосле добавить код:
&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
Если РольДоступна("ПолныеПрава") или РольДоступна("Расш1_ПродлитьРезервированиеНа5Дней") Тогда
ПолеВвода = Элементы.Добавить("Расш1_ПродлитьРезервированиеНа5Дней", Тип("ПолеФормы"), Элементы.ГруппаПараметрыЛево);
ПолеВвода.Заголовок = "Продлить резервирование на 5 дней";
ПолеВвода.Вид = ВидПоляФормы.ПолеФлажка;
ПолеВвода.ПутьКДанным = "Объект.Расш1_ПродлитьРезервированиеНа5Дней";
КонецЕсли;
Если РольДоступна("ПолныеПрава") или РольДоступна("Расш1_ПродлитьРезервированиеБессрочно") Тогда
ПолеВвода = Элементы.Добавить("Расш1_ПродлитьРезервированиеБессрочно", Тип("ПолеФормы"), Элементы.ГруппаПараметрыЛево);
ПолеВвода.Заголовок = "Продлить резервирование бессрочно";
ПолеВвода.Вид = ВидПоляФормы.ПолеФлажка;
ПолеВвода.ПутьКДанным = "Объект.Расш1_ПродлитьРезервированиеБессрочно";
КонецЕсли;
КонецПроцедуры
В заказе эти флаги выглядят вот так:
Тестировалась на релизе 1С:Комплексная автоматизация 2 (2.4.13.180).