Документ «Розничная продажа (чек)» и интеграция с WebKassa 6
Документ ЧекККМ регистрирует продажу в розницу и возвраты, пробивая фискальные чеки через подключенную онлайн-ККМ (интеграция WebKassa 6). Кассовое рабочее место кассира настраивается через Справочник.НастройкиИнтеграцииWebKassa и управляется в АРМ Обработка.Панель1СWebKassa. Проведение документа списывает себестоимость со склада (регистр РеализацияТМЗ), начисляет НДС и формирует бухгалтерские проводки (Дт 62.03 Кт 6010, Дт 7010 Кт 1320, Дт 1010/1030 Кт 62.03).
🎯 Что это и зачем
В розничной торговле каждый платеж покупателя должен сопровождаться выдачей фискального чека. В Казахстане для этого широко используется онлайн-фискализация через систему WebKassa. Интеграция 1С с WebKassa 6 позволяет пробивать чеки непосредственно из учетной системы без ручного ввода на внешних кассах.
Интеграция состоит из трех ключевых компонентов: 1. Справочник «Настройки интеграции WebKassa»: Хранит параметры подключения (URL, пользователи) для каждой организации. 2. Обработка «Панель 1С WebKassa»: Кассовое АРМ администратора/кассира для регистрации касс, управления кассирами, токенами ОФД и просмотра истории. 3. Документ «Розничная продажа (чек)» (ЧекККМ): Отражает факт продажи или возврата товаров, рассчитывает суммы оплаты и посылает команду на печать фискального чека в WebKassa.
Кто работает: кассиры, продавцы-консультанты и системные администраторы при первичной настройке касс.
🧭 Где найти в программе
- Панель WebKassa и настройки: Раздел «Администрирование» или «Банк и касса» → подраздел «Интеграция с WebKassa» → «Панель 1С:WebKassa».
- Журнал чеков: Раздел «Банк и касса» → подраздел «Продажи» → пункт «Розничные продажи (чеки)».
👤 Часть 1. Для пользователя
Разбираем первичную настройку интеграции, работу в панели WebKassa, создание чека, прием оплаты (в т.ч. картой), возврат товара, создание чека на основании счёта и закрытие смены.
Урок 1. Настройка интеграции с WebKassa 6
Когда: вы впервые подключаете организацию к фискальному оператору WebKassa.
- Откройте «Панель 1С:WebKassa».
- Если для вашей организации настройки не созданы, перейдите в «Настройки интеграции» (или создайте новый элемент справочника настроек).
- Укажите Организацию и Адрес сервиса WebKassa (например,
https://webkassa.kz/api). - В табличной части Пользователи добавьте имена пользователей 1С, которым разрешена продажа на кассах этой организации.
- Нажмите «Записать и закрыть».
Урок 2. Рабочее место кассира (АРМ Панель WebKassa)
Панель WebKassa позволяет управлять кассами без перехода в личный кабинет на сайте фискального оператора.
Доступные операции:
- Регистрация кассы: Позволяет зарегистрировать новую виртуальную кассу в системе WebKassa.
- Управление кассирами: Регистрация сотрудников, смена их паролей и прав доступа (например, право делать возвраты или X-отчеты).
- Смена токена ОФД: Обновление токена авторизации оператора фискальных данных.
- Смена адреса сервиса: Переключение кассы с тестового контура на продуктивный.
- История чеков и отчетов: Просмотр списка ранее пробитых чеков и Z-отчетов с возможностью их повторной печати или сверки сумм.
Урок 3. Оформление розничной продажи (новый чек)
Когда: покупатель стоит у кассы с товарами и готов расплатиться.
Шаг 1. Создаем чек
В списке чеков нажмите «Розничная продажа». Система откроет новый документ ЧекККМ с автоматически заполненными полями: Организация, Касса, Склад и Валюта (по умолчанию KZT).
Шаг 2. Подбор товаров
Вы можете добавлять товары тремя способами:
1. Сканирование штрихкода: Считайте штрихкод товара сканером. Номенклатура добавится в табличную часть автоматически с заполнением цены.
2. Подбор по каталогу: Нажмите кнопку «Подбор» (ПодборТовары), выберите товары из открывшегося списка.
3. Поиск по наименованию: Добавьте строку вручную и начните вводить название товара.
Шаг 3. Прием оплаты
- После формирования списка товаров и проверки итоговой суммы нажмите кнопку «Принять оплату» (
ПринятьОплату). Откроется диалоговое окно оплаты. - Наличные: Укажите полученную сумму наличных. Система автоматически рассчитает сдачу.
- Безналичные (карта): Выберите тип оплаты «Банковская карта». Система пошлет сигнал на эквайринговый терминал (при интеграции) или попросит приложить карту к терминалу. После успешной транзакции терминал вернет ссылочный номер.
- Смешанная оплата: Вы можете указать, например, 5000 тенге наличными и остаток по карте в табличной части оплаты.
- Нажмите «Выполнить операцию». Документ запишется, проведется в базе и распечатает чек через WebKassa.
Урок 4. Возврат товара по чеку
Когда: покупатель возвращает товар, купленный ранее.
- В списке чеков найдите исходный чек продажи.
- Нажмите кнопку «Возврат по чеку» (
ВозвратПоЧеку). Создастся новый документ с видом операции «Возврат» и ссылкой на исходный чек в поле Основание. - Табличные части товаров и оплат автоматически заполнятся данными из исходного чека.
- Если покупатель возвращает не всю покупку, удалите лишние строки или уменьшите количество товаров до фактически возвращаемых.
- Нажмите кнопку «Принять оплату» (возврат денег).
- Нажмите «Провести». Деньги спишутся из кассы, товар вернется на склад, а WebKassa распечатает фискальный чек возврата.
Урок 5. Создание чека на основании счёта покупателю
Когда: покупатель оплачивает предоплаченный заказ или корпоративный клиент предъявляет счёт.
- Откройте документ «Счёт на оплату покупателю» (
СчетНаОплатуПокупателю), нажмите «Создать на основании» → выберите «Чек ККМ». - Система автоматически заполнит:
- Контрагент и ДоговорКонтрагента из счёта.
- Табличную часть Товары из табличной части счёта (номенклатура, количество, цены).
- Поле СчетНаОплатуПокупателю (основание для связи).
- Откорректируйте Склад и Кассу (если не подставились по умолчанию).
- Нажмите «Принять оплату» → оформите оплату как в Уроке 3.
- После проведения статус счёта изменится на «Оплачен», а стандартные движения чека сформируются автоматически.
Урок 6. Закрытие смены и отчет о розничных продажах
Когда: рабочий день завершен, кассир должен сдать выручку и снять Z-отчет.
- В списке чеков ККМ нажмите кнопку «Закрыть смену» (
ЗакрытьСмену). - В диалоге «Закрытие смены» (
ФормаЗакрытиеСмены) выберите Организацию и ИдентификаторУстройства (ККМ). - Система автоматически:
- Соберёт все проведённые чеки за смену (функция
СформироватьОтчетыОРозничныхПродажах). - Суммирует продажи по видам оплаты.
- Создаст и проведёт сводный документ «Отчет о розничных продажах» (
ОтчетОРозничныхПродажах).
- Соберёт все проведённые чеки за смену (функция
- WebKassa распечатает Z-отчет (фискальный отчет о закрытии смены) и обнулит смену в кассе.
- Во всех чеках за смену заполнится поле
ОтчетОРозничныхПродажах, и они заблокируются для изменения.
Важно: все чеки смены должны иметь статус «Проведён». Если обнаружены непроведённые чеки, система предложит их провести или удалить перед закрытием.
🛠 Часть 2. Для программиста
Технический разбор структуры документа ЧекККМ, всех реквизитов и табличных частей, обработчиков событий, проводок, регистров, зависимостей, связей и заметок для разработчика.
Структура объекта
Документ.ЧекККМ — Реквизиты шапки (полный перечень)
| Имя | Тип | Обязательность | Зачем нужен |
|---|---|---|---|
| Автор | Справочник.Пользователи | Необязательный | Пользователь, создавший документ (для аудита). Устанавливается в ПередЗаписью. |
| ВалютаДокумента | Справочник.Валюты | ShowError | Валюта цен товаров и оплаты; влияет на пересчёт сумм. По умолчанию KZT. |
| ВидОперации | Перечисление.ВидыОперацийРозничнаяПродажа | Необязательный | Определяет тип операции (Продажа / Возврат); влияет на форму и логику проводок. |
| ДоговорКонтрагента | Справочник.ДоговорыКонтрагентов | Необязательный | Договор с контрагентом (обычно типовой для розницы); может подтягиваться автоматически. |
| ИдентификаторУстройства | Справочник.ПодключаемоеОборудование | Необязательный | Устройство ККМ для передачи чека (интеграция с фискальным регистратором). |
| Касса | Справочник.Кассы | ShowError | Место учёта денежных средств (касса магазина); обязательна для движений по оплате. |
| Комментарий | Строка | Необязательный | Произвольное примечание к чеку. |
| Контрагент | Справочник.Контрагенты | Необязательный | Покупатель (по умолчанию — «Розничный покупатель», предопределённый элемент). |
| КратностьВзаиморасчетов | Число | Необязательный | Коэффициент пересчёта валюты взаиморасчетов с контрагентом. |
| КратностьДокумента | Число | Необязательный | Коэффициент пересчёта валюты документа. |
| КурсВзаиморасчетов | Число | ShowError | Курс валюты для расчётов с контрагентом (обязателен при валютных операциях). |
| КурсДокумента | Число | Необязательный | Курс валюты документа (обычно совпадает с курсом взаиморасчетов). |
| НомерЧекаККМ | Число | Необязательный | Номер фискального чека (присваивается ККМ или вручную); обнуляется при копировании. |
| Организация | Справочник.Организации | ShowError | Юридическое лицо, от имени которого совершена продажа; используется для RLS. |
| Основание | Документ.ЧекККМ | ShowError | Документ-основание для возврата (ссылка на исходный чек при возврате товара). |
| Ответственный | Справочник.Пользователи | Необязательный | Лицо, ответственное за оформление чека (обычно кассир). |
| ОтчетОРозничныхПродажах | Документ.ОтчетОРозничныхПродажах | Необязательный | Ссылка на сводный отчёт смены; если заполнен — проведение чека блокируется. |
| РучнаяКорректировка | Булево | Необязательный | Признак ручного редактирования табличных частей (отменяет автозаполнение). |
| Склад | Справочник.Склады | ShowError | Место хранения товаров для списания; обязателен при наличии товаров в ТЧ. |
| СтатьяДвиженияДенежныхСредств | Справочник.СтатьиДвиженияДенежныхСредств | Необязательный | Статья для ДДС-отчётов (движение денежных средств). |
| СтруктурноеПодразделение | Справочник.ПодразделенияОрганизаций | Необязательный | Подразделение организации (точка продаж). |
| СуммаВключаетНДС | Булево | Необязательный | Флаг: цены указаны с НДС (влияет на расчёт суммы НДС). |
| СуммаДокумента | Число | Необязательный | Итоговая сумма чека (заполняется автоматически как сумма ТЧ Товары + Услуги). |
| СчетНаОплатуПокупателю | Документ.СчетНаОплатуПокупателю | Необязательный | Документ-основание (счёт); используется для заполнения табличных частей. |
| ТипЦен | Справочник.ТипыЦенНоменклатуры | Необязательный | Тип цен для подбора товаров (розничная цена, оптовая и т.д.). |
| УчитыватьНДС | Булево | Необязательный | Признак учёта НДС (влияет на видимость колонок НДС и формирование движений). |
Табличные части
ТЧ «Товары» — полный перечень колонок
Перечень проданных товаров с количеством, ценами, счетами учёта и аналитикой.
| Имя | Тип | Назначение |
|---|---|---|
| Номенклатура | Справочник.Номенклатура | Наименование товара. Обязательна для строки. |
| ЕдиницаИзмерения | Справочник.КлассификаторЕдиницИзмерения | Единица учёта (шт., кг, л и т.д.). Заполняется из карточки номенклатуры. |
| Коэффициент | Число | Коэффициент пересчёта единиц измерения (для неосновных ЕИ). |
| Количество | Число | Количество проданного товара. Должно быть > 0. |
| Цена | Число | Цена за единицу товара. Подтягивается из регистра цен по ТипЦен. |
| Сумма | Число | Стоимость (Количество × Цена, с учётом/без учёта НДС в зависимости от СуммаВключаетНДС). |
| СтавкаНДС | Справочник.СтавкиНДС | Ставка НДС (0%, 12%, без НДС). Определяется по номенклатуре. |
| СуммаНДС | Число | Сумма НДС по товарной позиции. |
| СчетУчетаБУ | ПланСчетов.Типовой | Счёт учёта товаров (обычно 1320 «Товары на складах»). |
| СчетДоходовБУ | ПланСчетов.Типовой | Счёт доходов от продажи (обычно 6010 «Доход от реализации товаров»). |
| СчетСписанияСебестоимостиБУ | ПланСчетов.Типовой | Счёт себестоимости (обычно 7010 «Себестоимость реализованных товаров»). |
| СчетУчетаНДСПоРеализации | ПланСчетов.Типовой | Счёт начисленного НДС (обычно 3130 «НДС к уплате»). |
| НДСВидОперацииРеализации | Справочник.ВидыРеализации | Вид операции для НДС (розничная продажа). |
| СубконтоДоходовБУ1 | Характеристика (множественный тип) | Субконто 1 аналитики доходов (обычно Номенклатура). |
| СубконтоДоходовБУ2 | Характеристика (множественный тип) | Субконто 2 аналитики доходов (обычно Контрагент). |
| СубконтоДоходовБУ3 | Характеристика (множественный тип) | Субконто 3 аналитики доходов (дополнительная аналитика). |
| СубконтоСписанияСебестоимостиБУ1 | Характеристика (множественный тип) | Субконто 1 аналитики себестоимости (обычно Номенклатура). |
| СубконтоСписанияСебестоимостиБУ2 | Характеристика (множественный тип) | Субконто 2 аналитики себестоимости (обычно Склад). |
| СубконтоСписанияСебестоимостиБУ3 | Характеристика (множественный тип) | Субконто 3 аналитики себестоимости (дополнительная аналитика). |
| Штрихкод | Строка | Штрихкод товара для подбора сканером. |
| КодМаркировки | Строка | Код маркировки (для маркированных товаров — алкоголь, табак, ЕГАИС). |
ТЧ «Услуги» — полный перечень колонок
Перечень оказанных услуг (консультирование, ремонт и т.д.).
| Имя | Тип | Назначение |
|---|---|---|
| Номенклатура | Справочник.Номенклатура | Наименование услуги. Обязательна для строки. |
| Содержание | Строка | Описание услуги (дополнительные сведения, текст для чека). |
| Количество | Число | Количество единиц услуг. Должно быть > 0. |
| Цена | Число | Цена за единицу услуги. |
| Сумма | Число | Стоимость (Количество × Цена). |
| СтавкаНДС | Справочник.СтавкиНДС | Ставка НДС. |
| СуммаНДС | Число | Сумма НДС по услуге. |
| СчетДоходовБУ | ПланСчетов.Типовой | Счёт доходов от услуг (обычно 6010 или 6020). |
| СчетУчетаНДСПоРеализации | ПланСчетов.Типовой | Счёт НДС (обычно 3130). |
| НДСВидОперацииРеализации | Справочник.ВидыРеализации | Вид операции НДС. |
| СубконтоДоходовБУ1 | Характеристика (множественный тип) | Субконто 1 аналитики доходов. |
| СубконтоДоходовБУ2 | Характеристика (множественный тип) | Субконто 2 аналитики доходов. |
| СубконтоДоходовБУ3 | Характеристика (множественный тип) | Субконто 3 аналитики доходов. |
ТЧ «Оплата» — полный перечень колонок
Способы оплаты чека (наличные, карта, смешанная оплата, мобильный платёж).
| Имя | Тип | Назначение |
|---|---|---|
| ВидОплаты | Справочник.ДоговорыЭквайринга | Способ оплаты (наличные, банковская карта, мобильный платёж). Обязателен для строки. |
| Сумма | Число | Сумма платежа данным способом. Должна быть > 0. |
| НомерПлатежнойКарты | Строка | Номер карты (маскированный, например **** **** **** 1234). Для безналичной оплаты. |
| СсылочныйНомер | Строка | Номер транзакции (RRN) в платёжной системе. Заполняется терминалом. |
| НомерЧекаЭТ | Строка | Номер чека эквайрингового терминала. |
| ДанныеПереданыВБанк | Булево | Признак передачи данных в банк-эквайер (для сверки итогов). |
| МобильныйПлатеж | Булево | Признак оплаты через мобильное приложение (Kaspi Pay, Halyk QR и др.). |
Формы документа
| Имя формы | Назначение | Статус |
|---|---|---|
| ФормаДокумента | Основная форма для создания/редактирования чека; содержит ТЧ Товары, Услуги, Оплата. Команды подбора, сканирования, приёма оплаты. | Ключевая |
| ФормаОплаты | Диалог приёма оплаты: выбор способов оплаты, расчёт сдачи, интеграция с эквайринговым терминалом, печать чека. | Служебная |
| ФормаСписка | Список всех чеков организации; доступны команды: «Розничная продажа», «Возврат по чеку», «Закрыть смену». | Справочная |
| ФормаВыбора | Выбор чека из списка (для документов-оснований, например при оформлении возврата). | Служебная |
| ФормаЗакрытиеСмены | Диалог закрытия кассовой смены: выбор организации и ККМ, передача Z-отчёта в WebKassa. | Служебная |
Справочник.НастройкиИнтеграцииWebKassa — Реквизиты
Организация(CatalogRef.Организации): Владелец настройки (уникальный ключ).АдресСервиса(String): URL API фискализации.- ТЧ
Пользователи:ИмяПользователя(String, имя пользователя ИБ).
Per-field reference (ключевые реквизиты)
Организация (Справочник.Организации)
Юридическое лицо, от имени которого оформляется чек. Обязательный (ShowError). Устанавливается автоматически при открытии формы (основная организация пользователя). Влияет на:
- Определение системы налогообложения (ОСН/УСН).
- Выбор доступных счетов учёта (через СчетаУчетаВДокументах).
- Ограничение доступа (RLS: документ виден только пользователям с правами на эту организацию).
Валидация: проверяется на заполнение в ОбработкаПроверкиЗаполнения. Типичное значение: единственная организация базы или организация точки продаж.
Касса (Справочник.Кассы)
Место учёта денежных средств. Обязательный (ShowError). Подставляется по умолчанию из настроек рабочего места (справочник Кассы, элемент с признаком «Основная для пользователя»). Влияет на: - Формирование движений по приходному кассовому ордеру (для наличных). - Выбор устройства ККМ (связь через реквизит ИдентификаторУстройства). - Закрытие смены (отчёты формируются по кассе).
Валидация: должна принадлежать выбранной Организации; проверяется на заполнение. Типичное значение: «Касса магазина № 1».
Склад (Справочник.Склады)
Место хранения товаров для списания при продаже. Обязательный (ShowError). Устанавливается по умолчанию из настроек точки продаж. Влияет на: - Движения по регистру РеализацияТМЗ (списание товара). - Проверку остатков товара (при проведении система проверяет наличие достаточного количества на складе).
Валидация: обязателен если в ТЧ Товары есть хотя бы одна строка. Типичное значение: «Торговый зал», «Склад розничный».
ВидОперации (Перечисление.ВидыОперацийРозничнаяПродажа)
Определяет тип операции: Продажа или Возврат. Необязательный, но критически важен для логики. Влияет на:
- Выбор формы документа (обработчик ОбработкаПолученияФормы в менеджере).
- Знак движений (при возврате — сторнирующие, с минусом).
- Доступность команд (кнопка «Возврат по чеку» недоступна для документов-возвратов).
Обработчик ПриИзмененииВидаОперации (форма): скрывает/показывает поле Основание, изменяет заголовок формы. Типичные значения: «Продажа», «Возврат».
Основание (Документ.ЧекККМ)
Ссылка на исходный чек при оформлении возврата. Обязательный (ShowError) для ВидОперации = «Возврат». Заполняется автоматически при создании документа командой «Возврат по чеку». Влияет на:
- Заполнение табличных частей (копируются из исходного чека через функцию СкопироватьТабличныеЧасти).
- Проверку суммы возврата (не более суммы оригинала).
- Отображение в печатной форме (ссылка на оригинальный чек).
Валидация: должен быть проведённым документом типа ЧекККМ с ВидОперации = «Продажа». Обработчик ПриИзмененииОснование: перезаполняет ТЧ, пересчитывает суммы.
СуммаДокумента (Число)
Итоговая сумма чека (включая НДС). Необязательный (рассчитывается автоматически). Влияет на: - Проверку полноты оплаты (сумма строк ТЧ Оплата должна равняться СуммаДокумента). - Отображение в форме (поле «Итого» на панели итогов). - Движения по бухгалтерским счетам (кредит счёта доходов).
Обработчик ПриИзмененииТаблицыТоваров, ПриИзмененииТаблицыУслуг: пересчитывается как сумма всех строк ТЧ Товары и Услуги (с учётом НДС).
УчитыватьНДС (Булево)
Флаг учёта НДС. Необязательный (по умолчанию = Истина для ОСН, Ложь для УСН). Влияет на: - Видимость колонок СтавкаНДС, СуммаНДС в ТЧ Товары и Услуги. - Формирование движений по регистру НДС (при Истина). - Расчёт суммы НДС (при Ложь — колонки скрываются, НДС не выделяется).
Обработчик ПриИзмененииУчитыватьНДС: перезаполняет колонку СтавкаНДС (устанавливает «Без НДС» при Ложь), пересчитывает СуммаНДС.
ТипЦен (Справочник.ТипыЦенНоменклатуры)
Тип цен для подбора товаров (розничная, оптовая, специальная). Необязательный, но рекомендуется устанавливать. Влияет на: - Заполнение колонки Цена в ТЧ Товары при подборе (цена берётся из регистра сведений ЦеныНоменклатуры для указанного типа). - Автоматическое применение скидок (если поддерживается модулем скидок).
Обработчик ПриИзмененииТипЦен: пересчитывает цены всех строк ТЧ Товары. Типичное значение: «Розничная».
Товары.Номенклатура (Справочник.Номенклатура)
Наименование товара. Обязательный для строки ТЧ Товары. Влияет на: - Определение счетов учёта (через запрос к регистру сведений СчетаУчетаНоменклатуры). - Проверку остатков на складе (запрос к регистру накопления ТоварыНаСкладах). - Заполнение ЕдиницаИзмерения, Цена (из карточки номенклатуры и регистра цен).
Обработчик ПриИзмененииНоменклатура: подтягивает ЕИ, цену, ставку НДС, счета учёта; проверяет классификацию (товар/услуга — если услуга, предлагает перенести в ТЧ Услуги). Валидация: не может быть пустой; должна быть активна (без пометки на удаление).
Товары.Количество (Число)
Количество единиц товара. Обязательный (должен быть > 0). Влияет на: - Расчёт суммы строки (Сумма = Количество × Цена). - Проверку достаточности остатков на складе (при проведении). - Движения по регистру РеализацияТМЗ (расход товара).
Обработчик ПриИзмененииКоличество: пересчитывает Сумма, СуммаНДС; проверяет остатки (если включена соответствующая настройка). Валидация: должно быть > 0; проверяется на заполнение.
Товары.Цена (Число)
Цена за единицу товара. Обязательный (должен быть > 0). Влияет на: - Расчёт суммы строки (Сумма = Количество × Цена). - Проверку соответствия типу цен (опционально).
Обработчик ПриИзмененииЦена: пересчитывает Сумма, СуммаНДС. Типичное значение: заполняется автоматически из регистра цен по ТипЦен при выборе Номенклатуры.
Оплата.ВидОплаты (Справочник.ДоговорыЭквайринга)
Способ оплаты: «Наличные», «Банковская карта», «Мобильный платёж» и т.д. Обязательный для строки ТЧ Оплата. Влияет на: - Видимость колонок НомерПлатежнойКарты, СсылочныйНомер (только для безналичной оплаты). - Формирование движений по кассе (для наличных) или расчётному счёту (для безнала). - Доступность команды ПровестиОплатуЧерезТерминал (только для карт).
Обработчик ПриИзмененииВидОплаты: скрывает/показывает поля карточных реквизитов; подставляет договор эквайринга. Типичное значение: «Наличные», «Visa/MasterCard».
Оплата.Сумма (Число)
Сумма платежа данным способом. Обязательный (должен быть > 0). Влияет на: - Проверку полноты оплаты (сумма всех строк ТЧ Оплата = СуммаДокумента). - Движения по кассе / расчётному счёту.
Обработчик ПриИзмененииСуммаОплата: пересчитывает остаток к оплате (в форме оплаты). Валидация: сумма не может быть отрицательной.
НомерЧекаККМ (Число)
Номер фискального чека, присваиваемый ККМ. Необязательный (может заполняться вручную или автоматически при интеграции с ККМ). Влияет на: - Отображение в печатной форме чека. - Идентификацию чека при возврате (покупатель называет номер).
Обработчик: при копировании документа (ПриКопировании в модуле объекта) обнуляется. Типичное значение: числовой код (например, 1234567890).
ОтчетОРозничныхПродажах (Документ.ОтчетОРозничныхПродажах)
Ссылка на отчёт о продажах, в который включён чек. Необязательный (заполняется при закрытии смены). Влияет на: - Блокировку проведения (если поле заполнено — документ не проводится, движения формируются только через отчёт). - Доступность редактирования (чеки в закрытом отчёте нельзя изменять).
Валидация: при заполненном поле документ проходит проверку «уже закрыт», повторное проведение невозможно. Обработчик: заполняется функцией СформироватьОтчетыОРозничныхПродажах (ManagerModule).
Жизненный цикл — обработчики событий и бизнес-логика
1. Справочник.НастройкиИнтеграцииWebKassa
- ПередЗаписью: Модуль объекта блокирует запись, если нарушена уникальность. На одну организацию разрешена только одна активная настройка обмена:
bsl Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ 1 ИЗ Справочник.НастройкиИнтеграцииWebKassa ГДЕ Организация = &Организация И Ссылка <> &Ссылка И НЕ ПометкаУдаления"; - ОбработкаПроверкиЗаполнения: Если элемент удаляется (
ПометкаУдаления = Истина), обязательные реквизиты (Организация, АдресСервиса) исключаются из проверки, чтобы позволить удалить битые записи.
2. Документ.ЧекККМ — обработчики модуля объекта
ОбработкаЗаполнения (ObjectModule, ~41 строка)
Инициализирует новый чек при создании. Основные действия:
- Устанавливает Организацию по умолчанию (основная организация пользователя).
- Устанавливает Дату (текущая), Ответственного (текущий пользователь), Автора.
- Заполняет Кассу, Склад из настроек рабочего места пользователя.
- Устанавливает ВидОперации = «Продажа» по умолчанию.
- Если передан параметр СчетНаОплатуПокупателю — вызывает ЗаполнитьПоСчетуНаОплатуПокупателю (копирует табличные части из счёта: контрагент, договор, товары, цены).
- Если передан параметр чека-основания (возврат) — вызывает СкопироватьТабличныеЧасти для заполнения ТЧ данными исходного чека.
// Фрагмент: заполнение по счёту покупателю
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.СчетНаОплатуПокупателю") Тогда
ЗаполнитьПоСчетуНаОплатуПокупателю(ДанныеЗаполнения);
КонецЕсли;
ПередЗаписью (ObjectModule, ~28 строк)
Подготовка документа перед записью в базу: - Проверяет заполнение Контрагента; если пуст — подставляет «Розничный покупатель» (справочник Контрагенты, предопределённый элемент). - Устанавливает Автора (если не заполнен) = текущий пользователь. - Вызывает перерасчёт итоговой суммы (СуммаДокумента) как сумму всех строк ТЧ Товары и Услуги.
// Фрагмент: подстановка контрагента по умолчанию
Если НЕ ЗначениеЗаполнено(Контрагент) Тогда
Контрагент = Справочники.Контрагенты.РозничныйПокупатель;
КонецЕсли;
ОбработкаПроверкиЗаполнения (ObjectModule, ~119 строк)
Комплексная проверка перед записью/проведением. Последовательность проверок:
- Обязательные реквизиты шапки: Организация, Касса, Склад, ВалютаДокумента — все должны быть заполнены (ShowError).
- КурсВзаиморасчетов: обязателен, если валюта документа не совпадает с валютой учёта организации.
- Основание для возврата: при
ВидОперации = Возвратпроверяется заполнение поля Основание. - Табличные части: должна быть заполнена хотя бы одна из ТЧ Товары или Услуги (иначе ошибка «Не указаны товары или услуги»).
- Счета учёта: если включена опция ИспользоватьУправлениеСчетамиУчета — все счета в ТЧ (СчетУчетаБУ, СчетДоходовБУ и т.д.) должны быть заполнены (иначе ошибка «Не заполнен счёт учёта для позиции [Номенклатура]»).
- Соответствие сумм оплаты: перед проведением проверяется, что сумма строк ТЧ Оплата ≥ СуммаДокумента (если меньше — ошибка «Сумма оплаты недостаточна»).
- Контроль суммы возврата: при ВидОперации = «Возврат» сумма возврата не может превышать сумму исходного чека (проверяется запросом к документу-основанию).
- Остатки товаров: при проведении (если не отключена настройка) проверяется достаточность остатков на складе (запрос к регистру ТоварыНаСкладах); если недостаточно — ошибка «Товар [Номенклатура] отсутствует на складе в количестве [Количество]».
- Функциональные опции: реквизиты, управляемые отключёнными опциями (например, ОтчетОРозничныхПродажах), исключаются из проверки.
ОбработкаПроведения (ObjectModule, ~85 строк)
Формирование движений при проведении. Последовательность:
- Проверяет флаг ФормироватьДвижениеВДокументахЧекККМ (константа конфигурации). Если Ложь — проведение пропускается, движения не формируются.
- Проверяет заполнение ОтчетОРозничныхПродажах: если заполнен — проведение игнорируется (все движения будут созданы через сводный отчёт).
- Вызывает функцию
ПодготовитьПараметрыПроведенияиз ManagerModule → получает структуру с таблицами значений для формирования движений. - Формирует движения по регистрам: - РеализацияТМЗ — расход товаров со склада. - НДС — начисление НДС к уплате. - КорректировкаНДС — если требуется корректировка. - Типовой — бухгалтерские проводки (Дт 62 Кт 6010, Дт 7010 Кт 1320, Дт 6010 Кт 3130).
- Вызывает процедуру
СформироватьДвиженияПоПлатежам— формирует движения по кассе для каждого вида оплаты из ТЧ Оплата.
// Фрагмент: проверка блокировки проведения
Если ЗначениеЗаполнено(ОтчетОРозничныхПродажах) Тогда
Возврат; // Движения формируются через ОтчетОРозничныхПродажах
КонецЕсли;
СтруктураПараметров = Документы.ЧекККМ.ПодготовитьПараметрыПроведения(Ссылка, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
// Формирование движений
УчетТоваров.СформироватьДвиженияРеализацияТМЗ(СтруктураПараметров, Движения);
УчетНДСИАкциза.СформироватьДвиженияНДС(СтруктураПараметров, Движения);
ПроцедурыБухгалтерскогоУчета.СформироватьПроводки(СтруктураПараметров, Движения);
ПриКопировании (ObjectModule, ~12 строк)
Обработка копирования документа: - Обнуляет НомерЧекаККМ (номер должен быть уникальным для каждого чека). - Обновляет Дату (устанавливается текущая дата). - Обновляет Ответственного (текущий пользователь). - Очищает ОтчетОРозничныхПродажах (копия не должна быть привязана к отчёту оригинала).
ПриЗакрытииФормы (Form.ФормаДокумента)
Завершение работы с формой: - Сохраняет настройки видимости колонок табличных частей в пользовательские настройки. - Вызывает подсистему МенеджерОборудования для отключения сканера штрихкодов (если был подключён при открытии формы). - Освобождает блокировку ККМ-устройства.
Бухгалтерские проводки и регистры (детализация)
При непосредственном проведении одиночного чека (до закрытия смены) формируются следующие записи:
Регистр: РеализацияТМЗ (AccumulationRegister)
| Параметр | Значение |
|---|---|
| Вид движения | Расход |
| Измерения | Организация, Склад, Номенклатура |
| Ресурсы | Количество, Сумма (себестоимость) |
| Логика | Для каждой строки ТЧ Товары создаётся движение расхода. Количество берётся из ТЧ, себестоимость рассчитывается партионным учётом (FIFO). При возврате — приход (сторнирующее движение). |
Регистр: НДС (AccumulationRegister)
| Параметр | Значение |
|---|---|
| Вид движения | Расход (для начисленного НДС к уплате) |
| Измерения | Организация, СчетУчетаНДС, ВидРеализации |
| Ресурсы | СуммаНДС |
| Логика | Суммируется НДС из всех строк ТЧ Товары и Услуги с группировкой по ставке. Движение создаётся только при УчитыватьНДС = Истина. |
Регистр: КорректировкаНДС (AccumulationRegister)
| Параметр | Значение |
|---|---|
| Вид движения | Расход |
| Измерения | Организация, ВидРеализации |
| Ресурсы | СуммаКорректировки |
| Логика | Формируется при необходимости корректировки НДС (изменение ставки, перерасчёт). Обычно пуст для стандартных продаж. |
Регистр: Типовой (AccountingRegister) — бухгалтерские проводки
| № | Дебет | Кредит | Сумма | Субконто | Описание |
|---|---|---|---|---|---|
| 1 | 62.03 (Расчёты с розничными покупателями) | СчетДоходовБУ (обычно 6010) | СуммаДокумента (с НДС) | Номенклатура, Контрагент | Отражение выручки от продажи |
| 2 | СчетСписанияСебестоимостиБУ (обычно 7010) | СчетУчетаБУ (обычно 1320) | Себестоимость (FIFO) | Номенклатура, Склад | Списание себестоимости товаров |
| 3 | СчетДоходовБУ (6010) | СчетУчетаНДСПоРеализации (обычно 3130) | СуммаНДС | — | Начисление НДС к уплате |
| 4 | 1010 (Касса) | 62.03 | Сумма наличной оплаты | Касса | Приём наличных денег |
| 5 | 1030 (Расчётный счёт / Переводы в пути) | 62.03 | Сумма безналичной оплаты | ДоговорЭквайринга | Приём оплаты банковской картой |
Примечание. При Возврате все проводки формируются со сторнирующими (отрицательными) суммами.
Валидации (сводно)
| № | Правило | Условие срабатывания | Текст ошибки |
|---|---|---|---|
| 1 | Обязательные реквизиты шапки | Организация, Касса, Склад или ВалютаДокумента не заполнены | «Поле [ИмяРеквизита] не заполнено» (ShowError) |
| 2 | Заполнение ТЧ | ТЧ Товары и ТЧ Услуги обе пусты | «Не указаны товары или услуги» |
| 3 | Контроль оплат | Сумма(Оплата) < СуммаДокумента |
«Сумма оплаты недостаточна» |
| 4 | Контроль возвратов | При ВидОперации = Возврат превышена сумма/количество исходного чека |
«Сумма возврата превышает сумму исходной продажи» |
| 5 | Основание для возврата | При ВидОперации = Возврат поле Основание не заполнено |
«Не указан документ-основание для возврата» |
| 6 | Контроль закрытия смены | ОтчетОРозничныхПродажах заполнен — попытка перепровести или изменить | Проведение блокируется (документ возвращает Возврат без движений) |
| 7 | Счета учёта | Включена опция ИспользоватьУправлениеСчетамиУчета, но счёт не заполнен | «Не заполнен счёт учёта для позиции [Номенклатура]» |
| 8 | Остатки товаров | Недостаточно товара на складе при проведении | «Товар [Номенклатура] отсутствует на складе в количестве [Количество]» |
| 9 | Курс взаиморасчетов | Валюта документа ≠ валюте учёта, КурсВзаиморасчетов не заполнен | «Не указан курс взаиморасчетов» |
Зависимости от модулей (детализация)
| Модуль | Кол-во вызовов | Назначение |
|---|---|---|
| СчетаУчетаВДокументах | ~41 | Заполняет счета учёта для товаров и услуг (СчетУчетаБУ, СчетДоходовБУ, СчетСписанияСебестоимостиБУ и др.) на основе настроек учётной политики организации. Вызывается при изменении Номенклатуры, Организации, Склада. |
| УчетТоваров | — | Валидация номенклатуры (классификация товар/услуга), расчёт себестоимости, формирование движений по регистру РеализацияТМЗ. |
| УчетНДСИАкциза | ~6 | Расчёт НДС и акциза, определение ставки НДС по номенклатуре, подготовка таблиц для проводок по НДС, формирование движений по регистру НДС. |
| УчетДоходовРасходов | — | Формирование движений по доходам и себестоимости. Подготавливает данные для проводок по счетам 6010, 7010. |
| ПроцедурыБухгалтерскогоУчета | — | Генерация проводок по бухгалтерским счетам (контирование). Формирует записи в регистр Типовой. |
| МенеджерОборудованияКлиент | — | Низкоуровневая интеграция с ККМ и терминалами эквайринга. Используется в ФормаОплаты и ФормаЗакрытиеСмены для управления фискальными устройствами. |
| ЧекиЕГАИС | ~12 | Для маркированных товаров (алкоголь, табак) — формирование данных для передачи в систему ЕГАИС. Проверяет коды маркировки, формирует пакеты данных. |
| ИнтеграцияWebKassaКлиент | — | Осуществляет вызовы API WebKassa (авторизация, пробитие чеков, получение Z-отчётов) на стороне клиента. |
| ИнтеграцияWebKassaВызовСервера | — | Серверные вызовы API WebKassa (отправка данных чека, получение ответа, обработка ошибок). |
| ИнтеграцияWebKassaКлиентСервер | — | Общие утилиты и методы форматирования JSON-пакетов для ККМ (формат даты, суммы, структуры чека). |
Связи с другими объектами
Документы-основания
Метаданные (metadata.based_on = []). Документ не создаётся на основании других документов через стандартный механизм конфигурации. Однако в коде модулей реализована ручная поддержка заполнения:
| Документ-основание | Механизм заполнения |
|---|---|
| СчетНаОплатуПокупателю | Функция ЗаполнитьПоСчетуНаОплатуПокупателю (ManagerModule) копирует табличные части из счёта при передаче ссылки через параметр ОснованиеЗаполнения. Заполняет Контрагент, Договор, ТЧ Товары. |
| ЧекККМ (при возврате) | При создании чека на возврат реквизит Основание ссылается на исходный чек; табличные части копируются через СкопироватьТабличныеЧасти. |
Кто создаётся на основании ЧекККМ
Метаданные (metadata.inverse_based_on = []). Документ не является основанием для других документов через стандартный механизм. Однако:
| Документ | Механизм |
|---|---|
| ОтчетОРозничныхПродажах | Функция СформироватьОтчетыОРозничныхПродажах (ManagerModule, ~2929 строк) собирает незакрытые чеки и создаёт на их основе отчёт о продажах. Связь через реквизит ОтчетОРозничныхПродажах в чеке. |
| РасходныйКассовыйОрдер (опционально) | При возврате товара может создаваться ручной РКО для выдачи денег покупателю (зависит от настроек кассы). |
Регистры движения
Документ формирует движения в следующие регистры (из metadata.register_records):
| № | Регистр | Тип | Назначение |
|---|---|---|---|
| 1 | РеализацияТМЗ | AccumulationRegister | Движения расхода товаров со склада (по ТЧ Товары). |
| 2 | НДС | AccumulationRegister | Начисление НДС к уплате (если УчитыватьНДС = Истина). |
| 3 | КорректировкаНДС | AccumulationRegister | Корректировки НДС (при необходимости). |
| 4 | Типовой | AccountingRegister | Бухгалтерские проводки (списание товаров, доход, НДС, приход денег). |
Дополнительно (не указаны в метаданных, реализованы в коде):
- Движения по кассе (через процедуру СформироватьДвиженияПоПлатежам).
- Движения по расчётам с контрагентами (для корпоративных чеков).
📝 Заметки для партнёра / разработчика
-
ВидОперации — первое, что определяет поведение документа. Проверяйте этот реквизит перед любой автоматизацией: если «Возврат» — обязательно заполнение Основания, если «Продажа» — основание не требуется. Форма документа меняется в зависимости от вида операции (см.
ОбработкаПолученияФормыв менеджере). -
Проведение блокируется если заполнен
ОтчетОРозничныхПродажах. Перед автоматическим проведением чека проверяйте, что этот реквизит пуст. Если заполнен — чек уже включён в отчёт о продажах, движения создаются только через отчёт, повторное проведение чека игнорируется. -
Табличные части заполняются через специфичные механизмы. Не пытайтесь добавлять строки в ТЧ Товары напрямую — используйте команду «Подбор» (
ПодборТовары) или «Поиск по штрихкоду» (ДобавитьПоШтрихкоду). Эти команды вызывают серверные процедуры, которые подтягивают цены, счета учёта, НДС и прочие реквизиты из регистров. -
Счета учёта заполняются автоматически модулем
СчетаУчетаВДокументах. Не редактируйте их вручную — они подбираются на основе настроек учётной политики организации и параметров номенклатуры. Если счёт не заполнился — проверьте настройки учёта для конкретной номенклатуры в справочнике или регистре сведений СчетаУчетаНоменклатуры. -
Оплата оформляется через
ФормаОплаты. После заполнения товаров вызывается команда «Принять оплату» (ПринятьОплату) — откроется диалог с расчётом сдачи. Сумма строк ТЧ Оплата должна строго равняться СуммаДокумента, иначе проведение завершится ошибкой. -
Закрытие смены — критическая операция. Команда
ЗакрытьСменувызывает функциюСформироватьОтчетыОРозничныхПродажах(~2929 строк в ManagerModule), которая собирает все чеки кассы за смену, создаёт отчёт и блокирует дальнейшее редактирование чеков. Выполняйте строго в конце рабочего дня, после проверки корректности всех чеков. -
НомерЧекаККМ обнуляется при копировании. Если вы копируете чек — поле НомерЧекаККМ автоматически очистится (обработчик
ПриКопировании). Не полагайтесь на сохранение номера при копировании; если интеграция с ККМ отсутствует — номер придётся вводить вручную. -
Маркированные товары (ЕГАИС). При продаже алкоголя и табака модуль ЧекиЕГАИС (~12 вызовов) формирует дополнительные данные для передачи в систему ЕГАИС. Убедитесь, что поле КодМаркировки в ТЧ Товары заполнено для всех маркированных товаров.
-
Кастомизация проводок. Если необходимо изменить логику формирования проводок, точки расширения находятся в процедуре
ОбработкаПроведениямодуля объекта и в функцииПодготовитьПараметрыПроведениямодуля менеджера. Не рекомендуется менять структуру регистров — лучше добавлять дополнительные движения через подписки на события.
🔗 Связанные разделы
- kassovaya-smena — Документ кассовой смены.
- oplata-platezhnoy-kartoy — Отражение оплат банковскими картами.
- prihodnyy-kassovyy-order — Оформление прихода наличных.
- rashodnyy-kassovyy-order — Расходные кассовые документы (в т.ч. возвраты).