Как перенести остатки товаров между идентичными конфигурациями 1С:Управление торговлей 10.3?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Перенос остатков из сильно доработанной старой базы в чистую типовую конфигурацию — задача, с которой сталкивается практически каждый администратор или программист 1С. Рассмотрим наиболее эффективные способы решения этой задачи, которые помогут минимизировать ручную работу и избежать ошибок с данными.

Метод 1: Использование табличных документов

Один из самых простых и понятных способов — перенос через Excel или другие табличные форматы. Этот метод позволяет «очистить» данные от накопленного за годы мусора.

  1. Сформируйте в исходной базе отчет Ведомость по товарам на складах, сгруппировав данные по Организация и Склад.
  2. Выгрузите полученный отчет в табличный документ (Excel).
  3. Воспользуйтесь штатной обработкой Загрузка данных из табличного документа. Она позволяет сопоставить номенклатуру по уникальным идентификаторам (артикул, код или наименование).
  4. Для автоматизации загрузки можно написать небольшую процедуру, которая будет создавать документы Оприходование товаров на основании данных из таблицы.

Этот подход предпочтителен, так как он дает вам полный контроль над тем, какие именно данные попадают в новую систему.

Метод 2: Использование документов «Инвентаризация товаров»

Если структура баз полностью идентична, можно попробовать перенос через Инвентаризацию с помощью Универсального обмена данными в формате XML.

Однако помните о важном нюансе: этот метод требует соблюдения ссылочной целостности. Если в новой базе еще не созданы элементы справочников (организации, склады, номенклатура), документы не проведутся или создадут дубли. Рекомендуем следующую последовательность действий:

  1. Создайте документы Инвентаризация товаров на складах в исходной базе.
  2. Очистите поле УчетноеКоличество, если необходимо зафиксировать только фактические остатки.
  3. На основании Инвентаризации создайте документы Оприходование товаров.
  4. Выполните перенос только самих документов Оприходование товаров, так как они содержат финальный «срез» остатков.

Метод 3: Программный перенос данных

Для продвинутых пользователей и разработчиков самым «чистым» способом является прямой перенос записей в регистры накопления. В типовых конфигурациях для этого существуют специальные инструменты или документы Перенос данных.

Разберем, как программно можно заполнить табличную часть документа Оприходование товаров на основе выборки из другой базы (через COM-соединение):


// Пример упрощенного алгоритма заполнения ТЧ
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Номенклатура, Склад, КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки()";
РезультатЗапроса = Запрос.Выполнить().Выбрать();

ДокОприходование = Документы.ОприходованиеТоваров.СоздатьДокумент();
Пока РезультатЗапроса.Следующий() Цикл
    СтрокаТЧ = ДокОприходование.Товары.Добавить();
    СтрокаТЧ.Номенклатура = РезультатЗапроса.Номенклатура;
    СтрокаТЧ.Количество = РезультатЗапроса.КоличествоОстаток;
    // Заполнение остальных реквизитов...
КонецЦикла;
ДокОприходование.Записать();

Важные советы по переносу

Чтобы процесс прошел гладко, примите во внимание следующие рекомендации:

Выбор метода зависит от ваших навыков: если вы не хотите писать код — используйте таблицы Excel. Если вы владеете инструментом Универсальный обмен данными — используйте его для переноса «среза» остатков через документы Оприходование товаров. Это обеспечит стабильный и предсказуемый результат.

← На главную