Как перенести накладные, продажи и номенклатуру из iiko в 1С

· 9 мин

Содержание

Выгрузка данных из Айко (iiko) в 1С делается одним из трёх способов: файлами Excel или XML с загрузкой в документы 1С, готовым модулем обмена или собственной обработкой через API iikoServer. Для ресторана с одной точкой обычно хватает файлов раз в неделю. Для сети с ежедневными поставками без автоматического обмена не обойтись.

Главная боль у всех одна: в iiko товар называется «Сыр моцарелла 1 кг», а в 1С — «Моцарелла, кг», склады и контрагенты тоже не совпадают. Пока справочники не сопоставлены, любой способ даст дубли и пересортицу. Поэтому начинаем с подготовки, а потом разбираем каждый способ с примерами.

Что сделать до первой выгрузки из Айко

Подготовка занимает больше времени, чем сама выгрузка. Зато потом обмен идёт без ручных правок.

  1. Решите, какая система главная по справочникам. Обычно номенклатуру и контрагентов ведут в iiko, а 1С только принимает данные. Если заводить товары в обеих программах, они разойдутся через месяц.
  2. Сверьте склады. Каждому складу iiko (кухня, бар, основной склад) должен соответствовать склад в 1С. Тип склада в 1С влияет на то, каким документом отражать выручку.
  3. Сверьте единицы измерения. iiko часто хранит сырьё в килограммах и литрах, а поставщик продаёт в упаковках. Определитесь, в каких единицах товар живёт в 1С.
  4. Проверьте поставщиков по ИНН. ИНН — единственный надёжный ключ для сопоставления контрагентов. Название «ООО Ромашка» и «Ромашка ООО» программа сочтёт разными.
  5. Зафиксируйте дату начала обмена. Всё, что раньше этой даты, вводится остатками, а не документами.
  6. Определитесь с себестоимостью. iiko списывает продукты по технологическим картам. В 1С можно взять готовое списание из iiko или считать выпуск через спецификации. Выбирайте одно, иначе себестоимость задвоится.

Перед первой загрузкой в рабочую базу сделайте резервную копию 1С. Пробный прогон лучше выполнить в копии базы: так видно, сколько дублей номенклатуры создастся.

Какие документы iiko во что превращаются в 1С

Прежде чем выбирать способ, полезно понять, что именно переносить. Ниже соответствие для 1С:Бухгалтерии 3.0.

Документ iikoДокумент в 1С:Бухгалтерии 3.0Что важно
Приходная накладнаяПоступление (акты, накладные, УПД)Поставщик по ИНН, номер и дата входящего документа, НДС
Продажи за смену (кассовая смена)Отчёт о розничных продажахНаличные и безналичные оплаты разделяются
Списание по техкартамТребование-накладная или Отчёт производства за сменуЗависит от выбранной схемы себестоимости
Акт списания (порча, бой)Списание товаровПричина списания для налогового учёта
Внутреннее перемещениеПеремещение товаровСклады должны быть сопоставлены
ИнвентаризацияИнвентаризация товаровПосле неё — оприходование или списание разницы
Возврат поставщикуВозврат товаров поставщикуСсылка на исходное поступление

💡 Для бухгалтерии не обязательно тащить каждый чек. Сводная выручка за смену или за день по каждой точке даёт ту же картину и в десятки раз меньше документов.

Способ 1. Выгрузка данных из Айко через файлы Excel и XML

Подходит, если документов немного: одна-две точки, десяток поставок в неделю. Ничего не нужно покупать и настраивать.

Выгрузка из iikoOffice

  1. Откройте в iikoOffice журнал нужных документов или отчёт (например, OLAP-отчёт по продажам за период).
  2. Отфильтруйте период и склад.
  3. Выгрузите таблицу в Excel командой экспорта, которая есть у таблиц и отчётов iikoOffice.
  4. В Excel оставьте только нужные колонки: артикул или код, наименование, единица, количество, цена, сумма, ставка НДС.
  5. Сохраните файл в формате .xlsx без объединённых ячеек и итоговых строк.

Загрузка в 1С

В 1С:Бухгалтерии 3.0 табличную часть документа можно заполнить из файла:

  1. Создайте документ, например Покупки → Поступление (акты, накладные, УПД) → Товары (накладная, УПД).
  2. Заполните шапку: поставщик, склад, номер и дата входящей накладной.
  3. На закладке «Товары» нажмите кнопку загрузки из файла и выберите подготовленный Excel.
  4. Укажите соответствие колонок, проверьте, какие строки 1С не узнала.
  5. Для неузнанных строк выберите существующую номенклатуру или создайте новую.

Номенклатуру можно завести заранее и целиком: в списке Справочники → Номенклатура тоже есть загрузка из файла. Если её нет в вашем релизе, используйте универсальную обработку загрузки данных из табличного документа.

Сопоставление колонок удобно сразу записать себе, чтобы каждый раз не вспоминать:

Сопоставление полей
Артикул iiko→Артикул номенклатуры
Наименование товара→Номенклатура (поиск по артикулу, затем по названию)
Единица измерения→Единица измерения номенклатуры
Количество→Количество
Цена с НДС→Цена (флаг «Сумма включает НДС»)
Ставка НДС→Ставка НДС
Поставщик (ИНН)→Контрагент
Склад iiko→Склад

XML-выгрузку из iiko используют, когда пишут свою обработку загрузки: XML стабильнее Excel, в нём не съезжают колонки и форматы чисел.

Способ 2. Автоматический обмен через CommerceML и EnterpriseData

Этот раздел часто описывают неточно, поэтому по порядку.

CommerceML — формат 1С для обмена с интернет-магазинами: каталог товаров, цены, остатки, заказы. Сам iiko в этом формате с бухгалтерией не обменивается. CommerceML встречается только тогда, когда между iiko и 1С стоит сторонний коннектор или сайт доставки, который уже умеет отдавать заказы в формате CommerceML.

EnterpriseData — универсальный формат обмена между типовыми конфигурациями 1С. Готовые модули интеграции iiko с 1С от партнёров часто формируют документы именно в нём. Тогда 1С загружает пакет через стандартный механизм синхронизации, как будто данные пришли из другой базы 1С.

Как выглядит такой обмен на практике:

  1. На стороне iiko или на промежуточном сервере работает коннектор, который забирает документы.
  2. Коннектор складывает пакет в каталог, на FTP или отдаёт по HTTP.
  3. В 1С настроена синхронизация Администрирование → Синхронизация данных, которая забирает пакет по расписанию.
  4. При первом обмене 1С показывает форму сопоставления справочников: здесь вы один раз связываете товары, склады и контрагентов.

Сопоставление при первом обмене проверяйте вручную, особенно номенклатуру. Автоматическое сопоставление по наименованию на ресторанных справочниках ошибается часто: «Лук» и «Лук зелёный» легко склеиваются.

Способ 3. Загрузка из Айко в 1С через API iikoServer

Для тех, у кого есть программист 1С. iikoServer (бэк-офис) имеет HTTP API: по нему можно получить номенклатуру, склады, накладные и отчёты. Программа в 1С сама забирает данные и создаёт документы.

Схема работы:

  • 🔑 авторизация: запрос /resto/api/auth с логином и SHA1-хешем пароля, в ответ приходит ключ сессии;
  • 📦 запросы данных с параметром key, например выгрузка приходных накладных за период;
  • 🚪 выход /resto/api/logout — обязательно.

Каждая открытая сессия API занимает лицензию iiko. Если обработка не вызывает выход, лицензии кончаются, и iikoOffice у сотрудников перестаёт подключаться. Выход ставьте и в обработку ошибок.

Заведите в iiko отдельного пользователя для обмена с правами только на чтение нужных данных. Адрес и порт сервера возьмите из настроек подключения iikoOffice.

Пример: получить приходные накладные за период и сохранить XML в файл. Код рассчитан на платформу 8.3 с номером не ниже 8.3.9.

Функция ВыгрузитьНакладныеIiko(Сервер, Порт, Логин, Пароль, НачалоПериода, КонецПериода, ИмяФайла) Экспорт

    Хеш = Новый ХешированиеДанных(ХешФункция.SHA1);
    Хеш.Добавить(Пароль);
    ХешПароля = НРег(ПолучитьHexСтрокуИзДвоичныхДанных(Хеш.ХешСумма));

    Соединение = Новый HTTPСоединение(Сервер, Порт, , , , 60, Новый ЗащищенноеСоединениеOpenSSL);

    ЗапросАвторизации = Новый HTTPЗапрос("/resto/api/auth?login=" + Логин + "&pass=" + ХешПароля);
    Ответ = Соединение.Получить(ЗапросАвторизации);
    Если Ответ.КодСостояния <> 200 Тогда
        ВызватьИсключение "Ошибка авторизации iiko: " + Ответ.ПолучитьТелоКакСтроку();
    КонецЕсли;
    Ключ = СокрЛП(Ответ.ПолучитьТелоКакСтроку());

    Попытка
        Адрес = СтрШаблон("/resto/api/documents/export/incomingInvoice?key=%1&from=%2&to=%3",
            Ключ,
            Формат(НачалоПериода, "ДФ=yyyy-MM-dd"),
            Формат(КонецПериода, "ДФ=yyyy-MM-dd"));
        Ответ = Соединение.Получить(Новый HTTPЗапрос(Адрес));
        Если Ответ.КодСостояния <> 200 Тогда
            ВызватьИсключение "Ошибка выгрузки накладных: " + Ответ.ПолучитьТелоКакСтроку();
        КонецЕсли;
        Ответ.ПолучитьТелоКакДвоичныеДанные().Записать(ИмяФайла);
    Исключение
        Соединение.Получить(Новый HTTPЗапрос("/resto/api/logout?key=" + Ключ));
        ВызватьИсключение;
    КонецПопытки;

    Соединение.Получить(Новый HTTPЗапрос("/resto/api/logout?key=" + Ключ));
    Возврат ИмяФайла;

