Расширение “Ferma OFD.ru” для CMS “1С-Битрикс” 2.0

1. Назначение и требования

Модуль передаёт чеки из 1С-Битрикс в облачный сервис Ferma. Поддерживаются:

  • чеки по заказам и чеки без заказа;
  • предоплата 100%, полный расчёт и зачёт предоплаты;
  • полные и частичные возвраты;
  • коррекции;
  • маркированные и агентские позиции;
  • автоматическое создание чеков по статусам заказа;
  • получение статусов через callback и обязательную резервную проверку.

Модуль предназначен для редакций, «Малый бизнес» и «Бизнес» продукта «1С-Битрикс: Управление сайтом». Необходимы модули «Интернет-магазин», «Торговый каталог» и «Информационные блоки». Поддерживаются PHP 7.4–8.5 и MySQL/MariaDB.

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

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

2. Установка из Маркетплейса

  1. Найдите решение Ferma от OFD.ru (2.0) в Маркетплейсе административной части сайта.
  2. Нажмите «Установить» и примите лицензионные условия.
  3. После установки откройте «Ferma → Настройки».

3. Переход со старого модуля

Данный модуль является отдельным решением. Если прежний модуль (0.8.4) всё ещё зарегистрирован в Bitrix, работа нового модуля блокируется, чтобы два решения не создавали одинаковые чеки.

Оставшиеся файлы старого модуля вызывают предупреждение, но не блокируют работу. Его таблицы новому решению не мешают.

Страница миграции открывается из уведомления о старом модуле или по ссылке внизу вкладки «Состояние». Перенос запускается отдельно для каждой группы:

  • настройки старого модуля;
  • фискальные свойства товаров;
  • реестр чеков.

Тестовые чеки по умолчанию не переносятся. Для них предусмотрен отдельный флажок.

Порядок перехода:

  1. На странице модуля, в уведомление «Новый модуль временно заблокирован.» кликните «Открыть миграцию».
  2. Выберите необходимые группы данных и проверьте предварительные количества рабочих и тестовых чеков.
  3. Если настройки старого модуля актуальны и их необходимо перенести, разрешите перезапись настроек в пункте «Заменить уже измененные настройки».
  4. Нажмите «Перенести выбранное» чтобы начать перенос. Реестр переносите пакетами, пока новые записи не перестанут появляться.
  5. На странице «Marketplace» перейдите на вкладку «Установленные решения». На странице с решениями найдите модуль «OFD.ru Ferma», кликните правой кнопкой мыши и нажмите «Удалить».
  6. Выберите «Сохранить таблицы» и нажмите «Удалить модуль».
  7. Проверьте подключение, настройки товаров и несколько перенесённых чеков.
  8. Убедитесь, что блокирующее уведомление исчезло.

Не удаляйте каталог старого модуля вручную до снятия его регистрации в Bitrix. Зарегистрированные обработчики при отсутствии файлов могут нарушить работу вашего сайта.

Если после штатного удаления остались только файлы, предупреждение можно скрыть после дополнительного подтверждения. Страница миграции останется доступной из вкладки «Состояние».

4. Подключение и получение статусов

4.1. Доступ к Ferma

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

Переключение модуля:

  1. Откройте страницу «Ferma» в Bitrix.
  2. Перейдите на вкладку настройки.
  3. В выпадающем окне «Подключение интеграции» выберите режим API «Рабочий».
  4. Заполните данные организации как в ЛКК «Ferma».
  5. Нажмите «Сохранить и проверить».

4.2. Получение ответов от "Ferma". Callback и резервная проверка

Callback — основной способ получения окончательного статуса чека от «Ferma». Адрес и токен формируются автоматически и передаются Ferma при отправке документа. Замена callback-токена прекращает приём ответов со старым токеном. Резервная проверка статусов включена постоянно и обрабатывает незавершённые чеки, если callback задержался или не дошёл.

Стандартные IP-адреса Ferma разрешены по умолчанию. Поля «Дополнительные IP/CIDR» используются только для дополнительных доверенных адресов отдельно для тестового и рабочего окружения.

Если ответы Ferma не поступают на адрес, определённый по умолчанию, поле «Адрес получения статусов» не заполнилось автоматически, или ответы должны приходить на другой URL — укажите нужный адрес в разделе «Настройки» в поле «Публичный URL сайта».

5. Параметры чеков и настройки товаров

В разделе «Настройки», группе «Параметры чека» задаются система налогообложения, НДС, предмет расчёта, тип оплаты и единица измерения по умолчанию, а также параметры доставки, кассира и уведомлений.

Способ расчёта не является общей настройкой товара: он определяется видом операции — предоплатой, полным расчётом, возвратом или коррекцией.

Если передаются сведения о кассире, укажите ФИО и ИНН длиной не более 12 цифр.

Проверку email выполняйте только при настроенной почтовой отправке сайта. Модуль предварительно проверяет конфигурацию и не запустит тест при заведомом отсутствии почтового транспорта.

5.1. Настройки конкретного товара

В блоке «Настройки Ferma OFD» карточки товара или торгового предложения можно переопределить НДС, предмет расчёта, единицу измерения, маркировку и агентские реквизиты.

Значения выбираются в следующем порядке: текущая ручная форма или сценарий, торговое предложение, основной товар, общие настройки модуля.

Предметы расчёта, которые требуют код маркировки, автоматически включают требование КМ. Доставка создаётся как услуга с единицей «Штука» и не получает произвольную меру товара.

Для агентской позиции заполните реквизиты выбранного типа агента. Телефон в формате 8… преобразуется в +7….

Связанные документы используют фискальные данные сохранённого чека-основания. Последующее изменение карточки товара не должно незаметно менять уже начатую цепочку.

Чтобы настроить параметры товара:

  1. Перейдите на вкладку «Магазин».
  2. Выберите раздел «Товары».
  3. Откройте товар для редактирования, нажав на его название.
  4. Переместитесь вниз страницы до блока «Настройки Ferma OFD».
  5. В блоке «Настройки Ferma OFD» выберите параметры чека, укажите, маркированный ли товар, и настройте агентские признаки при необходимости.
  6. Нажмите «Сохранить».

6. Автоматизация заказов

Для доступа к группе перейдите в раздел «Настройки» и откройте «Автоматизация заказов».

6.1. Дата учёта

Поле «Учитывать заказы от» исключает более ранние заказы из автоматизации, рабочих списков и счётчиков. При необходимости их можно показать в разделе «Заказы», для этого в строке с фильтрами кликните «Расширенные» и кликните «Показать» в поле «Показывать скрытые»; Ferma-панель в карточке заказа остаётся доступной.

6.2. Сценарии

Сценарий Когда создаётся
Предоплата 100% Заказ перешёл в статус получения денег до передачи товара
Полный расчёт Заказ перешёл в статус передачи товара или услуги
Возврат Заказ перешёл в согласованный статус полного возврата доступного остатка

Пример базового сопоставления:

Статус заказа Bitrix Сценарий Ferma
Оплачен, формируется к отправке Предоплата 100%
Выполнен Полный расчёт
Возврат Возврат доступного остатка

Используйте статусы своего бизнес-процесса. Один статус не должен запускать противоречащие друг другу операции.

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

Автоматический возврат определяется по подтверждённой истории: после полного расчёта создаётся возврат прихода, а при наличии только доступной предоплаты — возврат предоплаты.

Настройка «Не создавать автовозврат, если в чеке есть доставка» включена по умолчанию. В этом случае возврат оформляется вручную, чтобы сотрудник сам решил, возвращать ли стоимость доставки. Полный автоматический возврат маркированных товаров также выключен по умолчанию.

6.3. Платёжные системы и статусы заказа

Модуль получает активные платёжные системы Bitrix автоматически. Для каждой системы выберите тип оплаты, который должен передаваться в чек.

Изменение статуса заказа после чека относится только к подтверждённым ручным операциям. Для них можно назначить целевые статусы и указать исключения.

Автоматизация не создаёт чек при неподдерживаемой валюте, заказе до даты учёта, отсутствии сценария, незаполненной обязательной маркировке, незавершённом чеке или уже существующем подходящем ручном документе. Причина решения записывается в журнал.

7. Первый чек по заказу

Перед первым рабочим чеком убедитесь во вкладке «Настройки/Состояние», что подключение и получение статусов работают.

  1. В разделе «Заказы» выберите заказ с корректными данными покупателя, составом и оплатой.
  2. Нажмите «Открыть Ferma-панель».
  3. Проверьте рекомендуемое действие и нажмите «Создать предоплату».
  4. В блоке «Состав чека» проверьте позиции, НДС, оплату, доставку и маркировку.
  5. Отправьте чек вручную или настройте автоматические сценарии заказов.
  6. Нажмите «Обновить статус», дождитесь конечного статуса «ПОДТВЕРЖДЕН» и проверьте результат.

Отправка блокируется, если другой чек заказа ещё не получил конечный статус. Новый документ нельзя создавать только из-за задержки ответа: Ferma могла принять предыдущий запрос.

Фискальная цепочка может включать прямой полный расчёт либо предоплату и последующий полный расчёт. После подтверждённой предоплаты в полном расчёте передаётся зачёт ранее принятой суммы.

8. Расширенный чек, НДС и маркировка

8.1. Расширенный чек

Расширенный чек открывается из Ferma-панели заказа. Доступные действия зависят от подтверждённой истории и фискального остатка: новый чек, возврат, коррекция или ввод кодов маркировки.

Форма позволяет проверить состав и реквизиты чека, изменить тип оплаты после подтверждения, настроить НДС, маркировку и агентские данные.

Если ставки отдельных позиций различаются, общий список НДС показывает «Индивидуальные». Смешанная оплата для чеков по заказам не доступна.

8.2. НДС в предоплате

Настройка «Преобразовывать ставки НДС в расчётные в чеке предоплаты» включена по умолчанию и действует для автоматических и ручных чеков предоплаты по заказу:

Ставка товара Ставка в предоплате
5% 5/105
7% 7/107
10% 10/110
22% 22/122

В расширенном чеке ставку можно изменить. Полный расчёт использует исходную прямую ставку товара; расчётная ставка предоплаты не переписывает свойства товара и не переносится в полный расчёт как новое исходное значение.

8.3. Коды маркировки

Для каждой целой маркированной единицы требуется один код. Код можно:

  • ввести сканером;
  • вставить вручную;
  • загрузить из исходного текстового файла;
  • распознать с изображения DataMatrix.

Коды можно указать в расширенном чеке либо заранее сохранить в отгрузке Bitrix. Перед полным расчётом проверьте, что для каждой маркированной единицы подставлен правильный КМ.

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

Для пакетной загрузки изображений используйте отдельный файл на каждый DataMatrix. Если на одном изображении найдено несколько кодов, модуль попросит загрузить их отдельно.

Обозначения \u001d, \x1d, <GS> преобразуются в реальный GS-разделитель. Если редактор повредил разделитель, модуль восстанавливает его только при однозначном варианте; иначе потребуется исходный файл или повторное сканирование.

Коды не передаются в чек предоплаты 100%, но нужны при полном расчёте маркированного товара. Модуль проверяет формат, количество и повторы в текущем составе, но не является отдельным складским реестром КМ. МДЛП и специальные реквизиты лекарственных кодов не поддерживаются.

Добавление признака маркированного товара через раздел «Товары»:

  1. На вкладке «Магазин/Одежда/Товары» выберите товар.
  2. Опуститесь в блок «Настройки Ferma OFD» и установите флажок в поле «Ferma OFD: маркированный товар».
  3. Выберите тип кода маркировки в поле «Ferma OFD: Type КМ».
  4. Нажмите «Сохранить».

Указание кода маркировки товару:

  1. Перейдите в раздел «Ferma/Заказы».
  2. Выберите необходимый заказ и нажмите «Коды маркировки».
  3. В блоке товара укажите коды.
  4. Нажмите «Сохранить коды».

Добавление кодов маркировки через отгрузки (Доступно только, если товар или товарное предложение входит в группу товаров Bitrix подлежащих маркированию):

  1. Перейдите на вкладку «Магазин/Заказы/Отгрузки».
  2. Выберите ID нужной отгрузки.
  3. Откройте «Штрихкоды», укажите коды маркировки и нажмите «Закрыть».
  4. Нажмите «Сохранить».

9. Произвольные чеки

Произвольный чек не связан с заказом Bitrix, но сохраняется в общем реестре и получает статусы по тем же правилам.

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

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

Для произвольного возврата можно выбрать подтверждённый произвольный чек-основание. Это необязательно. С основанием модуль подставляет позиции и контролирует доступный остаток; без основания состав заполняется вручную. Чек заказа нельзя использовать как основание произвольной операции.

10. Возвраты

Возврат создаётся из расширенного чека по подтверждённой истории. Вид возврата выбирать не нужно:

  • после подтверждённого полного расчёта создаётся возврат прихода;
  • при наличии только доступной предоплаты создаётся возврат предоплаты.

Для частичного возврата выберите позиции и количество. Для маркированного товара укажите конкретные возвращаемые коды. Возврат уменьшает фискальный остаток, но сам не изменяет оплату, отгрузку, склад и статус заказа Bitrix.

Чтобы оформить возврат перейдите в раздел «Произвольный чеки», выберите операцию «Возврат денежных средств, полученных от покупателя» или «Возврат аванса» и заполните формы ниже.

11. Коррекции

Коррекция исправляет ранее проведённую фискальную операцию. Она создаётся по подтверждённому чеку-основанию из расширенного чека.

Тип коррекции определяется исходной операцией. Укажите дату и понятную причину, проверьте состав и отправьте документ. Коррекция предоплаты сохраняет контекст исходной предоплаты и не требует КМ только потому, что товар сейчас отмечен как маркированный.

Произвольная коррекция создаётся только по подтверждённому произвольному чеку. Чек заказа не используется как основание произвольной коррекции.

12. Контроль работы

Панель

Панель показывает состояние интеграции, статусы чеков и данные о продажах с учётом возвратов и коррекций. В блоке «Требует внимания» собраны проблемы заказов и чеков; проверенные ошибки не входят в активное количество.

Реестр и карточка чека

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

Заказы

Раздел «Заказы» объединяет данные Bitrix и фискальное состояние. Полная карточка показывает сведения о заказе, фискальную цепочку и доступные действия Ferma.

13. Статусы, проблемы и повтор после ошибки

Статус в интерфейсе Что означает
Собран локально Документ сформирован модулем, но ещё не получил конечный результат
Отправлен Запрос передан в Ferma
В обработке ККТ Документ обрабатывается кассой
Ожидает статуса Модуль ожидает callback или резервную проверку
Подтверждён Получен успешный конечный результат
Ошибка отправки Документ не удалось передать
Ошибка кассы Ferma отклонила документ
Проблема Что проверить
Оплачен без чека Автоматизацию и необходимость ручного чека
Требуются коды маркировки Коды в расширенном чеке или заказе
Авточек не создан Статус заказа, дату учёта и решение в журнале
Ошибки чеков Сообщение в карточке чека и обязательные поля
В обработке более часа Обновление статуса, callback и резервную проверку
Не удалось обновить статус Подключение и события журнала
Ошибка кассы Ответ Ferma, состав и возможность корректного повтора

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

Повтор после ошибки кассы

«Повторить после ошибки кассы» создаёт новую попытку с новым InvoiceId. Для полного расчёта перед повтором заново читаются коды маркировки из заказа и/или отгрузки.

Если подходящей замены КМ нет, предупреждение показывается до отправки, но не блокирует повтор.

Повтор применяется только к документу со статусом «Ошибка кассы». Не создавайте вместо него независимый чек той же операции.

14. Диагностика и обращение в поддержку

Вкладка «Состояние» предназначена для проверки подключения и служебных механизмов. Журнал содержит отправку чеков, ответы Ferma, решения автоматизации и ошибки.

Перед обращением в поддержку подготовьте:

  • ID заказа и внутренний ID чека;
  • InvoiceId и ReceiptId, если они получены;
  • дату и тип операции;
  • текущий статус и полный текст ошибки;
  • связанные события журнала;
  • результат вкладки «Состояние».

Диагностический пакет может содержать конфигурацию модуля, историю операций и журнал. Передавайте его только уполномоченной службе поддержки.

Основные ограничения модуля:

  • смешанная оплата доступна в произвольных чеках, но не в чеках по заказам;
  • новый чек заказа блокируется до конечного статуса предыдущего;
  • автоматический возврат выполняется на весь доступный остаток;
  • произвольный возврат без основания не контролирует исторический остаток;
  • МДЛП не поддерживается;
  • модуль не заменяет бухгалтерскую и налоговую методологию организации.

Подробные сведения о редких сценариях находятся во встроенной «Помощи».

История изменений

Версия 1.0
Выпущена 24.08.2026.
Первая отслеживаемая версия документа.