Имя: Пароль:
1C
1С v8
Проверка на пробелы
0 black_cat1305
 
29.07.13
14:33
Добрый день! Помогите мне о великие люди в 1С. Я новичок и только начинаю программировать!!! Задача моя состоит в том: Есть форма куда пользователь вбивает наименование номенклатуры. И для проверки правильно ли набивает пользователь номенклатуру необходимо в процедуру ОкончаниеВводаТекста поставить проверку: Если пользователь вбил номенклатуру, например 30 ГОСТ241-15, то в этом случае срабатывает проверка на наличие пробела перед словом ГОСТ (пробел должен быть обязателен), иначе выходит сообщение что нет пробела перед ГОСТ. Если же пользователь вбивает номенклатуру 40-ОСТ-1-12569 без тире перед словом ОСТ, то выходит снова предупрежедение что перед ОСТ должно быть обязательно тире и на этом процедура завершается
1 drcrasher
 
29.07.13
14:34
1) окончаниеВводаТекста тут ни при чем
2) регэксп в руки
2 black_cat1305
 
29.07.13
14:34
я вот уже написала кое что, но правильно не срабатывает:
Стр = АртикулПоиска; // создала копию изначальной строки

    Если Найти(ВРЕГ(Стр),"ГОСТ") > 0 Тогда
         Стр = СтрЗаменить(Стр, " ", "");  // убрала все пробелы
         Стр = СтрЗаменить(Стр, "ГОСТ", " ГОСТ"); // добавила пробел перед ГОСТ
           Если Стр <> АртикулПоиска Тогда // сравнение начальной строки с эталонной
                Предупреждение("Нет пробела перед ГОСТ!");
                Возврат;
           КонецЕсли;
      
       ИначеЕсли Найти(ВРЕГ(Стр),"ОСТ") > 0 Тогда
                Стр = СтрЗаменить(Стр, " ", ""); // убрала все пробелы
                Стр = СтрЗаменить(Стр, "-", ""); // убрала все тире
                   Стр = СтрЗаменить(Стр, "ОСТ", "-ОСТ"); // добавила пробел перед ОСТ
           Если Стр <> АртикулПоиска Тогда
                Предупреждение("Перед ОСТ должно быть тире! И не должно быть никаких пробелов!!!");
                Возврат;
            КонецЕсли;
КонецЕсли;
3 floody
 
29.07.13
14:36
ост в гост вроде входит
4 palpetrovich
 
29.07.13
14:41
"40-ОСТ-1-12569"   Стр = СтрЗаменить(Стр, "-", ""); // убрала все тире  --- может ну его?
ну и, как намекает (3) лучше так: Найти(ВРЕГ(Стр)," ОСТ") > 0
5 Кефир
 
29.07.13
14:44
А какая разница что ОСТ входит в ГОСТ, мы же уже не нашли ГОСТ когда пошли ОСТ искать.

Стр = СтрЗаменить(Стр, "-", ""); // убрала все тире

Но там же тире часто встречаются и без ошибок, конечно выйдет что

Стр <> АртикулПоиска
6 Кефир
 
29.07.13
14:47
Если Найти(ВРЕГ(Стр)," ГОСТ") = 0 Тогда //Гост без пробела
Если  Найти(ВРЕГ(Стр),"-ОСТ") = 0 Тогда //ОСТ без тире
7 black_cat1305
 
30.07.13
06:26
Доброе утро! Спасибо всем кто откликнулся на мое сообщение!!! Сейчас буду пробовать)))
8 Мимохожий Однако
 
30.07.13
06:43
Сначала надо составить правила форматирования наименования, а уж потом кодировать. Я орфографических и других специфических правил не увидел.