С 2017 года все организации и ИП, применяющие онлайн-кассы, обязаны передавать чеки в налоговую через операторов фискальных данных (ОФД). Но просто отправить чек — недостаточно: для бухгалтерского учета, инвентаризации и контроля продаж эти данные нужно перенести в 1С. Без автоматизации процесс превращается в рутину: сотни чеков в день, риск ошибок при ручном вводе, расхождения с реальными продажами.
К счастью, 1С:Предприятие поддерживает интеграцию с большинством ОФД — от Такском и Платформа ОФД до Ярус и Эвотор.ОФД. Однако настройка требует понимания механизмов обмена, форматов данных и особенностей конкретной конфигурации (Бухгалтерия 3.0, Управление торговлей 11, Розница 2.3 и др.). В этой статье разберём все способы загрузки чеков — от стандартных обработок до кастомизированных решений для сложных схем учета.
Если вы только начинаете работать с онлайн-кассами, сначала убедитесь, что ваш ОФД поддерживает API для интеграции с 1С. Список аккредитованных операторов можно найти на сайте ФНС, но технические возможности обмена уточняйте напрямую у провайдера — они могут отличаться даже у партнёров одного бренда.
Важно: загрузка чеков из ОФД не заменяет фискализацию! Это два параллельных процесса: первый обеспечивает передачу данных в налоговую, второй — синхронизацию продаж с вашей учётной системой. Пропуск одного из этапов грозит штрафами или искажением отчётности.
1. Какие данные можно загрузить из ОФД в 1С
Через интеграцию с ОФД в 1С передаются не только суммы чеков, но и детализированная информация о продажах. Вот полный перечень данных, которые обычно доступны для загрузки:
- 📄 Реквизиты чека: номер, дата/время, тип операции (приход/возврат), фискальный признак.
- 💰 Суммы: итоговая стоимость, НДС (с разбивкой по ставкам), скидки, оплата наличными/безналом.
- 🛒 Товарные позиции: наименование, количество, цена за единицу, артикул (если поддерживается кассой).
- 👤 Клиентские данные: email или телефон покупателя (если чек был отправлен электронно).
- 🏷️ Дополнительные атрибуты: номер смены, кассир, номер кассы, комментарии.
Однако не все ОФД передают полный набор данных. Например, некоторые операторы не сохраняют детализацию товаров в чеках старше 30 дней или не поддерживают передачу артикулов. Это критично для магазинов с широким ассортиментом — без привязки к номенклатуре 1С не сможет автоматически списать товары со склада.
Ещё один нюанс: формат данных зависит от версии ФФД (формата фискальных данных). С 2021 года действует ФФД 1.2, который расширил список передаваемых реквизитов, но не все кассы и ОФД успевают обновляться. Перед настройкой интеграции проверьте, какой ФФД использует ваше оборудование — это влияет на структуру загружаемых файлов.
2. Способы загрузки чеков из ОФД в 1С
Существует три основных метода интеграции. Выбор зависит от объёма данных, бюджета и технических возможностей вашей инфраструктуры:
- Стандартные обработки 1С — бесплатные решения, встроенные в типовую конфигурацию (например,"Загрузка данных из ОФД" для Бухгалтерии 3.0). Подходят для малых предприятий с простыми схемами учета.
- Обмен через API ОФД — прямой запрос данных по протоколу
JSONилиXML. Требует настройки в личном кабинете оператора и доработок в 1С (или использования готовых расширений). - Промежуточные сервисы — облачные платформы (например, 1С-ЭДО, Клеверенс), которые агрегируют данные из ОФД и передают их в 1С в удобном формате.
Рассмотрим каждый способ подробнее, включая плюсы, минусы и примеры настройки.
2.1 Стандартные обработки 1С
Типовые конфигурации 1С:Бухгалтерия 3.0 (релиз 3.0.100+) и 1С:Розница 2.3 включают обработку"Загрузка данных из ОФД". Она поддерживает загрузку чеков в формате .xml или .json, полученных от оператора. Алгоритм работы:
- 📥 Скачиваете архив с чеками из личного кабинета ОФД (обычно в разделе"Отчёты" или"Экспорт данных").
- 🖥️ Запускаете обработку в 1С через меню
Файл → Открыть(путь к файлу:1Cv8.1CD\ExtForms\Обработки\ЗагрузкаИзОФД.epf). - ⚙️ Настраиваете правила сопоставления (какие реквизиты чека соответствуют полям в 1С).
- 🔄 Запускаете загрузку и проверяете результаты в документах"Отчёт о розничных продажах" или"Поступление денежных средств".
Преимущества метода:
- ✅ Бесплатно (не требует доработок или покупки модулей).
- ✅ Подходит для разовых загрузок (например, при миграции на новую кассу).
Недостатки:
- ❌ Ручное скачивание файлов — неудобно при большом объёме чеков.
- ❌ Нет автоматического обновления — данные устаревают.
- ❌ Ограниченная поддержка форматов (не все ОФД экспортируют данные в совместимом виде).
Если обработка не находит файл по стандартному пути, проверьте наличие модуля"Обмен данными с ОФД" в составе вашей конфигурации. Его можно доустановить через"Администрирование → Печатные формы, отчёты и обработки".
2.2 Обмен через API ОФД
Более гибкий способ — настройка прямого обмена между 1С и ОФД по API. Большинство операторов предоставляют документацию для разработчиков (например, Такском использует REST API с авторизацией по токену, а Платформа ОФД — SOAP). Для реализации потребуется:
- Получить доступ к API в личном кабинете ОФД (обычно в разделе"Интеграции" или"Для разработчиков").
- Создать HTTP-запросы в 1С с помощью объекта
HTTPСоединениеили внешней компоненты. - Написать обработку для парсинга ответа и записи данных в документы 1С.
Пример кода для запроса чеков за день (на языке 1С):
Процедура ПолучитьЧекиИзОФД(ДатаНачала, ДатаКонца)
АдресAPI ="https://api.ofd.ru/v1/receipts";
Токен ="ВашТокенДоступа";
HTTP = Новый HTTPСоединение(АдресAPI);
HTTP.УстановитьЗаголовок("Authorization","Bearer" + Токен);
HTTP.УстановитьЗаголовок("Content-Type","application/json");
ТелоЗапроса = JSON.Записать(Новый Структура("dateFrom, dateTo", ДатаНачала, ДатаКонца));
Ответ = HTTP.ОтправитьДляПолученияТекста("POST","", ТелоЗапроса);
// Обработка ответа и запись в 1С
Данные = JSON.Прочитать(Ответ);
Для Каждого Чек Из Данные.чеки Цикл
НовыйДокумент = Документы.ОтчётОРозничныхПродажах.СоздатьДокумент;
НовыйДокумент.Дата = Чек.дата;
НовыйДокумент.Сумма = Чек.итог;
//... заполнение других полей
НовыйДокумент.Записать;
КонецЦикла;
КонецПроцедуры
Преимущества API-интеграции:
- 🔄 Автоматизация: чеки загружаются по расписанию (например, раз в час).
- 📊 Актуальность: данные всегда свежие, без ручного экспорта.
- 🛠️ Гибкость: можно доработать логику под специфику бизнеса (например, фильтровать чеки по магазинам).
Сложности:
- ⚙️ Требуются навыки программирования в 1С или привлечение специалиста.
- 🔒 Не все ОФД предоставляют стабильное API (возможны изменения в структуре ответов).
- 💸 Некоторые операторы берут плату за доступ к API (например, 500–2000 руб./мес.).
Что делать, если ОФД не предоставляет API?
Если ваш оператор не поддерживает API, но позволяет экспорт в .csv или .xlsx, можно использовать универсальную обработку"Загрузка данных из табличных документов" (входит в поставку 1С). Для этого:
1. Экспортируйте чеки из ОФД в Excel.
2. Настройте правила сопоставления колонок файла с реквизитами документов 1С.
3. Запустите загрузку через меню Файл → Открыть, выбрав обработку ЗагрузкаДанныхИзТабличногоДокумента.epf.
2.3 Промежуточные сервисы интеграции
Если нет ресурсов на разработку или стандартные обработки не покрывают потребности, можно воспользоваться готовыми сервисами. Они выступают посредниками между ОФД и 1С, предлагая:
- 🔗 Автоматическую синхронизацию чеков по расписанию.
- 📂 Хранение истории данных (на случай аудита).
- 🛠️ Инструменты для исправления ошибок (например, привязка товаров по артикулу).
Популярные решения:
| Сервис | Поддерживаемые ОФД | Стоимость (руб./мес.) | Особенности |
|---|---|---|---|
| 1С-ЭДО | Такском, Платформа ОФД, Ярус | от 1 500 | Встроенная интеграция с 1С, поддержка ЭДО |
| Клеверенс | Любые ОФД с API | от 2 000 | Гибкие настройки сопоставления, облачное хранилище |
| Атол Онлайн | Атол.ОФД, партнёры | от 900 | Оптимизировано для касс Атол |
| МойСклад | Такском, Эвотор.ОФД | от 1 800 | Интеграция с учётной системой МойСклад |
Преимущества сервисов:
- ⚡ Быстрая настройка (не требует программирования).
- 🔒 Надёжность (данные резервируются на стороне сервиса).
- 📈 Дополнительные функции (аналитика продаж, контроль кассиров).
Недостатки:
- 💸 Абонентская плата (от 900 руб./мес.).
- 🔗 Зависимость от третьей стороны (риски сбоев или изменения тарифов).
Для магазинов с несколькими кассами или филиалами промежуточные сервисы часто оказываются дешевле, чем разработка собственной интеграции.
3. Пошаговая инструкция: загрузка чеков через стандартную обработку 1С
Рассмотрим самый доступный способ — использование встроенной обработки на примере 1С:Бухгалтерия 3.0. Вам понадобится:
- Файл с чеками в формате
.xmlили.json(скачанный из личного кабинета ОФД). - Права администратора в 1С.
Шаг 1: Экспорт чеков из ОФД
- Авторизуйтесь в личном кабинете вашего ОФД (например, Платформа ОФД).
- Перейдите в раздел"Чеки" или"Отчёты".
- Выберите период и формат экспорта (
XMLдля 1С). - Скачайте архив с чеками на компьютер.
Шаг 2: Подготовка 1С
- Откройте 1С в режиме"Конфигуратор" (зажмите
Shiftпри запуске). - Перейдите в
Администрирование → Печатные формы, отчёты и обработки. - Убедитесь, что установлен модуль"Обмен данными с ОФД". Если нет — добавьте его через"Дополнительные отчёты и обработки".
Шаг 3: Загрузка чеков
- В пользовательском режиме откройте меню
Файл → Открыть. - Выберите файл обработки
ЗагрузкаИзОФД.epf(обычно находится в папке1Cv8\ExtForms\Обработки). - Укажите путь к скачанному файлу с чеками.
- Настройте правила сопоставления (например, поле"Наименование товара" в чеке →"Номенклатура" в 1С).
- Запустите загрузку и дождитесь завершения.
Файл с чеками скачан за нужный период|В 1С установлен модуль обмена с ОФД|Права пользователя позволяют создавать документы"Отчёт о розничных продажах"|Настроено сопоставление ключевых реквизитов (дата, сумма, номенклатура)
-->
Шаг 4: Проверка результатов
- Откройте журнал документов"Отчёты о розничных продажах" (
Продажи → Розничные продажи). - Сверьте количество загруженных чеков с данными ОФД.
- Проверьте, что суммы и номенклатура совпадают (особенно если используете складской учёт).
1. Формат файла (должен быть XML или JSON, а не PDF).
2. Кодировку (1С ожидает UTF-8).
3. Структуру файла — некоторые ОФД экспортируют данные в нестандартном виде. В этом случае потребуется доработка обработки.-->
4. Настройка автоматической загрузки через API
Для автоматизации обмена настроим запрос чеков по API с последующей записью в 1С. Используем Платформу ОФД в качестве примера (логика для других операторов аналогична).
Шаг 1: Получение токена API
- Войдите в личный кабинет ОФД.
- Перейдите в раздел"API" или"Интеграции".
- Сгенерируйте токен доступа (обычно в формате
Bearer {token}). - Скопируйте идентификатор организации (нужен для запросов).
Шаг 2: Создание HTTP-запроса в 1С
- В конфигураторе откройте модуль управляемого приложения или создайте новую обработку.
- Добавьте код для запроса чеков (пример ниже).
- Настройте обработку ответа: парсинг
JSONи создание документов в 1С.
Пример кода для запроса чеков за текущий день:
Процедура ЗагрузитьЧекиИзОФД
АдресAPI ="https://api.platformaofd.ru/v2/receipts";
Токен ="ВашТокен";
ОрганизацияID ="ВашИдентификаторОрганизации";
HTTP = Новый HTTPСоединение(АдресAPI);
HTTP.УстановитьЗаголовок("Authorization","Bearer" + Токен);
HTTP.УстановитьЗаголовок("Content-Type","application/json");
ДатаНачала = НачалоДня(ТекущаяДата);
ДатаКонца = КонецДня(ТекущаяДата);
ТелоЗапроса = JSON.Записать(Новый Структура(
"organizationId, dateFrom, dateTo",
ОрганизацияID, ДатаНачала, ДатаКонца
));
Ответ = HTTP.ОтправитьДляПолученияТекста("POST","", ТелоЗапроса);
Данные = JSON.Прочитать(Ответ);
Для Каждого Чек Из Данные.receipts Цикл
Документ = Документы.ОтчётОРозничныхПродажах.СоздатьДокумент;
Документ.Дата = Чек.receiptDate;
Документ.Сумма = Чек.totalSum;
Документ.Организация = Справочники.Организации.НайтиПоНаименованию(Чек.organizationName);
// Заполнение табличной части товарами
Для Каждого Товар Из Чек.items Цикл
Строка = Документ.Товары.Добавить;
Строка.Номенклатура = Справочники.Номенклатура.НайтиПоАртикулу(Товар.code);
Строка.Количество = Товар.quantity;
Строка.Цена = Товар.price;
Строка.Сумма = Товар.sum;
КонецЦикла;
Документ.Записать;
КонецЦикла;
КонецПроцедуры
Шаг 3: Автоматизация по расписанию
- Создайте регламентное задание в 1С:
Администрирование → Регламентные задания. - Укажите периодичность (например, каждый час).
- Привяжите процедуру
ЗагрузитьЧекиИзОФДк заданию.
Для отладки API-запросов используйте инструменты вроде Postman или Insomnia. Они помогут проверить структуру ответа ОФД до написания кода в 1С.
5. Типичные ошибки и их решения
При загрузке чеков из ОФД пользователи сталкиваются с рядом проблем. Рассмотрим самые распространённые и способы их устранения.
5.1 Ошибка:"Не удалось прочитать файл чеков"
Причины и решения:
- 🔹 Неправильный формат файла: ОФД экспортировал данные в
PDFилиXLS. Решение: запросите файл вXML/JSON. - 🔹 Повреждённый архив: Файл не распаковывается. Решение: скачайте архив заново или проверьте его целостность (например, через 7-Zip).
- 🔹 Несовместимая кодировка: 1С ожидает
UTF-8, а файл вWindows-1251. Решение: конвертируйте файл через Notepad++ или добавьте обработку кодировки в код 1С.
5.2 Ошибка:"Не найдена номенклатура"
Проблема возникает, когда товары в чеке не сопоставлены с номенклатурой в 1С. Способы решения:
- 🔍 Ручное сопоставление: В обработке загрузки укажите правила соответствия (например, поле"Артикул" в чеке →"Артикул" в справочнике"Номенклатура").
- 📂 Импорт номенклатуры: Предварительно загрузите в 1С список товаров из ОФД или кассового ПО.
- 🤖 Автоматическое создание: Настройте в обработке опцию"Создавать отсутствующую номенклатуру".
Пример кода для автоматического создания номенклатуры:
Функция НайтиИлиСоздатьНоменклатуру(Артикул, Наименование)
Номенклатура = Справочники.Номенклатура.НайтиПоАртикулу(Артикул);
Если Номенклатура = СправочникСсылка.Номенклатура.ПустаяСсылка Тогда
Номенклатура = Справочники.Номенклатура.СоздатьЭлемент;
Номенклатура.Артикул = Артикул;
Номенклатура.Наименование = Наименование;
Номенклатура.Записать;
КонецЕсли;
Возврат Номенклатура;
КонецФункции
5.3 Ошибка:"Расхождение сумм в чеке и 1С"
Разница может возникать из-за:
- 💰 Округления: Касса округляет копейки, а 1С нет (или наоборот). Решение: настройте правила округления в обработке.
- 🛒 Неучтённых скидок: В чеке указана скидка, но в 1С она не применена. Решение: проверьте настройки скидок в документе"Отчёт о розничных продажах".
- 📊 НДС: В чеке указан НДС 20%, а в 1С для товара прописан 10%. Решение: синхронизируйте ставки НДС в справочнике"Номенклатура".
Для проверки сумм экспортируйте чеки из ОФД в Excel и сравните их с данными в 1С через отчёт"Анализ продаж по чекам" (Отчёты → Продажи).
5.4 Ошибка:"Нет соединения с ОФД по API"
Проблемы с API обычно связаны с:
- 🔌 Неправильным токеном: Убедитесь, что токен не истёк (срок действия обычно 1–12 месяцев).
- 🌐 Блокировкой IP: ОФД может ограничивать доступ с определённых адресов. Решение: добавьте IP вашего сервера в белый список в личном кабинете ОФД.
- 📡 Ограничениями по количеству запросов: Некоторые ОФД лимитируют количество запросов в минуту. Решение: добавьте задержку между запросами в коде 1С.
Пример кода с обработкой ошибок соединения:
Процедура ЗагрузитьЧекиБезопасно
Попытка
ЗагрузитьЧекиИзОФД;
Исключение
Сообщить("Ошибка загрузки:" + ОписаниеОшибки);
Если Найти(ОписаниеОшибки,"401") > 0 Тогда
Сообщить("Проверьте токен доступа в настройках ОФД!");
ИначеЕсли Найти(ОписаниеОшибки,"429") > 0 Тогда
Сообщить("Превышен лимит запросов. Повторите попытку через 1 минуту.");
КонецЕсли;
КонецПопытки;
КонецПроцедуры
6. Дополнительные настройки для сложных схем учёта
Если ваш бизнес использует нестандартные схемы работы (например, несколько юридических лиц, мультибрендовые магазины или франчайзинг), стандартные механизмы загрузки могут не подойти. Рассмотримные доработки.
6.1 Загрузка чеков для нескольких организаций
Если у вас несколько юридических лиц, но чеки приходят через один ОФД, необходимо:
- В личном кабинете ОФД настроить разделение чеков по ИНН или наименованию организации.
- В обработке загрузки добавить проверку реквизита"Организация" и создание документов в соответствующих базах 1С.
Пример кода для разделения по организациям:
Процедура ОпределитьОрганизацию(Чек)
Если Чек.inn ="1234567890" Тогда
Возврат Справочники.Организации.НайтиПоНаименованию("ООО Ромашка");
ИначеЕсли Чек.inn ="0987654321" Тогда
Возврат Справочники.Организации.НайтиПоНаименованию("ИП Иванов");
КонецЕсли;
КонецПроцедуры
6.2 Синхронизация с кассовым ПО (например, Атол или Эвотор)
Если вы используете кассовое ПО (например, Атол:Драйвер ККТ или Эвотор:Касса), можно настроить прямой обмен между кассой и 1С, минуя ОФД. Это ускоряет процесс и уменьшает риск ошибок. Для этого:
- Установите драйвер обмена (например, Атол:Обмен с 1С).
- Настройте регламентное задание в 1С для периодического опроса кассы.
- Сопоставьте номенклатуру и склады между системами.
Преимущества прямого обмена:
- ⚡ Скорость: данные передаются сразу после пробития чека.
- 🔗 Точность: нет потерь данных при передаче через ОФД.
- 📦 Поддержка складского учёта: списание товаров происходит в реальном времени.
6.3 Настройка для франчайзинговых сетей
Франчайзеру важно получать данные о продажах