Запрет групповой обработки при определенных условиях

1. Arkadag 12.08.19 16:22 Сейчас в теме
Приветствую, Форумчане!
1с8.3.12, самопис, БСП, УФ

В состав нашей конфигурации входит групповая обработка документов, судя по всему классика.

У нас имеется некие документы, "Заказ", РКО, "ПКО" у которых программно закрыт доступ к изменению данных при определенном условии (прошел месяц после создания документа).

Ну при открытии формы стоит проверка даты, если разница дат между датой документа и текущей, то:

ЭтаФорма.ТолькоПросмотр = ДатаЗапрета();


Что можно придумать, если требуется запретить изменение данных документа при помощи обработки групповое изменение документов?
По теме из базы знаний
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Denis_CFO 48 12.08.19 16:31 Сейчас в теме
(1) проверка на интерактивное проведение.
Типа, если Форма.Открыта() Тогда //значит не групповая, т.е. сам пользователь открыл
3. mazechild 12.08.19 16:39 Сейчас в теме
Подписка на событие ПередЗаписью, ОбработкаПроведения. Или в модуле объекта перед записью. Ну или в обработку внести изменения.
4. Arkadag 12.08.19 17:30 Сейчас в теме
Наверно это слишком радикально внести изменения в обработку... Но можно установить другую групповую обработку...

А можно программно запретить права на Проведение, на Редактирование и т.д., ну типа будут выходить сообщение "У Вас нет вообще никаких прав..."

Проблем основная в том, что запрет идет по дате, например если сегодня 12.08, то ряд документов до 12.07 нужно забыть для каких-либо изменений,
а обработка позволит изменить дату на любое число и провести документ с новой датой...
5. _MavR_ 12.08.19 21:14 Сейчас в теме
(4)
А можно программно запретить права на Проведение, на Редактирование и т.д., ну типа будут выходить сообщение "У Вас нет вообще никаких прав..."

Как было сказано выше это решается подписками на события. Добавляешь свою подписку, к ней дописываешь свой общий модуль уже с кодом запретов и выводимых сообщений и все. Можно еще роль добавить, чтоб шибко много условий не городить (в зависимости от Ваших хотелок) - есть у юзверя роль "Можно лезть в прошлые даты" и у него все проводится, нет роли - выдает сообщение "Покорми собак и ничего руками не трогай". И это будет работать в Вашей конфигурации в общем, а не в конкретной обработке. Подписки вообще крайне приятная штука - можно настроить доступы тем же пользователям к складам и документам как Вы того хотите, а не как предлагает конфигурация. Второй плюс - не мешает обновлению, если для Вас это важно.
6. catena 110 13.08.19 06:04 Сейчас в теме
Проверяйте не в форме, а в модуле ПередЗаписью() значение даты в ссылке. Если это сделать еще и до ОбменДанными.Загрузка=Истина, то вообще в принципе никакая групповая запись не пройдет.
7. Arkadag 13.08.19 13:00 Сейчас в теме
Всё правильно. Но вот обнаружил засаду.

Взял ПКО из "запрещенного периода". Открыл групповое изменение, выбрал этот документ, поставил сегодняшнюю дату и документ благополучно изменился, т.е. поставил разрешенную условиям дату и провелся...

Что нужно поставить в подписку на событие ПередЗаписью, чтобы запомнил первоначальную дату и по ней осуществлял проверку?
8. Arkadag 13.08.19 14:16 Сейчас в теме
9. Arkadag 13.08.19 14:16 Сейчас в теме
ДатаНовая = Источник.Дата;
ДатаСтара = Источник.Ссылка.Дата;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот