В этой статье мы подробно разберем, как интегрировать работу с банковскими картами в устаревающую, но все еще популярную систему 1С 7.7 «Торговля и Склад» (ТиС). Основная сложность здесь заключается в том, что типовые конфигурации 7.7 не всегда корректно поддерживают разделение выручки на наличную и безналичную при печати чеков на современных фискальных регистраторах (ФР), таких как FPrint. Проанализируем, как решить техническую задачу передачи признака оплаты в драйвер и как правильно выстроить управленческий учет этих операций.
Первый и самый важный вопрос — это передача типа оплаты в драйвер ККТ. Если просто закрывать чек, вся сумма по умолчанию попадет в «Наличные», что приведет к расхождениям в Z-отчете и путанице при сверке с банковским терминалом. Рассмотрим ситуацию на примере популярных драйверов АТОЛ (DTO).
Разберем логику взаимодействия. В драйверах DTO 6/8 за тип оплаты отвечает свойство TypeClose. Обычно в настройках ФР (таблица типов оплат) распределение выглядит следующим образом:
Для корректной работы нам необходимо модифицировать внешнюю обработку обслуживания ФР. Обычно это файл fr_comm.ert или atol_db.ert, находящийся в каталоге ExtForms\Equip. Проанализируем пример кода, который позволяет разделять оплату:
// В процедуре печати чека добавим условие
Если ФлагБезнал = 0 Тогда
// Стандартная логика для наличных
Объект.TypeClose = 0;
Если (Получено > 0) И (Получено > СуммаЧека) Тогда
Объект.Summ = Окр(Получено, 2, 1);
Объект.ОплатаСоСдачей;
Иначе
Объект.ЗакрытьЧек;
КонецЕсли;
Иначе
// Логика для оплаты картой
Объект.Summ = СуммаЧека;
// Устанавливаем тип оплаты №3 (согласно настройкам ФР)
Объект.TypeClose = 3;
// Регистрируем оплату
Объект.Оплата;
// Закрываем чек
Объект.ЗакрытьЧек;
КонецЕсли;
Важный нюанс: метод ЗакрытьЧек без предварительного вызова Оплата с установленным TypeClose может привести к аннулированию чека или ошибке «Чек оплачен не полностью». Выясним причину: ФР ожидает подтверждения, что вся сумма чека распределена по видам платежей. При наличном расчете сдача вычисляется автоматически, а при безналичном — сумма оплаты должна строго равняться сумме чека.
Теперь рассмотрим вторую часть проблемы: как учитывать эти деньги в базе. Многие пользователи используют схему с РКО (Расходный кассовый ордер) с видом «Прочее» в конце смены, чтобы «вычесть» безналичную выручку из остатка кассы. Это в корне неверно, так как искажает обороты по кассе и не позволяет отслеживать задолженность банка-эквайера.
Разберем более правильный алгоритм:
ВидОплаты (Перечисление: Наличные, Карта). При проведении чека с видом «Карта», сумма должна фиксироваться не как приход в кассу, а как увеличение дебиторской задолженности банка.Закрытие смены (документ Отчет о розничных продажах) должна уметь разделять выручку. В современных доработках для 7.7 в этот документ добавляют закладку «Оплата картами», где перечисляются суммы и эквайеры.Выписка необходимо указывать не просто приход от покупателя, а закрытие долга по эквайрингу. Это позволит видеть комиссию банка как операционный расход (91 счет).
Проанализируем ситуацию, когда терминал стоит отдельно. В этом случае кассир вручную вбивает сумму на терминале, дожидается чека («слипа») и только потом нажимает «Оплатить» в 1С. Это порождает человеческий фактор: суммы в 1С и на терминале могут не совпасть.
Для исключения ошибок рекомендуется рассмотреть возможность интеграции терминала. Для 1С 7.7 существуют компоненты (например, от Сбербанка SBRFCOM.dll), которые позволяют инициировать оплату прямо из программы. Выясним преимущества этого метода: если оплата по карте не прошла (недостаточно средств, ошибка связи), 1С не даст пробить фискальный чек, и остатки товара не спишутся ошибочно.
Выясним, как эффективно контролировать работу. В конце дня кассир должен сверять три показателя:
Если эти три цифры совпадают, значит, настройки выполнены корректно. Если же в Z-отчете безналичная выручка нулевая, хотя оплаты были — ищите проблему в передаче параметра TypeClose в обработке fr_comm.ert.
В заключение отметим, что переход на 54-ФЗ (онлайн-кассы) накладывает дополнительные требования. В новых версиях драйверов (например, DTO 10) вместо «Безналичными» используется понятие «Электронными». При использовании старых конфигураций 7.7 убедитесь, что ваши внешние компоненты поддерживают работу с признаками способа расчета в соответствии с актуальным форматом фискальных данных (ФФД).