Имя: Пароль:
1C
 
Не известная функция ПоляОшибки
Ø (mikecool 18.11.2021 13:04)
0 NIGHTHUNTER
 
18.11.21
10:12
Результат.Добавить(ПоляОшибки(ТекстОшибки, Истина));


Разбираю примеры БСП, в версии 3.1.4. Идет ошибка

Процедура или функция с указанным именем не определена (ПоляОшибки).
Как понять, что это за функция? Какая она должна быть? Не подскажете ли?
1 ДенисЧ
 
18.11.21
10:16
Встань на неё и нажми F12
2 NIGHTHUNTER
 
18.11.21
10:16
увидел что эта функция есть в модуле менеджера обработки РасширенныйВыводКонтактнойИнформации. И она не экспортная.
Что прост оперенести ее в свой модуль, где функции? Или как так происходит ее использование, а она не доступна.
То точность то сть где то выявилась?


Функция ПоляОшибки(ТекстОшибки, АдресПроверен, ИмяПоля = "Представление", ВариантАдреса = Неопределено)
    
    Если ВариантАдреса = Неопределено Тогда
        ВариантАдреса = Новый Массив;
    КонецЕсли;
    
    Результат = Новый Структура;
    Результат.Вставить("ТекстОшибки",   ТекстОшибки);
    Результат.Вставить("АдресПроверен", АдресПроверен);
    Результат.Вставить("ИмяПоля",       ИмяПоля);
    Результат.Вставить("ВариантАдреса", ВариантАдреса);
    
    Возврат Результат;
    
КонецФункции
3 DrShad
 
18.11.21
10:17
если по F1 этой функции нет в СП, то это функция должна быть инициализирована в модуле
4 NIGHTHUNTER
 
18.11.21
10:17
(1) Это не срабатывало. Я сделал по глобальному поиску по модулям .
5 DrShad
 
18.11.21
10:18
(2) если она не экспортная, то она вызывается из какой-то другой в модуле менеджера
6 1Сергей
 
18.11.21
10:23
если уж ты строку "Результат.Добавить(ПоляОшибки(ТекстОшибки, Истина));" откудато слямзил, то лимзи и остальные используемые функции
7 Ryzeman
 
18.11.21
10:24
(0) БСП принято использовать "как есть". Пользоваться экспортными функциями и не модифицировать их. Если у тебя написана обработка на БСП определённой версии, подразумевается, что она будет работать на другой конфигурации с БСП такой же версии.

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

Если же какая то служебная не экспортная БСПшная функция показалась тебе безумно крутой, то в принципе не зазорно скопировать куски из неё к себе. Но как правило это не нужно, см предыдущий абзац.
8 NIGHTHUNTER
 
18.11.21
12:07
(6) Это из примеров, с сайта инфостарт, наиболее используемые методы БСП 3.1.4. Стал вот заниматься этим кодом. Переносить в модуль. Устранять ошибки. И на это наткнулся. Какое то время не было понимания. Пример на сайте такой, -

//
// 43. ТолькоЛатиницаВСтроке. Проверяет, содержит ли строка только символы латинского алфавита.
//
Если Не СтроковыеФункцииКлиентСервер.ТолькоЛатиницаВСтроке(Значение, Ложь, "1234567890,") Тогда
    ТекстОшибки = НСтр("ru = 'Адрес в международном формате должен быть набран латиницей.'");
    Результат.Добавить(ПоляОшибки(ТекстОшибки, Истина));
КонецЕсли;
//


один из примеров где есть эта функция
9 NIGHTHUNTER
 
18.11.21
12:11
(7) В обработку решил поочередно переносить, сгруппированные примеры, наиболее используемых методов БСП 3.1.4. И устранять возникающие ошибки по ним. Вот и наткнулся на (0).
10 Галахад
 
гуру
18.11.21
12:17
А зачем их переносить в свой модуль?
11 NIGHTHUNTER
 
18.11.21
12:18
(10) Такая моя идея. Сгруппировать их все в обработку своей.
12 NIGHTHUNTER
 
18.11.21
12:18
(10) Что бы как то жить дальше. Сидеть и заниматься.
13 mikecool
 
18.11.21
12:19
(10) хобби у автора такое - накопипастить некомпилируемого кода и как то хранить
14 mikecool
 
18.11.21
12:19
15 Галахад
 
гуру
18.11.21
12:26
(11) Ну, если не работаешь с самопиской без БСП, то непонятно зачем все помещать в свою обработку, когда это все есть в библиотеке. И всегда можно посмотреть.

(13) Ну если хобби...
16 unbred
 
18.11.21
12:33
(10) он свою БСП пилит. с балеринами. никакого синтаксис контроля.
никаких проверок. никаких смс и регистраций.
осталось запилить свой компилятор, который всё скомпилит с ошибками и в проду можно.
17 NIGHTHUNTER
 
18.11.21
12:58
(15) Я не работаю вообще.
18 NIGHTHUNTER
 
18.11.21
12:58
(15) Что бы как то себя занять. Что бы мысли были. А так я даже не знаю что там смотреть, и зачем.
19 mikecool
 
18.11.21
13:00
(18) "МЫСЛЬ!!!???" (с) Жмурки
20 Ryzeman
 
18.11.21
13:02
(8) Это буквально пример как её надо вызывать и как с ней надо работать. Зачем препарировать их и копировать внутренние сервисные вызовы?
Если у тебя БСП - то оно у тебя будет и так и надо будет обращаться именно к СтроковыеФункцииКлиентСервер.ТолькоЛатиницаВСтроке(<аргументы>).

Если у тебя не БСП, то копирование кусков тебе будет слабо помогать, потому что некоторые функции по 20 вложенных вызовов имеют, и не всегда делают что-то действительно полезное или нужное тебе (например подсистема работы с электронной почтой). Имеет смысл либо запоминать сами функции, либо алгоритмы, по которым они строятся. Второе - только в самой БСП, в конфигураторе.
21 fisher
 
18.11.21
13:02
(17) Поздравлять или сочувствовать?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший