Стрнайти выдает ошибку

15.10.201913.05.2023Ошибки

Данная ошибка возникает при попытке использования новой строковой функции СтрНайти() на версии платформы 1С:Предприятие 8.3.5 и ниже (либо в аналогичном режиме совместимости конфигурации)

Чтобы избавиться от этой проблемы выполните следующие действия:

  1. Проверьте режим совместимости конфигурации (Конфигурация Свойства Режим совместимости).
  2. Если режим совместимости установлен в значение «не использовать», обновите релиз платформы до версии 8.3.6 или более новый (если в вашей организации используется сервер 1С:Предприятия 8, следует установить тот же релиз на сервере);
  3. Если режим совместимости установлен в значение 8.3.5 и ниже, рекомендую поступить проще: заменить использование функции СтрНайти() аналогичной, но устаревшей функцией Найти(). Не следует повышать режим совместимости на «авось» без предварительного изучения конфигурации на момент несоответствия требованиям новой версии платформы (а это происходит с незавидной регулярностью) и обязательного тестирования основных механизмов.

Поделиться страницей в соц.сетях

СтрНайти, что ему не нравится?

Я
   Kigo_Kigo

13.11.19 — 11:34

Во внешней обработке

код

НомерВхождения=0;

                СтрНайти(СокрЛП(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий),»#»,,,НомерВхождения);

                Если НомерВхождения > 0 Тогда

                    ОтчетКоммент = СокрЛП(Сред(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий,НомерВхождения));

                    Если ОтчетКоммент = РеализацияКомментарий Тогда

                        СтрРеалицации.СформированОтчет = «Сформирован»;

                    КонецЕсли;

                КонецЕсли;

Ошибка

{ВнешняяОбработка.ФормированиеОтчетовЗаСменуНаОснованииРеализации.Форма.Форма.Форма(7565,5)}: Процедура или функция с указанным именем не определена (СтрНайти)

                <<?>>СтрНайти(СокрЛП(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий),»#»,,,НомерВхождения); (Проверка: Толстый клиент (обычное приложение))

что ему не нравится?

   boozin

1 — 13.11.19 — 11:36

Релиз платформы проверь или режим совместимости у конфигурации. Древний поди…

   Kigo_Kigo

2 — 13.11.19 — 11:42

(1) 8.3.12.1790

   pechkin

3 — 13.11.19 — 11:43

вообще то это функция

   RomanYS

4 — 13.11.19 — 11:43

(2) совместимость конфы?

   Жан Пердежон

5 — 13.11.19 — 11:43

Режим совместимости?

   ChMikle

6 — 13.11.19 — 11:44

(0) на сервере это делаешь или на клиенте?

   ChMikle

7 — 13.11.19 — 11:45

+(6) первый символ проверь названия функции , м.б. «C» латиница

   Kigo_Kigo

8 — 13.11.19 — 11:45

(5) Режим совместимости = да

(6) ОФ — толстый клиент

вообще

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер), интеграция.

   pechkin

9 — 13.11.19 — 11:46

(8) не да , а номер режима

   Kigo_Kigo

10 — 13.11.19 — 11:50

(7) Выделение ctrl+f1 слызу вываливаемся в справку — куда надо(с проверял на латиницу, это первое что сделал)

(9) Версия 8.2.16

   Жан Пердежон

11 — 13.11.19 — 11:51

(10) СтрНайти с 8.3.6 работает

   pechkin

12 — 13.11.19 — 11:52

Это в справке кстати написано

   Kigo_Kigo

13 — 13.11.19 — 11:53

(3) И что?

Мне не надо проверять, есть вхождение или нет, мне нужен номер вхождения, если он есть то идем дальше, если нет, то нет

   Lama12

14 — 13.11.19 — 11:53

Может так сработает?

Вместо

СтрНайти(СокрЛП(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий),»#»,,,НомерВхождения);

вот так

НомерВхождения = СтрНайти(СокрЛП(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий),»#»);

   craxx

15 — 13.11.19 — 11:54

(10) Версия 8.3.6 как минимум

   Кац

16 — 13.11.19 — 11:54

(10) Тогда используй Найти()

   Lama12

17 — 13.11.19 — 11:55

(16) Синтакс-помошник, так не рекомендует.

   pechkin

18 — 13.11.19 — 11:55

(13) так разве стрнайти ищет номер вхождения?
вроде нет

   Kigo_Kigo

19 — 13.11.19 — 11:55

(12) Да даже

{ВнешняяОбработка.ФормированиеОтчетовЗаСменуНаОснованииРеализации.Форма.Форма.Форма(7565,10)}: Процедура или функция с указанным именем не определена (СтрНайти)

                Если <<?>>СтрНайти(СокрЛП(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий),»#»,,,НомерВхождения)> 0 Тогда (Проверка: Толстый клиент (обычное приложение))

   Kigo_Kigo

20 — 13.11.19 — 11:56

(14) {ВнешняяОбработка.ФормированиеОтчетовЗаСменуНаОснованииРеализации.Форма.Форма.Форма(7565,22)}: Процедура или функция с указанным именем не определена (СтрНайти)

                НомерВхождения = <<?>>СтрНайти(СокрЛП(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий),»#»); (Проверка: Толстый клиент (обычное приложение))

   pechkin

21 — 13.11.19 — 11:56

(20) тебе уже сказали что не будет ибо режим

   Kigo_Kigo

22 — 13.11.19 — 11:57

(18) Читаем СП

СтрНайти (StrFind)

Синтаксис:

СтрНайти(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>)

Параметры:

<Строка> (обязательный)

Тип: Строка.

Исходная строка.

<ПодстрокаПоиска> (обязательный)

Тип: Строка.

Искомая подстрока.

<НаправлениеПоиска> (необязательный)

Тип: НаправлениеПоиска.

Указывает направление поиска подстроки в строке.

Значение по умолчанию: СНачала.

<НачальнаяПозиция> (необязательный)

Тип: Число.

Указывает позицию в строке, с которой начинается поиск.

Если параметр не задан и в параметре НаправлениеПоиска указано значение СНачала, то значение по умолчанию равно 1.

Если параметр не задан и в параметре НаправлениеПоиска указано значение СКонца, то значение по умолчанию равно длине строки.

Допускаются значения от 1 до количества символов в строке, в которой выполняется поиск. Если указано значение, не входящее в диапазон, генерируется ошибка «Неверное значение параметра».

<НомерВхождения> (необязательный)

Тип: Число.

Указывает номер вхождения искомой подстроки в исходной строке.

Значение по умолчанию: 1.

Возвращаемое значение:

Тип: Число.

Позиция первого знака найденной подстроки. Нумерация символов в строке начинается с 1. Если строка не содержит указанной подстроки, то возвращается 0.

Описание:

Находит первое вхождение искомой строки как подстроки в исходной строке.

Сравнение выполняется с учетом регистра.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер), интеграция.

Примечание:

Если параметр <ПодстрокаПоиска> пустая строка, то возвращает 1.

Если оба параметра пустые строки, то возвращает 1.

Пример:

Если СтрНайти(Сотрудник.Имя, «Сергей») > 0 Тогда

    Сообщить(Сотрудник.Имя + » таб. №» + Сотрудник.Код);

КонецЕсли;

См. также:

Глобальный контекст, метод СтрНачинаетсяС

Глобальный контекст, метод СтрЗаканчиваетсяНа

———————————————————————————

     Методическая информация

   pechkin

23 — 13.11.19 — 11:57

(22) про режим не скопировал почемуто

   Kigo_Kigo

24 — 13.11.19 — 11:58

(21) кто сказал , где?

(23) Скопировал вс что есть

   Lama12

25 — 13.11.19 — 11:58

(22) Смотри (21) и (10).

(23) В некоторых версиях СП не написано на совместимость :-( Уже натыкался на это.

   Kigo_Kigo

26 — 13.11.19 — 11:59

(23) Это что получается элементарная функция не будет работать в режиме совместимости? Что за бредятина?

   spiller26

27 — 13.11.19 — 11:59

В режиме совместимости 8.3.5 и ниже возникает ошибка

{ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта(1,10)}: Процедура или функция с указанным именем не определена (СтрНайти)

   Cyberhawk

28 — 13.11.19 — 11:59

(12) (23) В свежих релизах этого уже нет

   pechkin

29 — 13.11.19 — 11:59

(26) добро пожалоать в чудный мир 1с

   Tonik992

30 — 13.11.19 — 11:59

(26) Да-да, жизнь она такая.

   pechkin

31 — 13.11.19 — 12:00

(28) в 15 релизе есть

   boozin

32 — 13.11.19 — 12:00

Тебе весь пост пытаются объяснить, что у тебя функция в принципе работать не будет, т.к режим совместимости 8.2.16. Что не понятно ? Пока не изменишь режим совместимости минимум на 8.3.6 — работать не будет.

   Kigo_Kigo

33 — 13.11.19 — 12:02

(32) Никто это не написал, чем это может грозить для БП 2.0 в принципе?

   pechkin

34 — 13.11.19 — 12:03

(33) отчеты перестанут работать

   Kigo_Kigo

35 — 13.11.19 — 12:03

(34) Давайте посерьезней

   boozin

36 — 13.11.19 — 12:04

А вот режим совместимости у старых конфигураций лучше не трогать. Используй Найти()

   pechkin

37 — 13.11.19 — 12:04

если тебе нужно второе вхождение то делай как раньше,
нашел первое,  обрезал нашел второе
(35) серьезно, там пытаются какие то несереализуемые данные сохранять сломалось с 8.2.14

   Cyberhawk

38 — 13.11.19 — 12:04

(31) Значит наоборот ) В свежих добавили графу «Использование в версии»

   Kigo_Kigo

39 — 13.11.19 — 12:05

Знаю я 1С, элементное действие, без объявления войны может привести к всеобщему пиздетсу

   Kigo_Kigo

40 — 13.11.19 — 12:06

(37) Второго не надо, только и первое

   RomanYS

41 — 13.11.19 — 12:06

(26) Абсолютно логично. Конфа должна запускать и работать на всех платформах подходящих по режиму совместимости.

   spiller26

42 — 13.11.19 — 12:07

(38) Предупреждали же, читайте иногда отличия в новых ветках платформы

   Kigo_Kigo

43 — 13.11.19 — 12:07

Во уже на копии понеслось

(41) Вы сами себе противоречите

   Cyberhawk

44 — 13.11.19 — 12:08

(42) Какие отличия и где читать, ты о чем?

   Kigo_Kigo

45 — 13.11.19 — 12:08

Конфа ушла в аут с какой то кучей ошибок

   RomanYS

46 — 13.11.19 — 12:09

(43) в чем противоречие?

У тебя совместимость 8.2 — значит запускаться должно и на 8.2. А там таких функций нет.

   Kigo_Kigo

47 — 13.11.19 — 12:11

Я так понимаю, придется каждую строку посимвольно перебирать?

Ога говорили они, переходи к нам, на темную сторону снеговиков, все просто окуенно, ББббггггг, Злоп если ты это читаешь, не верь им :)

   Kigo_Kigo

48 — 13.11.19 — 12:12

(46) Режим совместимости подрузумевает под собой, функционал старого и фишки нового не?

а что в 8.2 СтрНайти не было, как тогда выкручивались, посимвольно перебирали?

   spiller26

49 — 13.11.19 — 12:13

Встроенный язык.

Реализованы функции работы со строками:

СтрШаблон() — выполняет замену маркеров подстановки (вида %1) в шаблонной строке на реальные значения;

СтрСравнить() — выполняет лексикографическое сравнение строк без учета регистра;

СтрНачинаетсяС() — проверяет, что строка начинается на подстроку;

СтрЗаканчиваетсяНа() — проверяет, что строка оканчивается подстрокой;

СтрНайти() — выполняет поиск подстроки в различных направлениях и не только с начала строки;

СтрРазделить() — разделяет строку на части по указанному разделителю;

СтрСоединить() — соединяет строки из массива подстрок.

Реализовано системное перечисление НаправлениеПоиска.

Функция Найти() является устаревшей и поддерживается для совместимости.

В режиме совместимости с версией 8.3.5 поведение не изменилось.

Данная возможность не предоставлялась.

Возможности новых функций можно было реализовать с помощью встроенного языка.

Упростилась реализация некоторых типовых алгоритмов работы со с

Источник: https://dl03.1c.ru/content/Platform/8_3_16_1030/1cv8upd_8_3_16_1030.htm#df1a5bfb-00fe-11e4-98ab-e61f135f174b

   boozin

50 — 13.11.19 — 12:14

Режим совместимости подразумевает, что должно без ошибок работать на 8.2.16

   spiller26

51 — 13.11.19 — 12:17

(48) Была кажется экспортная функция в общих модулях.

   Сергиус

52 — 13.11.19 — 12:20

(48)Использовали просто Найти, хотя она конечно медленней работает.

   spiller26

53 — 13.11.19 — 12:23

(52) Вот как было и как стало.

  
   Найти(<Строка>, <ПодстрокаПоиска>)

СтрНайти(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>)

   Кац

54 — 13.11.19 — 12:31

(17) да пофиг, у него режим совместимости 8.2.16

Так что только Найти()

   spiller26

55 — 13.11.19 — 12:34

Я бы посоветовал автору переходить на 3.0, когда нибудь придется всё равно, только «лавочку» переходного релиза закроют и будет «ай-ай-ай».

Ну или сидеть на какой либо старой платформе.

   pechkin

56 — 13.11.19 — 12:36

(47) в 77 тоже было найти как и 8

   boozin

57 — 13.11.19 — 12:38

А казалось бы тема на пару постов….. :)

   D_E_S_131

58 — 13.11.19 — 12:39

«Режим совместимости подрузумевает под собой, функционал старого и фишки нового не?» — ага, и еще кое-что на пробу из неизданных релизов платформы xD

   hhhh

59 — 13.11.19 — 13:11

(47) у меня режим 8.3.8. Работает. Только не сразу перескакивай, а поэтапно. Сначала на 8.3.3, потом на 8.3.4 и т.д. и так дойдешь до 8.3.8.

   Kigo_Kigo

60 — 13.11.19 — 13:13

(56) В 77 СрнНайти Прекрасно работала, не надо тут, это вам не там

(59) не у меня уже тестовая свалилилась, гружу новую

(58) вы не в 1с работаете? очень умозаключения в их стиле

попробую сча через «найти»

   hhhh

61 — 13.11.19 — 13:16

(60) так ты сразу небось на 8.3.16 небось жахнул, не глядя. Так не делается, надо потихоньку, и обязательно кеши чистить и полный ТИИ запускать после каждого перехода.

   Kigo_Kigo

62 — 13.11.19 — 13:20

(61) сразу на 8.3.6, не пока работает не буду трогать, пока что задачи по этой БД заканчиваются, это последний затык, если через найти сработает, пусть так и остается, а то как то мне тут к УПП еще с этой проблем не хватало

   Дмитрий

63 — 13.11.19 — 13:22

(60) В 7.7 нет функции СтрНайти.

   Aleksandr N

64 — 13.11.19 — 13:26

СтрНайти в 7.7? Я вас умоляю.

   Kigo_Kigo

65 — 13.11.19 — 13:26

(63) А , ну да, с СтрЗаменить спутал, ну и ладно, у меня сча смешалось пока, кони клюшки снеговики, да и пох

   D_E_S_131

66 — 13.11.19 — 13:27

(60) Режим совместимости с версией означает только одно — будет работать только тот функционал, который был в указанной версии и раньше. Если нужно «новое», то совместимость наоборот убирают. Такая «логика у 1С».

  

ptiz

67 — 13.11.19 — 13:59

(48) УТ 10

/////////////////////////////////////////////////////////////////////////////////////////

//

//  Функции обратной совместимости для эмуляции новых возможностей платформы

//  Удалить лишние при необходимости

//

/////////////////////////////////////////////////////////////////////////////////////////

Функция СтрНайти(Строка,

    ПодстрокаПоиска,

    НаправлениеПоиска = Неопределено,

    НачальнаяПозиция = 1,

    НомерВхождения = 1) Экспорт

    
    Если НаправлениеПоиска = «СКонца» Тогда

        ВызватьИсключение НСтр(«ru = ‘Требуется доработать функцию «»СтрНайти»» в общем модуле «»ИнтеграцияЕГАИСКлиентСерверГлобальный»»:

                                |Не поддерживается поиск с конца'»);

    КонецЕсли;

    
    Если ПодстрокаПоиска = «» Тогда

        Возврат 1;

    КонецЕсли;

    
    Если НачальнаяПозиция > 1 Тогда

        Возврат НачальнаяПозиция — 1 + СтрНайти(Сред(Строка, НачальнаяПозиция), ПодстрокаПоиска, НаправлениеПоиска,,НомерВхождения);

    КонецЕсли;

    
    Если НомерВхождения > 1 Тогда

        Вхождение1 = Найти(Строка, ПодстрокаПоиска);

        Если Вхождение1 > 0 Тогда

            Возврат Вхождение1 + СтрНайти(Сред(Строка,Вхождение1 +1),ПодстрокаПоиска,НаправлениеПоиска,,НомерВхождения — 1);

        КонецЕсли;

    КонецЕсли;

    
    Возврат Найти(Строка, ПодстрокаПоиска);

    
КонецФункции

Функция СтрНачинаетсяС(Строка, ПодстрокаПоиска) Экспорт

    
    Возврат (Найти(Строка, ПодстрокаПоиска)=1);

    
КонецФункции

Функция СтрЗаканчиваетсяНа(Строка, ПодстрокаПоиска) Экспорт

    
    Возврат Прав(Строка, СтрДлина(ПодстрокаПоиска)) = ПодстрокаПоиска;

    
КонецФункции

Функция СтрСоединить(МассивСтрок, Разделитель = «») Экспорт

    
    Возврат СтроковыеФункцииКлиентСервер.ПолучитьСтрокуИзМассиваПодстрок(МассивСтрок, Разделитель);

    
КонецФункции

Функция СтрРазделить(Строка, Разделитель, ВключатьПустые = Ложь) Экспорт

    Возврат СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель, ВключатьПустые);

КонецФункции // СтрРазделить()

Функция СтрШаблон(Знач СтрокаПодстановки,

    Параметр1, Параметр2 = Неопределено, Параметр3 = Неопределено,

    Параметр4 = Неопределено, Параметр5 = Неопределено, Параметр6 = Неопределено,

    Параметр7 = Неопределено, Параметр8 = Неопределено, Параметр9 = Неопределено) Экспорт

    
    Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаПодстановки,

        Параметр1, Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7, Параметр8, Параметр9);

    
КонецФункции

Функция ФорматированнаяСтрока(Содержимое,

    Шрифт = Неопределено,

    ЦветТекста = Неопределено,

    ЦветФона = Неопределено,

    Ссылка = Неопределено) Экспорт

    Описание = ИнтеграцияЕГАИСУТКлиентСервер.ОписаниеФорматированнойСтроки();

    Описание.Заголовок  = Содержимое;

    Описание.Шрифт      = Шрифт;

    Описание.ЦветТекста = ЦветТекста;

    Описание.ЦветФона   = ЦветФона;

    Описание.Ссылка     = Ссылка;

    
    Возврат Описание;

КонецФункции // ФорматированнаяСтрока()

Содержание

  1. Функция СтрНайти()
  2. Синтаксис
  3. Параметры
  4. Возвращаемое значение
  5. Описание
  6. Доступность
  7. Пример использования
  8. СтрНайти, что ему не нравится?
  9. Заметки из Зазеркалья
  10. Функция форматирования СтрШаблон()
  11. Функция работы со строками СтрСравнить()
  12. Функции работы со строками СтрНачинаетсяС(), СтрЗаканчиваетсяНа()
  13. Функции работы со строками СтрРазделить(), СтрСоединить()
  14. Функция работы со строками СтрНайти()
  15. Не срабатывает функция СтрЗаменить
  16. Не работает консоль запросов в собственной конфигурации 1С 8.3

Функция СтрНайти()

Возвращает первое или очередное вхождение подстроки в исходную строку.

Синтаксис

Функция СтрНайти() имеет следующий синтаксис:

А также альтернативный англоязычный синтаксис:

Параметры

Описание параметров функции СтрНайти() :

Имя параметра Тип Описание
ИсходнаяСтрока Строка Исходная строка.
ПодстрокаПоиска Строка Искомая подстрока.
НаправлениеПоиска (необязательный) НаправлениеПоиска Указывает направление поиска подстроки в строке. Возможные значения:

СКонца Задает направление поиска от конца строки к ее началу
СНачала Задает направление поиска от начала строки в концу

Значение по умолчанию: НаправлениеПоиска.СНачала

НачальнаяПозиция (необязательный) Число Указывает позицию в строке, с которой начинается поиск. Если параметр не задан и в параметре НаправлениеПоиска указано значение СНачала, то значение по умолчанию равно 1.
НомерВхождения (необязательный) Число Указывает порядковый номер вхождения подстроки в исходной строке. Значение по умолчанию: 1 (ищется первое вхождение)
Жирным шрифтом выделены обязательные параметры

Возвращаемое значение

Число
Позиция первого символа найденной подстроки.

Описание

Функция СтрНайти() находит требуемое вхождение подстроки поиска с начала или с конца исходной строки. Нумерация символов в строке начинается с 1. Если строка не содержит указанной подстроки, то возвращается 0. Если параметр ПодстрокаПоиска является пустой строкой, то возвращается 1. Если оба обязательных параметра являются пустыми строками, возвращается 1.

Доступность

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер), интеграция.

Пример использования

Пример кода с использованием функции СтрНайти() :

Источник

СтрНайти, что ему не нравится?

Во внешней обработке
код
НомерВхождения=0;
СтрНайти(СокрЛП(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий),»#». НомерВхождения);
Если НомерВхождения > 0 Тогда
ОтчетКоммент = СокрЛП(Сред(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий,НомерВхождения));
Если ОтчетКоммент = РеализацияКомментарий Тогда
СтрРеалицации.СформированОтчет = «Сформирован»;
КонецЕсли;
КонецЕсли;

Ошибка
<ВнешняяОбработка.ФормированиеОтчетовЗаСменуНаОснованииРеализации.Форма.Форма.Форма(7565,5)>: Процедура или функция с указанным именем не определена (СтрНайти)
>СтрНайти(СокрЛП(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий),»#». НомерВхождения); (Проверка: Толстый клиент (обычное приложение))

что ему не нравится?

(5) Режим совместимости = да
(6) ОФ — толстый клиент
вообще
Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер), интеграция.

Может так сработает?

СтрНайти (StrFind)
Синтаксис:

Тип: Строка.
Указывает направление поиска подстроки в строке.
Указывает позицию в строке, с которой начинается поиск.
Если параметр не задан и в параметре НаправлениеПоиска указано значение СНачала, то значение по умолчанию равно 1.
Если параметр не задан и в параметре НаправлениеПоиска указано значение СКонца, то значение по умолчанию равно длине строки.
Допускаются значения от 1 до количества символов в строке, в которой выполняется поиск. Если указано значение, не входящее в диапазон, генерируется ошибка «Неверное значение параметра».
Тип: Число.
Указывает номер вхождения искомой подстроки в исходной строке.
Значение по умолчанию: 1.
Возвращаемое значение:

Тип: Число.
Позиция первого знака найденной подстроки. Нумерация символов в строке начинается с 1. Если строка не содержит указанной подстроки, то возвращается 0.
Описание:

Находит первое вхождение искомой строки как подстроки в исходной строке.
Сравнение выполняется с учетом регистра.

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер), интеграция.
Примечание:

Если параметр пустая строка, то возвращает 1.
Если оба параметра пустые строки, то возвращает 1.
Пример:

Источник

Заметки из Зазеркалья

Реализовано в версии 8.3.6.1977.

Мы расширили набор функций, предназначенных для работы со строками. Мы это сделали для того, чтобы дать вам более развитые инструменты для разбора строковых данных. Новые функции будут удобны и полезны в технологических задачах анализа текста. В задачах, связанных с разбором текста, который содержит данные в форматированном виде. Это может быть анализ каких-то файлов, полученных от оборудования, или, например, анализ технологического журнала.

Все действия, которые выполняют новые функции, вы могли выполнять и раньше. С помощью более или менее сложных алгоритмов, написанных на встроенном языке. Поэтому новые функции не дают вам каких-то принципиально новых возможностей. Однако они позволяют сократить количество кода, сделать код более простым и понятным. А кроме этого они позволяют ускорить выполнение действий. Потому что функции, реализованные в платформе, работают, конечно же, быстрее, чем аналогичный алгоритм, написанный на встроенном языке.

Функция форматирования СтрШаблон()

Эта функция подставляет параметры в строку. Потребность в таком преобразовании часто возникает, например, при выводе предупреждающих сообщений. Синтаксис этой функции выглядит следующим образом:

— это строка, в которую нужно подставить представления параметров.

, . — это параметры (максимально — десять), представления которых нужно подставить в строку.

Чтобы указать конкретное место в шаблоне, в которое нужно выполнить подстановку, нужно использовать маркеры вида %1, . %10. Количество маркеров, задействованных в шаблоне, и количество параметров, содержащих значения, должны совпадать.

Например, результатом выполнения такого оператора:

Ошибка в данных в строке 2 (требуется тип Дата)

Функция работы со строками СтрСравнить()

Эта функция сравнивает две строки без учёта регистра. Например, так:

Это же действие вы могли выполнить и раньше с помощью объекта СравнениеЗначений:

Однако использование новой функции выглядит более простым. А кроме этого функция, в отличие от объекта СравнениеЗначений, работает и в тонком клиенте, и в веб-клиенте.

Функции работы со строками СтрНачинаетсяС(), СтрЗаканчиваетсяНа()

Эти функции определяют, начинается ли строка с указанной подстроки, заканчивается ли строка указанной подстрокой. Алгоритм этих функций несложно реализовать на встроенном языке, но их наличие позволяет писать более чистый и понимаемый код. И работают они быстрее.

Например, их удобно использовать в операторе Если:

Функции работы со строками СтрРазделить(), СтрСоединить()

