Как реализовать аналитику по сделкам из Битрикс24 в 1С:Бухгалтерии 3.0?

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

При интеграции 1С:Бухгалтерии с CRM-системами, такими как Битрикс24, часто возникает задача сквозного отслеживания взаиморасчетов в разрезе конкретных сделок. Ситуация усложняется тем, что первичный документ создается в CRM, затем загружается в виде счета на оплату в 1С, после чего бухгалтер оформляет документы отгрузки и оплаты. Рассмотрим архитектурные особенности конфигурации, проанализируем ограничения платформы и разберем проверенные способы решения задачи.

Ограничения архитектуры типовой конфигурации

Прежде чем выбирать способ реализации, выясним причину, по которой нельзя просто добавить аналитику на счет учета расчетов. На счетах 62.01 («Расчеты с покупателями и заказчиками») и 62.02 («Расчеты по авансам полученным») в типовой конфигурации уже задействованы все три доступных субконто:

  1. Контрагенты
  2. Договоры
  3. Документы расчетов с контрагентом (в качестве которого выступает документ реализации или платежное поручение)

Платформа 1С:Предприятие имеет системное ограничение: на счете бухгалтерского учета поддерживается не более трех субконто. Добавить четвертое субконто Сделка невозможно. Кроме того, документ СчетНаОплатуПокупателю не делает проводок в бухгалтерском учете и не может служить расчетным документом для субконто.

Также важно учитывать требования дальнейшей выгрузки данных через интерфейс OData в системы управленческого учета. Стандартные дополнительные реквизиты объекта хранятся в табличных частях, а дополнительные сведения — в независимом регистре сведений ДополнительныеСведения. Фильтрация и выборка по ним через стандартный протокол OData сопряжены со сложностями построения запросов с составными ключами и низкой производительностью.

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

Способ 1. Использование иерархии справочника договоров («Один счет / сделка = один договор»)

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

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

  1. В справочнике создаем группу (папку), соответствующую основному рамочному договору с клиентом.
  2. Внутри этой папки под каждую сделку из Битрикса программно или вручную создается отдельный элемент договора. В его наименовании или номере фиксируется идентификатор сделки (например, «Сделка №12345 от 15.03»).
  3. В документах СчетНаОплатуПокупателю, РеализацияТоваровУслуг и банковских выписках указывается именно этот конкретный подчиненный договор сделки.

Преимущества подхода: взаиморасчеты, зачеты авансов, переуступка долга и факторинг замыкаются строго в рамках сделки (договора). Стандартная оборотно-сальдовая ведомость по счету 62 с группировкой по иерархии договоров сразу показывает как общий итог по контрагенту, так и детализацию по каждой отдельной сделке.

Способ 2. Хранение ID сделки через расширение конфигурации и типовую связь документов

Если специфика учета требует ведения расчетов строго по одному общему договору, настроим связь через цепочку документов и расширение конфигурации (CFE). Разберем эту схему по шагам.

Шаг 1. Связывание реализации со счетом

В документе Реализация (акт, накладная, УПД) присутствует штатный реквизит шапки СчетНаОплату (тип ДокументСсылка.СчетНаОплатуПокупателю). Если реализация создается на основании счета или заполняется программно, этот реквизит связывает реализацию со счетом на уровне типовых механизмов без необходимости вводить дублирующие поля.

Шаг 2. Хранение внешнего идентификатора

Для корректной и быстрой отдачи данных по OData лучшим решением является добавление собственного объекта через расширение. Здесь возможны два варианта:

  1. Добавление реквизита в документы: В расширении добавляем реквизит ИД_СделкиБитрикс (тип Строка) в документы СчетНаОплатуПокупателю и РеализацияТоваровУслуг. При публикации интерфейса OData эти реквизиты попадают напрямую в сущности документов, что исключает сложные запросы к дополнительным свойствам.
  2. Создание отдельного регистра сведений: Создаем в расширении непериодический независимый регистр сведений (например, СделкиБитриксПоОбъектам).
    • Измерение: Объект (составной тип: ДокументСсылка.СчетНаОплатуПокупателю, ДокументСсылка.РеализацияТоваровУслуг).
    • Ресурс: ИдентификаторСделки (тип Строка).
    По OData регистр доступен как сущность InformationRegister_СделкиБитриксПоОбъектам, к которой легко применять стандартную фильтрацию $filter=ИдентификаторСделки eq 'ID_ИЗ_CRM'.

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


// Создание документа реализации на основании счета
ДокументРеализация = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
ДокументРеализация.Заполнить(СчетСсылка);

// Устанавливаем типовую связь
ДокументРеализация.СчетНаОплату = СчетСсылка;

// Заполняем реквизит расширения
ДокументРеализация.ИД_СделкиБитрикс = ИдентификаторСделкиБитрикс;

ДокументРеализация.Записать(РежимЗаписиДокумента.Запись);

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

Когда бухгалтерия запрещает дробить договоры, а в учете присутствуют сложные операции (автоматический зачет авансов по методу ФИФО, взаимозачеты через документ КорректировкаДолга, факторинговые схемы), бухгалтерские проводки по счету 62 неизбежно «перемешают» оплаты и отгрузки разных сделок одного договора.

В этом случае организуем управленческий учет взаиморасчетов независимо от регламентированного:

  1. В расширении создаем регистр накопления остаточного вида ВзаиморасчетыПоСделкам.
  2. В структуру регистра включаем измерения Контрагент, ИдентификаторСделки, ДокументРасчетов и ресурс Сумма.
  3. Через подписку на событие ОбработкаПроведения документов движения расчетов (платежи, реализации, корректировки) формируем записи в этот регистр. При проведении платежа анализируется счет или явное указание сделки, и долг гасится адресно по сделке.

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

← На главную