Вход | Регистрация
 

Как залезть внутрь процедуры - обновление типовых расширениями

Как залезть внутрь процедуры - обновление типовых расширениями
Я
   Гений 1С
 
07.12.20 - 13:32
Вот решил переписать клиенту все его доработки в УТ через расширение. Чтобы ему проще было обновляться.
Столкнулся с тем, что если при обновлениях я переносил изменения в коде в середине процедуры, то расширениями так не сделаешь.
Нужно или целиком код процедуры перетаскивать и уже там менять, или же отказываться от этой идеи.
Может я чего-то не знаю и можно в отдельных участках процедуры вмешиваться с помощью расширения?
хочется Аспектно-Ориентированного программирования, знаете ли.
 
 Партнерская программа EFSOL Oblako
   Галахад
 
1 - 07.12.20 - 13:37
(0) Хм. Похоже на ИзменениеИКонтроль, но там "перетаскивать" все же придется.
   Timon1405
 
2 - 07.12.20 - 13:54
(1) УТ 11.4 не догоняет ИзменениеИКонтроль по совместимости. улыбаемся и машем.
   Ненавижу 1С
 
3 - 07.12.20 - 14:03
(2) неправда, у нас все отлично работает
Платформа 8.3.16 
УТ в режиме совместимости 8.3.14
   PuhUfa
 
4 - 07.12.20 - 14:22
8.3.15.1869 + УТ11 в режиме совместимости 8.3.12 - &ИзменениеИКонтроль тоже работает, но что бы его заюзать надо еще постараться. Проблема пробелов и пустых строк это прям бич
   Timon1405
 
5 - 07.12.20 - 14:22
(3) похоже, мы когда тестили, поймали грабли с пробелами наподобие https://forum.infostart.ru/forum9/topic227698/ и подумали на совместимость. а у вас отлично работает - прямо отлично(видно при обновлении основной конфы, нет проблем при вставке итд) или с оговорками?
   DTX 4th
 
6 - 07.12.20 - 14:24
Да, лишние пробелы это просто ад
Правится платформой или режимом совместимости?
   Ненавижу 1С
 
7 - 07.12.20 - 14:24
(5) ИзменениеИКонтроль это уже проблема, стараемся не делать лишний раз, но "километровые" методы 1С порой вынуждают
   Гений 1С
 
8 - 08.12.20 - 20:42
(7) не знал про такую фичу.
1С опять изобрела велосипед с квадратными колесами. Вместо того, чтобы ориентироваться на уникальные строчки, она тащит всю процедуру в ИзменениеИКонтроль. Гм, кто же им ТЗ пишет?
   Провинциальный 1сник
 
9 - 08.12.20 - 20:48
(8) Да лучше бы они делали декомпозицию на процедуры таким образом, чтобы не возникало задачи влезать в середину.. а такое ощущение, что они специально делают так, чтобы по максимуму затруднить доработку через расширения.
   Гений 1С
 
10 - 08.12.20 - 21:01
(9) на это мы не можем рассчитывать. Вот я когда-то (когда еще не было расширений) писал парсер, который обрабатывал модули, искал в них уникальные куски и вставлял после них. Неужели реанимировать это все добро? ;-)
   bolder
 
11 - 09.12.20 - 00:21
(4) Мы до сих пор на 8.3.15.1830 - самый стабильный из рекомендуемых.Заюзать ИзменениеИКонтроль пока не получается.
   vis_tmp
 
12 - 09.12.20 - 06:35
(11) Последняя БП уже требует выше
   Dmitrii
 
13 - 09.12.20 - 07:00
(0) Вот именно об этом я говорю, когда речь заходит о недостатках и ограничениях применения расширений для доработок.

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

В большинстве случаев доработки оставляем в основной конфигурации. Так их легче контролировать и анализировать - все изменения (наши и поставщика) видны в одном окне при обновлении. Для сильно измененных конфигураций риски ошибок и косяков при обновлении значительно снижаются.

PS Расширения хороши для небольших доработок, которые не вмешиваются сильно в методику, логику и алгоритмы основной конфигурации. Для доработок "сбоку". Если надо что-то переписать внутри (алгоритмы расчета себестоимости, учета НДС, расчета прибыли и т.п.) лучше делать это в основной конфигурации.
   Гений 1С
 
14 - 09.12.20 - 09:06
(13) ну если все же есть некий бюджет, лучше запилить изменения через парсер (обработку модулей). Тогда парсер сам подскажет, какие блоки не нашел и будет вставлять нужные куски в код. И тогда сбудется мечта - обновлять типовые без ручного сравнения-объединения.
   Гений 1С
 
15 - 09.12.20 - 09:07
Причем можно сперва выгружать изменения из модулей из старой конфы.
Потом в новую их вставлять.
т.е. не хранить в отдельном месте изменения конфы.
   Фрэнки
 
16 - 09.12.20 - 10:38
это все звучит даже пафосно "оставляем вы основной конфигурации"

Надо просто взять достаточно тяжелую конфигурацию и наступить на грабли с обновлением ее через получение измененной конфы из файла cfu
Часто даже с обновлением из файла cf тоже возникают сложности...

Именно практика внедрений с граблями при обновлениям сильно нагруженных конфигураций послужила поводом к разработке механизма Расширений. Это в общем... А если еще более общим образом, то механизм этот похож и другие платформы разработок. Но мне сейчас лень слишком подробно фантазировать в этом направлении.
   Гений 1С
 
17 - 09.12.20 - 11:05
(16) напишу как-нибудь пост на тему легкого обновления модифицированных конфигураций без расширений, ок.
   Фрэнки
 
18 - 09.12.20 - 11:08
(17) только конфигурации выбирай не такие уж легкие. УНФ, в этом смысле, будет нижней градации тяжести обновления.
   Гений 1С
 
19 - 09.12.20 - 12:28
(18) методика не зависит от сложности конфигурации. Ты суть метода понял?
   Dmitrii
 
20 - 09.12.20 - 14:54
(14) >> запилить изменения через парсер (обработку модулей).

Никакой парсер не автоматизирует тебе анализ сделанных изменений.
Парсер лишь покажет - где эти изменения есть и (возможно) куда-то их воткнёт.
Но если поставщик переписал всю логику работы измененной тобою процедуры, то никакой парсер тебе не поможет. Либо ты в процессе обновления сам откроешь модули и сделаешь сравнение ДО и ПОСЛЕ изменения и оценишь совместимость изменений с твоей доработкой. Либо после обновления получишь уведомление от пользователя об ошибке, что что-то не работает или работает некорректно.
И это ещё неплохо (получить сообщение об ошибке). Потому что некоторые доработки могут отвалиться молча, когда поставщик оставил измененный тобою модуль только для совместимости, а всю работу перенёс в новый модуль. И твой код просто тупо больше не вызывается ниоткуда.
Примеров можно массу подобных привести. И доработки в расширении сильно мешают подобные проблемы вылавливать. Т.к. нет никакого инструмента для автоматического сравнения расширения с основной конфигурацией и конфигурацией поставщика, чтобы увидеть двойные изменения (объект, доработан в расширении и объект доработан в обновлении).
   Ненавижу 1С
 
21 - 09.12.20 - 15:04
(20) может он изменения вносит только в события форм типа "ВалютаПриИзменении" и предопределенные методы объектов "ОбработкаПроведения"

ОбработкаПроведения никуда не денется
и
ВалютаПриИзменении -мало шансов, что переименуется

а вот эти ваши общие модули, это не для Гения, он стратегически мыслит

кстати если все срастется и будет куда вставлять свою локализацию надо все равно думать, а стоит ли ее теперь туда вставлять в таком виде? может логика стала другой при внешнем совпадении
   Гений 1С
 
22 - 09.12.20 - 15:24
(20) ДА, КЭП, совершенно верно. Но ты говоришь о 5% проблем, с которыми сталкивается обновляльщик. А 95% он автоматизирует. йо?
   Гений 1С
 
23 - 09.12.20 - 15:25
(21) Обновляльщики не думаю, они просто сравнивают и обновляют. Почему ИИ должен быть умнее их?
   Гений 1С
 
24 - 09.12.20 - 15:55
Короче, написал статью, наслаждайтесь: https://geniy1s.ru/vedenie-dorabotannyh-tipovyh-konfiguraczij-bez-rasshirenij/
   Ненавижу 1С
 
25 - 09.12.20 - 16:15
(24) маркеры... В пробелы не умеет...

Где-то такое уже было?
Ах, да... Это же ИзменениеИКонтроль в расширении
   Гений 1С
 
26 - 09.12.20 - 17:33
(25) нет, подходы разные. У меня маркеры и не нужно тянуть весь текст процедуры, пусть он на здоровье себе меняется. Ты что, не отдупляешь разницы?
   Сергиус
 
27 - 09.12.20 - 19:06
(26)Костыли еще те.
   Гений 1С
 
28 - 09.12.20 - 20:11
(27) продолжайте кипятить. То бишь расширять.
   ДедМорроз
 
29 - 10.12.20 - 22:05
У расширения только один плюс - это то,что все доработки отдельно и их легко отключить и удалить.
В случае изменения методики учёта или способа хранения данных в конфигурации,как бы доработка не делалась,она не будет работать,а заставить ее работать можно будет только переписав места взаимодействия с кодом конфигурации.
Другое дело,что в расширении больше способов отслеживания изменений в коде в отличие от прямой доработки.
   Dmitrii
 
30 - 10.12.20 - 23:27
(22) >> ты говоришь о 5% проблем, с которыми сталкивается обновляльщик.

Правило Парето говорит, что 80% проблем на выходе возникает как раз из-за 20% таких вот несостыковок.

Чем больше доработок ты перенёс в расширение тем выше процент будет таких неоднозначных ситуаций, не поддающихся никакому автоматизированному анализу - только глазами, руками и головой - проверять каждый доработанный объект - как он был изменён поставщиком и совместимы ли изменения со всеми расширениями. И хорошо, если расширение одно единственное. Если расширений больше двух и есть объекты, которые доработаны одновременно в нескольких из них, каждое обновление превращается в бесконечный ад, по сравнению с которым обновление по старинки (без всяких расширений) покажется манной небесной.
 
 
   Гений 1С
 
31 - 11.12.20 - 10:03
(30) ты забыл, о чем спич.
А спич о том, как делать доработки если они нужны.
Хочешь ручками сравнивать объединять без автоматизации - на здоровье, только оцени трудозатраты.
Хочешь расширениями с КонтрольИзменений - да не вопрос, только опять же сравни с моей методикой трудозатраты.
Вот когда ты слегка офигеешь от трудозатрат, тогда придешь к методике гуру.
   Ненавижу 1С
 
32 - 11.12.20 - 10:19
(31) объясни внятно, чем твое отличается от ИзменениеИКонтроль?
   Фрэнки
 
34 - 11.12.20 - 10:43
а я вот взял и удалил пост 33 за неуважительное отношение к программистам 1С и все. Причем, не только к ТС и совсем не к ТС, а к широкому кругу лиц, которых обозвали с какого-то перепугу неофитами.

Придержи свои эпитеты при себе неофит обсценной лексики, выражаемой малоупотребительными словами
   Vovan1975
 
35 - 11.12.20 - 11:26
(32) да походу только тем что текст процедуры или функции не контролируется. То есть Геша еще пока не нарывался на изменения типа "раньше была ссылка" а теперь "массив ссылок".
Он не понял что значит "Контроль"


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