Интеграция учетной системы с данными Операторов Фискальных Данных (ОФД) — это востребованная задача для ритейла и сферы услуг. В рамках конфигурации 1С:Комплексная автоматизация (КА) такая загрузка позволяет решать задачи автоматической сверки выручки, восстановления учета при потере данных в базе или автоматизации заполнения авансовых отчетов. Рассмотрим подробно, как реализовать этот процесс, что нужно приобрести и как адаптировать имеющиеся решения под ваши нужды.
Прежде чем приступать к программному коду, разберем, зачем именно нам нужны данные из ОФД в 1С. Проанализируем основные бизнес-сценарии:
1С:КА были повреждены или учет не велся оперативно, данные из ОФД станут единственным достоверным источником для формирования документов ОтчетОРозничныхПродажах за прошедшие периоды.Для реализации загрузки недостаточно просто иметь договор на передачу данных в налоговую. Разберем по шагам, что необходимо подготовить на стороне оператора:
Большинство крупных операторов (таких как Платформа ОФД, Такском или OFD.ru) предоставляют доступ к своим данным через API. Важно понимать, что эта услуга часто является платной и подключается отдельно в личном кабинете ОФД.
Выясним, какие технические параметры нам понадобятся:
Рассмотрим ситуацию, когда у нас есть готовая обработка (например, предназначенная для 1С:Бухгалтерии или 1С:Розницы), и нам нужно внедрить ее в 1С:КА. Проанализируем основные этапы адаптации:
Проблема в том, что в ОФД товар хранится просто как строка текста (наименование), а в 1С это объект справочника Номенклатура. Нам необходимо создать механизм сопоставления. Рассмотрим пример кода для поиска номенклатуры по наименованию или штрихкоду:
Функция НайтиНоменклатуруПоДаннымОФД(НаименованиеИзЧека, Штрихкод = "") Экспорт
// Сначала ищем по штрихкоду, если он передан оператором
Если ЗначениеЗаполнено(Штрихкод) Тогда
СсылкаНаНоменклатуру = РегистрыСведений.ШтрихкодыНоменклатуры.ПолучитьНоменклатуруПоШтрихкоду(Штрихкод);
Если Не СсылкаНаНоменклатуру.Пустая() Тогда
Возврат СсылкаНаНоменклатуру;
КонецЕсли;
КонецЕсли;
// Поиск по точному совпадению наименования
СсылкаНаНоменклатуру = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеИзЧека, Истина);
Возврат СсылкаНаНоменклатуру;
КонецФункции
Разберем ситуацию глубже: если автоматический поиск не удался, обработка должна предлагать пользователю форму сопоставления, где он вручную свяжет "Хлеб ржаной 300г" из ОФД с соответствующей позицией в базе. Эти связи стоит сохранять в специальный регистр сведений, чтобы не повторять процедуру при следующей загрузке.
Посмотрим на пример структуры запроса к API для получения списка чеков за период. Большинство современных API используют метод GET или POST с передачей параметров в формате JSON.
Процедура ЗагрузитьДанныеИзОФД(ДатаНачала, ДатаОкончания)
Сервер = "api.platformaofd.ru";
Токен = "ваш_секретный_api_token";
Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "Bearer " + Токен);
Заголовки.Вставить("Content-Type", "application/json");
Соединение = Новый HTTPСоединение(Сервер, 443, , , , 30, Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/v1/get_checks?from=" + Формат(ДатаНачала, "ДФ=yyyy-MM-dd"), Заголовки);
Ответ = Соединение.Получить(Запрос);
Если Ответ.КодСостояния = 200 Тогда
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
Данные = ПрочитатьJSON(ЧтениеJSON);
// Далее следует цикл обхода структуры "Данные" и создание документов в 1С
Иначе
Сообщить("Ошибка запроса: " + Ответ.КодСостояния);
КонецЕсли;
КонецПроцедуры
Проанализируем этот код: мы используем объект HTTPСоединение с защищенным соединением, так как работа с персональными и финансовыми данными требует шифрования. Полученный JSON необходимо разобрать и преобразовать в документы ОтчетОРозничныхПродажах или ПриобретениеТоваровУслуг (в случае авансовых отчетов).
В отличие от простых конфигураций, 1С:КА требует заполнения множества аналитик. При создании документов на основе данных ОФД обязательно учитываем следующее:
РеализацияЧерезКомиссионера или РозничнаяПродажа).Посмотрим на практические советы, которые помогут избежать ошибок при адаптации:
Приостановить).Таким образом, адаптация обработки — это не просто "перенос кода", а создание надежного моста между внешним сервисом и строгими правилами учета в 1С:Комплексная автоматизация. Тщательное планирование сопоставления номенклатуры и проверка API-ключей являются залогом успешной интеграции.