Имя: Пароль:
1C
1C 7.7
v7: Как убрать пробел из ячейки таблицы
0 самолет
 
14.03.12
17:42
Как сделать, чтобы переменная зн в ячейку таблицы не записывало пробела? Во всех ситуациях снизу она пишет в ячейку " ", потом при выгрузке в ексель эта ячейка становится не доступной для вычислений. т.е если в одной число во второй пробел то результат сбой.

Процедура Сформировать()
перем Пустота;
Т = СоздатьОбъект("Таблица");
 зн = ""; //Дает пробел
 зн = ПолучитьПустоеЗначение(); //Дает пробел
 зн = ПолучитьПустоеЗначение("Строка"); //Дает пробел
 зн = Пустота; //дает пробел
Т.ВывестиСекцию("тест");
Т.Показать();
КонецПроцедуры
1 zak555
 
14.03.12
17:44
зн = "";
2 самолет
 
14.03.12
17:44
не работает
3 самолет
 
14.03.12
17:44
все равно пробел пишет
4 mehfk
 
14.03.12
17:46
зн = 0;
5 самолет
 
14.03.12
17:47
будет писать нуль,а мне нужно чтобы ячейка чистая была
6 самолет
 
14.03.12
17:47
и без пробелов
7 mehfk
 
14.03.12
17:48
Что в макете?
8 самолет
 
14.03.12
17:52
В печатной форме переменная "зн" тип выражение
9 DeiMos
 
14.03.12
17:54
Выравнивание в ячейке - поставь по левому краю.
10 самолет
 
14.03.12
17:56
да по любому караю пробел. Попробуй
11 самолет
 
14.03.12
18:00
единственное что помогает искать эту область и очищать
12 самолет
 
14.03.12
18:01
но это геморойный вариант
13 Ёпрст
 
14.03.12
18:04
(0) тупо выводи "пустую" ячейку
14 Ёпрст
 
14.03.12
18:04
+1 которую слепишь в самом макете
15 самолет
 
14.03.12
18:06
не могу у меня в отчет в ячейку если зн неравно нулю нужно выводить число а если равно 0 то выводить пусто (задача так поставлена) а 1с какой то глюк с пустой ячейкой должно при присвоении "" выводить пусто,а она лепит пробел
16 zak555
 
14.03.12
18:07
(15)

если чис <> 0 Тогда
  Т.ВывестиСекцию("тест");
Иначе
  Т.ВывестиСекцию("тестПустая");
конецЕсли;
17 самолет
 
14.03.12
18:09
а если в строке куча столбцов??? их ты будешь клеить ВывестиСекцию ПрисоединитьСекцию.... и это каждый раз когда нужно простой отчет создать
18 самолет
 
14.03.12
18:11
глюк в 1с походу какойто
19 Ёпрст
 
14.03.12
18:14
(18) да не глюк это, а баян
20 Ёпрст
 
14.03.12
18:15
можкшь и получиьт секцию, почистить пробелы в ней, вывести секцию..
21 vova1122
 
14.03.12
18:16
а если поставить в ячейке СокрЛП(зн)?
22 самолет
 
14.03.12
18:16
это я понял ,но ГЕМОР это каждый раз делать..
23 самолет
 
14.03.12
18:18
СокрЛП(зн) не помогает, только что попробывал, то же пробел
24 DimRom
 
14.03.12
18:20
а если ?(зн="",Формат(зн,"С0"),зн)
25 ComPAS
 
14.03.12
18:22
Секция.Область(1, 1, 1, 1).Текст = "";
26 самолет
 
14.03.12
18:25
Формат(зн,"С0") тоже пробел записывает, по поводу область ComPAS это и так понятно, Вопрос в том как записать "Пусто" в ячейку таблицы вместо гребаного пробела..
27 ComPAS
 
14.03.12
18:27
(26) имхо, это из разряда "как напечатать красную букву" :)
28 DimRom
 
14.03.12
18:46
ну а если сразу в Эксель
Ексель=СоздатьОбъект("Excel.Application");
Книга=Ексель.WorkBooks.Add();
Лист=Книга.Worksheets(1);
Лист.Cells(1,1).value="12";
Лист.Cells(1,2).value="";
Книга.SaveAs("C:\222x.xls");
29 самолет
 
14.03.12
18:51
выгружать или не выгружать принимает решение пользователь, поэтому сразу нельзя
30 самолет
 
14.03.12
19:04
Ладно буду перед выводом процедуру запускать примерно так

     Для х = 1 по Т.ШиринаТаблицы() Цикл
       Для у = 1 по Т.ВысотаТаблицы() Цикл
           Если Т.Область(х,у,х,у).Текст = " " Тогда
               Т.Область(х,у,х,у).Текст = "";
           КонецЕсли;    
       КонецЦикла;
   КонецЦикла;
31 Vladal
 
14.03.12
19:19
(30) Сделай сокрлп

   Для х = 1 по Т.ШиринаТаблицы() Цикл
       Для у = 1 по Т.ВысотаТаблицы() Цикл
           Т.Область(х,у,х,у).Текст = СокрЛП(Т.Область(х,у,х,у).Текст);
       КонецЦикла;
   КонецЦикла;
32 catena
 
14.03.12
19:29
(8)А если шаблон, а не выражение? [зн]
33 DimRom
 
14.03.12
19:57
я пробовал, все равно в ячейке пробел
34 catena
 
14.03.12
20:00
Не помню я что-то в семерке таких проблем. Формат не пробовали? И было что-то на счет отоброжать/не отображать 0...
35 catena
 
14.03.12
20:27
(33)Вы заставили меня ее установить.
У меня нет пробела при зн="".
Более того, даже при наличии пробелов формулам в екселе это не мешает.
ЧЯДНТ?
36 Ёпрст
 
15.03.12
09:16
(35) ты врешь, пробел есть всегда.
37 ale-sarin
 
15.03.12
09:27
(23) Раз СокрЛП не помогает, то может это не пробел, а Символ(160)?
Попробуй СтрЗаменить(Зн, Символ(160), "")
38 Vladal
 
15.03.12
11:02
Для х = 1 по Т.ШиринаТаблицы() Цикл
       Для у = 1 по Т.ВысотаТаблицы() Цикл
           ЗначениеЯчейки = Т.Область(х,у,х,у).Текст;
           Если СтрДлина(СокрЛП(ЗначениеЯчейки)) = 1 Тогда
               Сообщить("R"+у+"C"+х+" код символа "+КодСимвола(ЗначениеЯчейки));
       КонецЦикла;
   КонецЦикла;
39 catena
 
15.03.12
17:57
(36)Да, действительно, прошу прощения :) Не туда смотрела.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший