Имя: Пароль:
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) >> и что тут сделаешь?
В любой непонятной ситуации создай ветку на мисте, Гений так делает. Конкретно по этому вопросу даже несколько веток было.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн