1c: Розница - Печать чека без пробития

1. KatrinCa 16.12.19 01:59 Сейчас в теме
Здравствуйте.
Подскажите, пожалуйста, как можно напечатать чек без его пробития?
А именно открыв кассу и выбрав товары, чтобы можно было вывести на печать или предварительный чек (без пробития/записи чека, как происходит обычно) или чтобы напечатало какие сейчас товары введены на кассе (количество, цена и итоговая сумма), то что обычно печатается в центральной части чека, когда он выбивается. Надеюсь понятно объяснила над чем ломаю голову.

Разобралась, как добавить новую кнопку, но какой код необходимо ей написать, чтобы выводилась (печаталась) информация по введенным товарам на кассе? Помогите, пожалуйста.
По теме из базы знаний
Найденные решения
11. Torin 827 16.12.19 17:02 Сейчас в теме
Создаете расширение включаете в него МенеджерОборудованияКлиент и ПодключаемоеОборудованиеУниверсальныйДрайверКлиент

При вызове МенеджерОборудованияКлиент.НачатьФискализациюЧекаНаФискальномУстройстве(Оповещение,
УникальныйИдентификатор,
ОбщиеПараметры,
ИдентификаторУстройстваФР,
,
ПослеОткрытияЧека,
ПослеОшибкиПечатиЧека);
Из документа чек ККМ

Подменяете в Процедуре

Процедура НачатьФискализациюЧекаНаФискальномУстройстве(ОповещениеПриЗавершении, УникальныйИдентификатор, ПараметрыОперации, ИдентификаторУстройства = Неопределено,
ТипОборудования = Неопределено, ОповещениеПослеОткрытииЧека = Неопределено, ОповещениеПриОшибкеПечатиЧека = Неопределено) Экспорт

Контекст = Новый Структура;
Контекст.Вставить("ОповещениеПриЗавершении" , ОповещениеПриЗавершении);
Контекст.Вставить("УникальныйИдентификатор" , УникальныйИдентификатор);
Контекст.Вставить("УникальныйИдентификатор" , УникальныйИдентификатор);
Контекст.Вставить("ВходныеПараметры" , ПараметрыОперации);
// Контекст.Вставить("ВыполняемаяКоманда" , "CheckFiscalization"); эту на

Контекст.Вставить("ВыполняемаяКоманда" , "PrintTextDocument"); эту
Контекст.Вставить("ОповещениеПослеОткрытииЧека", ОповещениеПослеОткрытииЧека);
Контекст.Вставить("ОповещениеПриОшибке" , ОповещениеПриОшибкеПечатиЧека);
Контекст.Вставить("ПроверкаАктивностиСмены" , Истина);

Далее чуть правите ПодключаемоеОборудованиеУниверсальныйДрайверКлиент

НачатьПечатьТекстовыхДокументов

И получите свой результат.
Sombreone; imiron_ru; RomanBardikov; m_o; KatrinCa; +5 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. PhoenixAOD 62 16.12.19 04:41 Сейчас в теме
(1) это называется не фискальный чек, но вот вопрос, могут ли ККТ сейчас из за ФЗ-54 пробивать не фискальный чеки или нет.
5. KatrinCa 16.12.19 10:27 Сейчас в теме
(2)
Если это важная информация, то я печатаю на принтере чеков.
Мне достаточно и просто, чтобы нажав какую-нибудь кнопку на кассе (которую например сама добавила) печаталась информация о том, что сейчас на кассе введено (номенклатура - количество X цена = результат и итог по всем строчкам). Необязательно, чтобы это было как чек оформлено, просто вывести такую информацию.
3. Torin 827 16.12.19 06:07 Сейчас в теме
(1) Подменить команду Команда = "CheckFiscalization" на Команда = "PrintTextDocument" и решишь свою задачу
4. KatrinCa 16.12.19 10:23 Сейчас в теме
(3)
PrintTextDocument

Поиском нашла два места в конфигурации, где это используется:
1.
ИначеЕсли Команда = "CheckFiscalization" ИЛИ Команда = "ФискализацияЧека" Тогда
		НачатьФискализациюЧека(ОповещениеПриЗавершении, ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры);

2.
ИначеЕсли Команда = "CheckFiscalization" ИЛИ Команда = "ФискализацияЧека" Тогда
		Результат = ФискализацияЧека(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры);

Заменила на PrintTextDocument, но при нажатии Печать (Alt+F11) все равно выскакивает "Печать чека возможна только после закрытия чека. Закрыть чек?" :-( Я что-то не так сделала?

p.s. попробовала поискать только по слову CheckFiscalization и нашла еще 4 места, где используется:
1.
Если Параметры.ВыполняемаяКоманда = "CheckFiscalization" Тогда
					Параметры.ВходныеПараметры.НомерЧека = СтатусПоследнейСмены.ТекущийНомерЧека;
					Параметры.ВходныеПараметры = МенеджерОборудованияВызовСервера.СформироватьШаблонЧека(Параметры.ВходныеПараметры, , ИдентификаторУстройства);
					ОсновныеПараметры = Параметры.ВходныеПараметры;

2.
Если (ВыполняемаяКоманда = "CheckFiscalization") И (Параметры.ОповещениеПослеОткрытииЧека <> Неопределено) Тогда
			ОписаниеОповещения = Новый ОписаниеОповещения("НачатьВыполнениеКоманды_ВыполнитьКомандуЗавершение", ЭтотОбъект, Параметры);
			НачатьВыполнениеКомандыПечатиЧека(ОписаниеОповещения, Параметры.ИдентификаторУстройства, ВыполняемаяКоманда, Параметры, Параметры.ВходныеПараметры);

3.
Если Параметры.ВыполняемаяКоманда = "CheckFiscalization" И МенеджерОборудованияКлиентПовтИсп.ИспользуетсяПодсистемыФискальныхУстройств() Тогда

4.
Контекст.Вставить("ВыполняемаяКоманда" , "CheckFiscalization");
Меняла и в этих 4-х местах, но так же не помогло.
6. Torin 827 16.12.19 14:14 Сейчас в теме
(4)Не ЗА менить! А ПОД менить :)

Посмотрите на НачатьВыполнениеКомандыПечатиЧека там все вроде понятно описано :) Особенно на эту строку
ПринтерЧеков
7. ganjaman 16.12.19 15:00 Сейчас в теме
(6) тут, если я правильно понимаю, вопрос в другом - вывести на ленту товарную часть чека без его сохранения как такового - стандартная процедура пробития тут ни коим образом не спасет
8. KatrinCa 16.12.19 15:48 Сейчас в теме
(7) Да, я хочу получить, что-то вроде пречека. Нашла вот эту тему https://forum.infostart.ru/forum76/topic48408/ в 16 сообщении очень хорошо описали, то что я пытаюсь сделать и вроде бы как автор указал, что разобрался с этим. Если не сложно посмотрите, может быть вы поймете, что именно он сделал. Моего мозга не хватает, чтобы дойти до ответа :-( Спасибо.
10. Torin 827 16.12.19 16:40 Сейчас в теме
(8) см.. если рассматривать как Пред ЧЕК ( PrintTextDocument ) , как я уже писал выше нужно подменить методы!!

Попытаюсь пояснить! Команда "Открыть чек" открывает Документ чек на самой ККТ

Формирование чека состоит из следующих операций:

открытие чека и передача реквизитов чека
регистрация позиций, печать нефискальных данных (текст, штрихкоды, изображения)
регистрация итога (необязательный пункт - если регистрацию итога не провести, он автоматически расчитается из суммы всех позиций)
регистрация налогов на чек (необязательный пункт - налоги могут быть подтянуты из позиций и суммированы)
регистрация оплат
закрытие чека
проверка состояния чека

Метод же PrintTextDocument не требует передачи как ли бо доп реквизитов кроме как Текстовую строку!

В Типовой процедура следующая Проверка состояния ККТ> Получение сведений о смене , Открытие Чека, Передача параметров >формирование фискального пакета XML >передача пакета на ККТ > Передача команды Закрытия Чека> Получение состояния чека и его передача в Документ Чек ККМ (номер чека ККМ)

Для Вашей же реализации нужно в вызове НачатьВыполнениеКомандыПечатиЧека Подменить Тип оборудования на ПринтерЧеков (вместо ККТ ) и все :)

ТипОборудования = "ПринтерЧеков"
12. KatrinCa 16.12.19 17:54 Сейчас в теме
(10) Спасибо, что стараетесь мне помочь. Если я верно поняла вас, то примерно так мне и представлялась проблема. Что сперва чек сохраняется, а печать происходит уже именно из созданного чека. Мне нужно сформировать чек и считать его прямо из кассы. Но как это сделать если печатать оно хочет именно из созданного чека? Я нашла два места в конфигурации, где используется "НачатьВыполнениеКомандыПечатиЧека", но там нет строки ТипОборудования. Эту строчку я нашла в функции ПолучитьПодключенныеУстройства, процедуре ВыполнитьНастройкуОборудования, ПредложитьВыбратьУстройство, НачатьПодключениеОборудования но разве если мы установим Тип Оборудования фиксировано то у нас не перестанут сохраняться чеки вообще? Я не могу понять куда именно нужно вписать эту сточку (ТипОборудования = "ПринтерЧеков") и как связать с новой кнопкой на кассе.
13. Torin 827 16.12.19 18:17 Сейчас в теме
(12)Конечно документ нужно сохранить. Конфигурация то какая?

Примерная схема: для Розница 2.х

РМК> Регистрация продаж , товар и тд. . Пимпа ( горячая клавиша пред чек ) Alt-F15 :) .Ну и передаем в пимпу формирование нефискального документа на печать

Создается документ ЧЕК ККМ не проводится ( отложенный ), заполняется табличная часть из формы регистрации продаж , ну и печатаются строки , только QR кода нет и признак "печать текстового документа" , ну и номер чека ККТ не вернет, ну а потом выбрать отложенный чек и печатаем отложенный чек уже выбор оплат и так далее

P|S вам же нужно было направление и методы , Вам их предоставили, а если нужна готовая реализация необходимого функционала , то откройте тендер , на основе полученной информации сформируете ТЗ и желающие реализовать вашу хотелку безусловно откликнуться:)
9. KatrinCa 16.12.19 16:13 Сейчас в теме
(6)
ПринтерЧеков

Понять бы еще что и на что подменить :-)
Я нашла эти строчки, но как понять, что нужно прописать в новой кнопке, чтобы при нажатии на нее выводился пречек (без его записи). Я нашла в теме https://forum.infostart.ru/forum76/topic48408/ в сообщении #16, что человек столкнулся именно с тем, что я и хочу сделать, может быть вы поймете, как у него получилось решить данный вопрос? Я пробовала написать ему в пм, но у меня нет такой возможности :-(
11. Torin 827 16.12.19 17:02 Сейчас в теме
Создаете расширение включаете в него МенеджерОборудованияКлиент и ПодключаемоеОборудованиеУниверсальныйДрайверКлиент

При вызове МенеджерОборудованияКлиент.НачатьФискализациюЧекаНаФискальномУстройстве(Оповещение,
УникальныйИдентификатор,
ОбщиеПараметры,
ИдентификаторУстройстваФР,
,
ПослеОткрытияЧека,
ПослеОшибкиПечатиЧека);
Из документа чек ККМ

Подменяете в Процедуре

Процедура НачатьФискализациюЧекаНаФискальномУстройстве(ОповещениеПриЗавершении, УникальныйИдентификатор, ПараметрыОперации, ИдентификаторУстройства = Неопределено,
ТипОборудования = Неопределено, ОповещениеПослеОткрытииЧека = Неопределено, ОповещениеПриОшибкеПечатиЧека = Неопределено) Экспорт

Контекст = Новый Структура;
Контекст.Вставить("ОповещениеПриЗавершении" , ОповещениеПриЗавершении);
Контекст.Вставить("УникальныйИдентификатор" , УникальныйИдентификатор);
Контекст.Вставить("УникальныйИдентификатор" , УникальныйИдентификатор);
Контекст.Вставить("ВходныеПараметры" , ПараметрыОперации);
// Контекст.Вставить("ВыполняемаяКоманда" , "CheckFiscalization"); эту на

Контекст.Вставить("ВыполняемаяКоманда" , "PrintTextDocument"); эту
Контекст.Вставить("ОповещениеПослеОткрытииЧека", ОповещениеПослеОткрытииЧека);
Контекст.Вставить("ОповещениеПриОшибке" , ОповещениеПриОшибкеПечатиЧека);
Контекст.Вставить("ПроверкаАктивностиСмены" , Истина);

Далее чуть правите ПодключаемоеОборудованиеУниверсальныйДрайверКлиент

НачатьПечатьТекстовыхДокументов

И получите свой результат.
Sombreone; imiron_ru; RomanBardikov; m_o; KatrinCa; +5 Ответить
14. KatrinCa 17.12.19 02:05 Сейчас в теме
(11) Спасибо за помощь. Обязательно изучу ваш вариант решения.

p.s. если кто-то будет искать решение, то еще можно изучить код в ответе #24 из темы https://forum.infostart.ru/forum76/topic48408/
15. user1726170 13.02.22 18:32 Сейчас в теме
(11)
Здравствуйте, помогите пожалуйста. Можно ли добавить кнопку на форму РМК и контролировать Печать чека с принтера. Сейчас Я отключаю принтер, когда печать чек не нужен.
Если Я хочу снова включить принтер, мне нужно очистить очередь печать каждый раз.
Прикрепленные файлы:
16. Torin 827 13.02.22 19:18 Сейчас в теме
(15)
Можно ли добавить кнопку на форму РМК и контролировать Печать чека с принтера.
- можно
17. пользователь 14.02.22 07:50
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот