Форум Кладовочки АЛьФ`а

Обсуждение проектов => FormEx => Тема начата: АЛьФ от 20 марта 2024, 09:59

Название: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: АЛьФ от 20 марта 2024, 09:59
Наткнулся на глюк. Из меню вызывается глобальная функция, в которой грузится внешняя обработка и открывается функцией ОткрытьФорму. При первом обращении обработка открывается в модальном режиме.

Буду разбираться.
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: АЛьФ от 20 марта 2024, 10:38
Отбой воздушной тревоги. Это я сам неправильно открытие прописал.
Но с методом надо будет все же поработать. Сейчас получается, что возвращается 0 и когда ошибка какая-то, и когда загрузка не требуется. Во втором случае надо, наверное, возвращать текущий хэш.
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: АЛьФ от 21 марта 2024, 09:28
Сегодня запустил на боевой базе. Пришлось откатывать рано утром. Проблема с правами на добавленный объект.
У пользователь массово посыпалось "недостаточно прав".
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: Злоп от 21 марта 2024, 10:50
Цитата: АЛьФ от 21 марта 2024, 09:28на добавленный объект.
Это как?
.
Помнится было тоже как-то на каком-то релизе на тогда новом относительно выдавало "недостаточно прав доступа", потом обновился на еще более новый - нормально...
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: АЛьФ от 21 марта 2024, 11:01
Цитата: Злоп от 21 марта 2024, 10:50
Цитата: АЛьФ от 21 марта 2024, 09:28на добавленный объект.
Это как?
.
Помнится было тоже как-то на каком-то релизе на тогда новом относительно выдавало "недостаточно прав доступа", потом обновился на еще более новый - нормально...
Я у себя права на добавляемый объект не трогаю. Как движок ставит по умолчанию, так и есть. А движок же от 1С, т.е. жутко своенравный. Получается, что иногда для некоторых прав почему-то права не ставит.
Такое можно и в Конфигураторе заметить, когда объекты добавляешь. Тут тот же код работает.

Уже примерно выстроил стратегию исправления.
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: АЛьФ от 22 марта 2024, 10:11
В ходе копаний с правами вырисовывается возможность добавить объект "права" и в режиме Предприятия рулить для текущего пользователя одинэсными правами. Правда пока не вижу где это могло бы быть полезным. Чужие же права менять не получится. Только "свои" и только в рамках текущего сеанса.
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: alyuev от 22 марта 2024, 13:51
Разве что для тестов. Чтобы постоянно себе: не менять права на чужие/не делать лишние учетки/не запоминать чужие пароли :-)
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: Djelf от 22 марта 2024, 14:40
Права смогут работать только на ограничение или возможно будет еще и повышение прав?
Если скрестить с этим https://infostart.ru/1c/tools/162863/ получится очень интересное решение.
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: АЛьФ от 22 марта 2024, 14:47
Цитата: Djelf от 22 марта 2024, 14:40Права смогут работать только на ограничение или возможно будет еще и повышение прав?
Если скрестить с этим https://infostart.ru/1c/tools/162863/ получится очень интересное решение.

Можно будет давать разрешения, которые по умолчанию закрыты.
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: Djelf от 22 марта 2024, 14:54

Опасная штука однако получится. Это будет не дыра, это будет нора, всем норам нора.
Наверное не стоит такое делать, ибо как защитить и прикрыть это я не очень понимаю.
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: АЛьФ от 22 марта 2024, 14:56
Цитата: Djelf от 22 марта 2024, 14:54Опасная штука однако получится. Это будет не дыра, это будет нора, всем норам нора.
Наверное не стоит такое делать, ибо как защитить и прикрыть это я не очень понимаю.

Ну, семерка вообще не сильно защищенная система. Тем более в связке с 1С++ и FormEx.
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: Djelf от 22 марта 2024, 15:06
Это то известно, но хотя бы так видимо стоит сделать и еще реализовать запрет изменения этих параметров после их установки.
Процедура ПриНачалеРаботыСистемы()
  Права=СоздатьОбъект("Права");
  Права.РазрешитьПовышениеПолномочий(0/1);
  Права.РазрешитьПонижениеПолномочий(0/1);
КонецПроцедуры
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: АЛьФ от 22 марта 2024, 17:04
Еще одна проблема в рамках загрузки внешних обработок.
При замере производительности в отладчике на загруженной обработке получаем что-то типа "модуль отсутсвует". Это нехорошо.
Вроде как напрашивается метод для определения, что работа идет под отладчиком. Но если обработка загружена, а уже потом запущен отладчик, то не спасет.
Подсовывать отладчику внешнюю обработку? Сомневаюсь, что это возможно...
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: Forum123 от 22 марта 2024, 17:19
Цитата: Djelf от 22 марта 2024, 15:06Процедура ПриНачалеРаботыСистемы()
У меня реализовано через использование справочников в которых хранятся права на использование.
Если к примеру какому-то пользователю не даны права на формирование отчёта, то он не сможет его сформировать.
Кроме это права можно задать в xml файле, содержащем настройки диалоговых форм, разного рода прав, ...
Конечно доступ к изменению xml файлов регулируется правами пользователя на работу с xml (Windows права).
Что касается использование сторонних erp, то можно дать права на их использование лишь отдельным пользователям.
Вообщем как-то так.
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: trdm от 23 марта 2024, 11:33
Цитата: Djelf от 22 марта 2024, 14:40Права смогут работать только на ограничение или возможно будет еще и повышение прав?
Если скрестить с этим https://infostart.ru/1c/tools/162863/ получится очень интересное решение.
А у тебя есть скачанная? Что там за обработка?
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: Djelf от 23 марта 2024, 12:42

Нет, не скачивал и не смотрел. У меня с правами все значительно проще, всего два набора прав, так что необходимости в ней не было..
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: alyuev от 23 апреля 2024, 14:18
Делаю так:

Рез=Сервис.ЗагрузитьВнешнююОбработку("d:\Restored\CopyAC\ExtForms2\Обработки\ТСД800.ert","Обработка.ТСД800");
Сервис.СписокВсехФорм().Показать();

В списке форм не вижу новую.

Это можно поправить?
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: alyuev от 23 апреля 2024, 14:28
Просто идея применения этого метода у меня такая.
Есть внешняя обработка "ТСД.ert". Она настроена на одно разрешение экрана. Чтобы использовать её на другом разрешении - делаю вторую внешнюю обработку ТСД800 с другими размерами без модуля и в случае необходимости загружаю её методом ЗагрузитьВнешнююОбработку() и затем в ПриЗагрузкеФормы() для обработки "ТСД.ert", полагаю, можно будет подменить на форму новой загруженной "Обработка.ТСД800".
Но вот в списке форм её и не увидел. Поэтому дальше пока не пробовал.
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: АЛьФ от 23 апреля 2024, 14:47
Цитата: alyuev от 23 апреля 2024, 14:18Делаю так:

Рез=Сервис.ЗагрузитьВнешнююОбработку("d:\Restored\CopyAC\ExtForms2\Обработки\ТСД800.ert","Обработка.ТСД800");
Сервис.СписокВсехФорм().Показать();

В списке форм не вижу новую.

Это можно поправить?

Да, поправлю.
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: alyuev от 23 апреля 2024, 15:12
Цитата: alyuev от 23 апреля 2024, 14:28Просто идея применения этого метода у меня такая.
Есть внешняя обработка "ТСД.ert". Она настроена на одно разрешение экрана. Чтобы использовать её на другом разрешении - делаю вторую внешнюю обработку ТСД800 с другими размерами без модуля и в случае необходимости загружаю её методом ЗагрузитьВнешнююОбработку() и затем в ПриЗагрузкеФормы() для обработки "ТСД.ert", полагаю, можно будет подменить на форму новой загруженной "Обработка.ТСД800".
Но вот в списке форм её и не увидел. Поэтому дальше пока не пробовал.

Отвечаю сам себе - подменять форму нужно в ПриЗагрузкеФормыВнешнегоОтчета()!
Название: Re: Глюк метода Сервис::ЗагрузитьВнешнююОбработку
Отправлено: Злоп от 18 января 2025, 14:08
я этот подход уже лет 12 как обдумываю ;-)
но потока работ, которые требуют такого - совсем небольшой поток работ, поэтому так и не приступил...