Эти функции разделяют строку на части по указанному разделителю. Или наоборот, соединяют несколько строк в одну, вставляя между ними выбранный разделитель. Они удобны для создания или анализа логов, технологического журнала. Например, запись технологического журнала вы можете легко разобрать на части, пригодные для дальнейшего анализа:

Функция работы со строками СтрНайти()

Вместо старой функции Найти() мы реализовали новую функцию, которая имеет дополнительные возможности:

  • Поиск в разных направлениях (с начала, с конца);
  • Поиск с указанной позиции;
  • Поиск вхождения с указанным номером (второе, третье и т.д.).

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

Ниже приведён пример, использующий новые возможности поиска. Поиск в обратном направлении удобен тогда, когда вам нужен последний фрагмент формализованной строки, например, полное имя файла в URL. А поиск с указанной позиции помогает в тех случаях, когда нужно искать в известном фрагменте, а не во всей строке.

Источник

Не срабатывает функция СтрЗаменить

Нужно убрать пробелы из числовых полей

Почему не убирается пробел?

(5) Увы, я в своё время тоже выплясывал чечетку вокруг этих пробелов. Там просто не могу понять, что циферка, это число, представление циферки, это текст, а мне надо оперировать с переводом из числа в текст.

Автор, ерундой не майся и просто используй Формат. Только первым параметром передай число, а не текст

