Обработка, снимающая галку "Защита от опасных действий" пользователям ИБ в платформе с 8.3.9.2033




Обработка группового регулирования галки «Защита от опасных действий».
Если обновились на новую платформу.

Если выдаются такие сообщения, как: «Рекомендуется обращать внимание на источник, из которого был получен данный файл. Если с источником нет договоренности о разработке дополнительных модулей, или есть сомнения в содержимом файла, то его не рекомендуется открывать, поскольку это может нанести вред компьютеру и данным. Разрешить подключать исполнимые бинарные файлы для данного модуля?» и так далее…

Выполнять необходимо под пользователем, у которого эта галка уже снята в конфигураторе (см. скриншоты).

Также есть другой метод: в файле conf.cfg изменить параметр DisableUnsafeActionProtection. Касаемого этого метода можно найти информацию в сети.

В данной публикации на код из 2х строк натянут интерфейс, позволяющий по отборам ставить галку. Пример ниже:

        ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ПользовательСпр.ИдентификаторПользователяИБ);

Если ПользовательИБ=Неопределено Тогда

Сообщить("Не найден идентификатор пользователя в ИБ:"+ПользовательСпр);
Продолжить;

КонецЕсли;

сч=сч+1;
Состояние("Обработка:"+сч+" из "+ВсегоП+" ... прерывание ctrl+break...");
ОбработкаПрерыванияПользователя();

ПользовательИБ.ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях = Ложь;

Попытка

ПользовательИБ.Записать();

Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;

Использован список справочника с дорисовкой флага при выводе строки. Пример ниже:

Перем СписокСпрДляОбработки;

Процедура ПриОткрытии()
Колонка = ЭлементыФормы.ПользователиИБ.Колонки.Вставить(0, "Флаг");
Колонка.Имя = "Флаг";
Колонка.Ширина = 3;
Колонка.Данные = "";
Колонка.ТекстШапки = "";
Колонка.ДанныеФлажка = "ПометкаУдаления";
Колонка.ИзменятьПозицию = Ложь;
Колонка.ИзменениеРазмера = ИзменениеРазмераКолонки.НеИзменять;
Колонка.ИзменятьВидимость = Ложь;
Колонка.ИзменятьНастройку = Ложь;
Колонка.РежимРедактирования =  РежимРедактированияКолонки.Непосредственно;
КонецПроцедуры

Процедура ПользователиИБПередНачаломИзменения(Элемент, Отказ)
Если ЭлементыФормы.ПользователиИБ.ТекущаяКолонка.Имя = "Флаг" и ЗначениеЗаполнено(ЭлементыФормы.ПользователиИБ.ТекущиеДанные.Ссылка)
и ЭлементыФормы.ПользователиИБ.ТекущиеДанные.Ссылка.ЭтоГруппа = Истина тогда
Отказ = Истина;
Ссылка = ЭлементыФормы.ПользователиИБ.ТекущиеДанные.Ссылка;

Если СписокСпрДляОбработки.Получить(Ссылка) = Неопределено Тогда
ЗаполнитьСписокОбработкиДляГруппы(Ссылка);

Иначе
УдалитьСписокОбработкиДляГруппы(Ссылка);

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

Процедура ПользователиИБПриПолученииДанных(Элемент, ОформленияСтрок)
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
ОформлениеСтроки.Ячейки.Флаг.УстановитьФлажок(СписокСпрДляОбработки.Получить(ОформлениеСтроки.ДанныеСтроки.Ссылка) <> Неопределено);
КонецЦикла;
КонецПроцедуры

16 Comments

  1. collider

    А зачем её снимать-то? Хорошее, дельное предупреждение.

    А внешние обработки отдельно от баз всё равно хранить неправильно. Для них же отдельный справочник даже есть.

    Reply
  2. snikers44

    (1) Абсолютно согласен с направлением мысли 1С о необходимости разработки внутренней системы защиты.

    Но, не вдаваясь в подробности, могу сказать, что понадобилось управление этим признаком в массовом порядке. Этой наработкой и поделился. Никаких жутких и необратимых действий она не производит, а лишь упрощает управление.

    Reply
  3. foxey

    (1) Внешняя обработка, которая хранится в специальном справочнике при запуске разворачивается во временный файл типа C:UsersХозяин вселеннойAppDataLocalTempv8_191B.tmp и на экран лезет то самое пресловутое предупреждение-вопрос об опасности открытия из файла.

    Особенно радует фраза из третьего абзаца предупреждения: «Рекомендуется обращать внимание на источник, из которого был получен данный файл.»

    Мы ведь помним, что источником является «специальный» справочник! Ну а автором или пользователем, который поместил в справочник данный файл-обработку является сотрудник с админскими правами.

    О чем это предупреждение рядовому пользователю в данном случае? Ни о чем.

    Надо ли его убирать? Несомненно надо. Оно лишнее. Раздражает назойливостью и ненужностью.

    Reply
  4. uri1978

    (1)

    Чем же оно дельное предупреждение? Абсолютно бесполезное. Проверки то ни какой не проходит — это сообщение вываливает НА ВСЕ обработки. Пользователь уже на автомате нажимает «Да» и каждый раз материт 1С. Как в этом случае происходит защита?

    На месте 1С, удалили бы эту защиту безопасности и не позорились.

    Reply
  5. collider

    (4) Из первого поста:

    А внешние обработки отдельно от баз всё равно хранить неправильно. Для них же отдельный справочник даже есть.
    Reply
  6. progr-2008

    (5)Если справочник есть, не значит, что обработки неправильно хранить вне базы.

    Бывают разные ситуации, например, связанные с доступом.

    Reply
  7. uri1978

    Объясните, КАК данный механизм обеспечивает защиту?

    Reply
  8. progr-2008

    (7)Психологически, наверное.

    Пользователь начинает немного задумываться, что запускает.

    Reply
  9. ranger

    Столкнулся с этой «защитой» совершенно в неожиданном месте.Использую обмен через универсальный формат, при этом в настройках обмена зашит внешний модуль для обмена и это бяка в момент обмена спрашивает, открыть ли файл???Причем вопрос то никто не видит,кроме журнала регистрации.

    Тьфу..

    Reply
  10. glog

    Нужно создать файл (если его нет) 1cv8confconf.cfg и записать в него параметр DisableUnsafeActionProtection=.*

    Тогда для всех пользователей на этом компьютере защита отключается.

    Reply
  11. tolyan_ekb

    (9) Как решили вопрос? У меня регламентное задание в серверной базе. Тоже вопрос задается. Пользователя я так понимаю нет для регламентного задания.

    Reply
  12. ranger

    (11) Пользователя можно вручную выбрать в настройках регламентного задания от имени которого запускать.

    Reply
  13. tolyan_ekb

    (12) У меня регламентное задание во внешних обработках розница 2.2 там нет выбора пользователя.

    Reply
  14. tolyan_ekb

    (12) Спасибо, разобрался. Забыл про регламентные задания как отдельный справочник.

    Reply
  15. 1Cynep4eJIoBek

    (9)Марат утро доброе тоже самое, спасибо Вы мне очень помогли

    Reply
  16. dakork

    У меня такая же фигня. А можно более подробно, как сделали?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *