Рано или поздно перед разработчиками и архитекторами крупных корпоративных систем на базе 1С встает вопрос: как обеспечить сдачу регламентированной отчетности, если основной учет ведется в глубоко модифицированной «нетленке»? Ситуация осложняется, когда база имеет объем более 1 Тб, работает на обычных формах, а ежедневный документооборот исчисляется десятками тысяч накладных. При этом учет в такой базе зачастую ведется по старым стандартам (например, с разделением на два плана счетов — Хозрасчетный и Налоговый), что делает невозможным простое обновление конфигурации.
В данной статье мы разберем основные стратегии решения этой задачи, проанализируем риски каждой из них и выберем оптимальный путь для высоконагруженной системы.
На первый взгляд, этот вариант кажется заманчивым: бухгалтеры продолжают работать в одной базе, нет проблем с синхронизацией данных и расхождениями остатков. Однако рассмотрим техническую сторону вопроса подробнее.
Современная Библиотека регламентированной отчетности (БРО) от компании «1С» жестко интегрирована с Библиотекой стандартных подсистем (БСП) и ориентирована на управляемые формы. Попытка «прикрутить» актуальные отчеты из УПП 1.3 или БП 2.0 в старую самописку на базе БП 1.6 или аналогичных решений столкнется со следующими трудностями:
Проанализировав эти факторы, мы можем сделать вывод: встраивание отчетности в «нетленку» — это путь к созданию собственного отдела разработки, который будет заниматься только «подпорками» для отчетов.
Этот вариант считается «золотым стандартом» для крупных систем. Основной оперативный учет (продажи, склад, WMS, маркировка) остается в производительной самописке, а в типовую БП 3.0 транслируются только те данные, которые необходимы для формирования проводок и отчетности. Разберем шаги реализации этой схемы.
Шаг 1: Определение объема передаваемых данных
Для сдачи отчетности в БП 3.0 не обязательно переносить каждый документ в исходном виде. На объемах в миллионы документов в месяц типовая база «ляжет» при первой же попытке группового перепроведения или обновления. Рассмотрим варианты оптимизации:
Шаг 2: Настройка обмена данными
Для синхронизации баз лучше всего использовать планы обмена и HTTP-сервисы или Конвертацию данных 2.0/3.0. Важно настроить регистрацию изменений таким образом, чтобы в БП 3.0 попадали только финальные, проверенные данные. Рассмотрим пример кода для регистрации изменений объекта в плане обмена:
// Пример регистрации документа в плане обмена для выгрузки в БП
Процедура ЗарегистрироватьДокументКВыгрузке(СсылкаНаДокумент)
УзелПриемник = ПланыОбмена.ИнтеграцияСБухгалтерией.НайтиПоКоду("BP_30");
Если НЕ УзелПриемник.Пустая() Тогда
ПланыОбмена.ЗарегистрироватьИзменения(УзелПриемник, СсылкаНаДокумент);
КонецЕсли;
КонецПроцедуры
Шаг 3: Синхронизация платежей и взаиморасчетов
Это самый сложный блок. Разберем ситуацию: платежки приходят в банк-клиент оперативной базы для оперативного перекрытия долгов. Чтобы данные сошлись, необходимо:
Выясним причину, почему работа в самописке становится невозможной с 2023–2024 годов. Внедрение ЕНС и ЕНП (Единого налогового платежа) кардинально изменило логику работы с налогами. Теперь налоги — это не просто проводки по 68 счету, это сложный регистровый учет распределения оплат. Реализовать это в самописке «с нуля» крайне дорого. Типовая БП 3.0 решает эту задачу автоматически, что является весомым аргументом в пользу Варианта №2.
Если вы все же решили переносить документы детально (например, для формирования Книги продаж без сворачивания), вы столкнетесь с проблемой скорости проведения. Рассмотрим методы ускорения:
Переход на работу в двух базах всегда вызывает сопротивление персонала. Проанализируем, как минимизировать негатив:
COM-соединение или ADO будет сравнивать суммы по счетам 60, 62 и 90 в обеих конфигурациях.Посмотрим на пример логики сверки остатков:
// Упрощенная схема сверки через COM
Функция СверитьОстаткиСБухгалтерией(ДатаСверки)
Подключение = Новый COMОбъект("V83.COMConnector");
БазаБП = Подключение.Connect("Srvr='Server';Ref='Accounting';Usr='Admin';Pwd='123'");
ЗапросБП = БазаБП.NewObject("Запрос");
ЗапросБП.Текст = "ВЫБРАТЬ СуммаОстаток ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет = &Счет, , )";
// ... дальнейшая логика сравнения с локальными данными
КонецФункции
Для системы объемом 1 Тб с высокой интенсивностью операций встраивание отчетности — это технологический тупик. Оптимальным решением является создание выделенного контура регламентированного учета на базе типовой «1С:Бухгалтерия 3.0».
Основной фокус внимания при этом следует сместить с «просто выгрузки» на архитектуру обмена и агрегацию данных. Помните, что бухгалтерская база не должна дублировать оперативную в деталях — она должна содержать ровно столько информации, сколько требует налоговый кодекс и стандарты бухгалтерского учета для формирования достоверной отчетности.