|   |   | 
| 
 | Беседа о расширениях | ☑ | ||
|---|---|---|---|---|
| 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 naïve 09.10.17✎ 16:37 | 
        (33) Опровергнуть некоторые "Против"
 "Ибо зае..шься анализировать что там наменял поставщик в расширенной тобою форме" Ошибочное мнение. Что бы не наменял поставщик в заимствований форме, ваши изменения (элементы формы, ТЧ и т.п.) все останутся. " значительное изменение форм опасно так как может привести к конфликту после обновления когда поставщик наменял что-нибудь в расширяемой форме " К конфликту приводит интерфейсные изменения одной формы в разных расширениях, значительные изменения - вряд ли. Если конечно это не изменения тянущие на практически полную замену формы стандартной на свою форму Изменения поставщика в процедурах не заденут расширение, если стараться не использовать &Вместо. &Перед и &После в большинстве случаях никак не зависят от изменений поставщика. Про 8.3.11 пока рано говорить. Слишком сырая, работать невозможно. "А ведь в расширении прилетает огромное количество объектов, которые никак не меняются в расширении (связанные с расширяемыми). " Просто удаляйте эти об'екты из расширения, все на что не ругается удаление - стереть. Удивитесь как уменьшится количество таких об' ектов, а на работу расширения это никак не повлияет. Свой итог: Не надо надеяться, что с помощью расширений можно создать целое прикладное решение. Да и не для того оно создавалось. Но большинство задач по доработке конфигураций под клиента можно (а по мне так и нужно) делать в расширении | |||
| 37
    
        Ненавижу 1С гуру 09.10.17✎ 16:39 | 
        (36) "&Перед и &После в большинстве случаях никак не зависят от изменений поставщика"
 ну да, поменяли сигнатуру метода и приплыли а так как язык нетипизированный, то очень интересно может получиться | |||
| 38
    
        AlvlSpb naïve 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С )))     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |