Как сформировать акт сверки по грузополучателю в 1С:Бухгалтерии 7.7, если плательщиком выступает головная организация?

Программист 1С v7.7 1C:Бухгалтерия Бухгалтерский учет Торговля и дистрибуция
← На главную

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

Выясним причину этого ограничения, проанализируем структуру данных в платформе 1С 7.7 и подробно разберем все способы решения данной задачи — от организационных настроек до программной доработки.

В чем заключается архитектурная сложность платформы 7.7?

Проанализируем, как устроен учет взаиморасчетов в типовой конфигурации 1С:Бухгалтерия 7.7 (ред. 4.5):

  1. Аналитика счетов расчетов: На бухгалтерских счетах 62.1 (Расчеты с покупателями) и 62.2 (Авансы полученные) субконто заданы жестко: первое субконто — Контрагенты, второе субконто — Договоры. Реквизит Грузополучатель существует только в экранных формах и табличных частях первичных документов (например, в документе Расходная накладная), но не переносится в проводки.
  2. Механизм формирования отчета: Типовой отчет о сверке взаиморасчетов опирается на объект БухгалтерскиеИтоги. Поскольку аналитического разреза по грузополучателям на счетах учета нет, получить готовые сальдо и обороты стандартным обращением к бухгалтерским итогам невозможно.
  3. Разноска платежей: Головная компания часто производит оплату одной банковской выпиской за несколько отгрузок разным грузополучателям. В типовой базе такая оплата садится общей суммой на договор или контрагента без детализации по накладным.

Вариант 1. Разделение взаиморасчетов по договорам (методическое решение)

Самый простой способ получить корректный акт сверки без вмешательства в программный код конфигурации — использовать справочник Договоры как дополнительный аналитический разрез.

Разберем по шагам порядок действий:

  1. В справочнике Контрагенты открываем карточку головной организации.
  2. В подчиненном справочнике Договоры создаем группы или отдельные элементы под каждого грузополучателя (например, «Основной договор (Филиал №1)», «Основной договор (Склад Север)»).
  3. При оформлении документов реализации (Расходная накладная, Акт об оказании услуг) выбираем договор, соответствующий конкретному грузополучателю.
  4. При проведении банковской выписки (документ Выписка) разбиваем общую сумму платежа на строки с указанием конкретных договоров грузополучателей. Если клиент оплатил единой суммой, бухгалтер разносит оплату построчно согласно назначению платежа или спецификации.

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

Вариант 2. Построение отчета по структуре подчиненности документов

Если клиенты платят строго под каждую накладную или в платежных поручениях указывают номера отгрузочных документов, можно разработать внешний отчет (файл с расширением .ert), который собирает данные не из бухгалтерских проводок, а напрямую перебором документов через объектную модель 1С 7.7.

Рассмотрим логику построения такого отчета:

  1. Выбираем документы Расходная накладная за указанный период, где реквизит Контрагент равен головной организации, а реквизит Грузополучатель совпадает с выбранным фильтром.
  2. Для каждой накладной находим связанные документы оплаты (выписки, приходные кассовые ордера), введенные на основании данной накладной или содержащие ссылку на нее в реквизите ДокументОснование.
  3. Выводим данные об отгрузках и найденных оплатах в единую печатную форму акта сверки.

Посмотрим на пример запроса для сбора данных в разрезе документов расчетов (на примере регистров оперативного учета или аналогичных структур):


Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
|Период с ДатаНачала по ДатаКонца;
|Контрагент = Регистр.Покупатели.Договор.Владелец;
|Док        = Регистр.Покупатели.ТекущийДокумент;
|СуммаРуб   = Регистр.Покупатели.СуммаРуб;
|Основание  = Регистр.Покупатели.ТекущийДокумент.РасходнаяНакладная.ДокОснование,
|             Регистр.Покупатели.ТекущийДокумент.СтрокаВыпискиПриход.ДокОснование;
|Группировка Контрагент без групп;
|Группировка Док;
|Функция Приход = Приход(СуммаРуб);
|Функция Расход = Расход(СуммаРуб);
|Условие(Контрагент = ВыбКонтрагент);
|";

Если Запрос.Выполнить(ТекстЗапроса) = 1 Тогда
    Пока Запрос.Группировка("Контрагент") = 1 Цикл
        Пока Запрос.Группировка("Док") = 1 Цикл
            // Анализ реквизита Грузополучатель в документе реализации
            ТекДок = Запрос.Док;
            Если ТекДок.Вид() = "РасходнаяНакладная" Тогда
                Если ТекДок.Грузополучатель = ВыбГрузополучатель Тогда
                    ТаблицаОтчета.ВывестиСекцию("СтрокаОтгрузки");
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
КонецЕсли;

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

Вариант 3. Добавление третьего субконто на счета расчетов

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

Разберем по шагам схему модернизации конфигурации:

  1. В плане счетов для субсчетов 62.1 и 62.2 добавляем третье субконто с типом Справочник.Контрагенты (или специализированный справочник грузополучателей).
  2. В модулях документов Расходная накладная и Оказание услуг корректируем процедуру ОбработкаПроведения(), передавая в проводку по дебету счета 62 значение реквизита Грузополучатель.
  3. В модуле документа Выписка добавляем реквизит выбора грузополучателя в строках и заполняем третье субконто при формировании кредитовой проводки.
  4. В отчете «Акт сверки» добавляем фильтрацию по третьему субконто через стандартный объект БухгалтерскиеИтоги:
    
    БИ = СоздатьОбъект("БухгалтерскиеИтоги");
    БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 2);
    БИ.ИспользоватьСубконто(ВидыСубконто.Договоры, , 1);
    БИ.ИспользоватьСубконто(ВидыСубконто.Грузополучатели, ВыбГрузополучатель, 2);
    БИ.ВыполнитьЗапрос(ДатаНачала, ДатаКонца, "62.1");
    

Такой подход обеспечивает корректный автоматический расчет начального сальдо, оборотов и конечного долга стандартными средствами платформы 1С 7.7.

← На главную