1с стрнайти не работает

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

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

Синтаксис

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

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

Параметры

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

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

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

НачальнаяПозиция (необязательный) Число Указывает позицию в строке, с которой начинается поиск. Если параметр не задан и в параметре НаправлениеПоиска указано значение СНачала, то значение по умолчанию равно 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. Добавил справочник Сотрудники со стандартными реквизитами и.

Источник

Читайте также:  Nissan qashqai не работает дворники
Оцените статью