Версия для печати темы (https://pro1c.org.ua/index.php?s=6660d3bf64f40bd6501ea6c8e4935c59&showtopic=47204)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Запрет на отмену проводки.

Автор: l2d808 13.08.18, 11:10

1с8.3 Самописная. Клиент-сервер.
Добрый день, Уважаемое сообщество.
Столкнулся с вопросом. Как запретить пользователю отменять проводку (програмно), не используя роли?

Автор: podcast 13.08.18, 13:03

l2d808 @ Сегодня, 12:10 * ,
Если всем пользователем то ПередЗаписью проверять РежимЗаписи если ОтменаПроведения то Отказ, а если нужны условия то нужо выкручивваться с них.

Автор: l2d808 13.08.18, 13:49

Вышел с ситуации так:

в модуле документа прописал:

Процедура ОбработкаУдаленияПроведения(Отказ)
    Сообщить("Відміна проведення ЗАБОРОНЕНА! Зверніться до Адміністратора!");
    Отказ = Истина;
КонецПроцедуры


Если кому интересно, дальше можно ставить любое условие.

Автор: l2d808 14.08.18, 10:06

Есть продолжение данной темы.
Как запретить програмно обычное и интерактисное удаление справочников и документов?

Автор: sava1 14.08.18, 10:10

Трудно добавить роль?
Или "делаем ректально" - это наше второе Я ?

Автор: l2d808 14.08.18, 12:38

sava1 @ Сегодня, 11:10 * ,
Суть в том что, роли раздаются направо и налево, а вот некоторые объекты должны быть стабильно не изменяемые.
А вот на счет "ректально" пожалуйста поподробнее...

Автор: Vladal 14.08.18, 12:52

Цитата(l2d808 @ 14.08.18, 11:06) *
Как запретить програмно обычное и интерактисное удаление справочников и документов?

В модуле объекта обработчик ПередУдалением()

Процедура ПередУдалением(Отказ)
    Если Не РольДоступна ("СуперПуперАдминистратор") Тогда
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры


То же добавить и в приведенный выше код:
Процедура ОбработкаУдаленияПроведения(Отказ)
    Если Не РольДоступна ("СуперПуперАдминистратор") Тогда
        Сообщить("Відміна проведення ЗАБОРОНЕНА! Зверніться до Адміністратора!");
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры


Ответственным пользователям, которым разрешено помечать на удаление указанные объекты добавить роль "СуперПуперАдминистратор".
А вот что делать с обработкой удаления объектов с ИТС или из меню Операции - Удаление помеченных объектов - отобрать право "интерактивное удаление объектов".

Автор: l2d808 14.08.18, 13:06

Цитата(Vladal @ 14.08.18, 13:52) *
В модуле объекта обработчик ПередУдалением()

Процедура ПередУдалением(Отказ)
    Если Не РольДоступна ("СуперПуперАдминистратор") Тогда
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры



К сожалению при попытке пометить на удаление, реакции никакой. эту процедуру при удалении 1с-ка не замечает.

Автор: sava1 14.08.18, 13:12

Цитата(l2d808 @ 14.08.18, 14:06) *
при попытке пометить на удаление, реакции никакой


Пометка на удаление - это не удаление, а просто запись документа с доп. реквизитом IsMarked.
Анализироват надо перед записью - сравнивать объект и объектВбазе. И в случае пометки - отказываться от записи.

Автор: ed.kharkov 15.08.18, 8:40

l2d808 @ Вчера, 14:06 * ,

В модуле объекта

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
      Если ПометкаУдаления
        И Не Ссылка.ПометкаУдаления
        И Не РольДоступна ("СуперПуперАдминистратор") Тогда
        
        Отказ = Истина;
      КонецЕсли;
КонецПроцедуры

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua