Вход | Регистрация

1С:Предприятие ::

Метки:Приемы программирования

Транслит в 1С

Я
   Kudryashka
 
06.05.04 - 12:32
я не сталкивалась, может кто подскажет кто сталкивался? вот в справочнике занесена фамилия сотрудника например Иванова Маша. а при выводе отчета нужно две графы где в одной пишется Иванова Маша, а во второй Ivanova Masha. Возможно ли это? и как?
 
  Рекламное место пустует
   Valery
 
1 - 06.05.04 - 12:44
В 1с такое используется часто. например справочник Номенклатуры или контрагентов
Там есть два поля : Наименование и Наименование для печати.Можно так же сделать по аналогии.Добавить еще одно поле. Одно с русским наименованием, другое с английским.
   Kudryashka
 
2 - 06.05.04 - 12:47
нет, два поля не пойдет. не буду же они вводить вручную все фамилии еще и не транслите.. это же моя задача как сделать чтобы так выводилось.
   Композитор
 
4 - 06.05.04 - 12:54
Функция Исправить(Имя)
    Рез = СокрЛП(Имя);   
    Рез = СтрЗаменить(Рез,"а","a");
    Рез = СтрЗаменить(Рез,"б","b");
    Рез = СтрЗаменить(Рез,"в","v");
    Рез = СтрЗаменить(Рез,"г","g");
    Рез = СтрЗаменить(Рез,"д","d");
    Рез = СтрЗаменить(Рез,"е","e");
    Рез = СтрЗаменить(Рез,"ё","e");
    Рез = СтрЗаменить(Рез,"ж","zh");
    Рез = СтрЗаменить(Рез,"з","z");
    Рез = СтрЗаменить(Рез,"и","i");
    Рез = СтрЗаменить(Рез,"к","k");
    Рез = СтрЗаменить(Рез,"л","l");
    Рез = СтрЗаменить(Рез,"м","m");
    Рез = СтрЗаменить(Рез,"н","n");
    Рез = СтрЗаменить(Рез,"о","o");
    Рез = СтрЗаменить(Рез,"п","p");
    Рез = СтрЗаменить(Рез,"р","r");
    Рез = СтрЗаменить(Рез,"с","s");
    Рез = СтрЗаменить(Рез,"т","t");
    Рез = СтрЗаменить(Рез,"у","u");
    Рез = СтрЗаменить(Рез,"ф","f");
    Рез = СтрЗаменить(Рез,"х","h");
    Рез = СтрЗаменить(Рез,"ч","ch");
    Рез = СтрЗаменить(Рез,"ш","sh");
    Рез = СтрЗаменить(Рез,"щ","sch");
    Рез = СтрЗаменить(Рез,"ъ","");
    Рез = СтрЗаменить(Рез,"ь","");
    Рез = СтрЗаменить(Рез,"э","e");
    Рез = СтрЗаменить(Рез,"ю","yu");
    Рез = СтрЗаменить(Рез,"й","i");
    Рез = СтрЗаменить(Рез,"ц","c");
    Рез = СтрЗаменить(Рез,"я","ya");
    Рез = СтрЗаменить(Рез,"ы","i");
    Рез = СтрЗаменить(Рез,"А","A");
    Рез = СтрЗаменить(Рез,"Б","B");
    Рез = СтрЗаменить(Рез,"В","V");
    Рез = СтрЗаменить(Рез,"Г","G");
    Рез = СтрЗаменить(Рез,"Д","D");
    Рез = СтрЗаменить(Рез,"Е","E");
    Рез = СтрЗаменить(Рез,"Ё","E");
    Рез = СтрЗаменить(Рез,"Ж","ZH");
    Рез = СтрЗаменить(Рез,"З","Z");
    Рез = СтрЗаменить(Рез,"И","I");
    Рез = СтрЗаменить(Рез,"К","K");
    Рез = СтрЗаменить(Рез,"Л","L");
    Рез = СтрЗаменить(Рез,"М","M");
    Рез = СтрЗаменить(Рез,"Н","N");
    Рез = СтрЗаменить(Рез,"О","O");
    Рез = СтрЗаменить(Рез,"П","P");
    Рез = СтрЗаменить(Рез,"Р","R");
    Рез = СтрЗаменить(Рез,"С","S");
    Рез = СтрЗаменить(Рез,"Т","T");
    Рез = СтрЗаменить(Рез,"У","U");
    Рез = СтрЗаменить(Рез,"Ф","F");
    Рез = СтрЗаменить(Рез,"Х","H");
    Рез = СтрЗаменить(Рез,"Ч","CH");
    Рез = СтрЗаменить(Рез,"Ш","SH");
    Рез = СтрЗаменить(Рез,"Щ","SCH");
    Рез = СтрЗаменить(Рез,"Ъ","");
    Рез = СтрЗаменить(Рез,"Ь","");
    Рез = СтрЗаменить(Рез,"Ы","I");
    Рез = СтрЗаменить(Рез,"Ц","C");
    Рез = СтрЗаменить(Рез,"Э","E");
    Рез = СтрЗаменить(Рез,"Ю","YU");
    Рез = СтрЗаменить(Рез,"Я","YA");
    Рез = СтрЗаменить(Рез,"Й","I");
    Возврат(Рез);
КонецФункции

Можно красивее сделать...
   Kudryashka
 
8 - 06.05.04 - 13:06
(7) вариант неплохой, просто я думала что есть и другие пути, не перебирая каждую букву. просто я о них не знаю или недодумалась. значит нету..  нет, такие пути я знаю, но там проблемы с двойными буквами.. а вот чтобы и буквы не перебирая и проблем с двойными не было..   наверное слишком многого хочу :))
   Kudryashka
 
10 - 06.05.04 - 13:19
примерно такое:

Функция Транслит(Стр)
Рус = "абв.."
Лат = "abv.."
КоличБукв = СтрДлина(Рус);
Для А = 1 по КоличБукв цикл
Русск = Сред(Рус,А,1);
Латин = Сред(Лат,А,1);
Стр = СтрЗаменить(Стр,Русск,Латин)
КонецЦикла;
Возврат Стр
КонецФункции

но это только для простых букв
 
 
   GrayT
 
11 - 06.05.04 - 13:20
Полный изврат :)))))
Функция Транслит(Стр)
    СтрРус="АБВГД...Ю...";
    стрЕнг="ABVGD...YU...";
    КолСим="11111...2...";
    Дл = СтрДлина(СтрРус);
    Для сч = 1 по Дл Цикл
        Стр = СтрЗаменить(Стр, Сред(СтрРус,сч,1), Сред(СтрЕнг,сч, Число(Сред(КолСим,сч,1))));
    КонецЦикла;
    Возврат Стр
КонецФункции//Транслит


Список тем форума
  Рекламное место пустует
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует