1. ukraina 12.08.19 16:22 Сейчас в теме

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

Приветствую, Форумчане!
1с8.3.12, самопис, БСП, УФ

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

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

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

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


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

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

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

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

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

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

Вакансии

Программист 1С
Москва
зарплата от 150 000 руб. до 150 000 руб.
Полный день

Консультант 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программист стажер 1С
Нижний Новгород
зарплата от 30 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программисты 1С УТ / БУЗ/ЗУП / БИТ ФИНАНС
Москва
зарплата от 100 000 руб. до 180 000 руб.
Полный день