Загрузка...

обратиться в техподдержку

Конвертация данных 2: Выгрузка остатков

Служба заботы
26 августа 2024

Введение

Задача: перенос данных (номенклатуры, цены, остатки) из конфигурации Розница 1.0 в УНФ ред. 2.0. Для этого мы будем использовать конвертацию данных с помощью инструмента КД 2.0.

Основные этапы:

  1. Загрузка метаданных конфигураций.
  2. Настройка правил конвертации.
  3. Выгрузка начальных остатков.

Пошаговая инструкция

Шаг 1: Подготовка метаданных

Необходимо загрузить метаданные конфигураций, чтобы обеспечить корректную работу механизма конвертации данных.

Шаг 2: Пример выгрузки через документ “Ввод начальных остатков”

Скриншот интерфейса

Конвертация данных 2.0 Выгрузка начальных остатков


Код выгрузки начальных остатков

Ниже приведён пример кода для выгрузки данных о начальных остатках с учётом последних закупочных цен:

Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |   ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    |   ТоварыНаСкладахОстатки.КоличествоОстаток КАК Количество
    |ПОМЕСТИТЬ вт_Остатки
    |ИЗ
    |   РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
    |
    |ИНДЕКСИРОВАТЬ ПО Номенклатура;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |   ДокПоступление.Номенклатура КАК Номенклатура,
    |   МАКСИМУМ(ДокПоступление.Ссылка.Дата) КАК Дата
    |ПОМЕСТИТЬ вт_Первая
    |ИЗ
    |   Документ.ПоступлениеТоваров.Товары КАК ДокПоступление
    |ГДЕ
    |   ДокПоступление.Ссылка.Проведен
    |   И ДокПоступление.Номенклатура В
    |       (ВЫБРАТЬ вт_Остатки.Номенклатура ИЗ вт_Остатки)
    |
    |СГРУППИРОВАТЬ ПО ДокПоступление.Номенклатура;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |   ПоступлениеТоваровТовары.Номенклатура,
    |   ПоступлениеТоваровТовары.Ссылка.Дата,
    |   ПоступлениеТоваровТовары.Цена
    |ПОМЕСТИТЬ вт_ЦеныЗакуп
    |ИЗ
    |   Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
    |       ВНУТРЕННЕЕ СОЕДИНЕНИЕ вт_Первая КАК вт_Первая
    |       ПО ПоступлениеТоваровТовары.Номенклатура = вт_Первая.Номенклатура
    |       И ПоступлениеТоваровТовары.Ссылка.Дата = вт_Первая.Дата
    |ГДЕ
    |   ПоступлениеТоваровТовары.Ссылка.Проведен;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |   вт_Остатки.Номенклатура,
    |   вт_Остатки.Количество,
    |   вт_ЦеныЗакуп.Цена,
    |   вт_Остатки.Количество * вт_ЦеныЗакуп.Цена КАК Сумма
    |ИЗ
    |   вт_Остатки
    |       ЛЕВОЕ СОЕДИНЕНИЕ вт_ЦеныЗакуп ПО вт_Остатки.Номенклатура = вт_ЦеныЗакуп.Номенклатура
    |ГДЕ
    |   НЕ вт_Остатки.Номенклатура.ПометкаУдаления";

ВыборкаДок = Запрос.Выполнить().Выбрать();

// Формирование таблицы значений для выгрузки
тзТовары = Новый ТаблицаЗначений;
тзТовары.Колонки.Добавить("ЕдиницаИзмерения");
тзТовары.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
тзТовары.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число"));
тзТовары.Колонки.Добавить("Номенклатура");
тзТовары.Колонки.Добавить("СтавкаНДС");
тзТовары.Колонки.Добавить("СтруктурнаяЕдиница");
тзТовары.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
тзТовары.Колонки.Добавить("СуммаБезНДС", Новый ОписаниеТипов("Число"));

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

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

Данные.Вставить("Запасы", тзТовары);

// Выгрузка данных
ВыгрузитьПоПравилу("", Данные, "ВводНачальныхОстатков");

Отказ = Истина;

Пояснения к коду

  1. Первый блок запроса: Получение остатков товаров на складе.
  2. Второй блок: Определение последней даты поступления по каждому товару.
  3. Третий блок: Получение цены по каждому товару на основе последней даты поступления.
  4. Четвёртый блок: Совмещение данных по остаткам и закупочным ценам для расчёта общей стоимости.

Скачать правила.

Правила выгрузки из Розницы 1 в Управление нашей фирмой 3.0

Заключение

Конвертация данных через КД 2.0 позволяет эффективно переносить начальные остатки между конфигурациями. В данном примере описан процесс выгрузки остатков с учётом последних закупочных цен. Подобные решения помогут автоматизировать переход между версиями программных продуктов 1С.


Эту и другие технические статьи написали наши программисты 1С и получили за них премии. Если вы тоже работаете с 1С и любите делиться опытом, приходите разработчиком в МИТ

Наши сервисы по этой теме:


заполните, пожалуйста
укажите Ваш e-mail
укажите Ваш номер телефона для связи