КонецФункции

Если сервер iiko работает по HTTP без шифрования (локальная установка), последний параметр ЗащищенноеСоединениеOpenSSL уберите. Дальше обработка читает файл через ЧтениеXML, находит контрагента по ИНН, номенклатуру по коду iiko и создаёт документ поступления.

💡 Код iiko храните в 1С: например, в дополнительном реквизите номенклатуры и контрагента. Тогда повторная загрузка находит элемент сразу, а не перебирает похожие названия.

Особенности выгрузки для разных конфигураций 1С

Набор документов-приёмников зависит от конфигурации. Платформенная часть (файлы, API, синхронизация) одинакова.

КонфигурацияКуда грузить продажиКуда грузить поступленияЧто учесть
1С:Бухгалтерия 3.0Отчёт о розничных продажахПоступление (акты, накладные, УПД)Тип склада влияет на учёт выручки; производство — Отчёт производства за смену
1С:Управление торговлей 11Отчёт о розничных продажахПриобретение товаров и услугНет бухгалтерского производства, сборка блюд в УТ ограничена
1С:Комплексная автоматизация 2 / ERPОтчёт о розничных продажахПриобретение товаров и услугПроизводство и себестоимость можно вести в 1С, тогда списания по техкартам из iiko не грузят
Отраслевые решения для общепитаПо документам решенияПо документам решенияЧасто имеют свою загрузку из iiko, сначала проверьте её
1С:Бухгалтерия 2.0 (8.2)——Готовые модули под неё почти не поддерживаются, лучше переход на 3.0

Как автоматизировать обмен и не задвоить документы

Когда загрузка налажена руками, её переводят на расписание.

  • ⏰ Регламентное задание. Обработка запускается ночью и забирает документы за прошлый день. В файловой базе регламентные задания выполняются только при открытом сеансе, поэтому для автоматики нужна клиент-серверная база или отдельный запуск по расписанию Windows.
  • 🆔 Идентификатор документа iiko. Сохраняйте его в загруженном документе 1С. Перед созданием нового документа проверяйте, не загружен ли он раньше. Это единственная надёжная защита от дублей при повторном запуске.
  • 📅 Окно загрузки. Забирайте не только вчерашний день, а последние 3–7 дней: в iiko задним числом правят накладные. Изменённый документ обновляйте, а не создавайте заново.
  • 🔒 Дата запрета изменения. После закрытия месяца в 1С установите дату запрета. Тогда правка в iiko за прошлый месяц не перепишет сданную отчётность, а выдаст ошибку в журнале обмена.
  • 📨 Журнал обмена. Пусть обработка пишет в журнал регистрации, сколько документов создала и какие строки не сопоставила. Бухгалтер раз в день проверяет только ошибки.

Кроме своей обработки есть и другие варианты:

  • готовый модуль интеграции от iiko или партнёров — быстрее всего, но платный и под конкретные конфигурации;
  • промежуточный сервис-коннектор, который берёт данные из iiko и отдаёт в 1С пакетами;
  • сводный ручной ввод: бухгалтер раз в месяц вводит одну выручку по точке и поступления по оригиналам документов поставщиков. Для маленькой кофейни это честный и дешёвый вариант.

Частые ошибки выгрузки из Айко в 1С

Диагностика: выберите симптом

Частые вопросы

Можно ли загружать из iiko в 1С только выручку, без накладных?
Можно. Выручка по сменам закрывает доходы, а поступления бухгалтер вводит по документам поставщиков. Складской учёт в 1С тогда будет неполным.
Нужно ли пробивать чеки повторно в 1С?
Нет. Чеки уже пробиты кассой, подключённой к iiko. В 1С вы только отражаете выручку в учёте.
Подойдёт ли API iikoCloud для выгрузки в бухгалтерию?
iikoCloud API ориентирован на заказы и доставку. Накладные, склады и отчёты бэк-офиса берут из API iikoServer.
Как часто запускать обмен?
Для бухгалтерии достаточно раз в сутки, ночью. Чаще имеет смысл только при оперативном складском учёте в 1С.
Что делать с остатками на дату начала обмена?
Введите их в 1С документом ввода начальных остатков или оприходованием по данным инвентаризации в iiko на эту дату.