|
Экранирование кода от проверки синтаксиса | ☑ | ||
---|---|---|---|---|
0
picom
22.02.23
✎
06:37
|
Здравствуйте!
Имеем расширение1 (Б24), пишем новое расширение2 (пусть будет Б52), в нем ссылка на процедуру из расширения1 И есессно конфигуратор ругается что такого общего модуля нет. Как экранировать код от проверки? (вариант с Выполнить не предлагать) |
|||
1
RomaH
naïve
22.02.23
✎
06:45
|
в типовых везде
ищется ОМ присваивается переменной ... |
|||
2
АНДР
22.02.23
✎
06:52
|
Если Ложь Тогда
//Обманываем проверку через объявление переменной КонецЕсли; |
|||
3
Rovan
гуру
22.02.23
✎
07:00
|
млм так Выполнить( "ОМ.Процедура" )
|
|||
4
RomaH
naïve
22.02.23
✎
07:01
|
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
МодульИнтернетПоддержкаПользователейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиент"); МодульИнтернетПоддержкаПользователейКлиент.ПодключитьИнтернетПоддержкуПользователей(ОповещениеОЗакрытии, ВладелецФормы); КонецЕсли; |
|||
5
TormozIT
гуру
22.02.23
✎
07:30
|
ОбщегоНазначенияПереопределяемыйМой = Вычислить("ОбщегоНазначенияПереопределяемый");
#Если Сервер И Не Сервер Тогда ОбщегоНазначенияПереопределяемыйМой = ОбщегоНазначенияПереопределяемый; #КонецЕсли ОбщегоНазначенияПереопределяемыйМой.ПриДобавленииИсключенийПоискаСсылок(Массив); |
|||
6
magicSan
22.02.23
✎
08:02
|
даааа, умеют некоторые ненависть к себе кодить
|
|||
7
НафНаф
22.02.23
✎
08:36
|
(5) какой-то пи*дец. Зачем?
|
|||
8
s202
22.02.23
✎
09:01
|
(7) Чтобы нам скучно не было. Ты еще спроси, как во внешней обработке свой собственный макет получить.
|
|||
9
TormozIT
гуру
22.02.23
✎
09:51
|
(7) Покажи свой вариант. Тогда отвечу.
|
|||
10
lodger
22.02.23
✎
10:10
|
(9) наш вариант уже привели в (4)
|
|||
11
RomaH
naïve
22.02.23
✎
10:13
|
(10) - он плох что нет контекстной
и нельзя по F12 перейти в процедуру |
|||
12
TormozIT
гуру
22.02.23
✎
10:51
|
(10) Я БСПшникам уже предлагал свой вариант https://partners.v8.1c.ru/forum/topic/1596879 , но они побрезговали.
Кому то важнее формальная красота кода, в кому то удобство работы с ним (мне). |
|||
13
НафНаф
22.02.23
✎
10:52
|
(9) почему нельзя просто написать:
ОбщегоНазначенияПереопределяемыйМой = ОбщегоНазначенияПереопределяемый; |
|||
14
TormozIT
гуру
22.02.23
✎
10:53
|
(13) Садись. Двойка!
|
|||
15
Гипервизор
22.02.23
✎
11:09
|
(12) А что именно БСПшникам не понравилось? Инструкции препроцессора?
|
|||
16
НафНаф
22.02.23
✎
11:13
|
(14) это твой развернутый ответ?
|
|||
17
Fragster
гуру
22.02.23
✎
11:42
|
(12) а будет ли работать контекстная подсказка в случае (0)?
|
|||
18
mikecool
22.02.23
✎
11:50
|
(5) на одном из проектов тоже пользовались таким способом, только с заведомо ошибочной проверкой
типа #Если Незнайка Тогда ... |
|||
19
mikecool
22.02.23
✎
11:51
|
+18 при компиляции эти блоки удаляются, емнип, без каких то проверок
|
|||
20
picom
22.02.23
✎
11:54
|
(17) Какие контекстные подсказки, если модули одного расширения дёргаются из другого расширения. Такого даже 8.3.23 еще не умеет.
|
|||
21
TormozIT
гуру
22.02.23
✎
12:11
|
(20) Согласен. Пока добавку для подсказки ( #Если Сервер И Не Сервер Тогда ) бесполезно добавлять в случае обращения к модулю рожденному другим расширением.
|
|||
22
НафНаф
22.02.23
✎
13:10
|
(21) так что пока двойка не у меня )))
|
|||
23
Гипервизор
22.02.23
✎
13:16
|
(22) Это вы ИР так высоко оцениваете, да?)
|
|||
24
АНДР
22.02.23
✎
13:21
|
(21) Сервер И Не Сервер - надо вникать, Ложь - читается легче.
(22) Если такого модуля нет - будет ошибка. |
|||
25
TormozIT
гуру
22.02.23
✎
13:37
|
(22) У тебя двойка за понимание ошибок компиляции.
|
|||
26
НафНаф
22.02.23
✎
13:46
|
(25) если модуль есть в другом расширении - то все будет хорошо, если его нет, то зачатую лучше иметь ошибку компиляции, чем ошибку выполнения
|
|||
27
TormozIT
гуру
22.02.23
✎
14:53
|
(26) Компиляция времени выполнения (runtime) действительно ошибки не выдаст. Но это здесь вроде бы всем итак было понятно.
Ты же предлагаешь фактически оставить код (0) как есть, т.е. с прямой ссылкой на модуль другого расширения. В этом случае компиляция времени разработки (designtime) или по-другому "синтаксический контроль" - будет ругаться на такое обращение к модулю. Это затрудняет проверку корректности кода модуля в целом. Вот (0) и просит как то локально отключить эту ругань. Мы ему предложили проверенный кодами подход - чисто динамическую (runtime) компиляцию кода обращения к модулю - через Вычислить("<ИмяМодуля>") |
|||
28
НафНаф
22.02.23
✎
15:08
|
(27) надо различать все-таки ошибки компиляции, от синтакс-контроля, тем более в 1С они имеют разные области покрытия. Я не сторонник Вычислить, ибо это попахивает использованием рефлексии не к месту.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |