Имя: Пароль:
1C
1С v8
запрет на лишние пробелы названии товара в 1С
0 pnamik
 
13.04.15
18:14
Добрый день
Прошу помощи. Как с помощью 1С СокрЛ, 1С СокрП, 1С СокрЛП осуществить проверку на лишние пробелы в названии товара в начале, в конце и в середине названии? Чтобы пользователи не могли ставить пробел (также любые незначающие символы) в начале названии, в середине (кроме одного пробела) и в конце названии товара
1 Волшебник
 
модератор
13.04.15
18:16
Как-то так:

стр = СокрЛП(стр);
Пока Найти(стр, "  ") > 1 Тогда
  стр = СтрЗаменить(стр, "  ", " ");
КонецЦикла;
2 ДенисЧ
 
13.04.15
19:51
Маленько поправлю и дополню

стрН = СокрЛП(стр);
Пока Найти(стрН, "  ") > 1 Тогда
  стрН = СтрЗаменить(стрН, "  ", " ");
КонецЦикла;

Если стр <> стрН Тогда
  глОтправитьДокладнуюДиректору("" + глТекущийПользователь() + " неправильно заполнил наименование!");
  глСоздатьДокументУвольнения(глТекущийПользователь(), ТекущаяДата() - 24*60*60);
КонецЕсли;
3 mistеr
 
13.04.15
20:02
Если уж подходить серьезно, то в Юникоде много разных пробелов. И многие из них попадают в справочник вовсе не с клавиатуры, а со всяких сайтов и прочих Экселей.
4 pnamik
 
13.04.15
21:00
(1) и (2) без реакции. как и раньше можно пробелы ставит везде внаименовании. а нужен запрет
5 фобка
 
13.04.15
21:01
(4) в каком событии сия манипуляция была проведена?
6 mehfk
 
13.04.15
21:03
(4) Воткни (2) в передзаписью, добавь туда еще проверку на ЭтоНовый() и в случае неравенства срок добавь отказ = истина.
7 mehfk
 
13.04.15
21:03
*срок -> строк
8 pnamik
 
13.04.15
21:04
(5) в модуля формы элемента нлменклатуры процедура перед запись
9 pnamik
 
13.04.15
21:06
у меня самописная конфа 8,0,18,2, может поэтому бездействует?
10 pnamik
 
13.04.15
21:07
на отсутствие названия осуществил запрет следующим образом


Если СокрЛП(Наименование) = "" Тогда
        Предупреждение("На заполнено наменование!");
        Отказ = Истина;
        Возврат;
    КонецЕсли;    
    
м
11 mehfk
 
13.04.15
21:08
(10) Копрокод.
12 zak555
 
13.04.15
21:09
В перед записью объекта пишем

Отказ = СтрЧислоВхождений(Наименование, "  ");
13 pnamik
 
13.04.15
21:16
в модуле (2) ошибку выдает без подробности. похоже конец цикла есть а цикла нет
14 Сияющий Асинхраль
 
13.04.15
21:44
(13) Пилять, ну описАлся (1) неужто не видно? Строку
Пока Найти(стр, "  ") > 1 Тогда
надо писать:
Пока Найти(стр, "  ") > 1 Цикл
15 ДенисЧ
 
13.04.15
21:47
(14) у него другую ошибку выдаёт... Ему не доступны две хитрые процедуры )
16 Сияющий Асинхраль
 
13.04.15
21:51
(15) пусть из типовых скопирует :-)))))
17 Serg_1960
 
14.04.15
00:02
Если СтрДлина(Наименование) <> СтрДлина(СтрЗаменить(СокрЛП(Наименование), "  ", " ")) Тогда
   Отказ = Истина;
КонецЕсли;
18 GreyK
 
14.04.15
00:44
А вот в этой строке есть пробел "6 061"?
19 Злопчинский
 
14.04.15
01:07
(18)  мб альт+160
20 Сияющий Асинхраль
 
14.04.15
01:10
(18) пробела обычного нет, а двух тем более
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.