Имя: Пароль:
1C
1С v8
Как использовать &После в функциях ?
,
0 r1000
 
19.05.21
09:21
Для функция нельзя использовать аннотацию &После. Но очень хотелось бы доработать результат возврата функции, перед возвратом. Может быть есть какой то хитрый способ это сделать ? Понятно, что можно использовать изменениеИКонтроль, но смысл в том, чтобы не дорабатывать постоянно функцию, при обновлениях.
1 Провинциальный 1сник
 
19.05.21
09:22
Что мешает использовать &Вместо и ПродолжитьВызов с обработкой возвращаемого значения?
2 r1000
 
19.05.21
09:24
Ну, обновлять текст функций все равно нужно. При старте системы я не увижу что типовая функция изменилась и её нужно обновить.
3 Провинциальный 1сник
 
19.05.21
09:27
(2) Не увидишь. А кто говорил, что будет легко. Доработка 1с это постоянное хождение по граблям. Стабильности нет. Восьмерка сырая ещё.
4 Фрэнки
 
19.05.21
09:29
(2) так ты определись :
- хочешь видеть и контролировать изменения - один тег
- не хочешь - другой
5 r1000
 
19.05.21
09:32
(4)я понимаю как теги работают) я не хочу контролировать изменения - пусть типовой функционал обновляется. мне нужна аннотация &После, но для функции. странно что её нет, ведь это по факту та же процедура...
6 vis_tmp
 
19.05.21
09:34
(5)Ф-ия возвращает значение.
Что ты будешь делать "После" ?
7 r1000
 
19.05.21
09:35
я хочу доработать результат возврата. перед тем как результат получит вызвавший функцию метод.
8 Провинциальный 1сник
 
19.05.21
09:35
(5) &Вместо с ПродолжитьВызов() перекрывает возможности и &После и &Перед. Их используют лишь для большей наглядности кода, не для функциональности.
9 RomanYS
 
19.05.21
09:54
(5) похоже всё-таки не понимаешь, иначе не понятно в чём у тебя проблема
10 Фрэнки
 
19.05.21
10:01
(7) :-) похоже что ты решил в типовой конфе расширением проверку версии платформы отломать :-))))
Отламывай так, как в (8) Результат из ПродолжитьВызов() получишь и изменишь.
11 r1000
 
19.05.21
10:04
Еще раз. Если я буду использовать Вместо, я не смогу обновлять типовые функции автоматически.
12 RomanYS
 
19.05.21
10:07
(11)
&Вместо("КакаяТоФункция")
Функция Расш1_КакаяТоФункция()
    Результат = ПродолжитьВызов();
    //здесь делай с результатом что хочешь
    Возврат Результат;
КонецФункции
13 1Сергей
 
19.05.21
10:11
(11) ты и так и эдак не сможешь обновлять автоматически. Смирись
14 hhhh
 
19.05.21
10:11
(9) он хочт в После передавать возвращаемый резильтат.
15 RomanYS
 
19.05.21
10:13
(14) И? Чем (12) не устраивает?
16 r1000
 
19.05.21
10:14
странно... неужели с этой дикой неудобностью и явной недоработкой платформы только я столкнулся)
17 RomanYS
 
19.05.21
10:15
(16) В чем неудобство? Прокомментируй (12)
18 r1000
 
19.05.21
10:16
(15)да тем, что при обновлениях, мое расширение автоматом не обновиться - будет всегда использоваться моя кастомная функция. А хотелось бы чтобы она все таки обновлялась.
19 PuhUfa
 
19.05.21
10:18
(18) надеюсь, что ты сам хоть понимаешь про что говоришь -)
20 RomanYS
 
19.05.21
10:19
(18) стандартная функция полностью отработает (с учетом всех обновлений) в ПродолжитьВызов.
(19) +100500
21 r1000
 
19.05.21
10:22
(20)да. спасибо. мне стадно. ушел есть свою шапку.
22 Chameleon1980
 
19.05.21
10:31
раза с 5го вошло?
23 Chameleon1980
 
19.05.21
10:33
прикольная, кстати вещь. Я тоже, когда только познакомился с разширениями не мог вкурить что это за ПродолжитьВызов
и убирал его всегда
но когда понял - очень обрадовался как для функций можно подменять результат их работы, не затрагивая
исходный код ее.
24 Провинциальный 1сник
 
19.05.21
11:27
(23) "очень обрадовался как для функций можно подменять результат их работы"
Вот только разработчики типовых всячески этому препятствуют. Скажем, функция может возвращать выборку из результата запроса.. и что тут сделаешь?
25 RomanYS
 
19.05.21
11:30
(24) >> и что тут сделаешь?
В любой непонятной ситуации создай ветку на мисте, Гений так делает. Конкретно по этому вопросу даже несколько веток было.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс