|
Добавить один и тот же код во все "ПриОткрытии" форм списка документов | ☑ | ||
---|---|---|---|---|
0
sogle
28.11.15
✎
17:37
|
Столкнулся с задачей необходимости добавить во все процедуры ПриОткрытии форм списков всех документов добавить один и тот же код.
Задача синтетическая - как тест при приеме на работу. Столкнулся с такой проблемой впервые. Мне видится решение через глобальную замену в виде: Заменить: Процедура ПриОткрытии(Отказ) На: Процедура ПриОткрытии(Отказ) Если Прав(ЭтаФорма.ИмяФормы,11)="ФормаСписка" Тогда //наш код; КонецЕсли; Но тут вырисовывается вопрос если не во всех нужных формах списка документов есть процедура ПриОткрытии или процедура ПриОткрытии оформлена по-другому (Например:ПриОткрытии(п_Отказ)) то мой способ не проканает. Какие еще возможны варианты? |
|||
1
vde69
28.11.15
✎
18:24
|
глобальная замена работала в 7.7
в 8.х она работает???? правильные варианты: 1. для последних версий платформы 8.3.7 задача решается через "расширения", там тег есть для включения кода в существующий обработчик..... 2. для остальных 8.х обработчик можно переопределить через "подключитьОбработчик" |
|||
2
Рэйв
28.11.15
✎
18:33
|
(1)Есть еще подписки на события, но ..тс-с-с.
:-) |
|||
3
Рэйв
28.11.15
✎
18:33
|
пусть помучается
|
|||
4
vde69
28.11.15
✎
18:36
|
(2) подписка на открытие формы ???? в какой версии ввели?
|
|||
5
Лефмихалыч
28.11.15
✎
18:36
|
(2) подписок на события форм не бывает
(0) руками будет быстрее всего |
|||
6
Рэйв
28.11.15
✎
18:37
|
(4)(5) ну во вот:-)) Ошибся я.Ладно. А тут гусары понаехали сразу:-)
|
|||
7
Рэйв
28.11.15
✎
18:38
|
А то вас и не дождешься другим способом:-)
|
|||
8
EugeniaK
28.11.15
✎
19:00
|
В составе БСП есть функционал для прописывания кода во все формы.
Используется для подключения форм к стандартным подсистемам (печать, версионирование, свойства и категории) Можно взять оттуда, подправить под свою задачу. Но вообще-то правильнее такие вещи делать расширениями. |
|||
9
sogle
28.11.15
✎
19:58
|
Еще есть вариант выгрузить конфигурацию в файлЫ и пройтись по ним скриптом VBs,Python или написать обработку. Но это тоже не для каждой платформы.
(1) Глобальная замена работает. Можно задавать области, списки объектов. |
|||
10
WebberNSK
28.11.15
✎
20:00
|
(0) Такая задача решается через выгрузку-загрузку файлов конфигурации.
|
|||
11
Ненавижу 1С
гуру
28.11.15
✎
20:00
|
1С это пока еще быдло-копи-пастинг, но может в 9.0
|
|||
12
su_mai
28.11.15
✎
20:19
|
(9) Еще круче!
Выгрузить файлы и с помощью Notepad++, используя регулярные выражения заменить... Проще этого нет. |
|||
13
su_mai
28.11.15
✎
20:21
|
(12) Два года назад они "регулярки" в платформу не собирались вносить, а было бы удобно для глобального поиска и замены.
|
|||
14
vde69
28.11.15
✎
20:23
|
(9) я другую замену имел в виду,
я имел в виду, что в 7.7 можно было переопределить в глобальном модуле например оператор СокрЛП(), я имел в виду именно такой подход :) |
|||
15
RomanYS
28.11.15
✎
21:08
|
выгрузить модули, обработать программно, загрузить обратно
|
|||
16
sogle
28.11.15
✎
23:28
|
(12) не круче - NP++ решает регулярками только проблему не соответствия шаблону процедуры ПриОткрытии, а проблему отсутствия в модуле формы обработчика ПриОткрытии не решает...
|
|||
17
Drac0
29.11.15
✎
00:50
|
(5) Есть у менеджера объекта : http://hkar.ru/Fd50
А уже там можно проверить, какая форма открывается. |
|||
18
Drac0
29.11.15
✎
00:52
|
+(17) Конечно, зависит от того, что же надо сделать в этом коде :)
|
|||
19
su_mai
29.11.15
✎
02:33
|
(16) В исходном задании нет ни слова про то, что надо добавлять обработчик там, где его нет.
|
|||
20
Злопчинский
29.11.15
✎
04:01
|
слушайте, а вот эти все отработки подписок на события - они сильно замедляют работу (сам код в обработках подписок не рассматриваем)..? и так все открытия форм делаются весьма вальяжно неторопливо - можно в африку сбегать - а тут еще навесить всякого...
поясните неграмотному, плиз. |
|||
21
su_mai
29.11.15
✎
04:23
|
(8) Распишите по подробнее пожалуйста :)
|
|||
22
oslokot
29.11.15
✎
10:04
|
(0) Юзай расширение и вставляй свою поделку туда
(17) да, но можно только форму переопределить на свою. Придется (0) дофига форм создавать (копировать с существующих) (20) хз, вроде не замедляют. В к/с варианте всё просто летает, в т.ч. и открытие форм. В файловом, да - полная (_._) |
|||
23
Мимохожий Однако
29.11.15
✎
10:35
|
(0)Стесняюсь спросить, что в себе несёт сий волшебный код, который надо добавлять во все списки форму документов? Суперзащита? Или еще что?
|
|||
24
sogle
29.11.15
✎
10:55
|
(23) это такие задачи перед собеседованием у франчей.
|
|||
25
oslokot
29.11.15
✎
10:57
|
(24) А франчи уже видели этот гомнокод?
Если Прав(ЭтаФорма.ИмяФормы,11)="ФормаСписка" Тогда |
|||
26
sogle
29.11.15
✎
11:14
|
(24) не, ну а как лучше если через глобальную замену? Там область можно ограничить только модулями всех документов т.е. во всех формах всех документов ПриОткрытии будет заменен на этот "гомнокод" и который должен срабатывать только в формах списка.Или есть более изящный код для проверки типа текущей формы?
|
|||
27
Drac0
29.11.15
✎
11:20
|
(26) Напиши, какой гомнокод нужен. Возможно, хватит возможностей (17).
|
|||
28
Drac0
29.11.15
✎
11:22
|
(27) +ЗЫ: там чётко определён тип формы. ("ФормаСписка", "ФормаВыбора" и т.д.)
|
|||
29
Мимохожий Однако
29.11.15
✎
11:33
|
Если это типовая конфигурация, то надо трижды подумать перед подобной задачей. Я не верю, что в реальных задачах это нужно. Однако первое на что надо обратить внимание - наличие процедур в общих модулях, которые используются в процедурах при открытии. В сабже не понятно, в какой конфигурации это надо. Конкретная конфигурация определяет оптимальные решения.
(24)"это такие задачи" Детский сад. Полагаю, что на мой вопросы ты не ответил. Или просто не понимаешь, что инструмент сильно зависит от понимания ТЗ. |
|||
30
sogle
29.11.15
✎
13:07
|
(29)Полный текст задачи: "добавить во все формы списка всех документов конфигурации в процедуру ПриОткрытии одинаковый код. Как быстрее это сделать, при том условии что конфигурация содержит большое количество документов?"
При этом не указана точная конфигурация и прочие условия. |
|||
31
hhhh
29.11.15
✎
13:11
|
(30) там уже в ПриОткрытии есть такая процедура, которая вызывается для всех документов. Надо в нее добавить ваш код.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |