Как организовать выгрузку данных из iiko в 1С:Бухгалтерия для Казахстана?

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия Бухгалтерский учет Сфера услуг, туризм и социальный сектор
← На главную

Автоматизация ресторанного бизнеса часто строится на связке двух систем: iiko для оперативного и управленческого учета и 1С:Предприятие для ведения регламентированного учета и сдачи отчетности. Проблема заключается в том, что стандартные механизмы обмена, предлагаемые разработчиками iiko, не всегда корректно работают с локализованными конфигурациями, такими как «Бухгалтерия для Казахстана» (БК). Рассмотрим детально, как выстроить процесс выгрузки данных, какие «подводные камни» нас ждут и стоит ли писать собственную обработку с нуля.

Анализ штатного механизма выгрузки через CSV

Разработчики iiko предлагают бесплатную обработку для загрузки данных в 1С, которая работает с промежуточными файлами формата .csv. На первый взгляд, это кажется простым решением, но при более глубоком анализе мы можем столкнуться с рядом проблем. Проанализируем техническую реализацию этого модуля. Как отмечают специалисты, внутренняя структура кода штатной обработки часто бывает далека от идеала. Переменные с нечитаемыми именами типа тз1, Тз12 или сокращения вроде АРаз сильно затрудняют отладку и адаптацию кода под нужды конкретного предприятия.

Более того, штатная обработка часто не учитывает специфику законодательства РК, например, корректное отражение НДС или работу с виртуальными складами. Разберем основные причины, почему стандартный файл .csv может потребовать ручного вмешательства или написания собственного загрузчика:

Подготовка к разработке собственного загрузчика

Если мы решили написать загрузку самостоятельно, первым делом нам необходимо получить тестовые файлы выгрузки из iiko. Проанализируем структуру типичного файла. Несмотря на утверждения, что данных об организации там нет, чаще всего наименование организации присутствует в одной из колонок. Однако для надежности в 1С лучше создать регистр сведений или простую таблицу сопоставления.

Рассмотрим алгоритм создания обработки загрузки. Нам потребуется использовать объект ТекстовыйДокумент или ЧтениеТекста для разбора CSV. Пример кода для инициализации чтения файла:


Текст = Новый ЧтениеТекста;
Текст.Открыть(ПутьКФайлу, КодировкаТекста.UTF8);
СтрокаТекста = Текст.ПрочитатьСтроку();
Пока СтрокаТекста <> Неопределено Цикл
    МассивКолонок = СтрРазделить(СтрокаТекста, ";");
    // Обработка данных массива
    СтрокаТекста = Текст.ПрочитатьСтроку();
КонецЦикла;

Важный момент: при работе с конфигурацией для Казахстана (БК), нам обязательно нужно учитывать БИН/ИИН при поиске контрагентов. В стандартных российских обработках поиск идет по ИНН/КПП, что в условиях Казахстана работать не будет.

Особенности интеграции для Казахстана (Виртуальный склад и СНТ)

При загрузке данных в «Бухгалтерию для Казахстана» мы сталкиваемся с необходимостью работы с Виртуальным складом. iiko ничего не знает о специфике СНТ (Сопроводительных накладных на товары), поэтому при загрузке поступлений товаров в 1С нам придется «дообогащать» данные. Выясним, какие шаги для этого необходимы:

  1. Сопоставление складов: Склады в iiko и ИД-складов в 1С (Виртуальный склад) должны быть жестко связаны. Рекомендуется создать дополнительный реквизит в справочнике Склады или отдельный регистр соответствий.
  2. Номенклатура и коды ТН ВЭД: В iiko часто используются сокращенные названия. Для корректной работы ВС в 1С номенклатура должна содержать правильные коды ТН ВЭД и признаки происхождения товара. При загрузке нужно реализовать поиск по артикулу или внешнему идентификатору GUID.
  3. Налоговый план счетов: Проанализируем счета учета. В БК счета отличаются от российских (например, 3310 вместо 60, 1310 вместо 10). Собственная обработка должна подставлять счета согласно учетной политике Казахстана.

Методы сопоставления объектов

Одна из главных проблем интеграции — это модификаторы блюд (добавки к пицце, сиропы в кофе). В iiko модификаторы могут входить в состав блюда или идти отдельными строками. Разберем, как правильно переносить их в 1С. Если модификатор имеет цену, он должен попадать в Отчет о розничных продажах как отдельная позиция номенклатуры. Если это просто уточнение без цены, в бухгалтерском учете его можно игнорировать, но учитывать при списании ингредиентов.

Для корректного сопоставления номенклатуры рекомендуем использовать следующий подход в коде:


Функция НайтиНоменклатуруПоДаннымIiko(ИдентификаторIiko, НаименованиеИзФайла)
    // Сначала ищем по уникальному ID из системы iiko
    Ссылка = Справочники.Номенклатура.НайтиПоРеквизиту("ID_iiko", ИдентификаторIiko);
    Если Ссылка.Пустая() Тогда
        // Если не нашли, пробуем по наименованию (менее надежно)
        Ссылка = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеИзФайла);
    КонецЕсли;
    Возврат Ссылка;
КонецФункции

Использование API как современная альтернатива файлам

Если обмен через CSV кажется слишком архаичным и нестабильным, рассмотрим использование iikoExchange API. Это позволяет 1С напрямую обращаться к базе iiko. Проанализируем преимущества этого метода:

Однако для реализации обмена через API потребуются навыки работы с HTTPСоединение и разбора JSON. Это более трудозатратный процесс на этапе разработки, но он окупается стабильностью работы системы в будущем.

Заключение и рекомендации

Подводя итог, можно сказать, что для стандартной «Бухгалтерии для Казахстана» использование «родной» обработки от iiko часто превращается в бесконечный процесс исправления ошибок. Оптимальным решением для программиста будет создание собственного модуля загрузки, использующего CSV как транспорт данных, но с полностью переписанной логикой поиска и создания документов 1С.

Основные советы для успешной интеграции:

Рассмотренные подходы позволят создать надежную систему обмена данными, которая обеспечит прозрачность учета и минимизирует ручной труд бухгалтера.

← На главную