Имя: Пароль:
1C
 
Символы ASCII
0 Dimon1986
 
10.11.09
13:25
Кто-нибудь сталкивался, чтобы в строку в 1С 8 вставить символ кодировки ASCII
1 Fragster
 
гуру
10.11.09
13:26
Симв(номер)
2 Fragster
 
гуру
10.11.09
13:26
тока до 127-го
3 Fragster
 
гуру
10.11.09
13:26
потом фигня всякая
4 Dimon1986
 
10.11.09
13:28
а сделать его в это строке непечатаемым?
5 Aleksey_3
 
10.11.09
13:29
Символ (Char)
Встроенные функции языка
Символ (Char)
Синтаксис:
Символ(<Код символа>)
Параметры:
<Код символа> (обязательный)
Тип: Число. Код получаемого символа. Код задается в соответствии с кодировкой Unicode.
Возвращаемое значение:
Тип: Строка. Результирующий символ.
Описание:
Преобразует код символа в строку, содержащую символ.
Пример:
Буква_Я = Символ(1103);
6 skunk
 
10.11.09
13:29
Встроенные функции языка
Символ (Char)
Синтаксис:
Символ(<Код символа>)
Параметры:
<Код символа> (обязательный)
Тип: Число. Код получаемого символа. Код задается в соответствии с кодировкой Unicode.
Возвращаемое значение:
Тип: Строка. Результирующий символ.
Описание:
Преобразует код символа в строку, содержащую символ.
Пример:
Буква_Я = Символ(1103);
7 Aleksey_3
 
10.11.09
13:30
(1) Это для 7-ки
(3) Не фигня, а юникод
8 Fragster
 
гуру
10.11.09
13:32
(7) я хз :) я знаю, что ASCII только до 127 символа регулирует а дальше уже не ASCII
9 Dimon1986
 
10.11.09
13:34
А как мне $ перевести в ASCII
10 Fragster
 
гуру
10.11.09
13:35
а что, просто $ в строке не набрать?
11 Dimon1986
 
10.11.09
13:36
Нужно его вывести в строку и сделать непечатаемым, а далее эта строка печатается на штрих коде
12 Fragster
 
гуру
10.11.09
13:38
(11) ничего не понятно
13 Dimon1986
 
10.11.09
13:40
Точнее из этой строки формируется штрих-код и выводится на печать
14 Serginio1
 
10.11.09
13:58
Можешь например перекодировать строку в Base64
Либо использовать символы разделители для определения текущей кодировки,
приводя символ  Уникоде к ASCII_US. Т.к. максимальное использование символов в Штрих_Код Code_128, либо используй двухмерный штрих код. Там что захочешь хранить можно
15 Dimon1986
 
10.11.09
14:04
Тогда скажи как в восьмерке использовать символы разделители? Как их туда вставить.
16 Dimon1986
 
10.11.09
14:06
Есть какая-нибудь функция или что-то вроде этого?
17 Serginio1
 
10.11.09
14:32
А самому подумать?
Здесь разделитель Символ(1);

function UTF16LEtoCP1251(str)
    ret = новый Массив;

    Для Сч=1 По СтрДлина(str) Цикл
 Симв=КодСимвола(Сред(str,сч,1));
 if (Симв<128) Тогда
     ret.Добавить(Симв);
  ИначеЕсли (Симв>=1040 и Симв<=1103)Тогда
  ret.Добавить(Симв-1040+192);
ИначеЕсли Симв=КодСимвола("Ё") Тогда
    ret.Добавить(168);
ИначеЕсли Симв=КодСимвола("ё") Тогда
    ret.Добавить(184)
ИначеЕсли Симв=КодСимвола("№") Тогда
    ret.Добавить(185)
  else
      Сообщить(Символ(Симв));
  КонецЕсли
  КонецЦикла;
   Возврат ret
КонецФункции

function АнсиТуУникоде(Массив)
    Резулт = "";

    Для Сч=0 По Массив.ВГраница() Цикл
        КодСимв=Массив[сч];
        Если КодСимв<128 Тогда
            резулт=Резулт+Символ(КодСимв)
        ИначеЕсли (КодСимв>=192 и КодСимв<=255) Тогда
            резулт=Резулт+Символ(КодСимв+1040-192)
        ИначеЕсли КодСимв=168 Тогда
            резулт=Резулт+"Ё"
        ИначеЕсли КодСимв=184 Тогда
            резулт=Резулт+"ё"
        ИначеЕсли КодСимв=185 Тогда
            резулт=Резулт+"№"
        Иначе
            сообщить(КодСимв)
        КонецЕсли;
    КонецЦикла;
   
        Возврат резулт
