Имя: Пароль:
1C
 
Фискальный регистратор 5 платформа
0 Начинающий Восьмерочн
 
23.01.25
14:27
Возникла необходимость печатать на фр нефискальный документ, при этом нужно чтобы обрезчик обрезал его как обычный фискальный документ.На тестовом аппарате что у меня есть такого добиться не удалось, в нете разная информация кто то пишет, что обрезчик должен выполнять свою функцию после инструкции fptr.endNonfiscalDocument();
Данный код не на 1с, но сути это не меняет.Собственно вопрос, кто нибудь печатает не фискальные документы на ФР чтобы обрезчик их отрезал.
1 Garykom
 
гуру
23.01.25
14:33
хоть бы марку и модель ККТ написал...
2 Начинающий Восьмерочн
 
23.01.25
14:40
(1) АТОЛ FPrint-22ПТК,версия: 5.8.1, ФИСК.
3 arsik
 
гуру
23.01.25
14:50
(0) Непонятно, что не получается то?  ТЫ методами 1С пользуешься или напрямую?
4 arsik
 
гуру
23.01.25
15:13
Если методами БПО, то достаточно в текст документа вставит ь [отрезка] или [cut]
5 Garykom
 
гуру
23.01.25
15:25
Вот это не производит отрезку?

fptr.beginNonfiscalDocument();

fptr.setParam(fptr.LIBFPTR_PARAM_TEXT, "Проверка");
fptr.printText;

fptr.setParam(fptr.LIBFPTR_PARAM_TEXT, ""+Символ(22)+Символы.ПС);
fptr.printText;

fptr.setParam(fptr.LIBFPTR_PARAM_PRINT_FOOTER, False);
fptr.endNonfiscalDocument;
6 Начинающий Восьмерочн
 
23.01.25
16:31
(5) Сейчас проверю.
7 Начинающий Восьмерочн
 
23.01.25
16:32
(4) Cut() не работает в 5 платформе.
8 arsik
 
гуру
23.01.25
16:39
(7) Так я про БПО. БПО само уже по этому словосочетанию делит текстовое содержимое на части с обрезкой.
Как по твоему реализована печать слип чеков эквайринга с обрезкой?
9 Начинающий Восьмерочн
 
23.01.25
16:51
(5) В моем случае ни так
fptr.setParam(AtolConstants.LIBFPTR_PARAM_TEXT, "" + "\"\r\n");
            fptr.setParam(AtolConstants.LIBFPTR_PARAM_PRINT_FOOTER, false);
            fptr.printText();
fptr.endNonfiscalDocument();
ни так
fptr.setParam(AtolConstants.LIBFPTR_PARAM_TEXT, "" + "\"\"\r\n");
            fptr.setParam(AtolConstants.LIBFPTR_PARAM_PRINT_FOOTER, false);
            fptr.printText();
fptr.endNonfiscalDocument();
не обрезает
10 Garykom
 
гуру
23.01.25
16:53
(9) "\"\r\n" <> ""+Символ(22)+Символы.ПС
11 Начинающий Восьмерочн
 
23.01.25
16:52
(3) Это C#, получается что напрямую.
12 Garykom
 
гуру
23.01.25
16:56
(11) ну так вставь уже в текст символ с кодом ASCII 22

PS
и ты какую то чушь городишь в (9)

LIBFPTR_PARAM_PRINT_FOOTER нужен для endNonfiscalDocument(), хотя не обязателен, по умолчанию true
а LIBFPTR_PARAM_TEXT для printText()

фуйли у тебя каша?
13 arsik
 
гуру
23.01.25
16:56
(11) А зачем? Или вы вообще не из 1С с оборудованием работаете?
14 Начинающий Восьмерочн
 
23.01.25
16:57
(13) Ага не из 1с.
15 Garykom
 
гуру
23.01.25
17:03
Есть два варианта с принудительной отрезкой:
1. Нативный драйвер ккт атол ее делает встретив Символ(22) в тексте
2. Не делает и это фича интеграционной компоненты 1С (через БПО), которая встреченный Символ(22)
или "в текст документа вставить [отрезка] или [cut]"
переводит в
fptr.runCommand();
https://integration.atol.ru/api/?csharp#vypolnenie-komandy
но какая именно команда хз, ищи сам
16 Garykom
 
гуру
23.01.25
17:00
17 Начинающий Восьмерочн
 
23.01.25
17:05
(12)  fptr.setParam(AtolConstants.LIBFPTR_PARAM_TEXT,""+ (char)22 + Environment.NewLine);
            fptr.printText();

            fptr.setParam(AtolConstants.LIBFPTR_PARAM_PRINT_FOOTER, false);

            fptr.endNonfiscalDocument();
Так тоже не обрезает
18 Garykom
 
гуру
23.01.25
17:07
19 Начинающий Восьмерочн
 
23.01.25
17:10
(18) Этот вариант видел, но не хочется пустые чеки генерить,точнее с пустой суммой стремно как то пока что , мало ли чем аукнется.
20 Garykom
 
гуру
23.01.25
17:10
(17) и когда новый beginNonfiscalDocument(); тоже не отрезает?
суть что сверху у тебя уже есть отрезка

по логике надо начать и завершить нефискальный, обязательно с выводом текста
и тогда отрежет
просто завершить без начала - нет смысла
21 Garykom
 
гуру
23.01.25
17:11
(19) причем тут сумма
короче или прошивка и драйвер кривые
или руки
22 Garykom
 
гуру
23.01.25
17:12
а команда отрезки 100% есть в прошивке
просто в апи не вынесена, надо код знать для runCommand()
23 Начинающий Восьмерочн
 
23.01.25
17:15
(20)  beginNonfiscalDocument();  не отрезает в том то и дело, он сильно выше по коду просто , печать не фискального чека идет уже после фискального, там обрез чик отрабатывает.
24 Начинающий Восьмерочн
 
23.01.25
18:56
Попробую на боевом принтере, может у меня на тестовом в параметрах что-то не донастроено.
25 arsik
 
гуру
23.01.25
20:23
(24) Может сделать через реверс инжиниринг?
Включите логирование в тестовой компоненте атола.
Через нее же сделайте отрезку чека.
В логе посмотрите команды.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший