Имя: Пароль:
1C
1С v8
СтрНайти, что ему не нравится?
,
0 Kigo_Kigo
 
13.11.19
11:34
Во внешней обработке
код
НомерВхождения=0;
                СтрНайти(СокрЛП(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий),"#",,,НомерВхождения);
                Если НомерВхождения > 0 Тогда
                    ОтчетКоммент = СокрЛП(Сред(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий,НомерВхождения));
                    Если ОтчетКоммент = РеализацияКомментарий Тогда
                        СтрРеалицации.СформированОтчет = "Сформирован";
                    КонецЕсли;
                КонецЕсли;

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

что ему не нравится?
1 boozin
 
13.11.19
11:36
Релиз платформы проверь или режим совместимости у конфигурации. Древний поди...
2 Kigo_Kigo
 
13.11.19
11:42
(1) 8.3.12.1790
3 pechkin
 
13.11.19
11:43
вообще то это функция
4 RomanYS
 
13.11.19
11:43
(2) совместимость конфы?
5 Жан Пердежон
 
13.11.19
11:43
Режим совместимости?
6 ChMikle
 
13.11.19
11:44
(0) на сервере это делаешь или на клиенте?
7 ChMikle
 
13.11.19
11:45
+(6) первый символ проверь названия функции , м.б. "C" латиница
8 Kigo_Kigo
 
13.11.19
11:45
(5) Режим совместимости = да
(6) ОФ - толстый клиент
вообще
Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер), интеграция.
9 pechkin
 
13.11.19
11:46
(8) не да , а номер режима
10 Kigo_Kigo
 
13.11.19
11:50
(7) Выделение ctrl+f1 слызу вываливаемся в справку - куда надо(с проверял на латиницу, это первое что сделал)
(9) Версия 8.2.16
11 Жан Пердежон
 
13.11.19
11:51
(10) СтрНайти с 8.3.6 работает
12 pechkin
 
13.11.19
11:52
Это в справке кстати написано
13 Kigo_Kigo
 
13.11.19
11:53
(3) И что?
Мне не надо проверять, есть вхождение или нет, мне нужен номер вхождения, если он есть то идем дальше, если нет, то нет
14 Lama12
 
13.11.19
11:53
Может так сработает?

Вместо

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

вот так

НомерВхождения = СтрНайти(СокрЛП(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий),"#");
15 craxx
 
13.11.19
11:54
(10) Версия 8.3.6 как минимум
16 Кац
 
13.11.19
11:54
(10) Тогда используй Найти()
17 Lama12
 
13.11.19
11:55
(16) Синтакс-помошник, так не рекомендует.
18 pechkin
 
13.11.19
11:55
(13) так разве стрнайти ищет номер вхождения?
вроде нет
19 Kigo_Kigo
 
13.11.19
11:55
(12) Да даже
{ВнешняяОбработка.ФормированиеОтчетовЗаСменуНаОснованииРеализации.Форма.Форма.Форма(7565,10)}: Процедура или функция с указанным именем не определена (СтрНайти)
                Если <<?>>СтрНайти(СокрЛП(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий),"#",,,НомерВхождения)> 0 Тогда (Проверка: Толстый клиент (обычное приложение))
20 Kigo_Kigo
 
13.11.19
11:56
(14) {ВнешняяОбработка.ФормированиеОтчетовЗаСменуНаОснованииРеализации.Форма.Форма.Форма(7565,22)}: Процедура или функция с указанным именем не определена (СтрНайти)
                НомерВхождения = <<?>>СтрНайти(СокрЛП(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий),"#"); (Проверка: Толстый клиент (обычное приложение))
21 pechkin
 
13.11.19
11:56
(20) тебе уже сказали что не будет ибо режим
22 Kigo_Kigo
 
13.11.19
11:57
(18) Читаем СП
СтрНайти (StrFind)
Синтаксис:

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

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

Тип: Строка.
Исходная строка.
<ПодстрокаПоиска> (обязательный)

Тип: Строка.
Искомая подстрока.
<НаправлениеПоиска> (необязательный)

Тип: НаправлениеПоиска.
Указывает направление поиска подстроки в строке.
Значение по умолчанию: СНачала.
<НачальнаяПозиция> (необязательный)

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

Тип: Число.
Указывает номер вхождения искомой подстроки в исходной строке.
Значение по умолчанию: 1.
Возвращаемое значение:

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

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

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

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

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

Если СтрНайти(Сотрудник.Имя, "Сергей") > 0 Тогда
    Сообщить(Сотрудник.Имя + " таб. №" + Сотрудник.Код);
КонецЕсли;


См. также:

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

--------------------------------------------------------------------------------

     Методическая информация
23 pechkin
 
13.11.19
11:57
(22) про режим не скопировал почемуто
24 Kigo_Kigo
 
13.11.19
11:58
(21) кто сказал , где?
(23) Скопировал вс что есть
25 Lama12
 
13.11.19
11:58
(22) Смотри (21) и (10).
(23) В некоторых версиях СП не написано на совместимость :-( Уже натыкался на это.
26 Kigo_Kigo
 
13.11.19
11:59
(23) Это что получается элементарная функция не будет работать в режиме совместимости? Что за бредятина?
27 spiller26
 
13.11.19
11:59
В режиме совместимости 8.3.5 и ниже возникает ошибка
{ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта(1,10)}: Процедура или функция с указанным именем не определена (СтрНайти)
28 Cyberhawk
 
13.11.19
11:59
(12) (23) В свежих релизах этого уже нет
29 pechkin
 
13.11.19
11:59
(26) добро пожалоать в чудный мир 1с
30 Tonik992
 
13.11.19
11:59
(26) Да-да, жизнь она такая.
31 pechkin
 
13.11.19
12:00
(28) в 15 релизе есть
32 boozin
 
13.11.19
12:00
Тебе весь пост пытаются объяснить, что у тебя функция в принципе работать не будет, т.к режим совместимости 8.2.16. Что не понятно ? Пока не изменишь режим совместимости минимум на 8.3.6 - работать не будет.
33 Kigo_Kigo
 
13.11.19
12:02
(32) Никто это не написал, чем это может грозить для БП 2.0 в принципе?
34 pechkin
 
13.11.19
12:03
(33) отчеты перестанут работать
35 Kigo_Kigo
 
13.11.19
12:03
(34) Давайте посерьезней
36 boozin
 
13.11.19
12:04
А вот режим совместимости у старых конфигураций лучше не трогать. Используй Найти()
37 pechkin
 
13.11.19
12:04
если тебе нужно второе вхождение то делай как раньше,
нашел первое,  обрезал нашел второе
(35) серьезно, там пытаются какие то несереализуемые данные сохранять сломалось с 8.2.14
38 Cyberhawk
 
13.11.19
12:04
(31) Значит наоборот ) В свежих добавили графу "Использование в версии"
39 Kigo_Kigo
 
13.11.19
12:05
Знаю я 1С, элементное действие, без объявления войны может привести к всеобщему пиздетсу
40 Kigo_Kigo
 
13.11.19
12:06
(37) Второго не надо, только и первое
41 RomanYS
 
13.11.19
12:06
(26) Абсолютно логично. Конфа должна запускать и работать на всех платформах подходящих по режиму совместимости.
42 spiller26
 
13.11.19
12:07
(38) Предупреждали же, читайте иногда отличия в новых ветках платформы
43 Kigo_Kigo
 
13.11.19
12:07
Во уже на копии понеслось
(41) Вы сами себе противоречите
44 Cyberhawk
 
13.11.19
12:08
(42) Какие отличия и где читать, ты о чем?
45 Kigo_Kigo
 
13.11.19
12:08
Конфа ушла в аут с какой то кучей ошибок
46 RomanYS
 
13.11.19
12:09
(43) в чем противоречие?
У тебя совместимость 8.2 - значит запускаться должно и на 8.2. А там таких функций нет.
47 Kigo_Kigo
 
13.11.19
12:11
Я так понимаю, придется каждую строку посимвольно перебирать?
Ога говорили они, переходи к нам, на темную сторону снеговиков, все просто окуенно, ББббггггг, Злоп если ты это читаешь, не верь им :)
48 Kigo_Kigo
 
13.11.19
12:12
(46) Режим совместимости подрузумевает под собой, функционал старого и фишки нового не?
а что в 8.2 СтрНайти не было, как тогда выкручивались, посимвольно перебирали?
49 spiller26
 
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
50 boozin
 
13.11.19
12:14
Режим совместимости подразумевает, что должно без ошибок работать на 8.2.16
51 spiller26
 
13.11.19
12:17
(48) Была кажется экспортная функция в общих модулях.
52 Сергиус
 
13.11.19
12:20
(48)Использовали просто Найти, хотя она конечно медленней работает.
53 spiller26
 
13.11.19
12:23
(52) Вот как было и как стало.
  
   Найти(<Строка>, <ПодстрокаПоиска>)
СтрНайти(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>)
54 Кац
 
13.11.19
12:31
(17) да пофиг, у него режим совместимости 8.2.16
Так что только Найти()
55 spiller26
 
13.11.19
12:34
Я бы посоветовал автору переходить на 3.0, когда нибудь придется всё равно, только "лавочку" переходного релиза закроют и будет "ай-ай-ай".
Ну или сидеть на какой либо старой платформе.
56 pechkin
 
13.11.19
12:36
(47) в 77 тоже было найти как и 8
57 boozin
 
13.11.19
12:38
А казалось бы тема на пару постов..... :)
58 D_E_S_131
 
13.11.19
12:39
"Режим совместимости подрузумевает под собой, функционал старого и фишки нового не?" - ага, и еще кое-что на пробу из неизданных релизов платформы xD
59 hhhh
 
13.11.19
13:11
(47) у меня режим 8.3.8. Работает. Только не сразу перескакивай, а поэтапно. Сначала на 8.3.3, потом на 8.3.4 и т.д. и так дойдешь до 8.3.8.
60 Kigo_Kigo
 
13.11.19
13:13
(56) В 77 СрнНайти Прекрасно работала, не надо тут, это вам не там
(59) не у меня уже тестовая свалилилась, гружу новую
(58) вы не в 1с работаете? очень умозаключения в их стиле
попробую сча через "найти"
61 hhhh
 
13.11.19
13:16
(60) так ты сразу небось на 8.3.16 небось жахнул, не глядя. Так не делается, надо потихоньку, и обязательно кеши чистить и полный ТИИ запускать после каждого перехода.
62 Kigo_Kigo
 
13.11.19
13:20
(61) сразу на 8.3.6, не пока работает не буду трогать, пока что задачи по этой БД заканчиваются, это последний затык, если через найти сработает, пусть так и остается, а то как то мне тут к УПП еще с этой проблем не хватало
63 Дмитрий
 
13.11.19
13:22
(60) В 7.7 нет функции СтрНайти.
64 Aleksandr N
 
13.11.19
13:26
СтрНайти в 7.7? Я вас умоляю.
65 Kigo_Kigo
 
13.11.19
13:26
(63) А , ну да, с СтрЗаменить спутал, ну и ладно, у меня сча смешалось пока, кони клюшки снеговики, да и пох
66 D_E_S_131
 
13.11.19
13:27
(60) Режим совместимости с версией означает только одно - будет работать только тот функционал, который был в указанной версии и раньше. Если нужно "новое", то совместимость наоборот убирают. Такая "логика у 1С".
67 ptiz
 
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);
    
КонецФункции

Функция ФорматированнаяСтрока(Содержимое,
    Шрифт = Неопределено,
    ЦветТекста = Неопределено,
    ЦветФона = Неопределено,
    Ссылка = Неопределено) Экспорт

    Описание = ИнтеграцияЕГАИСУТКлиентСервер.ОписаниеФорматированнойСтроки();
    Описание.Заголовок  = Содержимое;
    Описание.Шрифт      = Шрифт;
    Описание.ЦветТекста = ЦветТекста;
    Описание.ЦветФона   = ЦветФона;
    Описание.Ссылка     = Ссылка;
    
    Возврат Описание;

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