Имя: Пароль:
1C
1С v8
команды БСП и расширения 8.3.13
0 Geroy
 
19.11.18
23:43
Типовая
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
    ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

Необходимо, но не работает
&Вместо("Подключаемый_ВыполнитьКоманду")
Процедура Расш_Подключаемый_ВыполнитьКоманду(Команда)

КонецПроцедуры
1 Geroy
 
19.11.18
23:51
&НаКлиенте
Процедура Расш_Подключаемый_ВыполнитьКомандуВместо(Команда)

Тоже не работает
2 Chameleon1980
 
20.11.18
06:57
У расширения отключи безопасный режим. или как он там называется.
3 Geroy
 
20.11.18
07:49
(2) отключено всё, я не уверен что команды БСП в расширении перехватываются, это же не команды формы.
4 Chameleon1980
 
20.11.18
08:21
а какая разница БСП это или нет?
5 Chameleon1980
 
20.11.18
08:22
Это модуль жеж типа общий?
6 Geroy
 
20.11.18
08:25
(5) нет это в форме документа или в форме списка.
7 Geroy
 
20.11.18
08:26
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
    ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
8 Mankubus
 
20.11.18
09:09
(3) а обычные процедуры перехватываются чтоли? тоже думаю что не в БСП дело
9 Geroy
 
20.11.18
09:18
(8) всё остальное работает отлично, скорее всего связано что данная команда не откуда не вызывается.

Это ведь не события формы
10 Cyberhawk
 
20.11.18
09:21
Серверные методы, не являющиеся обработчиками события формы, в безопасном режиме не расширяются
11 Geroy
 
20.11.18
09:29
(10) повторюсь всё отключено
_http://rgho.st/74NpfFVkl скриншот
12 Geroy
 
20.11.18
09:31
13 Cyberhawk
 
20.11.18
09:51
Хз о чем ты
14 Geroy
 
20.11.18
10:26
(13) Открой любой документ, и в нём есть 3 обязательных команды БСП.

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
          ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
          ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
          ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

Мне необходимо перехватить

&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
          ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
15 Cyberhawk
 
20.11.18
10:30
Хз зачем ты это пишешь мне
16 Geroy
 
20.11.18
10:54
Решение.

Было:

&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
    ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

Стало:

&НаКлиенте
&Вместо("Подключаемый_ВыполнитьКоманду")
Процедура Расш_Подключаемый_ВыполнитьКоманду(Команда)    
    ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
17 asady
 
20.11.18
11:12
(16) здравствуй костыль!
18 Cyberhawk
 
20.11.18
11:23
(17) Намекаешь на "ПродолжитьВызов" или как-то еще надо было? :)
19 Geroy
 
20.11.18
11:25
(17) и где тут костыль? мне нужно перехватить выполнение определенной команды
20 Cyberhawk
 
20.11.18
11:27
(19) Ну как минимум костыль в том, что ты скопировал текст исходного метода и все это развалится, когда его поменяют в основной конфе (не берем в расчет вероятность наступления - только сам подход)
21 unregistered
 
20.11.18
11:29
Я вот не понимаю для чего вообще понадобилось лезть в эту процедуру.... Бред какой-то. Обычно ломают/расширяют либо саму подключенную команду, либо корректируют список подключенных команд (подменяют одни другими или удаляют какие-либо команды, меняют порядок). Но вот чтобы лезть в обработчик выполнения команды...
22 Cyberhawk
 
20.11.18
11:35
(21) Так пади режим совместимости не позволяет ОМ расширить, а модуль формы - позволяет
23 Geroy
 
20.11.18
11:39
(21) (22) зачем мне общий модуль, повторюсь мне нужно отловить выполнение команды и не прерывать её, а просто выполнить некоторые действия. Нужно отловить перед созданием на основании Заказа Клиента.

Задача выполнена.

&НаКлиенте
&Перед("Подключаемый_ВыполнитьКоманду")
Процедура Расш_Подключаемый_ВыполнитьКоманду(Команда)

    Если Команда.Имя = "ПодменюСоздатьНаОснованииОбычное_СоздатьНаОснованииЗаказа" Тогда    
        //Мой код
    КонецЕсли;
            
КонецПроцедуры
24 Cyberhawk
 
20.11.18
11:40
Ну то есть ты директиву компиляции не поставил, из-за этого не работало