Имя: Пароль:
1C
1С v8
Не печатается строка в Штрих-М.
0 байт
 
31.01.13
11:58
Коллеги, здравствуйте, не могу одолеть проблему почему-то при пробитии чека из 1с:Розница сильно дописанная не пропечатывается наименования товаров. Зашел в отладку увидел что наименование посылается на печать?


   текНаименование = Наименование;
   Пока СтрДлина(текНаименование) > 0 Цикл
       СтрокаДляПечати = СокрЛП(Лев( текНаименование, МаксДлинаСтроки ));
       _ПечатьСтроки(СтрокаДляПечати);
       текНаименование = СокрЛП(Прав( текНаименование, СтрДлина(текНаименование) - СтрДлина(СтрокаДляПечати)));
   КонецЦикла;




Процедура _ПечатьСтроки(СтрокаДляПечати = "", ИспользоватьЧЛ = Истина, ИспользоватьКЛ = Ложь, УвеличитьШрифт = Ложь, Шрифт = 4) // Boke 29.10.2010  РВМ 20110402
   ФР.Пароль =  ПарольКассира;
   ФР.СтрокаДляПечати = СтрокаДляПечати;
   ФР.ИспользоватьЧековуюЛенту = ИспользоватьЧЛ;
   ФР.ИспользоватьОперационныйЖурнал = ИспользоватьКЛ;
   // Boke 29.10.2010 + {
   Если УвеличитьШрифт Тогда
       ФР.ТипШрифта = Шрифт;  //РВМ 20110402
       ФР.ПечатьСтрокиДаннымШрифтом();
   Иначе
       
       ФР.ПечатьСтроки();
   КонецЕсли;
   // Boke 29.10.2010 + }

   _ПолучитьОшибкуОборудования();
   //_ВыполнитьКоманду("ПечатьСтроки");
КонецПроцедуры
1 байт
 
31.01.13
12:00
отрабатывает этот метод ФР.ПечатьСтроки();
2 байт
 
31.01.13
12:01
может у кого есть какие соображения?
3 байт
 
31.01.13
12:08
может метод не тот? Кто знает?
4 Вяйнемейнен
 
31.01.13
12:48
Русскоязычным синтаксисом не пользовался, но так работает.

ФискальныйРегистратор.Password = Число(глПарольСистемногоАдминистратора);
ФискальныйРегистратор.UseReceiptRibbon = НаЧеке;
ФискальныйРегистратор.UseJournalRibbon = НаЛенте;
ФискальныйРегистратор.StringForPrinting = Стр;
ФискальныйРегистратор.PrintString();

Если строка не пустая, в ней нет непечатных символов и в отладчике 1С все нормально, то включи лог драйвера ФР и посмотри принимает ли он физически команды.
5 байт
 
31.01.13
13:15
(4) смущает то что все остальное он печатает.
6 Шапокляк
 
31.01.13
13:22
(0) Смущают два момента:
  Пока СтрДлина(текНаименование) > 0 Цикл
       СтрокаДляПечати = СокрЛП(Лев( текНаименование, МаксДлинаСтроки ));
       _ПечатьСтроки(СтрокаДляПечати);
       текНаименование = СокрЛП(Прав( текНаименование, СтрДлина(текНаименование) - СтрДлина(СтрокаДляПечати)));
   КонецЦикла; //этот цикл когда-то заканчивается? Впрочем, на суть вопроса не влияет.
и МаксДлина строки - это не 0 случайно, может, где-то сбрасывается?
7 Шапокляк
 
31.01.13
13:26
+(6) извиняюсь, про обрезание строки сразу не въехала
8 байт
 
31.01.13
14:15
(6) обрезает строку по максимальной длине и выводит.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс