Имя: Пароль:
1C
 
Вопрос по расширениям
0 Пип Пибип
 
29.08.19
17:55
День добрый, господа

Вводная: есть 1С 8.3.13.хххх
Есть типовая конфигурация, свежего релиза, изменения в конфигурации запрещены.
Условно, есть расширения конфигурации: Расширение1, Расширение2 (на деле их больше).
Расширения оперируют заимствованными из конфигурации объектами (справочники, документы, регистры сведений). Ряд заимствованный пересекаются.
Есть желание избавиться от зоопарка расширений. Для этого необходимо свести функционал ряда расширений в одно, большое. Без потери накопленных в базе данных.

Внимание, вопрос:
По памяти помню, что на уровне SQL, заимствованные объекты хранятся в дополнительных SQL-таблицах.

Ход мыслей следующий:
- свести доработки в одно расширение
- не удалять имеющиеся расширения, заимствованные объекты в них
- при первом запуске перенести данные из заимствованных объектов различных расширений в объекты одного (нового, большого) расширения. Не будет ли здесь дублирования данных?
- отключить зоопарк расширений (кроме нового, большого расширения)
Правилен ли мой ход мыслей?

Если в нескольких расширениях есть заимствование одного и того же объекта - то в каком порядке их отрабатывает платформа, в таком случае?
1 Ёпрст
 
29.08.19
17:59
(0) очередность расширений указывается
2 Cyberhawk
 
29.08.19
18:00
Лучше скажите переопределение обработчиков подписок в расширениях когда подвезут?
3 AlvlSpb
 
29.08.19
20:43
(0) Сама по себе постановка задачи ошибочна. Свести МНОГО расширений в одно - это колоссальная глупость. Накроется какая-то незначительная "рюшечка" (например в расширении раскраска списка, удалили в новой редакции этот конкретный цвет) и ... накрылось ВСЕ. Это даже не глупость - тупость.  А вот уменьшить количество разбросав расширения по документам или по подсистемам или еще как-то - это возможно и разумно.
4 runoff_runoff
 
29.08.19
21:55
(0) во-первых.. надо перейти на платформу 8.3.14
5 GANR
 
30.08.19
00:38
(3) [колоссальная глупость]. Представьте себе у конфы сменился режим совместимости. Как думаете, что произойдет с 40 расширениями?
6 timurhv
 
30.08.19
00:46
(5) Отключить в расширениях контроль режима совместимости.
7 GANR
 
30.08.19
00:54
(6) Ух ты. Как?
8 strange2007
 
30.08.19
09:21
(0) Есть ещё один вариант, который очень даже распространённый в некоторых кругах (я таких не видел, хоть и всем рассказываю): отказаться от всех расширений по максимуму в пользу простых вызовов в общие модули. Т.е. расширения использовать только для перенаправления в общие модули, обработки и отчёты. Т.о. избавишься от целых пластов метаданных в расширениях, обновления конфы будут проходить в штатном варианте и не будет зоопарка.
Но т.к. понимаю, что это для многих нереально и поэтому придерживаюсь озвученного плана. Только добавлю, что объекты в избавляемых расширениях лучше переименовать и вообще отвязать от общей логики. А ещё прям рекомендую отбросить надежду, что все данные перенесутся при запуске. Лучше планировать так, что не перенесутся))))) А ещё надо бы рассмотреть вариант поэтапного переноса. Один блок перенёс, удалил метаданные в расширении, потом другой и т.д.
Старый стал, поэтому всего боюсь
9 AlvlSpb
 
30.08.19
22:17
(5) Почитайте про 8.3.15 Теперь это контролируется на уровне платформы и не требует вмешательства - раз.
два - поменять режим совместимости даже у 40 расширений проще, чем найти ошибку
три - сорок - перебор, уменьши, сгруппируй по выполняемым задачам, по документам или справочникам по подсистемам. Но .... однозначно лучше 40 чем одно
10 AlvlSpb
 
30.08.19
22:19
(9) Добавлю к своему "Но .... однозначно лучше 40 чем одно". Не понимать это может только тот кто либо никогда не использовал асширения, либо только только начал это делать.
11 mszsuz
 
31.08.19
21:00
Посмотрите видео Фреймворк для Расширений 1С: Что это? И для чего?
https://www.youtube.com/watch?v=xtcsBKRCVho
12 AlvlSpb
 
01.09.19
11:08
(11) хорошее решение, но даже оно уже не так уж актуально. В 8.3.15 заимствованная форма уже не тянет за собой все объекты и накладок связанных с этим практически не стало. Ну за исключением дурацких решений, когда на каждый чих в одном и том же документе делают отдельное расширение
13 VladZ
 
01.09.19
11:17
(0)  "Для этого необходимо свести функционал ряда расширений в одно, большое." - не стОит все яйца класть в одну корзину.
14 Пип Пибип
 
01.09.19
22:41
(8), (9), (11) тоже считаю, что собирать функционал в одно расширение - плохая идея.
Моя аргументация простая (известная Вам не хуже): "работает - не трожь". К сожалению, этого тезиса недостаточно

Заявленная мотивация "за" укрупнение расширений - "так будет проще администрировать, сопровождать эти множественные доработки"

Будет ли так проще? Что (помимо риска не перенести все без ошибок с первого раза) может грозить, еще?
15 AlvlSpb
 
02.09.19
09:09
(14) Главный риск - отказ в работе чего-то одного приведет к отказе в работе всего расширения. Пример из своего. Одно расширение выполняет функцию заполнения по ИНН, адресу и т.п. (аналог платного сервис контрагенты), второе - не списывает а оприходует отходы производства, если эти отходы отвечают определенным (проверяемым) свойствам.
Отказ первого (например, 1с изменило имя общего модуля или реквизита) ни к чему критическому не приведет, отключилось, вручную введем, пока я разберусь и поправлю расширение. Отказ второго критичен. Встанет все, остатки и наличие пойдет боком, работать нельзя. Объединю в одно расширение, ошибка в первом приведет к остановке работы всей программы. А таких расширений у меня 8. Значит минимум в 8 раз увеличиваю вероятность отказа программы, если все объединю
16 Cyberhawk
 
02.09.19
09:13
(15) Расширения сами по себе сопряжены с риском, плюс замедление производительности.
"Отказ второго критичен. Встанет все, остатки и наличие пойдет боком, работать нельзя" // Поэтому критичные вещи выносить в расширение это для смелых или у кого поддержке заняться нечем :)
17 AlvlSpb
 
02.09.19
09:20
(16) Основная причина отказа расширения на сегодня - изменение имени реквизита/процедуры/общего модуля при очередном обновлении. Внесли изменение в конфигурацию, обратились к реквизиту ТипНоменклатуры, в след релизе его переименовали в КатегорияНоменклатуры. Какая разница будет это в расширении или в конфигураторе? И там и там функционал вылетит с ошибкой, которую надо найти и поправить.
18 aleks_default
 
02.09.19
10:42
В первую очередь применяются расширения с назначением Исправление, затем Адаптация, после этого Дополнение
Порядок применения расширений с одинаковым назначением - снизу вверх
19 Пип Пибип
 
02.09.19
11:14
(18) Спасибо!
Подскажите, правильно ли я понимаю, при наличии двух (или более) расширений с одинаковым назначением:
то расширение, что выше - перекрывает прочие?
(При наличии в расширениях пересекающихся доработок)
20 aleks_default
 
02.09.19
11:36
(19)Да
21 Cyberhawk
 
02.09.19
12:03
(17) Разве проверка конфигурации, вызываемая до обновления, не выдаст ошибку?
22 Пип Пибип
 
02.09.19
12:05
У меня есть расширения с со всеми тремя назначениями (Исправление, Адаптация, Дополнение)

Читаю теорию здесь, смотрю разницу между назначениями:
https://its.1c.eu/db/v8310doc#bookmark:dev:TI000001516

Правильно ли я понимаю, что в итоге, все доработки можно свести к одному расширению Адаптация?
23 aleks_default
 
02.09.19
12:23
Наверное можно, если (15) тебя не убедил. Насколько я знаю, кроме порядка подключения в остальном расширения с разным типом назначения ничем не отличаются. Но возможно в дальнейшем при развитии этого функционала это изменится, поэтому к рекомендациям в (22) имеет смысл прислушиваться.
24 Пип Пибип
 
02.09.19
13:34
(23) Спасибо!
Я за "не трогать" - решение с укрупнением необходимо проработать, все равно