(10) Самое прикольное что даже разрабы в больших фирмах об этом хитром дефолтном преобразовании чисел в строки забывают.
И можно встретить глюки когда «все работало а потом перестало».

Ну да сначала у вас была нумерация «Объект_1», «Объект_2» и т.д.
А потом наступил «Объект_1 001» и словили глюк потому что например пробелы в этих наименованиях недопустимы.

(7)Ну ты же не хочешь сначала почитать, а потом писать. Вот и люди не хотят.

(4)В запросе тебе это не надо.

у меня на днях был запар. представьте PHP в нем есть массив, массивы бывают ассоциативные (аналог структуры ы 1с), числовые (к ним надо обращатся по ЧИСЛОВОМУ индексу, и каждый новый элемент получает инкрементный от последнего индекс).

так вот в коде есть запрос в базу и от туда получается числовой массив (в базе он хранится в виде серилизованной строки), я получаю массив и вижу там 3 элемента, при этом в коде обращение идет примерно так «а = массив[20]», где 20 это числовой индекс, я стал искать где это я потерял 17 записей массива, ну нету их и все.

оказалось, что нумерация массива с числовым индексом может идти с пробелами, в моем массиве было 3 элемента с индексами 4,10,20 я себе весь мозг взорвал 🙂 а вы говорите «неразрывный пробел» 🙂

Источник

Не работает консоль запросов в собственной конфигурации 1С 8.3

Здравствуйте. В собственной конфигурации для разных лелей — сделать выборку, новый отчет и т.д. активно пользовался консолью запросов. Текущая версия платформы — 8.3.15.1565. В текущей версии платформы запускаю ИБ, открываю консоль и пытаюсь запустить Конструктор запроса и получаю ошибку:
ошибка инициализации модуля: ВнешняяОбработка.QueryWizard.Форма.QueryWizard.Форма
по причине:
<ВнешняяОбработка.QueryWizard.Форма.QueryWizard.Форма(12791, 19)>: Процедура или функция с указанным именем не определена (StrFind)
PointPosition = >StrFind(Type.Value, «.»);

проверил на типовой конфе -есть доступ к Документообороту, все открывается, запрос создается. Что не так с собственной конфой? как решить проблему? помогите пожалуйста.

Добавлено через 10 минут
открыл консоль в конфигураторе , запустил отладку и ме вывалились ошибки:
ВнешняяОбработка.КонсольЗапросов.Форма.Форма.Форма(1260,22)> : Процедура или функция с указанным именем не определена (СтрНайти)
ПозицияОкончание = >СтрНайти(ТекстИнформацияОМестеОшибки, «)>»); (Проверка: Тонкий клиент)
<ВнешняяОбработка.КонсольЗапросов.Форма.Форма.Форма(1241,16) >: Процедура или функция с указанным именем не определена (СтрРазделить)
НаборВерсий = >СтрРазделить(СистемнаяИнформация.ВерсияПриложения, «.»); (Проверка: Тонкий клиент)
<ВнешняяОбработка.КонсольЗапросов.Форма.Форма.Форма(1265,25) >: Процедура или функция с указанным именем не определена (СтрРазделить)
НомерКолонкиИСтроки = >СтрРазделить(Сред(ТекстИнформацияОМестеОшибки, 1, ПозицияОкончание — 1), «,»); (Проверка: Тонкий клиент)
<ВнешняяОбработка.КонсольЗапросов.Форма.Форма.Форма(1243,48) >: Процедура или функция с указанным именем не определена (СтрСоединить)
ВерсияПриложения = ТипЧисло.ПривестиЗначение( >СтрСоединить(НаборВерсий)); (Проверка: Тонкий клиент)
<ВнешняяОбработка.КонсольЗапросов.Форма.Форма.Форма(2120,17) >: Процедура или функция с указанным именем не определена (СтрНайти)
ПозицияТочка = >СтрНайти(ВРег(ТекстЗапроса), Точка); (Проверка: Тонкий клиент)
В языке 1с не нашел таких функций. что делать?

Помощь в написании контрольных, курсовых и дипломных работ здесь.

РИБ на собственной конфигурации
Здравствуйте. Встала задача организации распределенной базы схемы — одноуровневая звезда.

Печатная форма обработки собственной конфигурации
Здравствуйте. В собственной конфигурации есть обработка с реквизитами: Началопериода,КонецПериода.

Создание собственной конфигурации по расчету зарплаты
Итак. Доброго времени суток всем пользователям этого раздела! Столкнулся я с такими проблемами.

Ошибка RLS для документа в собственной конфигурации 1с8.3
Здравствуйте. Делаю конфу на 1с 8.3. Добавил справочник Сотрудники со стандартными реквизитами и.

Источник

Содержание:

1.      Функция поиска подстроки в платформе программы 1С

2.      Ошибка для функции «СтрНайти()» в конфигурации системы 1С  

1.      Функция поиска подстроки в платформе программы 1С

В статье будет рассказано о том, при помощи какой функции можно искать подстроки, а также о том, какие ещё опции есть у этой функции. Отдельно будет описана ошибка о неопределённости данной функции и способы её устранения, так как, если такой случай возник, то не будет возможности и подстроку найти.

Чтобы в 1С найти подстроку – нужно задействовать функцию «СтрНайти()», которая будет возвращать первичный, либо n-ный вход искомой подстроки в основную строку.

Синтаксис нашей функции – «СтрНайти()» довольно прост, он демонстрируется далее:


Число СтрНайти

Также, на всякий случай, вот альтернативный вариант данного синтаксиса, на английском языке:


Number StrFind

Как можно увидеть, у функции «СтрНайти()» есть параметры, рассмотрим их:

·        Параметр «ИсходнаяСтрока» всегда имеет в 1С тип строки и в нём содержится первичная строка, та, в которой мы будем искать подстроку;

·        Параметр «ПодстрокаПоиска» — тоже всегда имеет в 1С тип строки и является тем искомым элементом в исходной строке;

·        Параметр «НаправлениеПоиска» отвечает за то, с какой стороны программа будет искать в 1С подстроку в строке. У данного параметра могут быть следующие вариации:

