Имя: Пароль:
1C
1С v8
Как определить - внешняя обработка или встроенная?
,
0 Inkognito
 
26.12.14
18:22
Есть внешняя обработка. Но иногда клиенты ее используют как встроенную дополнительную обработку. При втором варианте: найти путь относительно обработки невозможно.
Вопрос: как анализировать, запущена обработка как внешняя или как встроенная?
1 Повелитель
 
26.12.14
18:24
Запретить второй вариант.
А почему невозможно путь найти?
2 mikecool
 
26.12.14
18:39
Попытка
Обработки[имя]
встроенная
Исключение
внешняя
3 Записьдампа
 
26.12.14
18:44
(2) ох уж эти попытошники... =)

ЭтоВнешнаяяОбработка = Метаданные.НайтиПоТипу( ТипЗнч(РеквизитФормыВЗначение("Объект")) ) = Неопределено;

Хотя у меня есть подозрение, что (0) пытается отличить обработку, открытую через меню "Файл" и обработку из справочника дополнительных обработок.
4 фобец
 
26.12.14
18:50
В одной из обработок указать на форме отличительный признак
5 фобец
 
26.12.14
18:51
а, это одна и та же обработка. Тогда никак наверн
6 mikecool
 
26.12.14
18:54
(3) хз, что по времени лучше
7 Inkognito
 
26.12.14
19:35
Спасибо, mikecool! Заработало.
Записьдампа, да, так и есть.
фобец, все верно. Правда определить удалось, благодаря mikecool.
8 Inkognito
 
26.12.14
19:38
Повелитель, там относительно внешней обработки пути к другим файлам прописаны (инструкция, ридми, и др). Все было номрмально пока не начали находиться люди, которые начали встаривать внешнюю обработку, в результате все ссылки на внешние файлы стали нерабочими. Добавлю поля для выбора пути в Исключении, буду их делать видимыми и сохранять/восстанавливать. Иначе видимо никак.
Всем спасибо!
9 Записьдампа
 
26.12.14
19:42
(6) Не, тут не в скорости дело.

Выброс исключения запрещает успешное завершение транзакции и запросто может привести к поражающему своей ясностью  сообщению "В данной транзакции уже происходили ошибки". Поэтому использовать исключения - грешновато.
10 artbear
 
17.01.15
20:59
(2) твой псевдокод ответит не на вопрос ТС, а на вопрос - есть ли в конфе встроенная обработка с таким же именем :)
Например, в конфе есть встроенная обработка, но если запустить такую же внешнюю, твой код вернет признак, что запустили из встроенной :(