Синхронизация данных между 1С:Комплексная автоматизация 2 (КА 2) и 1С:Бухгалтерия предприятия 3.0 (БП) — это сложный процесс, зависящий от множества факторов: от настроек правил регистрации до статусов отражения документов в учете. Часто возникает ситуация, когда часть документов успешно попадает в базу-приемник, а отдельные экземпляры «теряются», хотя на первый взгляд они ничем не отличаются от остальных. Проанализируем причины этой проблемы и разберем по шагам, как обеспечить полноту выгрузки.
Прежде всего, разберем, как объект попадает в обмен. В системе 1С существует специальная таблица — План обмена. Когда вы записываете документ, платформа автоматически ставит «галочку» в этой таблице для конкретного узла обмена. Если документ не попал в БП, значит, либо он не был зарегистрирован, либо был отсечен правилами выгрузки.
Рассмотрим подробнее основные причины, по которым регистрация может не сработать или «слететь»:
ОбменДанными.Загрузка = Истина, платформа игнорирует регистрацию этого изменения в планах обмена. Это стандартное поведение для предотвращения зацикливания при обмене, но оно может сыграть злую шутку при массовых корректировках.Документ ПроизводствоБезЗаказа в КА 2 имеет свои особенности, которые напрямую влияют на синхронизацию. Для минимизации ошибок при вводе данных и соблюдения регламентов часто используется заполнение по спецификации документа «Производство без заказа», что гарантирует корректность реквизитов перед обменом. Разберем ситуацию с точки зрения прикладного решения:
Статус отражения в регламентированном учете. В правилах обмена часто стоит фильтр: «Выгружать только документы, отраженные в регл. учете». Проанализируем ситуацию: если документ проведен в оперативном учете, но по нему еще не сформированы проводки (не выполнено закрытие месяца или ручное отражение), он может игнорироваться правилами синхронизации. Если возникают проблемы с ручными корректировками, может потребоваться подтверждение актуальности проводок, чтобы система считала документ готовым к выгрузке. Проверьте, заполнены ли счета учета в самом документе или в соответствующих настройках ГФУ (групп финансового учета).
Фильтрация по аналитике. Выясним, не настроены ли в узле обмена фильтры по организациям, складам или подразделениям. Если в документе указан склад, который не входит в разрешенный список для обмена с БП, регистрация документа либо не произойдет, либо он будет отсечен на этапе выгрузки. Посмотрим на типичный пример кода в правилах регистрации, который может пропускать объект:
// Пример логики в правилах регистрации
Если Объект.Склад.Наименование = "Склад брака" Тогда
Отказ = Истина; // Документ не будет зарегистрирован для обмена
КонецЕсли;
Рассмотрим ситуацию автора: документ создан 26-го числа, но дата в нем установлена 24-е число (задним числом). Это критически важный момент. Если в настройках синхронизации или в самой базе установлена Дата запрета загрузки данных, и дата документа (24.08) меньше этой даты, то документ может быть проигнорирован. Даже если регистрация в КА 2 прошла, база-приемник (БП) может отклонить объект при попытке записи.
Также проверим механизм контроля коллизий. Если система версионирования объектов считает, что текущая версия документа в БП «новее» или «важнее», чем пришедшая из КА 2 (например, из-за разницы во времени серверов), документ не обновится.
Чтобы не мониторить обмен «вручную» каждый день, проанализируем доступные инструменты автоматизации контроля. Также для профилактики проблем полезно периодически выполнять сравнение значений констант и поиск расхождений в настройках между базами КА и БП.
COMConnector подключается к базе БП и сравнивает реестр документов за день.Посмотрим на пример логики для сверки через COM (упрощенно):
// Подключение к БП
COMConnector = Новый COMОбъект("V83.COMConnector");
БазаБП = COMConnector.Connect("Srvr='ServerName';Ref='BaseName';Usr='Login';Pwd='Password'");
// Получение данных из БП
ЗапросБП = БазаБП.NewObject("Запрос");
ЗапросБП.Текст = "ВЫБРАТЬ Номер, Дата ИЗ Документ.ПроизводствоБезЗаказа ГДЕ Дата МЕЖДУ &Начало И &Конец";
// ... выполнение запроса и сравнение с текущей базой
Если вы обнаружили, что документ не ушел, выполните следующие действия:
Таким образом, мы выяснили, что причина неполной синхронизации чаще всего кроется либо в программном обходе регистрации (ОбменДанными.Загрузка), либо в специфических фильтрах по аналитике и статусам учета в КА 2. Регулярное использование отчета об анализе расхождений позволит вам выявлять такие случаи оперативно, не дожидаясь закрытия периода.