Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запрет на отмену проводки. , Кака реализовать програмно?          
l2d808 Подменю пользователя
сообщение 13.08.18, 11:10
Сообщение #1

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 65 раз
Рейтинг: 0

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

Сообщение отредактировал l2d808 - 13.08.18, 11:12


Signature
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...

podcast Подменю пользователя
сообщение 13.08.18, 13:03
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 306
Спасибо сказали: 75 раз
Рейтинг: 0

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

l2d808 Подменю пользователя
сообщение 13.08.18, 13:49
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 65 раз
Рейтинг: 0

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

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


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

Сообщение отредактировал l2d808 - 13.08.18, 13:50


Signature
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...

Спасибо сказали: nmf,

l2d808 Подменю пользователя
сообщение 14.08.18, 10:06
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 65 раз
Рейтинг: 0

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


Signature
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...

sava1 Подменю пользователя
сообщение 14.08.18, 10:10
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2745
Из: Проскуров
Спасибо сказали: 705 раз
Рейтинг: 684.2

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

l2d808 Подменю пользователя
сообщение 14.08.18, 12:38
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 65 раз
Рейтинг: 0

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


Signature
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...

Vladal Подменю пользователя
сообщение 14.08.18, 12:52
Сообщение #7

Оратор
Иконка группы
Группа: Местный
Сообщений: 373
Из: Slovensko
Спасибо сказали: 81 раз
Рейтинг: 0

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

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

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


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


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

l2d808 Подменю пользователя
сообщение 14.08.18, 13:06
Сообщение #8

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 65 раз
Рейтинг: 0

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

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



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


Signature
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...

sava1 Подменю пользователя
сообщение 14.08.18, 13:12
Сообщение #9

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2745
Из: Проскуров
Спасибо сказали: 705 раз
Рейтинг: 684.2

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


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

ed.kharkov Подменю пользователя
сообщение 15.08.18, 8:40
Сообщение #10

Говорящий
Иконка группы
Группа: Местный
Сообщений: 58
Из: Бровары
Спасибо сказали: 20 раз
Рейтинг: 0

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

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

muslim18 Подменю пользователя
сообщение 10.05.25, 16:53
Сообщение #11

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

ed.kharkov @ 15.08.18, 11:40 * ,
Можно ли эту процедуру создать в общем модуле и применить для всех объектов "Документы" чтоб не писать в каждом отдельно ??

Slon747 Подменю пользователя
сообщение 10.05.25, 17:30
Сообщение #12

Завсегдатай
****
Группа: Пользователи
Сообщений: 119
Спасибо сказали: 16 раз
Рейтинг: 16

Цитата(Slon747 @ 10.05.25, 18:30) *
Можно ли эту процедуру создать в общем модуле и применить для всех объектов "Документы" чтоб не писать в каждом отдельно ??

Можно создать подписку на событие

muslim18 Подменю пользователя
сообщение 10.05.25, 17:49
Сообщение #13

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

Slon747 @ Сегодня, 20:30 * ,
Если возможно, то опишите метод по подробнее, с примером будет лучше))))

Slon747 Подменю пользователя
сообщение 11.05.25, 6:58
Сообщение #14

Завсегдатай
****
Группа: Пользователи
Сообщений: 119
Спасибо сказали: 16 раз
Рейтинг: 16



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

Процедура ПередЗаписьюДокументаДатаЗапретаРедактированияПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
    
    Если Отказ ИЛИ Источник.ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;

    Если    ТипЗнч(Источник) = Тип("ДокументОбъект.ВыгрузкаРегламентированныхОтчетов")
        ИЛИ ТипЗнч(Источник) = Тип("ДокументОбъект.РегламентированныйОтчет") Тогда
        // для этих типов документов не проверяем.
        Возврат;
    КонецЕсли;
    
    ПроверкаПериодаДокумента(Источник, Отказ, РежимЗаписи);
    Если Отказ Тогда
        #Если Клиент Тогда
            Сообщить(НСтр("ru='Редактирование данных этого периода запрещено. Изменения не могут быть записаны...';uk='Редагування даних цього періоду заборонено. Зміни не можуть бути записані...'"), СтатусСообщения.Важное);
        #КонецЕсли
    КонецЕсли;
КонецПроцедуры // ПередЗаписьюДокументаДатаЗапретаРедактированияПередЗаписью()


Спасибо сказали: muslim18,

muslim18 Подменю пользователя
сообщение 12.05.25, 10:25
Сообщение #15

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

Slon747 @ Вчера, 9:58 * ,
Благодарю !!! ваш совет помог, только вот как написать метод на условие ПометкаУдаления?

в модуле объекта так работает, а как вызвать из общего модуля такой метод? (ПометкаУдаления, Ссылка)

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


Сообщение отредактировал Vofka - 12.05.25, 15:10

Slon747 Подменю пользователя
сообщение 12.05.25, 13:23
Сообщение #16

Завсегдатай
****
Группа: Пользователи
Сообщений: 119
Спасибо сказали: 16 раз
Рейтинг: 16

muslim18 @ Сегодня, 11:25 * ,
Вот так я сделал. Проверил, работает.


Процедура ПередПометкойНаУдалениеДокумента(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
    
    Если Отказ ИЛИ Источник.ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;

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

КонецПроцедуры

Спасибо сказали: muslim18,

muslim18 Подменю пользователя
сообщение Вчера, 9:06
Сообщение #17

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

Slon747 @ 12.05.25, 16:23 * ,
Благодарю за поддержку!! получилось реализовать.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.05.25, 15:17
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!