—   «СКонца» — направление поиска начинается с конечной точки строки и идёт к её началу»;

—   «СНачала» — направление поиска стартует в начале строки и идёт до её конца. Данная вариация установлена стандартными настройками системы 1С и будет выбрана по умолчанию.

·        Параметр «НачальнаяПозиция» — он не является обязательным, числового типа данных бд, и отвечает за место в исходном номере строки, с которого стартует поиск подстроки. В случае, когда данный параметр не задавался, а у параметра «НаправлениеПоиска» стоит значение «СНачала», то здесь будет стоять значение «1».

·        Параметр «НомерВхождения» имеет числовой тип данных бд и отвечает за номер по порядку того, как подстрока располагается в первоначальной строке. Согласно стандартным настройкам 1С, его значение – «1», это значит, что будет находится первое расположение подстроки внутри строки, ведь, их может быть и несколько.

Функция «СтрНайти()» вернёт нам число, это будет порядковый номер символа, с которого начинается наша в 1С подстрока в строке.

Получается, что, при помощи функции «СтрНайти()» мы ищем нужное расположение подстроки или с конца, или с начала нашей первичной строки. Первый порядковый номер внутри строки – это один. Если же, внутри исходной строки нет искомой строки, тогда вернётся значение ноль. В случае, когда, хотя бы, один из обязательных параметров пуст – вернётся значение единицы.

Замечание: для данной функции регистр данных имеет значение и учитывается при функции поиска подстроки.

Данная функция в свободном доступе для таких категорий:

·        Веб-клиент;

·        Сервер;

·        Внешнее соединение 1С;

·        Мобильное приложение на сервере;

·        Мобильное приложение на клиенте;

·        Тонкий клиент;

·        Толстый клиент;

·        Мобильный клиент;

·        Интеграция.

Ниже демонстрируется скриншот с примером кода того, как можно использовать функцию «СтрНайти()»:

ИсходнаяСтрока   

2.      Ошибка для функции «СтрНайти()» в конфигурации системы 1С

Иногда, при использовании функции «СтрНайти()», появляется ошибка о том, что данная функция не была определена. Это означает, что версия платформы программы 1С устарела («1С:Предприятие 8.3.5» или старше), так как, эта функция считается новой.

Чтобы устранить ошибку, — необходимо проверить совместимость функции с системой: открываем конфигурацию системы 1С, переходим в панель «Свойства» и кликаем на «Режим совместимости», если он находится на значении «не использовать», то нужно или обновить платформу, или заменить на схожую, но устаревшую функцию – «Найти()»

В статье было рассказано о том, как внутри системы программы 1С можно найти подстроку при помощи специальной функции, подробно описана эта функция поиска подстроки и ошибка, которая может возникать внутри системы, связанная с ней.

Специалист компании «Кодерлайн»

Айдар Фархутдинов

Процедура или функция с указанным именем не определена

Ошибка в управляемой форме списка в контексте выполняемой на сервере процедуры (Проверка: Сервер).

Вот полный текст ошибки:

{Документ.ЗатратыПоСтраховомуПокрытию.Форма.ФормаСписка.Форма(92,30)}: Процедура или функция с указанным именем не определена (СписокЗатратПоКарте)
СписокЗн.ЗагрузитьЗначения(<<?>>СписокЗатратПоКарте(СтраховаяКарта)); (Проверка: Сервер)

Вот фрагмент кода:

&НаСерверБезКонтекста
Функция СписокЗатратПоКарте(СтраховаяКарта)
	
	Если СтраховаяКарта = Неопределено Или СтраховаяКарта = Справочники.СтраховыеКарты.ПустаяСсылка() Тогда
		Возврат Новый Массив;
	КонецЕсли;	
КонецФункции

Решение:

  • поскольку из «серверной» процедуры вполне можно вызывать вне контекстную функцию/процедуру этого же модуля проверяем ее имя, количество параметров ( в данном случае всё было верно)
  • если же модуль общий проверяем в его свойствах установленные флажки «Вызов сервера», «Клиент (управляемое приложение»
  • проверяем ее название, не должны совпадать с уже существующими системными функциями. Например, СтрНайти(), СтрШаблон(), СтрСравнить(), СтрНачинаетсяС(), СтрЗаканчиваетсяНа(), СтрРазделить(),СтрСоединить().
  • Проверяем директиву компиляции: оказалось пропущена буква «е» -> &НаСервереБезКонтекста. Редактор подсвечивает директиву, не выдает ошибок, но при исполнении и вызове выходит указанное сообщение

Реклама — это техника запудривания мозгов. Старайтесь не забывать об этом: с рекламой шутки плохи.

Понравилась статья? Поделить с друзьями:
  • Стрим аналитика ошибок
  • Стрижка каскад ошибки
  • Стресс напряжение приводящее к ошибкам действий
  • Стремление к деятельности речевая ошибка
  • Стрельнула подушка безопасности как убрать ошибку