При ведении расчетов с холдинговыми структурами или сетевыми клиентами часто возникает ситуация: поставка товаров осуществляется в различные обособленные подразделения (грузополучателям), а оплату за все поставки производит центральный офис (головная организация). Когда филиал запрашивает сверку, бухгалтер сталкивается с проблемой: типовой отчет «Акт сверки» в конфигурации «1С:Бухгалтерия 7.7» формируется по контрагенту-плательщику, не разделяя движение средств по фактическим получателям товара.
Выясним причину этого ограничения, проанализируем структуру данных в платформе 1С 7.7 и подробно разберем все способы решения данной задачи — от организационных настроек до программной доработки.
Проанализируем, как устроен учет взаиморасчетов в типовой конфигурации 1С:Бухгалтерия 7.7 (ред. 4.5):
62.1 (Расчеты с покупателями) и 62.2 (Авансы полученные) субконто заданы жестко: первое субконто — Контрагенты, второе субконто — Договоры. Реквизит Грузополучатель существует только в экранных формах и табличных частях первичных документов (например, в документе Расходная накладная), но не переносится в проводки.БухгалтерскиеИтоги. Поскольку аналитического разреза по грузополучателям на счетах учета нет, получить готовые сальдо и обороты стандартным обращением к бухгалтерским итогам невозможно.Самый простой способ получить корректный акт сверки без вмешательства в программный код конфигурации — использовать справочник Договоры как дополнительный аналитический разрез.
Разберем по шагам порядок действий:
Контрагенты открываем карточку головной организации.Договоры создаем группы или отдельные элементы под каждого грузополучателя (например, «Основной договор (Филиал №1)», «Основной договор (Склад Север)»).Расходная накладная, Акт об оказании услуг) выбираем договор, соответствующий конкретному грузополучателю.Выписка) разбиваем общую сумму платежа на строки с указанием конкретных договоров грузополучателей. Если клиент оплатил единой суммой, бухгалтер разносит оплату построчно согласно назначению платежа или спецификации.После такой настройки стандартный отчет «Акт сверки» позволяет формировать данные с отбором по конкретному договору грузополучателя, включая расчет входящего и исходящего сальдо.
Если клиенты платят строго под каждую накладную или в платежных поручениях указывают номера отгрузочных документов, можно разработать внешний отчет (файл с расширением .ert), который собирает данные не из бухгалтерских проводок, а напрямую перебором документов через объектную модель 1С 7.7.
Рассмотрим логику построения такого отчета:
Расходная накладная за указанный период, где реквизит Контрагент равен головной организации, а реквизит Грузополучатель совпадает с выбранным фильтром.ДокументОснование.Посмотрим на пример запроса для сбора данных в разрезе документов расчетов (на примере регистров оперативного учета или аналогичных структур):
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
|Период с ДатаНачала по ДатаКонца;
|Контрагент = Регистр.Покупатели.Договор.Владелец;
|Док = Регистр.Покупатели.ТекущийДокумент;
|СуммаРуб = Регистр.Покупатели.СуммаРуб;
|Основание = Регистр.Покупатели.ТекущийДокумент.РасходнаяНакладная.ДокОснование,
| Регистр.Покупатели.ТекущийДокумент.СтрокаВыпискиПриход.ДокОснование;
|Группировка Контрагент без групп;
|Группировка Док;
|Функция Приход = Приход(СуммаРуб);
|Функция Расход = Расход(СуммаРуб);
|Условие(Контрагент = ВыбКонтрагент);
|";
Если Запрос.Выполнить(ТекстЗапроса) = 1 Тогда
Пока Запрос.Группировка("Контрагент") = 1 Цикл
Пока Запрос.Группировка("Док") = 1 Цикл
// Анализ реквизита Грузополучатель в документе реализации
ТекДок = Запрос.Док;
Если ТекДок.Вид() = "РасходнаяНакладная" Тогда
Если ТекДок.Грузополучатель = ВыбГрузополучатель Тогда
ТаблицаОтчета.ВывестиСекцию("СтрокаОтгрузки");
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
Важное ограничение: При таком подходе входящее сальдо не может быть получено из стандартных итогов за одну операцию. Для расчета начального остатка отчет должен последовательно рассчитать все движения с момента начала работы с контрагентом либо принимать входящее сальдо вручную от пользователя.
Для крупных баз данных, где требуется постоянный и строгий учет в разрезе грузополучателей, наиболее надежным решением является доработка плана счетов в конфигураторе.
Разберем по шагам схему модернизации конфигурации:
62.1 и 62.2 добавляем третье субконто с типом Справочник.Контрагенты (или специализированный справочник грузополучателей).Расходная накладная и Оказание услуг корректируем процедуру ОбработкаПроведения(), передавая в проводку по дебету счета 62 значение реквизита Грузополучатель.Выписка добавляем реквизит выбора грузополучателя в строках и заполняем третье субконто при формировании кредитовой проводки.БухгалтерскиеИтоги:
БИ = СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 2);
БИ.ИспользоватьСубконто(ВидыСубконто.Договоры, , 1);
БИ.ИспользоватьСубконто(ВидыСубконто.Грузополучатели, ВыбГрузополучатель, 2);
БИ.ВыполнитьЗапрос(ДатаНачала, ДатаКонца, "62.1");
Такой подход обеспечивает корректный автоматический расчет начального сальдо, оборотов и конечного долга стандартными средствами платформы 1С 7.7.