Имя: Пароль:
1C
1С v8
Можно ли сделать расширение для объекта в другом расширении?
,
0 Механик
 
23.08.22
12:55
Есть база, в ней есть расширение, в котором добавлен новый документ (в самом расширении). Заказчик хочет отдельное расширение, которое, (условно) добавляет кнопку и закладку на формы документов как из самой конфигурации, так и на формы документов, созданных в первых расширениях. Возможно ли такое? То есть, можно ли "расширить расширение"?
1 lucbak
 
23.08.22
12:56
(0) Конечно можно
2 СеменовСемен
 
23.08.22
12:58
расширения не видят другие расширения
3 Механик
 
23.08.22
13:02
(1) И каким образом? Например, я хочу захватить форму "Документа1" из "Расширения1" в "Расширение2", чтобы в этой форме дописать в процедуре "ПриСозданииНаСервере" создание новой кнопки или закладки. Однако "Расширение2" не видит "Расширение1".
4 Garykom
 
гуру
23.08.22
13:04
Программно можно
Но первое расширение должно использовать функции/процедуры конфы, которые второе расширение дополнит
5 Garykom
 
гуру
23.08.22
13:06
Расширение1 "ПриСозданииНаСервере" допустим вызывает Конфа НекийОбщийМодуль Процедура
Расширение2 Перекрываем Конфа НекийОбщийМодуль Процедура и получаем выполнение кода внутри Расширение1 "ПриСозданииНаСервере"
6 СеменовСемен
 
23.08.22
13:08
(5) а обработчик кнопки?
7 lucbak
 
23.08.22
13:09
(6) по тому же алгоритму, что описан в (5) - вообще никаких проблем.
8 Asmody
 
23.08.22
13:11
(5) очень ректальный вариант.
За такое, с позволения сказать, "решение" руки отрывать и назад в жопу запихнуть.
9 Garykom
 
гуру
23.08.22
13:12
(8) Не ректальный этой сделать зависимости расширений друг от друга
Что не реализовано пока...
10 Garykom
 
гуру
23.08.22
13:14
Фактически это уже очень надо
Например типовая конфа и к ней отраслевое дополнение в виде расширения известной некой конторы
Надо допилить дополнение но не трогая его чтобы оно нормально обновлялось
Вот и получаются такие извраты, да
11 Asmody
 
23.08.22
13:15
То же самое относится к любителям программно формы перекраивать. Таких вообще надо гнать сцаными тряпками ... в джависты
12 Dmitrii
 
гуру
23.08.22
13:40
(10) >> Например типовая конфа и к ней отраслевое дополнение в виде расширения.

Вот кстати говоря клепание отраслевых дополнений в виде расширений - ставшее модным извращение.
Ну вот что мешает сделать свою отдельную поставку?
Конфигурация ведь может легко находится на поддержке от нескольких поставщиков.
В эту поставку включить все необходимые дополнительные объекты (документы, справочники, регистры и т.п.).
А расширение использовать только для дополнения и адаптации объектов конфигурации основной поставки.
Один фиг отраслевое расширение в большинстве случаев корректно работает только с несколькими версиями конфигураций основного поставщика. И в большинстве случев обновляется параллельно.

При таком варианте все дополнительные объекты будут видны в любых расширениях.

Вариант может и не идеальный. Но решающий многие проблемы.
13 Garykom
 
гуру
23.08.22
14:50
(11) Лучше когда формы перекроены программно
В этом случае обновления типовых намного проще
14 Механик
 
23.08.22
14:52
(5) Ну то есть получается, что одной только разработкой "Расширения2" не отделаться. Нужно ещё дорабатывать и "Расширение1".
15 Dmitrii
 
гуру
23.08.22
14:57
(13) >> В этом случае обновления типовых намного проще

Ровно до того момента, когда разработчики типовой не решат эту форму хоть сколько-нибудь серьёзно поменять.
После этого можно мозг сломать, сравнивая первоначальную форму поставщика, новую форму поставщика, и код программного изменения формы в расширении, пытаясь понять - чего хотел автор и как оно выглядело, с его точки зрения, и как оно должно будет выглядеть с учётом изменений от поставщика.
16 Dmitrii
 
гуру
23.08.22
15:00
(14) Откуда такой вывод? Возможно потребуется, а возможно, что и нет. Из (5) не следует обязательность корректировать Расширение1.
17 Dmitrii
 
гуру
23.08.22
15:06
(0) Яркий пример доказывающий, что не следует злоупотреблять расширениями. В частности возможностью расширять данные.
Добавлять новые объекты и реквизиты (ресурсы, измерения и пр.) существующих объектов надо в основной конфе.
А в расширении - только логику и интерфейс дорабатывать.
18 2S
 
23.08.22
15:15
(17) Гарик сейчас придет и назовет тебя старовером )
19 Механик
 
23.08.22
15:41
(17) В моем случае как раз речь идет о дополнительном расширении от посторонних производителей (типа отраслевого, но небольшого по размерам), то есть заказчик купил расширение1, и там уже эти дополнительные документы были добавлены.
20 Механик
 
23.08.22
15:42
(16) Вывод оттого, что в Расширении1 в формах документов нет вызова каких-либо дополнительных процедур в процедуре "ПриСозданииНаСервере".
21 Dmitrii
 
гуру
23.08.22
16:10
(18) >> Гарик сейчас придет и назовет тебя старовером )

Плевать. Не он первый, не он последний.

В будущем есть два варианта.
Либо 1С наконец-то допилит расширения до вменяемого состояния. В первую очередь возможность сравнивать основную конфигурацию с расширением, возможность расширять расширения, и ещё несколько моментов.
Либо (если первое так и не случится) здравомыслие вернётся в головы прогов и безумная мода на расширения придёт в норму. Когда расширения будут применяться по месту и где надо, а не по принципу "зафигачу кровь из носу всё в расширение чего бы мне это не стоило и каким бы геморроем не отозвалось потом".
22 Курцвейл
 
23.08.22
16:16
(21) Будет вариант 3. Легким движением мозги расширения превращаются, ...превращаются расширения, превращаются... в элегантные микросервисы :))
23 Garykom
 
гуру
23.08.22
16:52
(15) Когда обновляешь конфу у тебя есть старая конфа в которой все работает и новая
И если программно форма изменены то изменения достаточно легко переносятся
Но если не программно то охренеешь
24 Garykom
 
гуру
23.08.22
16:53
(17) Метаданные да лучше в основной конфе добавлять
Или не добавлять свои метаданные, вместо этого использовать имеющиеся доп.реквизиты и доп.сведения
25 Garykom
 
гуру
23.08.22
16:55
(22) Угадал.
Самое хреновое что пилится на микро это классические реляционные (SQL) СУБД.
Поэтому в бигдата используют NoSQL.
Основная теорема систематики: Новые системы плодят новые проблемы.