![]() |
|
Cистема защиты от опасных действий и разные формы | ☑ | ||
---|---|---|---|---|
0
VitShvets
24.08.17
✎
20:36
|
Хочется вот убедиться, что у меня с лыжами всё хорошо и не пропустил где-то что-то.
Вводная. Имеем 1С КА 1.1, работаем на платформе 8.3.5. Формы в конфигурации используются и управляемые и обычные, основная масса обычные. Хочется перейти на 8.3.10, свежую, видимо на 8.3.10.2561. Причина банальная – требования новых конфигураций БУ, ЗУП и ДО. На пути встала новая, относительно 8.3.5, подсистема защиты от супостата со злыми помыслами. Собственно проблема. Есть в конфигурации банальная подсистема внешних отчетов-обработок. Суть есть справочник, где в реквизите лежит бинарник отчета-обработки. По двойному клику бинарник сохраняется во временные файлы, менеджером внешних отчетов/обработок по имени файла выполняется «ПолучитьФорму(ИмяФайла)» или, иногда «Создать(ИмяФайла)», форма открывается и всё вроде как хорошо, пока не появляется система защиты. Изначально хотелось бы не отключать систему, а переписать открытие. Чтобы там где можно система не ругалась, а везде где нельзя, соответственно впадала в истерику. В СП был откопан 4- й параметр функции Подключить, «ЗащитаОтОпасныхДействий», вроде как можно управлять, но, дальше начались приключения. 1С рекомендует «подключать» обработку на сервере из временного хранилища, получать «имя», а по имени открывать форму: АдресХранилища = ""; Результат = ПоместитьФайл(АдресХранилища, "ВнешОбработка.epf", , Ложь); ИмяОбработки = ВнешниеОбработки.Подключить(АдресВременногоХранилища); ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма"); Отлично работает на УФ, но абсолютно не работает на обычных формах. Ругается что «ОткрытьФорму», что «ПолучитьФорму» на неумение открывать во внешних обработках управляемые формы в обычном режиме работы. Старая история, я в курсе что нельзя, но засада в том, что у обработки то и нет УФ, только самая что ни на есть единственная форма – толстая и обычная. Пробовал вместо «Форма» указывать и имя формы и другие стандартные имена, результат одинаковый. Попробовал воспользоваться функцией менеджера .Создать(ИмяОбработки). Вроде как есть вариант синтаксиса «По имени обработки». Тоже мимо. Не знаю, говорит мне 1С, такого имени файла «МояЛютоНужнаяОбработка». Собственно вопроса два в эту сторону: 1. Это у меня лыжи не едут или 1С правда не предусмотрела в толстых и неуправляемых формах возможность управления СистемойЗащитыОтСупостата. Имхо, ну напрашивается же третий параметр в функцию Создать в варианте по полному имени файла. Ну или какой-то пинок функции Создать, что уговорит её не открывать «ИмяОбработки» как файл, а поискать таки «ВнешняяОбработка. МояЛютоНужнаяОбработка». 2. Про собственно отключение этой системы, параметр DisableUnsafeActionProtection, что в conf.cfg. Я правильно понимаю, что не достаточно установить параметр только на сервере, а надо ещё и на всех клиентских ПК? |
|||
1
TormozIT
гуру
24.08.17
✎
22:36
|
2 Да
|
|||
2
VitShvets
25.08.17
✎
13:26
|
(1) Мда... Мысль богатая, была, а реализация... Ни нормально управлять нельзя ни отключить без гемороя не получится. Буду у пользователей флаги снимать.
А про п.1 и лыжи? |
|||
3
VitShvets
25.08.17
✎
15:57
|
В качестве Up-а. А про релиз 8.3.10.2561 кто-нибудь что-нибудь плохое напишет? Читал по темам, нашел одну ошибку с сеансами. Но это мне кажется какая-то локальная трудно воспроизводимая ошибка.
|
|||
4
aleks_default
25.08.17
✎
16:12
|
Чета я не въехал где связь между подключением обработки с параметром отключения защиты от опасных действий, и открытием управляемой формы в обычном режиме?
|
|||
5
aleks_default
25.08.17
✎
16:18
|
Вообще там есть другой вариант команды Создать(), с предварительным подключением.
|
|||
6
VitShvets
25.08.17
✎
18:58
|
(5) о чем и речь. Есть другой вариант, но не работает в обычных формах. Ну либо я не так лыжи одел. Что делаю:
1. Получаю бинарник обработки. Через "ПоместитьФайл" или "ПоместитьВоВременноеХранилище" получаю адрес. 2. Подключаю внешнюю обработку. Через "Подключить", получаю "имя" подключенной обработки. 3. Пытаюсь создать объект функцией менеджера "Создать(<Имя>)". Как раз тот синтаксис, с предварительным подключением. Пробовал: ВнешниеОбработки.Создать("ВнешниеОбработки.МояОбработка") ВнешниеОбработки.Создать("МояОбработка") Итог один - ошибка что "не найден файл МояОбработка" / "Не найден файл ВнешниеОбработки.МояОбработка". Собственно и вопрос то по п.1. У меня руки кривые и я что-то не вижу. Или это такая "фишка"? |
|||
7
VitShvets
25.08.17
✎
19:07
|
(4)+(6) Связь такая, что пытался вместо "Создать" использовать методы глобального контекста "ОткрытьФорму" и "ПолучитьФорму". А они как раз ругаются, что нельзя открывать управляемое из обычного.
|
|||
8
VitShvets
28.08.17
✎
13:16
|
Подниму пожалуй.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |