|
Беседа о расширениях | ☑ | ||
---|---|---|---|---|
0
riks05
09.10.17
✎
12:19
|
Добрый день дорогие форумчане, Попалась мне в руки очень занятная книжка Хрусталёвой "Расширения конфигураций. Адаптация прикладных решений с сохранением поддержки в облаках и на земле. Разработка в системе 1С:Предприятие 8.3" собственно прочитал ещё не до конца но вот загорелся желанием перенести пару своих проблемных клиентов на работу с расширениями а не на настроенных конфигурациях, что думаете. ваши за и против?
|
|||
1
zak555
09.10.17
✎
12:22
|
Одобряю )
|
|||
2
VladZ
09.10.17
✎
12:22
|
Я бы пока не стал.
|
|||
3
vicof
09.10.17
✎
12:22
|
Расширения ещё сырые
|
|||
4
zak555
09.10.17
✎
12:23
|
(3) как 1с -)
|
|||
5
Aleksey
09.10.17
✎
12:23
|
||||
6
sitex
naïve
09.10.17
✎
12:25
|
(0) Так попробуй на одном и реши для себя. лично я нейтрален.
|
|||
7
mehfk
09.10.17
✎
12:26
|
(0) Лучше жди 8.3.11.
|
|||
8
timurhv
09.10.17
✎
12:28
|
(0) Может и слететь расширение при обновлении.
|
|||
9
oslokot
09.10.17
✎
12:28
|
я не против
|
|||
10
zak555
09.10.17
✎
12:30
|
(7) версия же вышла уже
|
|||
11
xaozai
09.10.17
✎
12:31
|
(0) У нас одна база работает с доработками в расширении. Не всё удобно в плане разработки, но в целом, работать можно...
8.3.9.2233 |
|||
12
Starhan
09.10.17
✎
12:32
|
(11) БП 3.0 вроде бы уже на 8.3.10. А там уже добрую половину доработок-руюшичек можно оформить.
осталось дождаться 8.3.11. Но как правильно заметили выше расширение может слететь. поэтому после обновления конфы обязательно надо проверять |
|||
13
ildary
09.10.17
✎
12:45
|
(12) а это правда, что не существует трехстороннего сравнения между текущей конфигурацией поставщика, новой конфигурацией и расширением? Это же придется вручную бегать по двум сравнениям и глазами смотреть - где что надо проверить...
|
|||
14
Фрэнки
09.10.17
✎
12:47
|
по идее, расширения нужны не для того, чтоб "поставил и забыл", а для абсолютно гладкого накатывания типовых обновлений без мучений и размышлений, какое из прилетевших в CFU изменений залетает в доработки и стирает их подчистую
|
|||
15
mehfk
09.10.17
✎
12:48
|
(10) На ней нельзя работать.
|
|||
16
Фрэнки
09.10.17
✎
12:48
|
(13) так при установке расширений подразумевается, что типовая на замках
|
|||
17
ildary
09.10.17
✎
12:52
|
(16) Я не спорю, что типовая на замке. Например я сделал в расширении замену типовой процедуры на свою (это только пример, я знаю что так лучше не делать). А когда вышло обновление - я хотел бы видеть - задевает ли обновление эту процедуру или нет, чтобы если задевает, провести детальный анализ и внести изменение в процедуру расширения.
|
|||
18
Фрэнки
09.10.17
✎
12:53
|
в самом управлении расширениями можно устанавливать галку "проверять применимость... " Если обновление типовой спровоцирует проблему в расширении, то оно прост не загрузится.
|
|||
19
Фрэнки
09.10.17
✎
12:55
|
на возможные ошибки протестить еще не успел. Есть предположение, что там синтаксический анализ модулей и процедур в проверку включен, но насколько точно анализ работает в автоматическом режиме - не видел еще.
|
|||
20
ildary
09.10.17
✎
12:57
|
(18) Того что оно не загрузится - мало, надо дать понять программисту - вот в этом объекте, в этом модуле - конфликт!
|
|||
21
Мыш
09.10.17
✎
12:59
|
(17) Ты задаешь неудобные вопросы. Может, ещё хочешь возможности работы расширения с хранилищем? )))
|
|||
22
Господин ПЖ
09.10.17
✎
12:59
|
>Того что оно не загрузится - мало, надо дать понять программисту - вот в этом объекте, в этом модуле - конфликт!
для этого надо формировать и проверять hash от текста перекрываемой "типовой" функции а в 1с решили не заморачиваться доступно и всерьез |
|||
23
Фрэнки
09.10.17
✎
13:02
|
(20) какой такой конфликт? там когда с упомянутым хранилищем конфигурации для разработки конфликты прут, может тебе и в проверке расширения при его загрузки эти все конфликты ловить? Оно выдаст синтаксические ошибки или там ошибки времени выполнения, а там уже работа программиста, что с этими ошибками не так
|
|||
24
Фрэнки
09.10.17
✎
13:05
|
(22) хэш откуда возьмется в существующем уже расширении, если на запускаемую базу новое CFU прилетело? Конечно слетят любые хэши, даже если и тем более если их сформировали заранее.
А какие именно объекты/процедуры были заимствованы в расширение - это все там и так видно. Может оно и не слишком удобно выглядит, но рассмотреть возможно. |
|||
25
Елена Троянская
09.10.17
✎
13:07
|
(0) Использую только у тех клиентов, у которых нет смысла снимкать "замок" ради пары-тройки интерфейсных изменений БП.
При каждом обновлении слетает, заново делаю его. |
|||
26
Господин ПЖ
09.10.17
✎
13:07
|
>А какие именно объекты/процедуры были заимствованы в расширение - это все там и так видно. Может оно и не слишком удобно выглядит, но рассмотреть возможно.
у меня таких точек где меняется код типовых функций измеряется десятками - замумукаешься рассматривать |
|||
27
Господин ПЖ
09.10.17
✎
13:08
|
>хэш откуда возьмется в существующем уже расширении, если на запускаемую базу новое CFU прилетело?
сформируется при обновлении |
|||
28
Господин ПЖ
09.10.17
✎
13:11
|
сейчас кастомизации вставляются в текст модулей анализируя уникальные куски кода - соответственно есть кусок "пропал" - надо анализировать что изменилось
а с расширениями этого не узнать до запуска в рантайме по сути |
|||
29
Фрэнки
09.10.17
✎
13:16
|
(28) да, похоже, что все пока только так и есть.
// у меня таких точек где меняется код типовых функций // измеряется десятками Тогда вероятно, что путь расширений не для твоего случая У меня пока тоже не вкладывается в голову, как что-то громоздкое может быть заложено в расширение. Скорей всего, что слишком громоздкое должно уходить куда-то в обособленную сторону, а не врастать в типовую. Если врастать в нее намертво ... хоть сбоку, хоть с любой стороны ... , то эффект будет такой же, как модифицировать конфигу посбивавши все замки. |
|||
30
Господин ПЖ
09.10.17
✎
13:22
|
все как обычно - 1с хреново реализовала неплохую задумку. очередной чемодан без ручки. который можно будет пользовать лет через 5
|
|||
31
ildary
09.10.17
✎
13:27
|
(20) представим себе форму документа ЗаказКлиента. В ней пусть 50 процедур, из них 3 процедуры я заменил. Пришло обновление, которое меняет 10 процедур в ЗаказКлиента, при этом только одну замененную мной. Хочется видеть, какие замененные (или измененные) моим расширением процедуры меняются обновлением. Фантастику аля "Обновление аккуратно наложило новые изменения в моё расширение" я не рассматриваю, жизнь одинэсника - боль.
|
|||
32
Фрэнки
09.10.17
✎
14:19
|
(31) т.е. логично было бы ожидать, что при наличии установленного расширения в процессе применения обновлений был бы сформирован протокол, где будет указываться, что некоторые процедуры попали в расширение...
Просто что-то мне подсказывает, что в обновлении выкладываются не какие-то 10 процедур из 50 существующих модуле формы ЗаказКлиента, а сразу вся форма и ее модуль полностью. |
|||
33
Dmitrii
гуру
09.10.17
✎
15:17
|
(0) >> ваши за и против?
За: Расширения идеально подходят для следующих случаев: - основная (расширяемая) конфигурация не меняется или очень мало меняется поставщиком. - если в конфе есть БСП версии 2.3.5 и старше, то всё что раньше пихалось в дополнительные отчеты, обработки и печатные формы можно теперь пихать в расширения. Это гораздо удобнее т.к. у объектов появляется модуль менеджера (обработка дополнительной печатной формы пишется теперь точно так же как если печать реализовывалась внутри самого печатаемого объекта), появляется возможность нормальной (а не ректальной) отладки. Добавленные отчеты и обработки интегрируются в подсистемы (интерфейс), на них можно строгать роли. Отчеты и обработки в расширении можно привязывать к контексту объектов. - изменения объектов основной (расширяемой) конфигурации подразумевают по большей части небольшую косметику - вывести парочку реквизитиков на форму или наоборот - скрыть, добавить свою команду и т.п. Против: - расширение динамически и сильно меняющихся поставщиком конфигураций. Ибо зае..шься анализировать что там наменял поставщик в расширенной тобою форме. Никаких инструментов для этого нет. И понять будет ли работать корректно расширение с новой версией зачастую можно только запустив конфу. - расширение данных (с 8.3.11) - пока не до конца понятно как это будет работать и что будет если поставщик изменил расширяемый объект (как будет разруливаться конфликт), или (что еще хуже) связанные зависимые объекты (о которых расширение может ничего не знать). - значительное изменение форм опасно так как может привести к конфликту после обновления когда поставщик наменял что-нибудь в расширяемой форме или например в каком-нибудь общем модуле, процедуры и функции которого вызываются из этого модуля. Об ошибке узнаем только постфактум. - обязательно требуется тестирование (ручное или автоматизированное) после каждого обновления. - отсутствие возможности использования хранилища. Как следствие - нет версионирования и нет групповой разработки. Вроде как, 1С обещает подумать на эту тему, но когда и как - неизвестно. Проблема версионирования решается использованием EDT и GitHub. - отсутствие какой-либо возможности сравнения/объединения расширения с основной конфой. Хрен поймешь что именно и как расширяли. А ведь в расширении прилетает огромное количество объектов, которые никак не меняются в расширении (связанные с расширяемыми). И только один единственный фильтр - "измененные/добавленные в расширении". Итог: Короче, пока что расширение подходит только для рисования незначительных бантиков на объектах основной конфигурации. Только до того уровня пока это можно легко проанализировать глазами. И для размещения в расширении отчетов, обработок и печатных форм, которые раньше пихали в дополнительные (внешние). |
|||
34
NeoVision
09.10.17
✎
15:53
|
(33) а еще расширения идеально подходят для исправления ошибок, до выхода этих исправлений от 1с
|
|||
35
e2v
09.10.17
✎
16:14
|
Не все удобно (не все переносится в 8.3.10), но в целом идея нормальная.
Переношу в Бухии. Когда формы доделываешь удобно. Глюки бывают, но думаю в 11 исправят. |
|||
36
AlvlSpb
09.10.17
✎
16:37
|
(33) Опровергнуть некоторые "Против"
"Ибо зае..шься анализировать что там наменял поставщик в расширенной тобою форме" Ошибочное мнение. Что бы не наменял поставщик в заимствований форме, ваши изменения (элементы формы, ТЧ и т.п.) все останутся. " значительное изменение форм опасно так как может привести к конфликту после обновления когда поставщик наменял что-нибудь в расширяемой форме " К конфликту приводит интерфейсные изменения одной формы в разных расширениях, значительные изменения - вряд ли. Если конечно это не изменения тянущие на практически полную замену формы стандартной на свою форму Изменения поставщика в процедурах не заденут расширение, если стараться не использовать &Вместо. &Перед и &После в большинстве случаях никак не зависят от изменений поставщика. Про 8.3.11 пока рано говорить. Слишком сырая, работать невозможно. "А ведь в расширении прилетает огромное количество объектов, которые никак не меняются в расширении (связанные с расширяемыми). " Просто удаляйте эти об'екты из расширения, все на что не ругается удаление - стереть. Удивитесь как уменьшится количество таких об' ектов, а на работу расширения это никак не повлияет. Свой итог: Не надо надеяться, что с помощью расширений можно создать целое прикладное решение. Да и не для того оно создавалось. Но большинство задач по доработке конфигураций под клиента можно (а по мне так и нужно) делать в расширении |
|||
37
Ненавижу 1С
гуру
09.10.17
✎
16:39
|
(36) "&Перед и &После в большинстве случаях никак не зависят от изменений поставщика"
ну да, поменяли сигнатуру метода и приплыли а так как язык нетипизированный, то очень интересно может получиться |
|||
38
AlvlSpb
09.10.17
✎
16:47
|
(37) И часто такое бывает? В таком случае и код добавленный в конфигурацию тоже надо перелопачивать и адаптировать под нововведения поставщика.
|
|||
39
Ненавижу 1С
гуру
09.10.17
✎
16:59
|
&Перед и &После это всего лишь частные случаи &Вместо
|
|||
40
Господин ПЖ
09.10.17
✎
17:00
|
(39) а оно как раз вменяемо не реализовано. что ставит крест на широком применении
|
|||
41
Ненавижу 1С
гуру
09.10.17
✎
17:02
|
(40) а мне кажется это обычный override +base(super) вызов родительского класса
|
|||
42
Господин ПЖ
09.10.17
✎
17:07
|
(41) по сути - да.
что в чудном мире 1с выдает на руки пару хороших грабель... особенно при наличии отсутствия интерфейсов и отражений |
|||
43
Господин ПЖ
09.10.17
✎
17:09
|
чаще всего нужен не override, а например "инъекция" в код запроса. которая должна точно встать в "свое" место
|
|||
44
Сияющий в темноте
09.10.17
✎
17:45
|
код запррса потом меняется,и код расширения переделывать,но,и без расширения всё равно переделывать
|
|||
45
Господин ПЖ
09.10.17
✎
17:47
|
(44) так вот и надо увидеть на этапе обновления что сигнатура места куда будет сделана вставка изменилась
сейчас когда обновления накатывается на тексты типовой скриптами - это видно сразу. а если расширение - не будет видно пока не сломается в рантайме |
|||
46
Ненавижу 1С
гуру
09.10.17
✎
20:45
|
(45) LINQ_to_1С )))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |