7.7 "Перехват" открытия внешнего отчета.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем X-Man, 29 янв 2013.

  1. TopicStarter Overlay
    X-Man
    Offline

    X-Man Опытный в 1С

    Регистрация:
    18 май 2007
    Сообщения:
    428
    Симпатии:
    3
    Баллы:
    29
    Всем здравствуйте. У меня такой вопрос: есть ли какие-то решения, позволяющие перехватить событие открытия пользователем внешнего отчета? В моем случае это нужно для проверки прав доступа к этому отчету у текущего пользователя. Проверяется через специально созданные справочники. Но недостаток в том, что для того, чтобы все работало, необходимо в процедуре ПриОткрытии() КАЖДОГО внешнего отчета прописывать вызов процедуры глобального модуля, в которой, собственно, эти права и проверяются. Подскажите, кто что знает по этому поводу. Заранее благодарен.
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Знаю что можно "перекрыть кислород" на запуск внешних отчетов не из ExtForms. А вот чтобы перехватить... думаю такого нет
    Если ваши юзера не "продвинутые" и не пользуются меню-файл-открыть или формульным калькулятором, то можно ограничить через саму обработку, открывающую внешние отчеты
  3. TopicStarter Overlay
    X-Man
    Offline

    X-Man Опытный в 1С

    Регистрация:
    18 май 2007
    Сообщения:
    428
    Симпатии:
    3
    Баллы:
    29
    А может можно как-то через обработчик ожидания? Но вот как узнать, что форма внешнего отчета открыта...
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    в том то и дело что НИКАК средствами самой 1с.... Чисто теоретически можно конечно по открытым окнам... Но думаю что будут тормоза
  5. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    Код:
    
    ЗагрузитьВнешнююКомпоненту("1cpp.dll"); 
    Настройки=СоздатьОбъект("УправлениеНастройками");
    Настройки.Сбросить("Проверка типов");
    Настройки.Сбросить("Отладка");
    //Настройки.Сбросить("Оптимизация");
    Настройки.Включить("Оптимизация");
    Настройки.Включить("TurboBL");
    
    Настройки.Включить("ПерехватитьСобытияГК");
    Перехватчик = СоздатьОбъект("Перехватчик");  
    ПерехватчикСобытийГМ = СоздатьОбъект("ПерехватСобытий");  
    Перехватчик.ПерехватитьСобытияГлобальногоМодуля(ПерехватчикСобытийГМ);
    
    
    
    Процедура СобытиеГМ_СозданиеКонтекста(Конт) Экспорт
    путьФайл="";
    Попытка
    путьФайл=Конт.РасположениеФайла(,);
    Исключение
    КонецПопытки;
    Если путьФайл<>"" Тогда
    Сообщить("а права есть??"+РазделительСтрок+путьФайл);
    Конт.Форма.Закрыть();
    КонецЕсли;
    Конецпроцедуры
    
    http://www.1cpp.ru/d...ooker.html#id37
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Все это просто здорово. Если только юзер не догадается переименовать обработку на доступную....
  7. TopicStarter Overlay
    X-Man
    Offline

    X-Man Опытный в 1С

    Регистрация:
    18 май 2007
    Сообщения:
    428
    Симпатии:
    3
    Баллы:
    29
    Это сразу вылезет, поскольку при регистрации доступных обработок хранится полный путь к файлу. Переименование приведет к неизбежному замещению.
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    вы так думаете?)))))))))

    1) скрипт туды.bat
    echo off
    cd c:\base\extforms
    copy обработка_разрешенная.ert обработка_разрешенная.ert1 /y
    copy обработка_запрещенная.ert обработка_разрешенная.ert /y
    echo Дорогой хозяин, доступ открыт!


    2) скрипт сюды.bat
    echo off
    cd c:\base\extforms
    copy обработка_разрешенная.ert1 обработка_разрешенная.ert /y
    del обработка_разрешенная.ert1
    echo Дорогой хозяин, все следы уничтожены, спи спокойно!


    Или так...
    туды_сюды.bat
    echo off
    copy обработка_разрешенная.ert1 обработка_разрешенная.ert /y
    del обработка_разрешенная.ert1
    echo Дорогой хозяин, доступ открыт. Работайте!
    pause
    copy обработка_разрешенная.ert1 обработка_разрешенная.ert /y
    del обработка_разрешенная.ert1
    echo Дорогой хозяин, все следы уничтожены, спи спокойно!

    тоже самое можно сделать и при помощи проводника или даже в диалоге выбора...
  9. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    :icon_kringeln: странно что X-Man не идет по пути вызова проверок из самих обработок
    а доступ к файлу можно открыть только для чтения
    и только себе полные права дать
    если конечно файловая система позволяет
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    наверное обработок много и интегрировать проверку просто ЛЕНЬ)))))))))))

Поделиться этой страницей