Saboter
Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Нужно было написать код, который из документа "Отчет о розничных продажах" печатал на принтер документов "FPrint 02", произвольный текст (в моем случае - это печать в виде чека, но по всем товарам за день). В программировании на 8 я не силен, поэтому код "выдерал" из документа "Чек ККМ". Затем создал кнопку на форме, в коде которой вызывается процедура из Модуля объекта... Вот она: [more = Код в модуле объекта...]Процедура ПечатьОтчетаЗаДень() Экспорт Результат = Истина; Ответ = ""; МассивФР = ПолучитьСерверТО().ПолучитьСписокУстройств( Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор, КассаККМ); КоличествоФР = МассивФР.Количество(); ФР = МассивФР[0]; ОшибкаТО = Перечисления.ТООшибкиОбщие.ПустаяСсылка(); ДокументЧекККМ = Новый ТекстовыйДокумент(); МассивСтрокЧека = Новый Массив(); // Получение макета МакетЧекаККМ = Документы.ОтчетОРозничныхПродажах.ПолучитьМакет("ОтчетЗаДень"); ОбластьШапкаЧека = МакетЧекаККМ.ПолучитьОбласть("ШапкаЧека" + КассаККМ.ШиринаЛенты); ОбластьТелоЧека = МакетЧекаККМ.ПолучитьОбласть("ТелоЧека" + КассаККМ.ШиринаЛенты); ОбластьПодвалЧека = МакетЧекаККМ.ПолучитьОбласть("ПодвалЧека" + КассаККМ.ШиринаЛенты); Выборка = ЭтотОбъект.Ссылка; ОбластьШапкаЧека.Параметры.Заголовок = ОбщегоНазначения.СформироватьЗаголовокДокумента(Выборка, ); ОбластьШапкаЧека.Параметры.Организация = Строка(Выборка.Организация); ОбластьШапкаЧека.Параметры.ИНН = "ИНН: " + Выборка.Организация.ИНН; ДокументЧекККМ.Вывести(ОбластьШапкаЧека); ИтогоПоДокументу = 0; Для Каждого ТекСтрока Из Товары Цикл СуммаТовара = ТекСтрока.Количество*ТекСтрока.Цена; ИтогоПоДокументу = ИтогоПоДокументу + СуммаТовара; ОбластьТелоЧека.Параметры.НаименованиеТовара = СокрЛП(ТекСтрока.Номенклатура.ПолноеНаименование()); ОбластьТелоЧека.Параметры.КоличествоЦена = Формат(ТекСтрока.Количество, "ЧЦ=17; ЧДЦ=0; ЧРД=.; ЧН=; ЧГ=0") + "(" + ТекСтрока.ЕдиницаИзмерения + ")" + " х " + Формат(ТекСтрока.Цена, "ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧН=; ЧГ=0") + " = " + Формат(ТекСтрока.Сумма, "ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧН=; ЧГ=0"); ДокументЧекККМ.Вывести(ОбластьТелоЧека); КонецЦикла; ДокументЧекККМ.УдалитьСтроку(ДокументЧекККМ.КоличествоСтрок()); ОбластьПодвалЧека.Параметры.Итог = Формат(ИтогоПоДокументу, "ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧН=; ЧГ=0"); ДокументЧекККМ.Вывести(ОбластьПодвалЧека); Если ДокументЧекККМ.КоличествоСтрок() > 0 Тогда Для Индекс = 1 По ДокументЧекККМ.КоличествоСтрок() Цикл МассивСтрокЧека.Добавить(ДокументЧекККМ.ПолучитьСтроку(Индекс)); КонецЦикла; // Открыть нефискальный чек ОшибкаТО = ПолучитьСерверТО().ОткрытьЧек(ФР, ПолучитьСерверТО().ПолучитьПарольКассираККМ(), Ложь, 10, 1, Ложь); Если Не ЗначениеЗаполнено(ОшибкаТО) Тогда // Напечатать строки полученного из макета чека ОшибкаТО = ПолучитьСерверТО().ПечатьТекста(ФР, МассивСтрокЧека, КассаККМ.ШиринаЛенты); // Закрыть чек ОшибкаТО = ПолучитьСерверТО().ЗакрытьЧек(ФР, 0, 0); КонецЕсли; КонецЕсли; КонецПроцедуры[/more] Но проблема, данный отчет, по непонятным мне причинам, печатается по своему желанию )), то распечатывается, то нет. Не могу понять в чем проблема. Может дело в состоянии принтера документов? Подскажите плз. |