КонецФункции

function СимволИзУникодаВАнси(Буква)
   
 Симв=КодСимвола(Буква);
 if (Симв<128) Тогда
     Возврат буква
  ИначеЕсли (Симв>=1040 и Симв<=1103)Тогда
  Возврат Символ(Симв-1040+192)
ИначеЕсли Симв=КодСимвола("Ё") Тогда
    Возврат Символ(168);
ИначеЕсли Симв=КодСимвола("ё") Тогда
    Возврат Символ(184)
ИначеЕсли Симв=КодСимвола("№") Тогда
    Возврат Символ(185)
  else
      Сообщить(Символ(Симв));
  КонецЕсли;
 
   Возврат ""
КонецФункции

function СимволАнсиТуУникоде(Буква)
   
        КодСимв=КодСимвола(Буква+128);
        Если (КодСимв>=192 и КодСимв<=255) Тогда
            Возврат Символ(КодСимв+1040-192)
        ИначеЕсли КодСимв=168 Тогда
            возврат "Ё"
        ИначеЕсли КодСимв=184 Тогда
            возврат "ё"
        ИначеЕсли КодСимв=185 Тогда
            возврат "№"
        Иначе
            сообщить(КодСимв)
        КонецЕсли;

   
        Возврат ""
КонецФункции

Функция ПреобразоватьСтрокуДляКоде128(стр) экспорт
   ЭтоЛатиница=1;
   резулт="";
   Для сч=1 по СтрДлина(стр) Цикл
       Буква=Сред(стр,сч,1);
       Если КодСимвола(Буква)>127 Тогда
           Если ЭтоЛатиница=1 Тогда
              Резулт=Резулт+Символ(1);
              ЭтоЛатиница=0;
           КонецЕсли;
           Резулт=Резулт+СимволИзУникодаВАнси(Буква)//Символ(КодСимв(Буква)-128)
       иначе  
           Если ЭтоЛатиница=0 Тогда
              Резулт=Резулт+Символ(1);
              ЭтоЛатиница=1;
           КонецЕсли;
           Резулт=Резулт+Буква
       КонецЕсли;
   КонецЦикла;
   возврат резулт
КонецФункции
 
Функция ПреобразоватьСтрокуДляКоде128Обратно(стр) экспорт
   ЭтоЛатиница=1;
   резулт="";
   Для сч=1 по СтрДлина(стр) Цикл
       Буква=Сред(стр,сч,1);
       Если КодСимвола(Буква)=1 Тогда
           Если ЭтоЛатиница=1 Тогда
               
               ЭтоЛатиница=0
           Иначе
               ЭтоЛатиница=1
           КонецЕсли;
       
       иначе  
           Если ЭтоЛатиница=0 Тогда
               Резулт=Резулт+СимволАнсиТуУникоде(Буква)//Симв(КодСимв(Буква)+128);
           Иначе
               Резулт=Резулт+Буква
           КонецЕсли;
           
       КонецЕсли;
   КонецЦикла;
   возврат резулт
КонецФункции


Процедура КнопкаСформироватьНажатие(Кнопка)
   // Вставить содержимое обработчика.
Стр="ЁёЬьЪъЩщШшЯяЧчСсМмИиТтЬьБбЮю,.ФфЫыВвАаПпРрОоЛлДдЖжЭэ/\ЙйЦцУуКкЕеНнГгШшЩщЗзХхЪъ+=_-)0(9*8?7:6%5;4№3""2!1Ёё";

АнсиСтр=UTF16LEtoCP1251(Стр);
Стр2=АнсиТуУникоде(АнсиСтр);
Сообщить(Стр=Стр2);

СтрДляКоде128=ПреобразоватьСтрокуДляКоде128(стр);
СтрИзКоде128=ПреобразоватьСтрокуДляКоде128Обратно(СтрДляКоде128);

Сообщить(Стр=СтрИзКоде128);
КонецПроцедуры
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший