Имя: Пароль:
1C
1C 7.7
v7: Удалить пробел в Наименовании товара
,
0 vadim777
 
27.12.16
15:01
Странные дела творятся в конце года....
Нужно удалить начальный пробел в Наименовании товара (откуда он взялся - старожилы уже не помнят). Вручную пробел отлично видно, удаляется.
А вот программно - нет. Фрагмент:
============================
Наимен = Спр.Наименование;
//! Если Лев(Наимен,1) = " " Тогда
Наимен = СокрЛП(Наимен);
Спр.Наименование = Наимен;
Спр.Записать();
//! КонецЕсли;
============================
В отладчике в Наименовании пробел в начале не наблюдается.
Закомментил условие, обработал весь справочника - пробел в начале так и остался. Почему?
1 Garykom
 
гуру
27.12.16
15:03
Мне всегда было интересно зачем отдельные "программисты" делают кучу "лишних" промежуточных переменных и данные через них с извратами...
2 Aleksey
 
27.12.16
15:05
А точно пробел в наименовании, а не в полном?
3 Скай
 
27.12.16
15:07
А точно пробел?
4 vadim777
 
27.12.16
15:10
(2)(3) Точно. Полного наименования нет.
5 vadim777
 
27.12.16
15:11
(1) Для отладки, Сэр.
6 Garykom
 
гуру
27.12.16
15:11
Когда условие не закомментено внутрь заходит? Добавь Сообщить() и посмотри
7 Масянька
 
27.12.16
15:11
(5) И ничего не пишет? Не говорит?
9 vadim777
 
27.12.16
15:12
(6) Когда условие не закомментировано - внутрь не входит.
10 Масянька
 
27.12.16
15:13
(9) ПорядокКодов...?
11 Масянька
 
27.12.16
15:14
(9) А он (пробел) там точно есть? КодСимв - подтверждает?
12 Garykom
 
гуру
27.12.16
15:22
(11) еще в (3) сказали
13 Масянька
 
27.12.16
15:24
(12) Ой, знаю я ваше "точно" :)
14 Это_mike
 
27.12.16
15:27
(13) может, это пробел на иностранном языке! или женский...
15 Масянька
 
27.12.16
15:32
(14) "Самая длинная клавиша".
16 Это_mike
 
27.12.16
15:33
(15) "-нажми пробел! -- а на каком языке?"
не, это реально спрашивала обладательница розовой клавиатуры...
17 vadim777
 
27.12.16
15:34
(10) А причем здесь порядок?

Спр.ВыбратьЭлементы(0);
Пока Спр.ПолучитьЭлемент()=1 Цикл
  Действие(Спр.ТекущийЭлемент());
КонецЦикла;
18 vadim777
 
27.12.16
15:34
(10) Дополнение:
Спр=СоздатьОбъект("Справочник.Товары");
Спр.ПорядокНаименований();
19 Garykom
 
гуру
27.12.16
15:35
Ну у ТС есть хорошая причина провести исследование на тему символы с какими кодами 1-31 1С 7.7 отображает в виде пробела но не считает "Симв(32)"
20 Это_mike
 
27.12.16
15:36
на что только не идут конторы - лишь бы программиста не приглашать...
21 Масянька
 
27.12.16
15:37
(18) Спр.ПорядокНаименований() меняй на Спр.ПорядокКодов()
22 Масянька
 
27.12.16
15:37
(17) Долго рассказывать...
23 Garykom
 
гуру
27.12.16
15:37
(19)+ Сам такое "исследование" проводил еще в далеком 2003 годе при загрузке из FoxPro-ных DBF, где в character полях были символы с кодами до 32 и 1С их отказывалась читать через XBase ))
24 Garykom
 
гуру
27.12.16
15:38
(20) +1
25 Это_mike
 
27.12.16
15:38
(22) я б сказал - "бесполезно"
26 Масянька
 
27.12.16
15:39
(25) Я сегодня добрая :)
27 Это_mike
 
27.12.16
15:40
(26) это хорошо... значит, побьешь кого-нибудь не сковородкой, а лишь скалкой...
28 ELEA26
 
27.12.16
16:05
А в форме точно наименование выводится? Может вычисляемое поле (реквизит формы, а не справочника) - при открытии допробеливает?
29 МихаилМ
 
27.12.16
16:23
30 Garykom
 
гуру
27.12.16
16:28
(29) Это про (22) а не проблему ТС
31 stonewolf
 
27.12.16
16:47
(0) посмотри код символа, возможно, это неразрывный пробел - Символы.НПП
32 Diman_Kr
 
27.12.16
17:35
(14) +100 У вас видимо символтабуляции. :)
33 YFedor
 
27.12.16
18:00
не парься - все элементы перезапиши с СокрЛП().
34 Garykom
 
гуру
27.12.16
18:08
(33) Веселый совет, особенно для большой базы 7.7 с несколькими лямами номенклатуры к примеру.
35 vadim777
 
27.12.16
19:37
(21) Поменял, и ничего - то же самое.
Не может-ли здесь влиять "Тип Кода" - текстовый и "Основное представление" - в виде наименования?
36 Fram
 
27.12.16
19:43
(35) может уже пора внять тому, что говорит большинство - не пробел это, а один из других 32 непропечатываемых символов.
37 vadim777
 
27.12.16
19:45
По потивам Баян с лидирующими пробелами в наименовании эл-та спр.
сделал:
Б=СоздатьОбъект("Справочник.Спр1");
Б.ПорядокКодов();
Б.ВыбратьЭлементы();
Пока Б.ПолучитьЭлемент()=1 Цикл
    Б.Наименование=Б.Наименование;
    Б.Записать();
КонецЦикла;

Все начальные пробелы ушли. Фух....
38 vadim777
 
27.12.16
20:01
(36) Если большинство на белое будут говорить черное - им также внять?
Если в в форме списка справочника нажимаю пробел (самая длинная клавиша (С) Масяня), и активным становится элемент с пробелом в начале наименования - это пробел, или один из других непропечатываемых символов?
39 h-sp
 
27.12.16
21:45
(38) наверно ваши программисты в процедуру ПриЗаписи чего-то нафигачили.