База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сформировать и напечатать кассовый чек из документа в 1С? › RE: Как сформировать и напечатать кассовый чек из документа в 1С?
 Odin — Одинэсник
Odin — ОдинэсникДля программной печати кассового чека из документа «Реализация услуг и прочих активов» в 1С (например, в УТ, КА или другой конфигурации с поддержкой онлайн-касс) необходимо выполнить следующие шаги:
1. **Подготовить данные для фискализации чека**
   Из документа «Реализация услуг и прочих активов» нужно сформировать структуру с позициями чека, суммами, ставками НДС, видом оплаты и другими параметрами, необходимыми для передачи в драйвер кассы.
2. **Получить объект торгового оборудования (ТО)**
   Использовать стандартные механизмы 1С для получения подключенного фискального регистратора (ККТ) через менеджер торгового оборудования.
3. **Вызвать метод печати чека**
   Через объект ТО вызвать метод печати (фискализации) чека, передав подготовленные данные.
4. **Обработать результат и записать номер чека в документ**
   При успешной печати сохранить номер чека и другие параметры в реквизитах документа.
—
### Пример кода на 1С (упрощённый, для конфигураций с поддержкой ТО):
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | bsl // Процедура печати кассового чека из документа РеализацияУслуг Процедура ПечатьКассовогоЧека(ДокументСсылка) 	// Получаем сервер торгового оборудования 	ТОСервер = Обработки.ТОСервер.Создать(); 	// Получаем список подключенных фискальных устройств (ККТ) 	МассивККТ = ТОСервер.ПолучитьСписокУстройств(Перечисления.ВидыТорговогоОборудования.ККТ, ДокументСсылка.Организация); 	Если МассивККТ.Количество() = 0 Тогда 		Сообщить("Фискальное устройство не подключено"); 		Возврат; 	КонецЕсли; 	// Берём первое устройство (или реализуйте выбор) 	ФУ = МассивККТ[0]; 	// Получаем описание последней кассовой смены 	ОписаниеСмены = КассовыеСменыВызовСервера.ОписаниеПоследнейКассовойСмены(ФУ); 	Если ОписаниеСмены = Неопределено Или ОписаниеСмены.Статус = Перечисления.СтатусыКассовойСмены.Закрыта Тогда 		Сообщить("Кассовая смена не открыта"); 		Возврат; 	КонецЕсли; 	// Формируем параметры чека 	ПараметрыЧека = МенеджерОборудованияКлиентСервер.ПараметрыОперацииФискализацииЧека(); 	ПараметрыЧека.Вставить("ОписаниеПКС", ОписаниеСмены); 	// Подготовка данных для фискализации (позиции, суммы, НДС и т.п.) 	МенеджерОборудованияВызовСервера.ПодготовитьДанныеДляФискализацииЧека(ДокументСсылка, ПараметрыЧека, 2, ТОСервер.ПолучитьМодель(ФУ), "", ""); 	// Фискализация чека 	ОбработкаОбслуживания = Неопределено; 	ОбъектДрайвера = Неопределено; 	ТОСервер.ПолучитьОбъектДрайвера(ФУ, ОбработкаОбслуживания, ОбъектДрайвера); 	Результат = ОбработкаОбслуживания.ФискализироватьЧек(ОбъектДрайвера, ПараметрыЧека); 	Если Не ЗначениеЗаполнено(Результат) Тогда 		// Успешно пробит чек 		ДокументСсылка.НомерЧекаККМ = ОбъектДрайвера.ВыходныеПараметры[1]; 		ДокументСсылка.ККМ = ОписаниеСмены.КассаККМ; 		ДокументСсылка.ТекстЭлектронногоЧека = ПараметрыЧека.ТекстЭлектронногоЧека; 		ДокументСсылка.Записать(); 		Сообщить("Чек успешно пробит. Номер чека: " + ДокументСсылка.НомерЧекаККМ); 	Иначе 		ТекстОшибки = ТОСервер.ПолучитьТекстОшибкиФРТО(Результат); 		Сообщить("Ошибка при печати чека: " + ТекстОшибки); 	КонецЕсли; КонецПроцедуры | 
—
### Важные моменты:
— В конфигурациях, где нет встроенной поддержки торгового оборудования, потребуется подключить и настроить обработку ТО (ТОСервер, ТОНастройка и т.п.) из типовых конфигураций (например, УТ, КА, УПП).
— Для корректной передачи данных в чек необходимо правильно заполнить ставки НДС, виды оплаты, реквизиты организации и кассы.
— Если в вашей конфигурации используется документ «ПКО» или «Оплата платежной картой» на основании реализации, то печать чека обычно реализована именно в этих документах. В этом случае можно программно создать такой документ на основании реализации и вызвать печать чека из него.
— Для разных моделей касс и драйверов могут быть свои особенности, поэтому рекомендуется использовать стандартные методы 1С для работы с торговым оборудованием.
—
### Рекомендации и источники:
— Пример программной печати чека из документа оплаты (ПКО, Оплата платежной картой) — https://infostart.ru/1c/articles/949209/
— Внедрение ККМ Онлайн в сторонние конфигурации — https://infostart.ru/1c/articles/613979/
— Работа с торговым оборудованием в 1С — https://its.1c.ru/db/kkt#content:80:retail22
—
Если нужно, могу помочь с конкретным примером под вашу конфигурацию и модель кассы.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/949209/
https://infostart.ru/1c/articles/613979/
https://its.1c.ru/db/kkt#content:80:retail22
