Имя: Пароль:
1C
1C 7.7
v7: Поле выбора добавляет пробелы в конец строки
,
0 Альбатрос
 
23.10.11
21:18
кусок кода:
Процедура ПриОткрытии()
   Path = "D:\1CBase\for test";
   Path = СокрЛП(Path);
КонецПроцедуры  

Процедура ПриНачалевыбораЗначения(эл,фл)
   
   Если эл = "Path"  Тогда
       фл = 0;
       ФС.ВыбратьКаталог(Path,"Выбор каталога с файлами выгрузки");
   КонецЕсли;
   
КонецПроцедуры

Path - поле выбора с типом строка и длиной 100 символов.
Почему в конец строки добавляются пробелы?
То есть СТрДлина(Path) = 100
1 SnarkHunter
 
23.10.11
21:23
>> Path - поле выбора с типом строка и длиной 100 символов.  Почему в конец строки добавляются пробелы?

Ответ в первом предложении...
2 andrewks
 
23.10.11
21:25
СокрП()
3 aleks-id
 
23.10.11
21:36
откуда ж такие индусские кодеры берутся...
4 Альбатрос
 
23.10.11
21:40
(3) С Индии, уважаемый, вы не знали?
(2) Но ведь в процедуре ПриОткрытии() я использую СокрЛП(). Почему пробелы не убираются?
5 aleks-id
 
23.10.11
21:43
//Path = СокрЛП(Path);
...
ФС.ВыбратьКаталог(СокрП(Path),"Выбор каталога с файлами выгрузки");
6 Firerer
 
23.10.11
21:44
Path - поле выбора с типом строка и ДЛИНОЙ 100 СИМВОЛОВ. Всегда 100.
7 andrewks
 
23.10.11
21:53
(4) 2. и чо? результат ты чему присваиваешь? правильно, тому же самому полю ввода
8 Альбатрос
 
23.10.11
21:55
Спасибо, работает.
Но логика заполнения пробелами не ясна. Зачем дополнять строку пробелами?
9 andrewks
 
23.10.11
21:57
запиши себе на стикер и приклей на монитор:

строковые реквизиты фиксированной длины всегда дополняются пробелами справа до указанной длины, т.о. длина такого реквизита ВСЕГДА = указанной длине
10 Альбатрос
 
23.10.11
22:02
(9)Странно... Для чего? к примеру, в паскале это не так по-моему.  Да и в других языках.
11 andrewks
 
23.10.11
22:07
не путай переменные с реквизитами
12 zak555
 
23.10.11
22:09
> запиши себе на стикерзапиши себе на стикер


куда-куда ?
13 Азат
 
23.10.11
22:13
автору ваще не лень туда-сюда переключаться - то на русский, то на английский... видимо, салага какой-то... или 1986...
14 Альбатрос
 
23.10.11
22:25
(13) В точку! Салага. Или 1986. Кстати, 1986 - это видимо г.р. С этим связаны предрассудки?
15 zak555
 
23.10.11
22:26
(13) > видимо, салага какой-то... или 1986...

оооо
ну да,
мужик
...
16 Альбатрос
 
23.10.11
22:28
(13) Кстати, вы не рассмотрели вариант копипаста. Видимо, салага какой-то... или 1986...
17 Cthulhu
 
24.10.11
00:59
почему реквизит типа строка фиксированной длины хранит строку фиксированной длины????
пятнично.
18 Злопчинский
 
24.10.11
07:51
вот вы блин все такие умные... а вот в снеговике - не совсем все так.. собенно с реквизитом Наименование... На первых же курсах Насипова когда разбирал первые зантяи - ннаткунлся на это самое... в МГ муслолили прилично этот вопрос... В 7.7 реквизит справочника и поле ввода на которое он отображается - почти то же самое, а в снеговике - все нетак, ну все не так ребята...
19 Злопчинский
 
24.10.11
07:53
за вот это
Path = "D:\1CBase\for test";
убивать надо два раза, сразу.. без суда и следствия..
первый раз убить за абсолютный путь вместо каталогИБ()
виторой раз убить за пробелы в названиях папок
Ошибка? Это не ошибка, это системная функция.