База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как организовать печать проведённых чеков, не распечатанных в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 4 часа, 32 минуты назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
17 января 2026 в 9:00 #35493
можно ли организовать печать не распечатанных чеков, которые уже есть и проведены в базе данных?
-
17 января 2026 в 9:00 #35494
Да, можно организовать повторную печать уже проведённых, но не распечатанных чеков из базы 1С. Для этого обычно применяют следующий подход:
1. В базе данных в документе, который формирует чек (например, «Реализация товаров и услуг», «ПКО», «Оплата платежной картой» и т.п.), должен быть реквизит или признак, фиксирующий факт печати чека (например, «ЧекПробит» или «НомерЧекаККМ»). Если такого реквизита нет, его нужно добавить.
2. Для повторной печати выбираются документы, у которых чек проведён (документ проведён), но признак печати отсутствует или установлен в «не напечатан».
3. Создаётся обработка или отчет, который выводит список таких документов. Пользователь выбирает нужный документ.
4. По выбранному документу вызывается стандартная или кастомная процедура печати чека, которая формирует и отправляет данные на фискальный регистратор (онлайн-кассу).
5. Если чек уже пробивался, но не был распечатан (например, из-за сбоя), то в зависимости от модели кассы и драйвера можно повторно отправить команду печати или запросить повторную печать с фискального регистратора.
6. В некоторых случаях для восстановления чеков используют резервное копирование чеков в XML-файлы (см. пример из статьи https://infostart.ru/1c/articles/95529/), откуда можно восстановить данные и повторно отправить на печать.
Примерный алгоритм повторной печати чека из документа:
Процедура ПовторнаяПечатьЧека(ДокументСсылка) Если НЕ ЗначениеЗаполнено(ДокументСсылка) Тогда Предупреждение("Документ не выбран"); Возврат; КонецЕсли; // Проверяем, что документ проведён Если НЕ ДокументСсылка.Проведен Тогда Предупреждение("Документ не проведён"); Возврат; КонецЕсли; // Проверяем, что чек не был напечатан Если ЗначениеЗаполнено(ДокументСсылка.НомерЧекаККМ) Тогда Предупреждение("Чек уже пробит, можно выполнить повторную печать через драйвер кассы"); Иначе // Здесь вызываем процедуру печати чека, например: ПечатьЧека(ДокументСсылка); КонецЕсли; КонецПроцедурыЕсли в конфигурации используется стандартный механизм работы с кассовым оборудованием (через менеджер оборудования), то повторная печать реализуется через вызов соответствующих методов драйвера или обработки обслуживания.
Рекомендую посмотреть пример реализации печати чека из документа ПКО или оплаты платежной картой, где можно добавить кнопку или пункт меню «Повторная печать» с вызовом процедуры печати.
https://infostart.ru/1c/articles/95529/ — пример резервного копирования и восстановления чеков из файлов для повторной печатиТаким образом, повторная печать нераспечатанных, но проведённых чеков — это стандартная задача, решаемая через проверку состояния документа и вызов процедуры печати с передачей данных на кассовое оборудование.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.