Помогите с выводом на печать из 1С !

  • Автор темы Автор темы chernysh
  • Дата начала Дата начала
C

chernysh

Доброго времени суток ! такая проблема при формировании расчётных листов,формируется временный файлик с названием tmpprn.txt, так вот, при выводе на печать печатуются цифры нормально, а вместо русского шрифта иероглифы ! В коде программы стоит КодоваяСтраница(0) при изменении параметра с 0 на 1 тоже самое ! сам принтер матричный Epson fx-880. Кодовая страница настроена правильно, из каких либо других приложений печатает отлично ! Ещё один ньюанс, при отправке расчетных листов на лезерный принтер все ОК ! ребята помогите ! ! ![codebox]Перем Папка,Файл,Буфер;
//-----------------------------------------------------------
Процедура Выполнить()
Перем Прн;
Если фПросмотр = 1 Тогда
Буфер.Показать("Файл для печати",фФайл);
Иначе
Буфер.Записать(фФайл);
Прн = СписПрн.ПолучитьЗначение(СписПрн.ТекущаяСтрока());
ФС.КопироватьФайл(фФайл,Прн,0);
Если Найти(Файл,"tmpprn.txt") <> 0 Тогда
ФС.УдалитьФайл(фФайл);
КонецЕсли;
КонецЕсли;
Форма.Закрыть();
КонецПроцедуры
//-----------------------------------------------------------
Функция ПолучитьПутьПринтера()
Если СписПрн.ТекущаяСтрока() = 0 Тогда
Возврат("");
КонецЕсли;
Возврат(СписПрн.ПолучитьЗначение(СписПрн.ТекущаяСтрока()));
КонецФункции
//-----------------------------------------------------------
Процедура ПриОткрытии()
СпрПрн = СоздатьОбъект("Справочник.Принтеры");
СпрПрн.ПорядокКодов();
СпрПрн.ВыбратьЭлементы();
Сч = 0;
ПоУм = 0;
Пока СпрПрн.ПолучитьЭлемент() = 1 Цикл
Сч = Сч + 1;
СписПрн.ДобавитьЗначение(СокрЛП(СпрПрн.Путь),СпрПрн.Наименование);
Если СпрПрн.ПоУмолчанию = Перечисление.ДаНет.Да Тогда
ПоУм = Сч;
КонецЕсли;
КонецЦикла;
Если СписПрн.РазмерСписка() > 0 Тогда
Если ПоУм <> 0 Тогда
СписПрн.ТекущаяСтрока(ПоУм);
Иначе
СписПрн.ТекущаяСтрока(1);
КонецЕсли;
КонецЕсли;
Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
Буфер = Форма.Параметр.ПолучитьЗначение(1);
Папка = Форма.Параметр.ПолучитьЗначение(2);
Если ПустоеЗначение(Папка) = 1 Тогда
Папка = КаталогВременныхФайлов();
КонецЕсли;
Файл = Форма.Параметр.ПолучитьЗначение(3);
Если ПустоеЗначение(фФайл) = 1 Тогда
Файл = "tmpprn.txt";
КонецЕсли;
фФайл = Папка + Файл;
Иначе
Буфер = СоздатьОбъект("Текст");
Буфер.КодоваяСтраница(1);
Папка = КаталогВременныхФайлов();
Файл = "tmpprn.txt";
фФайл = Папка + Файл;
КонецЕсли;
КонецПроцедуры
//-----------------------------------------------------------
Процедура ПриНачалеВыбораЗначения(Элем,ФСО)
Если Элем = "фФайл" Тогда
ФСО = 0;
Если ФС.ВыбратьФайл(0,Файл,Папка,"Выберите файл", "Текст (*.txt) |*.txt","txt") = 1 Тогда
фФайл = Папка + Файл;
Буфер.Открыть(фФайл);
КонецЕсли;
КонецЕсли;
КонецПроцедуры[/codebox]
 
Дровишки эпсоновские походу. как вариант поправить кодовые страницы в регистре - может поможет. Через regedit ищешь c_1251.nls, сохраняешь ветку реестра и меняешь от 1250 до 1258 все ссылки на файлы кодировки на c_1251.nls. Перезагружаешся. Если есть косяк - восстанавливаешь ветку реестра из сделаной раньше копии. Если не поможет - тогда только дрова!
З.Ы. По умолчанию очень часто ХР считает что россия это вьетнам.
 
Дровишки эпсоновские походу. как вариант поправить кодовые страницы в регистре - может поможет. Через regedit ищешь c_1251.nls, сохраняешь ветку реестра и меняешь от 1250 до 1258 все ссылки на файлы кодировки на c_1251.nls. Перезагружаешся. Если есть косяк - восстанавливаешь ветку реестра из сделаной раньше копии. Если не поможет - тогда только дрова!
З.Ы. По умолчанию очень часто ХР считает что россия это вьетнам.

самое интересное что дрова стоят родные с диска, я скачивал ещё с инета, такая же херня ! а на счёт реестра я попробую, позже отпишу ! А так спасибо !
 
Если мне не изменяет склероз, матричные принтеры настраиваются для печати кириллицы из ДОСа переключателями на принтере. Из винды все печатается графикой.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab