Как выгрузить только часть номенклатуры при переносе из 1С 7.7 в Управление торговлей 11?

Программист 1С v7.7 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

При настройке правил обмена в конфигурации «Конвертация данных 2.1» для переноса информации из базы 1С 7.7 в 1С:Управление торговлей 11 часто возникает необходимость протестировать выгрузку на небольшом объеме данных. Выгружать весь справочник номенклатуры, который может содержать десятки тысяч позиций, долго и неудобно. Рассмотрим подробнее, как ограничить количество выгружаемых объектов до 5–100 элементов как с помощью интерактивных настроек обработки выгрузки, так и программными методами.

Интерактивная настройка отбора в обработке выгрузки V77EXP.ERT

Разберем по шагам наиболее простой способ ограничения данных, не требующий изменения кода в «Конвертации данных».

  1. Откроем в 1С 7.7 внешнюю обработку выгрузки данных V77EXP.ERT и загрузим сформированные правила обмена.
  2. В левой части окна обработки найдем дерево правил выгрузки данных (ПВД). Развернем его и выделим кликом мыши строку, отвечающую за справочник Номенклатура.
  3. Обратим внимание на правую панель обработки. В блоке «Отбор данных» станет активна настройка условий. Если кликнуть по ветке справочника слева, кнопки добавления условий («Добавить условие») становятся доступными.
  4. Зададим отбор по родителю (группе) или диапазону кодов. Нажав кнопку «Добавить условие», выберем нужный реквизит (например, Родитель) и укажем конкретную папку номенклатуры, содержащую небольшое количество позиций для теста. Наряду с этим можно настроить интервал кодов (от начального до конечного значения).

Программные способы ограничения количества объектов в Конвертации данных 2.1

Проанализируем ситуацию, когда необходимо жестко лимитировать количество выгружаемых записей (например, выгрузить строго первые 10 или 100 элементов), независимо от структуры папок справочника.

Вариант 1. Использование параметра-счетчика в событии «Перед выгрузкой»

Для реализации этого метода выполним следующие действия:

  1. В конфигурации «Конвертация данных 2.1» на вкладке «Параметры» создадим новый параметр с именем СчетчикВыгруженных со числовым типом и начальным значением 0.
  2. В Правиле конвертации объектов (ПКО) или Правиле выгрузки данных (ПВД) для номенклатуры перейдем в событие «Перед выгрузкой».
  3. Напишем код, который увеличивает счетчик и отменяет выгрузку при превышении лимита:

Параметры.СчетчикВыгруженных = Параметры.СчетчикВыгруженных + 1;
Если Параметры.СчетчикВыгруженных > 100 Тогда
    Отказ = 1;
КонецЕсли;

При достижении лимита переменной Отказ присваивается значение 1. Все последующие элементы справочника пропускаются и не попадают в итоговый XML-файл.

Вариант 2. Произвольный алгоритм выборки в ПВД

Посмотрим на пример с использованием произвольной выборки:

  1. В правиле выгрузки данных изменим способ выборки на «Произвольный алгоритм».
  2. В событии «Перед обработкой» напишем алгоритм обхода справочника номенклатуры на встроенном языке 1С 7.7.

Спр = СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
Счетчик = 0;

Пока Спр.ПолучитьЭлемент() = 1 Цикл
    Если Спр.ЭтоГруппа() = 1 Тогда
        Продолжить;
    КонецЕсли;
    
    ВыгрузитьПоПравилу(Спр.ТекущийЭлемент(),,, "Номенклатура");
    Счетчик = Счетчик + 1;
    
    Если Счетчик >= 10 Тогда
        Прервать;
    КонецЕсли;
КонецЦикла;

Особенности платформы 1С 7.7 и выгрузки ссылочных данных

Выясним важные нюансы, которые необходимо учитывать при тестировании обмена между 1С 7.7 и УТ 11:

Альтернативные практические подходы

Если нет желания менять правила в Конвертации данных, можно применить проверенную на практике методику:

  1. В базе-источнике 1С 7.7 создаем временную группу номенклатуры (например, _Тест_Выгрузки).
  2. Скопируем в нее 5–10 разнородных позиций (товары с разными единицами измерения, услуги, весовой товар).
  3. В обработке V77EXP.ERT настраиваем обычный фильтр по этой временной папке.
  4. После выгрузки проверяем созданный XML-файл в текстовом редакторе или загружаем его в Управление торговлей 11 для оценки результата.
← На главную