8.х ОБМЕН Как перенести обменом данные из Справочника в Регистр сведений?

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем svet, 10 апр 2013.

  1. TopicStarter Overlay
    svet
    Offline

    svet Профессионал в 1С Команда форума

    Регистрация:
    9 ноя 2007
    Сообщения:
    1.971
    Симпатии:
    59
    Баллы:
    54
    Скажу сразу: с настройками обмена дела практически не имела, но по конфигурации Конвертация уже немного полазила.

    Задача:
    Исходная конфигурация - УПП 1.3.38, приемник - УАТ 3.0.18.1 под 8.1.
    Из источника берем справочник НоменклатурныеГруппы, в котором добавлен реквизит "ДатаЗакрытияОбъекта".
    В приемнике пишем в справочник уатОбъектыСтроительства иерархически, попутно меняя код на код с префиксом "нг".
    В приемнике же надо записать в регистр сведений РеквизитыОбъектовВнеоборотныхАктивов запись типа:
    Измерение Объект = ссылка на элемент справочника НоменклатурныеГруппы (т.е. в приемнике это уже ссылка на уатОбъектыСтроительства)
    Ресурс ДатаВводаВЭксплуатацию = реквизит ДатаЗакрытияОбъекта элемента справочника НоменклатурныеГруппы.

    Справочник в справочник у меня записать получается нормально, а вот с записью в регистр застряла.
    По аналогии со стандартными выгрузками из 7 в 8 нашли что-то подобное, попыталась сделать так:
    В конвертации создаю параметр СписокОбъектов.
    В обработчике конвертации ПередВыгрузкойДанных создаю структуру параметра:
    Код:
    Параметры.СписокОбъектов = Новый ТаблицаЗначений;
    Параметры.СписокОбъектов.Колонки.Добавить("ОбъектВнеоборотныхАктивов");
    Параметры.СписокОбъектов.Колонки.Добавить("ДатаЗакрытияОбъекта"); 
    А вот дальше...
    Делаю ПКО НоменклатурныеГруппы,
    в обработчике ПослеВыгрузкиОбъекта пытаюсь заполнить созданную в параметрах ТаблицуЗначений, пишу:
    Код:
    НоваяСтрока = Параметры.СписокОбъектов.Добавить();
    НоваяСтрока.ОбъектВнеоборотныхАктивов = Источник;
    НоваяСтрока.ДатаЗакрытияОбъекта = Источник.ДатаЗакрытияОбъекта;
    Делаю ПКС ОбъектВнеоборотныхАктивов
    Источник - пусто, галка "Получить значение из входящих данных", Приемник - ОбъектВнеоборотныхАктивов, правило - НоменклатурныеГруппы.

    Такое же ПКС для ДатыЗакрытияОбъекта.

    Сохраняю, делаю обмен, обмен проходит без ошибок, но данные в регистр не пишет никакие.

    Что я делаю не так?

    Еще во всех этих телепаниях напрягают 2 момента:
    1. Т.к. при переносе меняется код объекта на код с префиксом "нг", то в тот ли обработчик я пытаюсь пихать заполнение строки таблицы параметра? Может быть надо писать не ПослеВыгрузкиОбъекта, а в ПослеЗагрузки? Но там у меня выдает ошибку - не находит Параметры.СписокОбъектов.
    2. В ПКО для регистра данные вроде как берутся как Параметры, получаемые из входящих данных, но в описании структуры запрашиваемых данных прописывается именно структура, а не таблица. Может быть мне в параметрах тогда надо структуру описывать и в обработчиках именно структуру заполнять?

    В общем, что-то я запуталась.
    Помогите, люди добрые. :sm_rolleyes:
  2. Andy13
    Offline

    Andy13 Опытный в 1С

    Регистрация:
    1 мар 2010
    Сообщения:
    244
    Симпатии:
    2
    Баллы:
    29
    Для переноса в регистр всё надо делать по другому. Работать надо с ПВД - правилами выгрузки данных.

    1. Создать ПКО. В ПКО заполняется только правая сторона (сторона регистра). Левая пустая.
    2. Создать ПВД, указать в ПВД правило из п.1
    3. Установить способ выборки - "Произвольный алгоритм".
    4. В обработчике "Перед обработкой" написать собственно обработку в виде запроса. Имена полей выборки должны по соответствовать именам полей регистра сведений.
    5. В конце написать: ВыборкаДанных = Запрос.Выполнить().Выгрузить();

    Ну можно конечно и таблицу значений забацать и заполнить. Потом передать через "ВыборкаДанных". Но с запросом быстрее как то...
  3. TopicStarter Overlay
    svet
    Offline

    svet Профессионал в 1С Команда форума

    Регистрация:
    9 ноя 2007
    Сообщения:
    1.971
    Симпатии:
    59
    Баллы:
    54
    По п.5: Именно ВыборкаДанных? В примерах стандартных обменов вроде как используют ВходящиеДанные.

    Но в любом случае при попытке сохранить ПВД не проходит контроль, пишет: Поле "Владелец" не заполнено.
    Хотя регистр, в который выгружать пытаюсь, независимый, непериодический...

    И потом, выгрузятся у меня эти данные перед обработкой в ВыборкуДанных, а дальше куда? Где они будут загружаться в программу-приемник и каким образом подцепится новый объект, справочники-то у меня в источнике и в приемнике разные.
  4. Rabot
    Offline

    Rabot

    Регистрация:
    2 авг 2013
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Svet, не уалось разобраться с задачей? похожая проблема.. после 5 п. что дальше?

Поделиться этой страницей