Вопрос выбора архитектуры при внедрении системы БИТ.Финанс (БФ) является критическим для производительности и стабильности учета. Основная дилемма заключается в том, стоит ли устанавливать БИТ.Финанс "поверх" типовой конфигурации 1С:Бухгалтерия (БП) или разносить их в разные информационные базы. В этой статье мы проанализируем оба подхода, разберем технические нюансы синхронизации и способы оптимизации работы системы.
Когда БИТ.Финанс интегрирован в 1С:Бухгалтерия, база становится "дописанной" (нетиповой). Рассмотрим основные сложности этого процесса:
1С:Бухгалтерия уже была существенно доработана под нужды предприятия, каждое обновление превращается в сложный процесс совмещения кода. При этом часто возникают сбои в функционале ЗаявкаНаРасходДС или механизмах формирования проводок БФ.Финансовый блок часто требует прикрепления сканов документов (счетов, договоров) к объектам системы для согласования. Рассмотрим ситуацию, когда база начинает стремительно расти, что замедляет выполнение регламентных операций и создание бэкапов. Выясним причину: по умолчанию файлы хранятся в самой базе данных SQL.
Решение: Настройка хранения в томах
Прежде чем принимать решение о разделении баз, попробуем оптимизировать текущую. Проанализируем возможность выноса файлов на диск сервера. Это делается в разделе "Администрирование" — "Настройки работы с файлами".
Это позволит существенно уменьшить размер .mdf файла базы данных, ускорит тестирование и исправление (ТиИ) и сделает работу бухгалтерии более комфортной.
Рассмотрим вариант, при котором 1С:Бухгалтерия остается типовой и обновляется оперативно, а блок БИТ.Финанс живет в отдельной базе. Посмотрим на этот процесс по шагам:
Для надежного обмена данными между базами рекомендуется использовать специализированный инструмент — БИТ.Адаптер. В отличие от стандартных правил обмена через Конвертацию данных, адаптер позволяет реализовать онлайн-обмен через web-сервисы.
Проанализируем преимущества использования адаптера:
СписаниеСРасчетногоСчета), данные мгновенно попадают в БФ для отражения факта по бюджету.СтатьиДДС из бухгалтерии со СтатьямиОборотов в финансовом блоке.При разделении баз критически важно определить "Мастер-базу" для каждого справочника. Разберем стандартную схему:
Контрагенты, БанковскиеСчета, Налоги. Бухгалтерия заводит первичку, и она улетает в БИТ.ЦФО, Проекты, СтатьиБюджетов.Важно запретить создание дублей в обеих базах на уровне прав доступа, иначе при синхронизации вы получите хаос в учете.
Рассмотрим еще одну эффективную схему, предложенную опытными пользователями. Основная работа (ввод первички, согласование оплат, планирование) ведется в базе БП + БИТ.Финанс. Эта база обновляется по графику БИТа. Однако для сдачи отчетности используется вторая, абсолютно "чистая" и типовая база 1С:Бухгалтерия. Данные из управленческой базы выгружаются в отчетную ежемесячно или ежеквартально.
Плюсы этой схемы:
Проанализируем ситуацию с контролем лимитов. Если вы разделяете базы, вы должны быть готовы к задержкам. Рассмотрим пример: заявка на расход ДС создана в БИТ, а оплата прошла в БП. Пока выписка не "прилетит" обратно в БИТ, система будет считать лимит свободным. Для решения этой проблемы необходимо настраивать БИТ.Адаптер на максимально быстрый отклик.
Также стоит учесть вопрос лицензирования. При работе в двух базах одновременно система может запрашивать две клиентские лицензии 1С на одного пользователя (если используется программная защита с привязкой к сеансам). Это следует учитывать при расчете бюджета проекта.
Выясним, в каких случаях разделение действительно необходимо:
Для технической реализации разделения мы можем использовать подобную логику в коде (на примере обработки обмена):
Процедура СинхронизироватьОбъект(Источник)
// Инициализация подключения к базе БИТ.Финанс через COM или Web-сервис
ПодключениеБФ = ИнициализироватьСвязьСБФ();
Если ПодключениеБФ <> Неопределено Тогда
ДанныеДляПередачи = СформироватьСтруктуруДанных(Источник);
Результат = ПодключениеБФ.ЗаписатьДокументБФ(ДанныеДляПередачи);
Если Результат.Статус = "Ошибка" Тогда
ЗаписатьВЛогОшибок("Ошибка передачи объекта: " + Источник.Ссылка + " Текст: " + Результат.Сообщение);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Подводя итог, можно сказать, что решение зависит от квалификации вашего IT-специалиста. Если есть возможность качественно настроить и сопровождать БИТ.Адаптер, разделение баз станет спасением для производительности системы.