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