Перенос данных между информационными базами 1С — задача, с которой рано или поздно сталкивается любой администратор или разработчик. Казалось бы, использование стандартной обработки ВыгрузкаЗагрузкаДанныхXML должно гарантировать беспроблемный результат, однако на практике пользователи часто сталкиваются с тем, что документы переносятся «пустыми», без проводок, или вовсе отказываются проводиться в базе-приемнике. Разберем детально, почему это происходит и как правильно организовать процесс переноса.
Прежде всего, проанализируем, какой именно инструмент мы используем. Существует две похожие по названию, но разные по смыслу обработки:
Если мы используем первый вариант, то ключевым требованием является абсолютная идентичность релизов. Рассмотрим ситуацию: если в базе-источнике релиз 3.0.150.27, а в приемнике — 3.0.150.35, перенос может завершиться ошибкой или потерей данных, так как структура таблиц в базе данных могла измениться.
Когда мы говорим, что «ломается проводка», мы имеем в виду отсутствие записей в регистрах бухгалтерии или накопления. В системе 1С документ сам по себе — это только регистратор. Сами данные о движении денежных средств, товаров или взаиморасчетов хранятся в соответствующих регистрах. Рассмотрим основные причины, по которым движения не переносятся:
1. Неправильная настройка флагов в обработке. Многие совершают ошибку, пытаясь вручную выбирать нужные регистры в списке объектов выгрузки. Рассмотрим правильный алгоритм: в обработке ВыгрузкаЗагрузкаДанныхXML необходимо выбрать только тип документа (например, РеализацияТоваровУслуг) и установить флаг «Выгружать с движениями». В этом случае система автоматически найдет все записи в регистрах, где данный документ является регистратором, и включит их в файл выгрузки.
2. Конфликт уникальных идентификаторов (GUID). Если в новой базе уже созданы справочники (Контрагенты, Номенклатура) вручную, а не перенесены из старой базы, то при загрузке документа возникнет ситуация «Объект не найден». Ссылка в проводке будет указывать на пустой GUID. Выясним причину: документ ссылается на идентификатор A, а в базе-приемнике у того же контрагента идентификатор B.
Ситуация, когда в 1С:Бухгалтерия 3.0 документы перенеслись, но не открывают проводки или выдают ошибки при попытке проведения, — классическая проблема при создании новой базы. Проанализируем, что нужно проверить в первую очередь:
Настройка учетной политики и параметров учета. Это самая частая причина. В новой базе (приемнике) необходимо до загрузки документов настроить:
Важный момент: Если вы перенесли документ как объект, но не перенесли его движения (регистры), 1С попытается сформировать их заново при проведении. Но если в новой базе не заполнены ключевые регистры сведений (например, СчетаУчетаНоменклатуры или СтатьиДвиженияДенежныхСредств), алгоритм проведения просто не поймет, на какие счета дебета и кредита относить суммы.
Посмотрим, как должен выглядеть процесс, чтобы избежать «магических действий» и ошибок:
ВыгрузкаЗагрузкаДанныхXML.Организации, Склады, Контрагенты, Номенклатура, Договоры. Это минимизирует появление битых ссылок («Объект не найден»).Групповое изменение реквизитов (или аналогичным) для массового перепроведения документов, если движения по какой-то причине не «встали».Если задача переноса документов регулярная или базы имеют даже незначительные отличия, лучше отказаться от ВыгрузкаЗагрузкаДанныхXML в пользу Конвертации данных 2.1. Это позволит нам:
ПриЗагрузке можно вызвать метод:
// Пример программного проведения документа при загрузке
Если Объект.Проведен Тогда
Попытка
Объект.Записать(РежимЗаписиДокумента.Проведение);
Исключение
Сообщить("Ошибка проведения документа: " + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
Такой подход гарантирует, что проводки будут сформированы актуальными алгоритмами именно той базы, в которую мы загружаем данные, с учетом всех её настроек и учетных политик.
Подведем итог нашему анализу. «Сломанные» проводки — это не мистика, а следствие нарушения целостности данных или несоответствия настроек систем. Проверьте идентичность релизов, убедитесь в наличии настроенной учетной политики в новой базе и всегда выгружайте документы вместе с движениями, не пытаясь фильтровать регистры вручную. Только системный подход к переносу позволит вам избежать необходимости «проводить всё с самого начала» и сохранит нервы вам и вашим бухгалтерам.