Имя: Пароль:
1C
1С v8
скорректировать разницу между пробелами и символами
0 Stim213
 
19.09.11
09:25
Имеется значения колонок таблицы. Колонок всего 2. Что-то типа прайс-листа:

молоток 100р
дисковая метательная пила 500р

необходимо программно дополнить строки пробелами, чтобы колонки выровнялись относительно друг друга, так:

молоток                       100р
дисковая метательная пила     500р

Если задавать количество "пробелов" фиксированным значением, скажем, дополнением до 50симв, то колонка "поплывет" - ширина пробелов и символов разная в текстовом поле 1С. 20 пробелов ~ 12 символов.
Как сделать так, чтобы вторая колонка точно выровнялась по центру?

Отношение ширины пробела к ширине символа точно не известно.
1 Stim213
 
19.09.11
09:26
вот, кста и пример - когда редактировал, вторая табличка имела одинаковое количество символов в строке. И она поплыла
2 andrewks
 
19.09.11
09:26
моноширинный шрифт
3 lxs
 
19.09.11
09:27
Убрать нах все пробелы и сделать разделителем точку с запятой, выгружать в csv. Еще вопросы?
4 FIXXXL
 
19.09.11
09:27
(0) сделать макет с переносом в названии и центрировании значений во второй колонке не предлагать?
5 Stim213
 
19.09.11
09:29
(4)не предлагать. Эту текстовую табличку надо вложить в тело эл. письма. Вложения не предлагать.
6 Stim213
 
19.09.11
09:29
(2)точно. ща буду пробовать
7 andrewks
 
19.09.11
09:29

молоток                       100р
дисковая метательная пила     500р
8 lxs
 
19.09.11
09:30
(5) использовать html не предлагать?
9 unregistered
 
19.09.11
09:30
Либо использовать табличный документ, либо моноширинные шрифты. Третьего не дано.
10 Stim213
 
19.09.11
09:32
(8) теги не сработают
11 lxs
 
19.09.11
09:32
+(8)

<table>
   <tr>
       <td>молоток</td>
       <td>100р</td>
   </tr>
</table>
12 lxs
 
19.09.11
09:32
(10) Почему? Твой почтовик не умеет отправлять письма в html-формате?
13 Stim213
 
19.09.11
09:33
(11) нифига
14 lxs
 
19.09.11
09:35
Насколько мне известно, при использовании ИнтернетПочта и Exchange отправка в html реальна. А при приеме в тот же аутлук сообщение будет отображаться в том формате, в каком оно было отправлено, если только очень умный пользователь не отключил сам руками это в настройках.
15 lxs
 
19.09.11
09:35
(13) что нифига? обоснуй.
16 Stim213
 
19.09.11
09:35
(12)мне из 1С надо отправлять письма. через стандартные типовые процедуры. Там нет html, там только текст
17 andrewks
 
19.09.11
09:36
если ограничиваться plain-text'ом и моноширинным шрифтом, надо помнить, что у юзеров на "той" стороне, принимающих почту, шрифт отображения тела письма может быть произвольным
18 Stim213
 
19.09.11
09:36
(15) напрямую - не форматирует
19 Stim213
 
19.09.11
09:37
(9) а как же вариант - скорректировать все пробелами. главное - точно их как-то высчитать
20 lxs
 
19.09.11
09:39
(16) из 1С стандартными типовыми.. это используя документ Электронное письмо что ли?
21 andrewks
 
19.09.11
09:41
(19) это не вариант
22 Stim213
 
19.09.11
09:42
(20) нет, используя типовые процедуры и функции отправки писем, типа ЭлектроннаяПочта.ОтправитьПочтовоеСообщение(УчетнаяЗапись, ПараметрыПисьма)
23 andrewks
 
19.09.11
09:43
вариант:  вывести в таблицу, сохранить в png, прикрепить к письму
24 andrewks
 
19.09.11
09:43
или в pdf
25 Stim213
 
19.09.11
09:44
(23)(24) нет. Там прикреплений, именно пдф -очень много. Табличку нужно именно в тело письма
26 andrewks
 
19.09.11
09:48
короче, явно указать шрифт ты только в html сможешь.
но тогда лучше табличку делать
27 lxs
 
19.09.11
10:07
Конфа какая?
28 FIXXXL
 
19.09.11
15:06
вот еще как делал:

   Иначе //в текстовый док
       
       МаксСтр = 0;
       //самая длинное название
       Для Каждого стр Из ВыгрузкаТабДок Цикл
           Если МаксСтр < СтрДлина(СокрЛП(стр.НаименованиеПолное)) Тогда
               МаксСтр = СтрДлина(СокрЛП(стр.НаименованиеПолное));
           Иначе
               Продолжить;
           КонецЕсли;
       КонецЦикла;
       
       ТабДок = Новый ТекстовыйДокумент;
       Для Каждого стр Из ВыгрузкаТабДок Цикл
           СокрНаименование = СокрЛП(стр.НаименованиеПолное);
           ФорматНаименование = ДобавитьПробеловКСтроке(СокрНаименование, МаксСтр-СтрДлина(СокрНаименование));
           ТабДок.ДобавитьСтроку(""+ФорматНаименование+"  "+стр.UID);
       КонецЦикла;
       
   КонецЕсли;


Функция ДобавитьПробеловКСтроке(ИсходнаяСтрока, КоличествоПробелов)
   
   Если КоличествоПробелов=0 Тогда
       Возврат ИсходнаяСтрока;
   КонецЕсли;
   
   ии=0;    
   
   Пока ии < КоличествоПробелов Цикл
       ИсходнаяСтрока = ИсходнаяСтрока+" ";
       ии = ии + 1;
   КонецЦикла;
   
   Возврат ИсходнаяСтрока;
   
КонецФункции
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.