Как перенести документы «Отчет производства за смену» и «Требование-накладная» между базами 1С:УПП 8.2?

Программист 1С v8.3 (Обычные формы) Управленческий учет Промышленность, строительство и АПК
← На главную

Перенос данных между информационными базами — это стандартная, но ответственная задача для администратора или разработчика 1С. В конфигурации 1С:Управление производственным предприятием (УПП) ситуация осложняется тесной взаимосвязью объектов и сложной структурой регистров. Рассмотрим подробнее, как правильно перенести документы ОтчетПроизводстваЗаСмену (ОПЗС) и ТребованиеНакладная (ТрН) из одной базы в другую, чтобы не потерять целостность данных и корректность учета.

Метод 1. Использование универсальной обработки «Выгрузка и загрузка данных XML»

Если ваши базы являются идентичными (например, рабочая база и её экспериментальная копия), этот способ будет самым быстрым и эффективным. Разберем по шагам, как работать с этой обработкой.

Для начала необходимо найти саму обработку. Обычно она входит в состав подсистемы «Инструменты разработчика» или поставляется на диске ИТС. Важно использовать версию, подходящую для обычных форм 1С 8.2.

  1. Настройка выгрузки: Откроем обработку в базе-источнике. В списке объектов выберем нужные нам типы документов: ОтчетПроизводстваЗаСмену и ТребованиеНакладная.
  2. Фильтрация данных: Проанализируем, за какой период нам нужны документы. В настройках обработки установим период или добавим отбор по конкретным ссылкам, если документов немного.
  3. Работа с зависимостями: Это критически важный момент. В УПП документы ссылаются на множество справочников: Номенклатура, СпецификацииНоменклатуры, Склады, СтатьиЗатрат. В обработке есть опция «При необходимости» (выгрузка объектов по ссылкам). Если мы её включим, система выгрузит всё дерево зависимостей.

    Важное замечание: Чтобы не «раздувать» файл обмена, рекомендуется сначала убедиться, что справочники в обеих базах синхронизированы. Если база-приемник — это копия, созданная недавно, то достаточно выгрузить только сами документы.

  4. Синхронизация по GUID: Посмотрим на техническую сторону. Данная обработка ищет объекты по внутреннему идентификатору (GUID). Если документ с таким GUID уже есть в приемнике, он будет обновлен. Если нет — создан новый. Это позволяет избежать дублирования при повторных переносах.

Метод 2. Программный перенос через COM-соединение

Выясним причину, почему программисты часто выбирают COM-соединение вместо файлов. Это позволяет передавать данные напрямую из памяти одной базы в другую, минуя промежуточные файлы XML. Это особенно удобно для автоматизации процесса.

Рассмотрим пример логики работы скрипта для переноса:


// Инициализация соединения
V82Connector = Новый COMОбъект("V82.COMConnector");
ПараметрыСоединения = "Srvr='ServerName';Ref='BaseName';Usr='Login';Pwd='Password';";
БазаИсточник = V82Connector.Connect(ПараметрыСоединения);

// Получение данных из источника
Запрос = БазаИсточник.NewObject("Запрос");
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.ОтчетПроизводстваЗаСмену ГДЕ Дата МЕЖДУ &Начало И &Конец";
Запрос.УстановитьПараметр("Начало", НачалоПериода);
Запрос.УстановитьПараметр("Конец", КонецПериода);
Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    // Логика создания документа в текущей базе на основании данных Выборка.Ссылка
    // Здесь потребуется сопоставление полей и поиск ссылочных объектов
КонецЦикла;

Используя COM-соединение, мы можем гибко управлять поиском объектов. Например, искать контрагентов или номенклатуру не по GUID, а по артикулу или ИНН/КПП, что невозможно в стандартной XML выгрузке без написания правил обмена.

Метод 3. Универсальный обмен данными XML (Конвертация данных)

Если конфигурации баз различаются (например, разные релизы УПП или разные доработки), нам потребуется использовать правила обмена, созданные в конфигурации «Конвертация данных 2.1».

Проанализируем ситуацию: в УПП документ ОтчетПроизводстваЗаСмену содержит табличные части «Продукция», «Услуги», «Материалы», «ТехОперации» и другие. При переносе через правила обмена (ПВД — правила выгрузки данных) можно четко прописать, какие именно поля должны переноситься, а какие — игнорироваться или заполняться значениями по умолчанию в базе-приемнике.

Рассмотрим преимущества этого метода:

Важные нюансы работы с регистрами и проведением

Просто загрузить документ в базу — это лишь половина дела. В УПП крайне важны движения по регистрам. Разберем основные моменты:

1. Режим проведения: При использовании обработки «Выгрузка и загрузка данных XML» документы загружаются в том состоянии, в котором они были в источнике (проведенные или нет). Однако движения по регистрам (бухгалтерским и накопления) могут не перенестись, если не выбраны соответствующие настройки. Рекомендуется после загрузки выполнить групповое перепроведение перенесенных документов.

2. Учет затрат (РАУЗ): Если в ваших базах включен режим расширенной аналитики учета затрат, то после переноса документов ОтчетПроизводстваЗаСмену и ТребованиеНакладная необходимо обязательно запустить регламентную операцию «Расчет себестоимости». Без этого аналитика в экспериментальной базе будет некорректной, так как документы делают только предварительные записи в регистр УчетЗатратРегламентированный.

3. Спецификации номенклатуры: Документ ОПЗС жестко завязан на спецификации. Если вы переносите документ, но забыли перенести актуальную версию спецификации, при попытке перепроведения в новой базе вы можете получить ошибки заполнения или некорректное списание материалов.

Рекомендации по безопасности и контролю

Перед тем как приступить к массовому переносу, выполним следующие действия:

  1. Создание бэкапа: Всегда создавайте копию базы-приемника (файл .dt). Ошибки при загрузке XML могут привести к дублированию предопределенных элементов, исправить которые потом крайне сложно.
  2. Тестовый прогон: Сначала попробуйте перенести один документ каждого типа. Проверьте его заполнение, наличие всех аналитик (ЦФО, статьи затрат, проекты) и попробуйте его провести.
  3. Контроль итогов: Сравните оборотно-сальдовую ведомость по счетам 20, 10 и 43 в источнике и приемнике за период переноса после того, как документы будут проведены.

Таким образом, выбор метода зависит от идентичности конфигураций и объема данных. Для разового переноса в копию идеальна стандартная обработка XML, а для регулярных обменов лучше настроить правила обмена или написать скрипт через COM-соединение.

← На главную