Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Беседа о расширениях

Беседа о расширениях
Я
   riks05
 
09.10.17 - 12:19
Добрый день дорогие форумчане, Попалась мне в руки очень занятная книжка Хрусталёвой "Расширения конфигураций. Адаптация прикладных решений с сохранением поддержки в облаках и на земле. Разработка в системе 1С:Предприятие 8.3" собственно прочитал ещё не до конца но вот загорелся желанием перенести пару своих проблемных клиентов на работу с расширениями а не на настроенных конфигурациях, что думаете. ваши за и против?
 
 
   zak555
 
1 - 09.10.17 - 12:22
Одобряю )
   VladZ
 
2 - 09.10.17 - 12:22
Я бы пока не стал.
   vicof
 
3 - 09.10.17 - 12:22
Расширения ещё сырые
   zak555
 
4 - 09.10.17 - 12:23
(3) как 1с -)
   Aleksey
 
5 - 09.10.17 - 12:23
   sitex
 
6 - 09.10.17 - 12:25
(0) Так попробуй на одном и реши для себя.  лично я нейтрален.
   mehfk
 
7 - 09.10.17 - 12:26
(0) Лучше жди 8.3.11.
   timurhv
 
8 - 09.10.17 - 12:28
(0) Может и слететь расширение при обновлении.
   oslokot
 
9 - 09.10.17 - 12:28
я не против
   zak555
 
10 - 09.10.17 - 12:30
(7) версия же вышла уже
 
 Рекламное место пустует
   xaozai
 
11 - 09.10.17 - 12:31
(0) У нас одна база работает с доработками в расширении. Не всё удобно в плане разработки, но в целом, работать можно...
8.3.9.2233
   Starhan
 
12 - 09.10.17 - 12:32
(11) БП 3.0 вроде бы уже на 8.3.10. А там уже добрую половину доработок-руюшичек можно оформить.

осталось дождаться 8.3.11.

Но как правильно заметили выше расширение может слететь. поэтому после обновления конфы обязательно надо проверять
   ildary
 
13 - 09.10.17 - 12:45
(12) а это правда, что не существует трехстороннего сравнения между текущей конфигурацией поставщика, новой конфигурацией и расширением? Это же придется вручную бегать по двум сравнениям и глазами смотреть - где что надо проверить...
   Фрэнки
 
14 - 09.10.17 - 12:47
по идее, расширения нужны не для того, чтоб "поставил и забыл", а для абсолютно гладкого накатывания типовых обновлений без мучений и размышлений, какое из прилетевших в CFU изменений залетает в доработки и стирает их подчистую
   mehfk
 
15 - 09.10.17 - 12:48
(10) На ней нельзя работать.
   Фрэнки
 
16 - 09.10.17 - 12:48
(13) так при установке расширений подразумевается, что типовая на замках
   ildary
 
17 - 09.10.17 - 12:52
(16) Я не спорю, что типовая на замке. Например я сделал в расширении замену типовой процедуры на свою (это только пример, я знаю что так лучше не делать). А когда вышло обновление - я хотел бы видеть - задевает ли обновление эту процедуру или нет, чтобы если задевает, провести детальный анализ и внести изменение в процедуру расширения.
   Фрэнки
 
18 - 09.10.17 - 12:53
в самом управлении расширениями можно устанавливать галку "проверять применимость... " Если обновление типовой спровоцирует проблему в расширении, то оно прост не загрузится.
   Фрэнки
 
19 - 09.10.17 - 12:55
на возможные ошибки протестить еще не успел. Есть предположение, что там синтаксический анализ модулей и процедур в проверку включен, но насколько точно анализ работает в автоматическом режиме - не видел еще.
   ildary
 
20 - 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
   ildary
 
31 - 09.10.17 - 13:27
(20) представим себе форму документа ЗаказКлиента. В ней  пусть 50 процедур, из них 3 процедуры я заменил. Пришло обновление, которое меняет 10 процедур в ЗаказКлиента, при этом только одну замененную мной. Хочется видеть, какие замененные (или измененные) моим расширением процедуры меняются обновлением. Фантастику аля "Обновление аккуратно наложило новые изменения в моё расширение" я не рассматриваю, жизнь одинэсника - боль.
   Фрэнки
 
32 - 09.10.17 - 14:19
(31) т.е. логично было бы ожидать, что при наличии установленного расширения в процессе применения обновлений был бы сформирован протокол, где будет указываться, что некоторые процедуры попали в расширение...

Просто что-то мне подсказывает, что в обновлении выкладываются не какие-то 10 процедур из 50 существующих модуле формы ЗаказКлиента, а сразу вся форма и ее модуль полностью.
   Dmitrii
 
33 - 09.10.17 - 15:17
(0) >> ваши за и против?

За:

Расширения идеально подходят для следующих случаев:
- основная (расширяемая) конфигурация не меняется или очень мало меняется поставщиком.
- если в конфе есть БСП версии 2.3.5 и старше, то всё что раньше пихалось в дополнительные отчеты, обработки и печатные формы можно теперь пихать в расширения. Это гораздо удобнее т.к. у объектов появляется модуль менеджера (обработка дополнительной печатной формы пишется теперь точно так же как если печать реализовывалась внутри самого печатаемого объекта), появляется возможность нормальной (а не ректальной) отладки. Добавленные отчеты и обработки интегрируются в подсистемы (интерфейс), на  них можно строгать роли. Отчеты и обработки в расширении можно привязывать к контексту объектов.
- изменения объектов основной (расширяемой) конфигурации подразумевают по большей части небольшую косметику - вывести парочку реквизитиков на форму или наоборот - скрыть, добавить свою команду и т.п.

Против:
- расширение динамически и сильно меняющихся поставщиком конфигураций. Ибо зае..шься анализировать что там наменял поставщик в расширенной тобою форме. Никаких инструментов для этого нет. И понять будет ли работать корректно расширение с новой версией зачастую можно только запустив конфу.
- расширение данных (с 8.3.11) - пока не до конца понятно как это будет работать и что будет если поставщик изменил расширяемый объект (как будет разруливаться конфликт), или (что еще хуже) связанные зависимые объекты (о которых расширение может ничего не  знать).
- значительное изменение форм опасно так как может привести к конфликту после обновления когда поставщик наменял что-нибудь в расширяемой форме или например в каком-нибудь общем модуле, процедуры и функции которого вызываются из этого модуля. Об ошибке узнаем только постфактум.
- обязательно требуется тестирование (ручное или автоматизированное) после каждого обновления.
- отсутствие возможности использования хранилища. Как следствие - нет версионирования и нет групповой разработки. Вроде как, 1С обещает подумать на эту тему, но когда и как - неизвестно. Проблема версионирования решается использованием EDT и GitHub.
- отсутствие какой-либо возможности сравнения/объединения расширения с основной конфой. Хрен поймешь что именно и как расширяли. А ведь в расширении прилетает огромное количество объектов, которые никак не меняются в расширении (связанные с расширяемыми). И только один единственный фильтр - "измененные/добавленные в расширении".

Итог:
Короче, пока что расширение подходит только для рисования незначительных бантиков на объектах основной конфигурации. Только до того уровня пока это можно легко проанализировать глазами.
И для размещения в расширении отчетов, обработок и печатных форм, которые раньше пихали в дополнительные (внешние).
 
 
   NeoVision
 
34 - 09.10.17 - 15:53
(33) а еще расширения идеально подходят для исправления ошибок, до выхода этих исправлений от 1с
   e2v
 
35 - 09.10.17 - 16:14
Не все удобно (не все переносится в 8.3.10), но в целом идея нормальная.
Переношу в Бухии. Когда формы доделываешь удобно. Глюки бывают, но думаю в 11 исправят.
   AlvlSpb
 
36 - 09.10.17 - 16:37
(33) Опровергнуть некоторые "Против"
"Ибо зае..шься анализировать что там наменял поставщик в расширенной тобою форме"
Ошибочное мнение. Что бы не наменял поставщик в заимствований форме, ваши изменения (элементы формы, ТЧ и т.п.) все останутся.
" значительное изменение форм опасно так как может привести к конфликту после обновления когда поставщик наменял что-нибудь в расширяемой форме "
  К конфликту приводит интерфейсные изменения одной формы в разных расширениях, значительные изменения - вряд ли. Если конечно это не изменения тянущие на практически полную замену формы стандартной на свою форму
  Изменения поставщика в процедурах не заденут расширение, если стараться не использовать &Вместо. &Перед и &После в большинстве случаях никак не зависят от изменений поставщика.
  Про 8.3.11 пока рано говорить. Слишком сырая, работать невозможно.
"А ведь в расширении прилетает огромное количество объектов, которые никак не меняются в расширении (связанные с расширяемыми). " Просто удаляйте эти об'екты из расширения, все на что не ругается удаление - стереть. Удивитесь как уменьшится количество таких об' ектов, а на работу расширения это никак не повлияет.
  
  Свой итог: Не надо надеяться, что с помощью расширений можно создать целое прикладное решение. Да и не для того оно создавалось. Но большинство задач по доработке конфигураций под клиента можно (а по мне так и нужно) делать в расширении
   Ненавижу 1С
 
37 - 09.10.17 - 16:39
(36) "&Перед и &После в большинстве случаях никак не зависят от изменений поставщика"

ну да, поменяли сигнатуру метода и приплыли
а так как язык нетипизированный, то очень интересно может получиться
   AlvlSpb
 
38 - 09.10.17 - 16:47
(37) И часто такое бывает? В таком случае и код добавленный в конфигурацию тоже надо перелопачивать и адаптировать под нововведения поставщика.
   Ненавижу 1С
 
39 - 09.10.17 - 16:59
&Перед и &После это всего лишь частные случаи &Вместо
   Господин ПЖ
 
40 - 09.10.17 - 17:00
(39) а оно как раз вменяемо не реализовано. что ставит крест на широком применении
   Ненавижу 1С
 
41 - 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) так вот и надо увидеть на этапе обновления что сигнатура места куда будет сделана вставка изменилась

сейчас когда обновления накатывается на тексты типовой скриптами - это видно сразу. а если расширение - не будет видно пока не сломается в рантайме
   Ненавижу 1С
 
46 - 09.10.17 - 20:45
(45) LINQ_to_1С )))


Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует