|
Проверка применимости расширения - как проверить то, что 1С не проверяет? | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
25.05.22
✎
18:20
|
В последнее время из-за популярности расширений часто сталкиваюсь с ситуацией, что после обновления 1С методы расширения не работают (Вместо, После, Перед, кроме ИзмененияИКонтроль), т.к. меняется количество параметров или название перехватываемой процедуры.
И 1С об этом стоически молчит. Можно ли как-то выявить подобные моменты, хотя бы синтаксическим контролем (он тоже молчит) или еще как? |
|||
1
Конструктор1С
25.05.22
✎
18:47
|
Сходи на курсы по программированию. Там научат
|
|||
2
Выпрь
25.05.22
✎
18:50
|
(1) не смог пройти мимо темы с Г1С?
|
|||
3
hhhh
25.05.22
✎
19:36
|
(0) правой кнопкой мыши щелкаешь по списку расширений и там есть пункт типа проверка применения расширений.
|
|||
4
Жан Пердежон
25.05.22
✎
19:52
|
(0) тесты, тесты и еще раз тесты
|
|||
5
MaxS
25.05.22
✎
20:04
|
На одном из семинаров 1С предлагал для расширений сделать модуль с проверкой совместимости, код там пишет разработчик. Этот код выполняется перед синтаксическим и другим контролем расширения и на понятном языке сообщает пользователю о проблеме если она есть и не разрешает использовать расширение.
Проверка запускается после обновления конфигурации или перед попыткой установить расширение. Дойдёт ли до реализации, не знаю. |
|||
6
Гений 1С
гуру
25.05.22
✎
20:06
|
(3) Спасибо, КЭП, но вопрос не об этом. Перечитайте...
(5) что, до сих пор не сделали? можно в принципе парсинг устроить, но лень... |
|||
7
hhhh
25.05.22
✎
20:22
|
(6) а в чем вопрос? (3) дает нам список всех процедур, которые с ошибками. А дальше просто иду по этим процедурам и смотрю, что поменялось, если процедуры большие, то сравнение файлов, смотрю, чем отличаются.
|
|||
8
Гений 1С
гуру
25.05.22
✎
20:46
|
(7) в том, что если поменялось количество параметров или название процедуры, то проверка применимости об этом "умолчит", не сталкивались что ли? Я тоже наивно предполагал, что 1С сообщает о таких нюансах.
|
|||
9
Выпрь
25.05.22
✎
20:49
|
Напиши в 1с или на партнерском.
Этот вопрос как раз по теме там |
|||
10
Гений 1С
гуру
25.05.22
✎
20:58
|
(9) а как написать в 1с от меня лично (ну чтобы в корзину не отправили), от лица клиента не хочу? и на партнерском меня нет.
|
|||
11
H A D G E H O G s
25.05.22
✎
21:01
|
(10) Никак. Нужен франчID
|
|||
12
Гений 1С
гуру
25.05.22
✎
21:14
|
(11) ну вот и напиши от себя, я на авторство не претендую, это же беспредел, такой бардак с расширениями...
|
|||
13
H A D G E H O G s
25.05.22
✎
21:20
|
(12) ну вот сформируй текст обращения с конфигу с вопроизведением, пришли на [email protected], я отправлю.
pdf и cf. |
|||
14
hhhh
25.05.22
✎
22:34
|
(12) вообще-то одно из основных изменений в расширении процедуры - это часто добавляются параметры. Поэтому обычно в расширении другое количество параметров и это не ошибка, и проверять количество параметров не нужно. И (10) прав, это пожелание на 99% отправят в корзину.
|
|||
15
Mort
25.05.22
✎
22:46
|
МенеджерРасширенийКонфигурации (ConfigurationExtensionsManager)
ПроверитьВозможностьПримененияВсех (CheckCanApplyAll) Синтаксис: ПроверитьВозможностьПримененияВсех() Возвращаемое значение: Тип: Массив. Возвращает массив объектов типа ИнформацияОПроблемеПримененияРасширенияКонфигурации Описание: Проверяет возможность применения всех расширений конфигурации информационной базы в текущей области данных по порядку загрузки с учётом уже участвовавших в проверке расширений. Доступность: Сервер, толстый клиент, внешнее соединение. Использование в версии: Доступен, начиная с версии 8.3.9. |
|||
16
Ненавижу 1С
гуру
26.05.22
✎
08:08
|
(14) как ты себе это представляешь? "в расширении другое количество параметров"
с аннотацией &Вместо, &Перед или &После |
|||
17
Гений 1С
гуру
26.05.22
✎
10:25
|
(16) вот и я не понял, о чем это HHHH, наверное был пьян. Параметры у него множились, ггг
|
|||
18
Гений 1С
гуру
26.05.22
✎
10:25
|
(15) Морт, ты уже второй, который не вкурил, о чем речь в вопросе. Забавно.
|
|||
19
oslokot
26.05.22
✎
10:44
|
(0) Пока только вручную. Восьмерка еще сырая! (с)
Обычно я пишу кейсы по контрольным точкам проверки, для жирных клиентов конечно |
|||
20
Гений 1С
гуру
26.05.22
✎
10:47
|
(19) вот думаю, пись парсинг или нет. Есть где-нибудь код по разбору кода 1с, чтобы выделить заговолоки функций модулей?
|
|||
21
Kassern
26.05.22
✎
10:53
|
(20) С вашим подходом надо радоваться таким вещам) 1ску клиент обновил, ваши расширения перестали работать. Вы такой, это 1ска такая секая и выставляете пару часиков за работу, чтобы подправить вызываемые функции. Это же золотая жила для вас, а вы хаете))
|
|||
22
Dmitrii
гуру
26.05.22
✎
11:08
|
В многочисленных обсуждениях достоинств и недостатков расширения я о подобной проблеме не раз писал.
И случай изменения количества параметров не самый худший. Эта проблема хотя бы сразу всплывает после обновления. Соответственно разработчик может её быстро исправить. И можно спокойно работать дальше. Гораздо хуже, когда измененный в расширении метод просто перестаёт использоваться в очередной версии конфигурации поставщика. Например вместо него сделали другой метод. А старый оставили для совместимости. В результате после обновления формально расширение работает и никаких ошибок не выдаёт. Но внесённые расширением изменения/доработки не функционируют. А с любовью авторов типовых конфигураций и типовых библиотек регулярно перетаскивать методы и функции из одних общих модулей в другие такие ситуации становятся не такими уж и редкими. Единственный способ решения проблемы (0) - тестирование. Проверка работоспособности каждой доработки каждого расширения после каждого обновления. Собственно говоря то, о чём говорят в (4) и (5). Как тестировать - личное дело каждого. Для простых случаев можно вручную (написать чек-лист к расширению - что проверить после обновления), и попытаться повесить эту обязанность на заказчика. Для сложных - изобретать свой велосипед или пытаться применять что-то из того что предлагает 1С - сценарное тестирование и т.п. инструменты. |
|||
23
Гений 1С
гуру
26.05.22
✎
11:16
|
(21) ты перепутал, у меня не такой подход. Я не паразит, я несу клиенту ценность.
|
|||
24
Гений 1С
гуру
26.05.22
✎
11:18
|
(22) это понятно, но соответствие параметров можно было бы выявить и без тестирования, на уровне контроля возможности применения. Удивлен, что 1с это не сделало, а потом Конструктор 1С утверждает, что 1С - не говно.
|
|||
25
Выпрь
26.05.22
✎
11:19
|
(21) ошибки исправлять всегда влом - ибо это нужно ппц как срочно, все приходится бросать и исправлять
|
|||
26
oslokot
26.05.22
✎
11:28
|
(20) парсер, а толку от него? Особенный прикол когда ты расширял процедуру например в общем модуле, а после очередного обновления эта процедура безвозвратно канула в лету, причем вместе с модулем :)
|
|||
27
Гений 1С
гуру
26.05.22
✎
11:35
|
(26)
1. Выгружаю всю конфу в файлы. 2. Выгружаю все расширения в файлы. 3. Запускаю парсер, проверяю возможность применения. Проффит. (26) так ты это увидишь и подумаешь, что расширять теперь. Не надо паники и всепропальничества |
|||
28
hhhh
26.05.22
✎
11:35
|
(17) ну, например задача: в функции общего модуля добавить свой параметр, и его обрабатывать в коде функции. По твоему получается, что в расширении это сделать невозможно, и нужно лезьть с изменениями в основную конфигурацию?
|
|||
29
oslokot
26.05.22
✎
11:38
|
(27) проверяешь только по "сходимости" процедур или как то еще?
|
|||
30
Выпрь
26.05.22
✎
11:38
|
(27) это все очень долго. Влом будет вме это делать
|
|||
31
Пулья в зубах
26.05.22
✎
11:39
|
(28) а что плохого в том чтобы изменять конфигурацию?
|
|||
32
Kassern
26.05.22
✎
11:40
|
(31) вы что, это табу)) это же потом ждать сравнение конфигураций каждый раз, когда ее обновляешь. А когда на замке, щелк щелк и готово)
|
|||
33
Kassern
26.05.22
✎
11:42
|
(23) ну вот, 1ска вам позволяет нести ценность N раз после обновлений)) "а потом Конструктор 1С утверждает, что 1С - не говно." - я так понимаю вы утверждаете обратное?
|
|||
34
PLUT
26.05.22
✎
11:47
|
(31) плохого в том, что после внесения изменений на форму (ну там группу или команду или реквизитов формы напихать своих) при обновлении эти формы обычно хреново обновляются... а программные изменения форм не каждый погромист осилит/заставит себя погромировать
|
|||
35
PLUT
26.05.22
✎
11:48
|
(34) или изменения в дин.списках на формах
|
|||
36
Ненавижу 1С
гуру
26.05.22
✎
11:53
|
(31) это не ваша зона ответственности, а вендора
ваша зона ответственности - адаптировать код вендора под себя |
|||
37
Гений 1С
гуру
26.05.22
✎
11:58
|
(33) ага, постоянно это утверждаю.
|
|||
38
PLUT
26.05.22
✎
11:59
|
(37) но приходится в по уши в г@вне влачить своё бренное существование (на хлеп с маслом)
|
|||
39
Kassern
26.05.22
✎
11:59
|
(37) получается вы любите работать с говном? Даже профессию связали с этим. Вот это я понимаю отношение к делу с вашим восприятием))
|
|||
40
PLUT
26.05.22
✎
12:00
|
||||
41
Пулья в зубах
26.05.22
✎
12:14
|
(34) Вроде речь зашла про общий модуль. Насчет форм: в расширениях формы автоматически обновляются далеко не во всех случаях.
|
|||
42
Пулья в зубах
26.05.22
✎
12:14
|
(36) А где написано что это нельзя делать в основной конфе?
|
|||
43
Dmitrii
гуру
26.05.22
✎
12:18
|
(24) Ключевой смысл моего высказывания в (22) заключается в том, что синтаксический контроль применимости расширения (если когда-нибудь будет сделан) почти никак не решает проблему. Видимо потому в 1С и не хотят особо с этим заморачиваться. Трудозатраты на 100 рублей с выхлопом на 3 копейки. Да ещё и при том, что это никак не снимет необходимость перетестировать все доработки в каждом из расширений после обновления основной конфигурации.
|
|||
44
Гений 1С
гуру
26.05.22
✎
12:42
|
(38) для меня ближе аналогия с доктором. Есть корпорация зла, которая травит людей. А я лечу их, облегчаю их мучения. Так-то. Чумной 1С-доктор, так сказать.
|
|||
45
Гений 1С
гуру
26.05.22
✎
12:43
|
(42) можно, если вы мазохист. В расширении все доработки в одном месте, а так на здоровь, лазайте сравнением-объединением по всей конфе. Не говоря уже о том, если обновляется несколько релизов. Юноша, вы сперва опыта наберитесь, потом своё мнение высказывайте.
|
|||
46
Пулья в зубах
26.05.22
✎
12:48
|
(45) Олеш, я хотя бы увижу такие проблемы как ты в сабже описываешь при просмотре дважды измененных.
|
|||
47
Гений 1С
гуру
26.05.22
✎
12:55
|
(46) такие проблемы как я описываю, можно найти парсингом. Мне кажется эпоха "дважды измененных" прошла. Выносить изменения в расширения де-факто становится стандартом. Но если вы предпочитаете мучать код, на здоровье, жаль тех, кто придет после вас обслуживать килиента. Дорого-сердито.
|
|||
48
Гений 1С
гуру
26.05.22
✎
12:55
|
Мне это напоминает одного программиста, который настойчиво изменения в формах делал руками, а не кодом. Ну привык он так. А потом во фране его клиента дали мне и я перетащил все изменения в код, потому что не мазохист.
|
|||
49
Пулья в зубах
26.05.22
✎
13:00
|
(47) Васян, точно парсинг, а не фистинг?
Читай тут Проверка методов при контроле применимости расширения в Конфигураторе 8.3.22 https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy-8-3-22/ |
|||
50
Dmitrii
гуру
26.05.22
✎
13:01
|
(45) Кто бы говорил об опыте. На косяках, с которыми ты только сейчас столкнулся, люди уже не одну собаку съели ещё на заре появления расширений.
И сделали для себя соответствующие выводы - когда расширения нужны и хороши, а когда целесообразнее всё таки основную конфигурацию поломать. |
|||
51
Гений 1С
гуру
26.05.22
✎
13:05
|
(50) вот смотрю на твой вывод мучать конфигурацию и не понимаю - где здесь мудрость, где тут рацио?
|
|||
52
Гений 1С
гуру
26.05.22
✎
13:06
|
(49) ну хоть что-то:
В версии 8.3.22 проверка таких методов будет сделана и в режиме Конфигуратор. В команду «Проверка применимости расширений» добавятся две проверки для методов, не являющихся обработчиками стандартных событий: Проверка, что существует метод в основной конфигурации, указанный в аннотации Проверка, что список параметров метода в расширении соответствует параметрам в основной конфигурации (количество и модификаторы передачи по значению) Разработчикам будет значительно проще адаптировать расширения в случае изменения основной конфигурации. В текущей версии 1C:Enterprise Development Tools описанные проверки уже реализованы: Можно открыть 8.3.22 или IDE и в ней накатить CF на пустую базу и проверить расширения. Гм... хоть что-то. |
|||
53
Выпрь
26.05.22
✎
13:08
|
(50) когда ты на фиксе и когда ты фришник - это немного разные подходы к доработкам
|
|||
54
MaxS
26.05.22
✎
13:10
|
(43) Допустим разработчик продаёт набор расширений. Для каждого релиза своё расширение. Со своей стороны он всё протестировал. А клиент забыл или забил проверить совместимость расширений и получил после обновления непонятные ему ругательства.
Была бы проверка как в (5), получил бы внятное сообщение, либо автообновление расширения. (52) Это помощь разработчику, а клиента оставили одного разбираться с этим. |
|||
55
Kassern
26.05.22
✎
13:10
|
(52) все уже получается 1ска не говно и вы больше не ассенизатор?))
|
|||
56
Ненавижу 1С
гуру
26.05.22
✎
13:55
|
(42) нигде, как и многое другое
это смотря какой стиль вы выбираете и какие методики практикуете |
|||
57
Выпрь
26.05.22
✎
13:57
|
(54) а какой код можно написать в проверке расширения.
Вот в типовой перестали юзать метод. Как это кодом можно проверить? |
|||
58
Выпрь
26.05.22
✎
13:58
|
И вообще я говорил про сейчас, а не про всю историю
|
|||
59
Выпрь
26.05.22
✎
13:59
|
(58) не туда
|
|||
60
Пулья в зубах
26.05.22
✎
13:59
|
(59) а Вафель где?
|
|||
61
PLUT
26.05.22
✎
14:00
|
(55) он как амбре. маскирует г@вно духами
АМБРЕ́ УСТАРЕЛОЕ•ИРОНИЧЕСКОЕ Приятный запах устар. теперь ирон. о дурном запахе. французы целую индустрию придумали, чтоб не мыться |
|||
62
Выпрь
26.05.22
✎
14:00
|
(60) в бане за в..ну
|
|||
63
MaxS
26.05.22
✎
14:06
|
(57) Если ВерсияКонфигурации <> СовместимаяВерсияРасширения Тогда
Сообщить("Обновите МоёРасширение на версию " + СовместимаяВерсияРасширения); КонецЕсли; О совместимости конкретного расширения с конкретным релизов разработчик уже позаботился. Проблема в пользователе - он не обновил расширение после обновления конфигурации. |
|||
64
Dmitrii
гуру
26.05.22
✎
14:12
|
(53) >> когда ты на фиксе и когда ты фришник - это немного разные подходы
Безусловно это тоже учитывается. Тут даже дело не в фикс/фриланс. А в том сопровождается ли конфигурация в одно лицо единственным человеком (не важно - фикс/фрилансер), который может контролировать каждое изменение/доработку и ставит заказчику обновления. Или речь идёт о разовой доработке, которая должна работать в отрыве от своего автора после любого обновления исходной конфы. Вообще факторов множество. И каких-то единых универсальных подходов нет. Есть только какие-то общие принципы, которые в отдельных случаях тоже не особо подходят. Типа несвязанные между собой доработки лучше делать в разных расширениях. Но при этом расширения одного и того же объекта метаданных лучше чтобы были в каком-то одном расширении. Расширением данных лучше не пользоваться (если возможно). Серьёзные доработки каких-то сложных и больших подсистем (например, расчет НДС) лучше делать в самой конфе. Во всяком случае пока 1С не предоставит механизм трёхстороннего сравнения с расширением (основная конфа / новая конфа поставщика / расширение). Или хотя бы просто сравнения основной конфигурации с конфигурацией расширения. Не злоупотреблять в расширениях использованием программного интерфейса стандартных библиотек. Т.к. библиотеки меняются ещё чаще самих конфигураций. Список можно ещё дальше продолжать. У каждого разработчика он свой и зачастую зависит не только от собственного опыта, но и от конкретных конфигураций. |
|||
65
Dmitrii
гуру
26.05.22
✎
14:28
|
(57) >> Вот в типовой перестали юзать метод. Как это кодом можно проверить?
Да никаким. Если неиспользуемый метод из конфигурации поставщик не удалил, а оставил (для совместимости, например), то об этой прекрасной новости нам сообщит пользователь с криками "А-а-а-а-а! Всё пропало! Ваша доработка не работает!". Причем иногда это может происходить спустя много времени после того, как проблема возникла. Был случай, когда в расширении к БП был доработан механизм заполнения регистра ЗаписиКнигиПокупок. Маленькая простейшая доработка. Несколько кварталов конфа регулярно обновлялась и всё прекрасно работало. После какого-то очередного обновления расширенный метод перестал вызываться. Проблема всплыла только спустя месяц или два, когда бухгалтеры начали сводить отчетность по НДС (книги, журналы, декларацию). Такие проблемы ничем и никак не ловятся. Только тестирование. Никакой алгоритм не поможет проверить неизменность всей цепочки вызовов какого-то конкретного метода или функции. А даже если бы и мог, то зачастую изменения всех цепочек и вариантов этих вызовов проанализировать сложнее, чем тупо протестировать и узнать - работает или нет. |
|||
66
Гений 1С
гуру
27.05.22
✎
12:09
|
(64) в корне не согласен. Расширения для того и придуманы, чтобы ядро не ковырять. Привыкайте к правильным методикам программирования
|
|||
67
Пулья в зубах
27.05.22
✎
12:21
|
(66) Васян, а как ты запросы в расширении пишешь и без контекстной подсказки работаешь?
|
|||
68
Dmitrii
гуру
27.05.22
✎
12:33
|
(66) Никакие "правильные" методики программирования не работают без правильных методик поддержки разработанного кода.
Пример в (0) - яркое тому доказательство. Сначала ты через *опу что-от напрограммировал, а потом твоё через*опное творение эпическим образом отвалилось после обновления. Если это пример правильных методик, то либо методики не совсем правильные, либо те, кто их применяет, что-то делают не так. >> Расширения для того и придуманы, чтобы ядро не ковырять. Твоё понимание расширений - это твоя личная фантазия, не основанная ни на чём. 1С нигде не декларировала подобных целей (закрыть ядро для изменений). И это твоё понимание связано с двумя проблемами. Первая - крайне малый опыт создания сложных расширений. Вторая - отсутствие опыта длительной поддержки сложных расширений после более чем десятка обновлений основной конфигурации. Одно дело - состряпать простое расширение, добавляющее какой-нибудь реквизит в документ, на форму, и обработку этого реквизита в проведении. И совсем другое - поддерживать зоопарк различных расширений, каждое из которых лезет в базовые процессы и прикладную бизнес-логику конфигурации. Которые пересекаются между собой и затрагивают десятки объектов из различных подсистем. Наберешься опыта и мнение твоё серьёзно поменяется. Вот увидишь. Я когда-то тоже нёс пургу похожую на то, что ты сейчас говоришь. |
|||
69
Конструктор1С
27.05.22
✎
12:54
|
(66) так ты и не умел никогда программировать
|
|||
70
Выпрь
27.05.22
✎
13:02
|
(67) так можно же добавить нужные метаданные.
и таки 1с рекомендует их добавлять |
|||
71
Пулья в зубах
27.05.22
✎
13:10
|
(70) Есть ссылка на рекомендацию?
|
|||
72
H A D G E H O G s
27.05.22
✎
13:12
|
(68) Расширения можно и нужно использовать для изменения, в т.ч. и базовых алгоритмов.
Современные типовые просто невзлетят без расширений, как в скорости разработки, так и в поддержке обновлений. Ваш негативный опыт - это ваш негативный опыт, эдакий синдром утенка. |
|||
73
Пулья в зубах
27.05.22
✎
13:29
|
(72) у лохов ничего не взлетит
|
|||
74
lodger
15.06.22
✎
09:49
|
Расширение конфигурации.
было Данная возможность не предоставлялась. стало Для команды Конфигуратора Проверка применимости расширений реализованы дополнительные проверки: Проверка существования метода, указанного в аннотации. Проверка соответствия количества параметров методов и модификаторов передачи значений в методе основной конфигурации и расширения. Данные проверки выполняются для методов, которые не являются обработчиками событий. з0чем Упрощено исправление ситуаций, когда в основной конфигурации перестал существовать расширяемый метод или у расширяемого метода изменилось количество параметров или модификаторы передачи параметров. Источник: https://dl03.1c.ru/content/Platform/8_3_22_1368/1cv8upd_8_3_22_1368.htm#87d8d2b8-7910-11ec-aa69-0050569f678a |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |