Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 апр 2024, 00:31

Печать на фискальном регистраторе

Автор GRADUS, 03 апр 2014, 16:17

0 Пользователей и 1 гость просматривают эту тему.

GRADUS

Есть конфигурация БП 3.0
Есть фиск. рег. Штрих-М
Есть ПКО.

Какие есть способы изменить:
1) Сам макет печати, как в рознице для РКО и ПКО
2) Добавить логотип в самый верх чека

Кто подскажет?

MuI_I_Ika

Просто вставить в макет и забыть.

GRADUS

Цитата: MuI_I_Ika от 03 апр 2014, 16:20
Просто вставить в макет и забыть.

Где взять макет?

ОбщиеПараметры = Новый Массив();
ОбщиеПараметры.Добавить(0);                      //  1 - Тип чека
ОбщиеПараметры.Добавить(Истина);                 //  2 - Признак фискального чека
ОбщиеПараметры.Добавить(Неопределено);           //  3 - Печать на подкладном документе
ОбщиеПараметры.Добавить(Объект.СуммаДокумента);  //  4 - Сумма по чеку без скидок/наценок
ОбщиеПараметры.Добавить(Объект.СуммаДокумента);  //  5 - Сумма по чеку с учетом всех скидок/наценок
ОбщиеПараметры.Добавить("");                     //  6 - Номер дисконтной карты
ОбщиеПараметры.Добавить("");                     //  7 - Текст шапки
ОбщиеПараметры.Добавить("");                     //  8 - Текст подвала
ОбщиеПараметры.Добавить(0);                      //  9 - Номер смены (для копии чека)
ОбщиеПараметры.Добавить(0);                      // 10 - Номер чека (для копии чека)
ОбщиеПараметры.Добавить(0);                      // 11 - Номер документа (для копии чека)
ОбщиеПараметры.Добавить(0);                      // 12 - Дата документа (для копии чека)
ОбщиеПараметры.Добавить("");                     // 13 - Имя кассира (для копии чека)
ОбщиеПараметры.Добавить("");                     // 14 - Пароль кассира
ОбщиеПараметры.Добавить(0);                      // 15 - Номер шаблона
ОбщиеПараметры.Добавить("");                     // 16 - Наименование секции форматирования шапки
ОбщиеПараметры.Добавить("");                     // 17 - Наименование секции форматирования подвала

ВходныеПараметры.Добавить(ТаблицаТоваров);
ВходныеПараметры.Добавить(ТаблицаОплат);
ВходныеПараметры.Добавить(ОбщиеПараметры);

// Печатаем чек.
Результат = МенеджерОборудованияКлиент.ВыполнитьКоманду(
ИдентификаторУстройства,
"PrintReceipt",
ВходныеПараметры,
ВыходныеПараметры);


При печати макет не передается, по идее он должен 18-ым пунктом идти. Массив в определенном формате.

MuI_I_Ika

Значит надо смотреть функцию МенеджерОборудованияКлиент.ВыполнитьКоманду()

где там макет появляется.

GRADUS

Функция ВыполнитьКоманду(Идентификатор, Команда, ВходныеПараметры, ВыходныеПараметры, Таймаут = -1) Экспорт

Результат = Ложь;

// Поиск подключенного устройства
ПодключенноеУстройство = ПолучитьПодключенноеУстройство(глПодключаемоеОборудование.ПараметрыПодключенияПО,
                                                        Идентификатор);

Если ПодключенноеУстройство <> Неопределено Тогда
// Получение объекта драйвера
ОбъектДрайвера = ПолучитьОбъектДрайвера(ПодключенноеУстройство.ОбработчикДрайвера);
Если ОбъектДрайвера = Неопределено Тогда
//Сообщить об ошибке, что не удалось загрузить драйвер.
ВыходныеПараметры = Новый Массив();
ОписаниеОшибки = НСтр("ru = '""%Наименование%"": Не удалось загрузить драйвер устройства.
                            |Проверьте, что драйвер корректно установлен и зарегистрирован в системе.'");
ОписаниеОшибки = СтрЗаменить(ОписаниеОшибки, "%Наименование%", ПодключенноеУстройство.Наименование);
ВыходныеПараметры.Добавить(999);
ВыходныеПараметры.Добавить(ОписаниеОшибки);

Иначе
Параметры            = ПодключенноеУстройство.Параметры;
ПараметрыПодключения = ПодключенноеУстройство.ПараметрыПодключения;
ОбработчикДрайвера   = ПодключенноеУстройство.ОбработчикДрайвера;

// Вызов метода выполнения команды у обработчика
Результат = МенеджерОборудованияКлиентСерверПереопределяемый.ПолучитьОбработчикаДрайвера(ОбработчикДрайвера).ВыполнитьКоманду(Команда,
                                                                             ВходныеПараметры,
                                                                             ВыходныеПараметры,
                                                                             ОбъектДрайвера,
                                                                             Параметры,
                                                                             ПараметрыПодключения);
КонецЕсли;
Иначе
//Сообщить об ошибке, что устройство не подключено.
ВыходныеПараметры = Новый Массив();
ТекстСообщения = НСтр("ru = 'Устройство не подключено.
|Перед выполнением операции устройство должно быть подключено.'");
ВыходныеПараметры.Добавить(999);
ВыходныеПараметры.Добавить(ТекстСообщения);
КонецЕсли;

Возврат Результат;

КонецФункции

Добавлено: 03 апр 2014, 16:52


А вот сама процедура которая должна "разбирать" чек на кусочки и скармливать фискальнику.

Функция ПечатьЧека(ОбщийМодульОборудования, ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры, ВывестиСообщениеПользователю = Ложь) Экспорт

ТаблицаНоменклатуры = ВходныеПараметры[0];
ТаблицаОплат        = ВходныеПараметры[1];
ОбщиеПараметры      = ВходныеПараметры[2];
                 
Результат  = Истина;
// Открываем чек
Результат = ОбщийМодульОборудования.ОткрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения,
                       ОбщиеПараметры[0] = 1, ОбщиеПараметры[1], ВыходныеПараметры);

// Печатаем строки чека   
Если Результат Тогда
ОшибкаПриПечатиСтроки = Ложь;
// Печатаем строки чека
Для ИндексМассива = 0 По ТаблицаНоменклатуры.Количество() - 1 Цикл
Наименование  = ТаблицаНоменклатуры[ИндексМассива][0].Значение;
Количество    = ТаблицаНоменклатуры[ИндексМассива][5].Значение;
Цена          = ТаблицаНоменклатуры[ИндексМассива][4].Значение;
ПроцентСкидки = ТаблицаНоменклатуры[ИндексМассива][8].Значение;
Сумма         = ТаблицаНоменклатуры[ИндексМассива][9].Значение;
НомерСекции   = ТаблицаНоменклатуры[ИндексМассива][3].Значение;
СтавкаНДС     = ТаблицаНоменклатуры[ИндексМассива][12].Значение;

Если НЕ ОбщийМодульОборудования.НапечататьФискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,
   Наименование, Количество, Цена, ПроцентСкидки, Сумма,
   НомерСекции, СтавкаНДС, ВыходныеПараметры) Тогда
ОшибкаПриПечатиСтроки = Истина;   
Прервать;
КонецЕсли;

КонецЦикла;

Если НЕ ОшибкаПриПечатиСтроки Тогда
  // Закрываем чек
Результат = ОбщийМодульОборудования.ЗакрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТаблицаОплат, ВыходныеПараметры);
Иначе
Результат = Ложь;
КонецЕсли;

КонецЕсли;

Возврат Результат;

КонецФункции


Ни намека на использования макетов.

И нет вызова печати нефискальной строки.
Добавлено: 03 апр 2014, 16:59


По идее что то такое должно быть:

// Печать шапки чека
Для Каждого СтрокаШапки Из МассивШапкаЧека Цикл
Если НЕ ОбщийМодульОборудования.НапечататьНефискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,
                                     СтрокаШапки, ВыходныеПараметры) Тогда
Прервать;
КонецЕсли;
КонецЦикла;


Но этого в БП 3.0 нет.

markgenuine

При печати на фискальном регистраторе по моему не бывает макетов, там по моему секции и как то эти секции заполняются.

GRADUS

Цитата: markgenuine от 03 апр 2014, 21:17
При печати на фискальном регистраторе по моему не бывает макетов, там по моему секции и как то эти секции заполняются.

Серьезно? Ну вот, чисто как пример.

{"#",e603c0f2-92fb-4d47-8f38-a44a381cf235,
{1,
{17,
{1,"ИмяОбъекта",
{"Pattern",
{"S"}
},"",0},
{2,"ИмяМакета",
{"Pattern",
{"S"}
},"",0},
{3,"ИмяКолонки",
{"Pattern",
{"S"}
},"",0},
{4,"Префикс",
{"Pattern",
{"S"}
},"",0},
{5,"Постфикс",
{"Pattern",
{"S"}
},"",0},
{6,"Идентификатор",
{"Pattern",
{"S"}
},"",0},
{7,"ТипЭлемента",
{"Pattern",
{"S"}
},"",0},
{8,"Выравнивание",
{"Pattern",
{"S"}
},"",0},
{9,"РазмещениеТекста",
{"Pattern",
{"N",1,0,0}
},"",0},
{10,"Ширина",
{"Pattern",
{"N",5,0,0}
},"",0},
{11,"Формат",
{"Pattern",
{"S"}
},"",0},
{12,"Вычислять",
{"Pattern",
{"B"}
},"",0},
{13,"ПустоеЗначение",
{"Pattern",
{"#",280f5f0e-9c8a-49cc-bf6d-4d296cc17a63},
{"B"},
{"S"},
{"D","D"},
{"N",10,0,0}
},"",0},
{14,"СтрокаПустоеЗначение",
{"Pattern",
{"S"}
},"",0},
{15,"ОписаниеТипа",
{"Pattern",
{"#",f5c65050-3bbb-11d5-b988-0050bae0a95d}
},"",0},
{16,"Элемент",
{"Pattern",
{"S"}
},"",0},
{17,"ИндексКартинки",
{"Pattern",
{"N",10,0,0}
},"",0}
},
{2,17,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,
{1,4,
{2,0,17,
{"S","Документ.ПриходныйКассовыйОрдер"},
{"S","ПоляШаблонаШапка"},
{"S",""},
{"S",""},
{"S",""},
{"S","ID7c3d1e0a_56c5_41b6_a338_48a6253f6285"},
{"S","ОбластьЧека"},
{"S",""},
{"N",0},
{"N",0},
{"S",""},
{"B",0},
{"U"},
{"S",""},
{"#",f5c65050-3bbb-11d5-b988-0050bae0a95d,
{"Pattern"}
},
{"S","Шапка"},
{"N",0},1,
{1,5,
{2,1,17,
{"S",""},
{"S",""},
{"S",""},
{"S",""},
{"S",""},
{"S","ID1c345931_6e77_491f_b8ed_88948cb4fc46"},
{"S","СтрокаТекста"},
{"S","Центр"},
{"N",1},
{"N",36},
{"S",""},
{"B",0},
{"S",""},
{"S",""},
{"#",f5c65050-3bbb-11d5-b988-0050bae0a95d,
{"Pattern",
{"S",50,1}
}
},
{"S","------------------------------------------------------------------------------------------------------------------------------------"},
{"N",2},0},
{2,2,17,
{"S",""},
{"S",""},
{"S","СсылкаОрганизацияНаименованиеПолное"},
{"S",""},
{"S",""},
{"S","IDa419407c_293d_450d_b536_608bbd538c00"},
{"S","СтрокаДанных"},
{"S","Центр"},
{"N",1},
{"N",36},
{"S",""},
{"B",0},
{"S",""},
{"S",""},
{"#",f5c65050-3bbb-11d5-b988-0050bae0a95d,
{"Pattern",
{"S"}
}
},
{"S","%%Ссылка.Организация.НаименованиеПолное%%"},
{"N",1},0},
{2,3,17,
{"S",""},
{"S",""},
{"S",""},
{"S",""},
{"S",""},
{"S","ID66e5e828_4d03_4af3_8967_549b64ab1262"},
{"S","СтрокаТекста"},
{"S","Центр"},
{"N",1},
{"N",36},
{"S",""},
{"B",0},
{"S",""},
{"S",""},
{"#",f5c65050-3bbb-11d5-b988-0050bae0a95d,
{"Pattern",
{"S",50,1}
}
},
{"S","------------------------------------------------------------------------------------------------------------------------------------"},
{"N",2},0},
{2,4,17,
{"S",""},
{"S",""},
{"S","СсылкаПринятоОт"},
{"S","Принято от: "},
{"S",""},
{"S","ID315337ce_511b_496f_aa24_76a92d8a6325"},
{"S","СтрокаДанных"},
{"S","Лево"},
{"N",0},
{"N",36},
{"S",""},
{"B",0},
{"S",""},
{"S",""},
{"#",f5c65050-3bbb-11d5-b988-0050bae0a95d,
{"Pattern",
{"S"}
}
},
{"S","%%Ссылка.ПринятоОт%%"},
{"N",1},0},
{2,5,17,
{"S",""},
{"S",""},
{"S","СсылкаОснование"},
{"S","Основание: "},
{"S",""},
{"S","ID35cdf123_daa4_4f4b_99ac_52391f450ac0"},
{"S","СтрокаДанных"},
{"S","Лево"},
{"N",0},
{"N",36},
{"S",""},
{"B",0},
{"S",""},
{"S",""},
{"#",f5c65050-3bbb-11d5-b988-0050bae0a95d,
{"Pattern",
{"S"}
}
},
{"S","%%Ссылка.Основание%%"},
{"N",1},0}
}
},
{2,6,17,
{"S","Документ.ПриходныйКассовыйОрдер"},
{"S","ПоляШаблонаТЧ"},
{"S",""},
{"S",""},
{"S",""},
{"S","IDe582042f_081f_4334_8f1c_aac37ebad08e"},
{"S","ОбластьЧека"},
{"S",""},
{"N",0},
{"N",0},
{"S",""},
{"B",0},
{"U"},
{"S",""},
{"#",f5c65050-3bbb-11d5-b988-0050bae0a95d,
{"Pattern"}
},
{"S","Табличная часть ""Расшифровка платежа"" (Шапка)"},
{"N",0},1,
{1,2,
{2,7,17,
{"S",""},
{"S",""},
{"S","РасшифровкаПлатежаДокументРасчетовСКонтрагентом"},
{"S","Документ расчетов: "},
{"S",""},
{"S","ID3fa70066_55bd_41cd_914a_81e809bb9ca7"},
{"S","СтрокаДанных"},
{"S","Лево"},
{"N",0},
{"N",36},
{"S",""},
{"B",0},
{"U"},
{"S",""},
{"#",f5c65050-3bbb-11d5-b988-0050bae0a95d,
{"Pattern",
{"#",0132338f-c229-42f6-a0ea-5482928a149c},
{"#",055a0018-7453-4b7b-b0a6-4b9200a2e7d0},
{"#",7c283e3f-ddbf-43f8-bcb3-e3289453dab8}
}
},
{"S","%%РасшифровкаПлатежа.ДокументРасчетовСКонтрагентом%%"},
{"N",1},0},
{2,8,17,
{"S",""},
{"S",""},
{"S","РасшифровкаПлатежаСуммаПлатежа"},
{"S","="},
{"S"," руб. "},
{"S","IDeadb4688_3fca_4db0_a309_36cc1dcacf29"},
{"S","СтрокаДанных"},
{"S","Право"},
{"N",1},
{"N",36},
{"S","ЧДЦ=2; ЧЦ=15; ЧГ=0"},
{"B",0},
{"N",0},
{"S",""},
{"#",f5c65050-3bbb-11d5-b988-0050bae0a95d,
{"Pattern",
{"N",15,2,1}
}
},
{"S","%%РасшифровкаПлатежа.СуммаПлатежа%%"},
{"N",1},0}
}
},
{2,9,17,
{"S","Документ.ПриходныйКассовыйОрдер"},
{"S","ПоляШаблонаТЧ"},
{"S",""},
{"S",""},
{"S",""},
{"S","IDc678733b_4d4d_4bb8_9620_eac426082872"},
{"S","ОбластьЧека"},
{"S",""},
{"N",0},
{"N",0},
{"S",""},
{"B",0},
{"U"},
{"S",""},
{"#",f5c65050-3bbb-11d5-b988-0050bae0a95d,
{"Pattern"}
},
{"S","Табличная часть ""Расшифровка платежа"" (Подвал)"},
{"N",0},0},
{2,10,17,
{"S","Документ.ПриходныйКассовыйОрдер"},
{"S","ПоляШаблонаШапка"},
{"S",""},
{"S",""},
{"S",""},
{"S","ID71c1f165_8ddd_4546_ace9_fe8725da26ec"},
{"S","ОбластьЧека"},
{"S",""},
{"N",0},
{"N",0},
{"S",""},
{"B",0},
{"U"},
{"S",""},
{"#",f5c65050-3bbb-11d5-b988-0050bae0a95d,
{"Pattern"}
},
{"S","Подвал"},
{"N",0},1,
{1,2,
{2,11,17,
{"S",""},
{"S",""},
{"S","СсылкаОтветственный"},
{"S","Кассир: "},
{"S",""},
{"S","ID66efa4cf_8353_4e35_b49e_d2cb4ad6101a"},
{"S","СтрокаДанных"},
{"S","Лево"},
{"N",0},
{"N",36},
{"S",""},
{"B",0},
{"#",b911107d-b4b0-4337-a0e9-549e4f5dfbb8,34:00000000000000000000000000000000},
{"S",""},
{"#",f5c65050-3bbb-11d5-b988-0050bae0a95d,
{"Pattern",
{"#",b911107d-b4b0-4337-a0e9-549e4f5dfbb8}
}
},
{"S","%%Ссылка.Ответственный%%"},
{"N",1},0},
{2,12,17,
{"S",""},
{"S",""},
{"S","СсылкаВТомЧислеНДС"},
{"S","В т.ч. НДС: "},
{"S",""},
{"S","IDbde636d3_d8b5_4045_9bf4_bc0b2883cc7f"},
{"S","СтрокаДанных"},
{"S","Лево"},
{"N",0},
{"N",36},
{"S",""},
{"B",0},
{"S",""},
{"S",""},
{"#",f5c65050-3bbb-11d5-b988-0050bae0a95d,
{"Pattern",
{"S",150,1}
}
},
{"S","%%Ссылка.ВТомЧислеНДС%%"},
{"N",1},0}
}
}
},-1,12}
}
}


markgenuine

Точно сам не скажу, потому что не связывался с фискальным регистратором, связывался только с принтером чеков.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск