Имя: Пароль:
1C
 
КД: ВыгрузитьРегистр()
0 hawksib
 
28.08.17
13:35
вопрос по конвертации данных, для переноса регистра подчиненного регистратору в независимый, нужно переносить набор записей, отобранный по регистратору, что записи в приемнике соответствовали записям источника, процедура ВыгрузитьПоПравилу() выгружает менеджер записи, нашел в интернете, что есть такая процедура ВыгрузитьРегистр(), использую её, действительно выгружается набор, но  он почему-то абсолютно пустой, количество записей в наборе соответствует правде, но все записи пустые. Не могу понять, что делаю не так?
не могу найти описание функции ВыгрузитьРегистр() ?
в ПКО ЦеныНоменклатуры со всех свойств снял флаги "получить из входящих данных"
подскажите, кто знает, или у кого есть какие-либо мысли, мой код ПВД перед выгрузкой:

Объект.Прочитать();

Отбор = Новый ТаблицаЗначений;
Отбор.Колонки.Добавить ("Имя");
Отбор.Колонки.Добавить ("Значение");
Отбор.Колонки.Добавить ("Использование");

СтрокаОтбора = Отбор.Добавить ();
СтрокаОтбора.Имя = "Регистратор";
СтрокаОтбора.Значение = Строка(Объект.Отбор.Регистратор.Значение.УникальныйИдентификатор());
СтрокаОтбора.Использование = Истина;
Строки = Новый ТаблицаЗначений;
Строки.Колонки.Добавить("Активность");
Строки.Колонки.Добавить("Номенклатура");
Строки.Колонки.Добавить("Период");
Строки.Колонки.Добавить("Характеристика");
Строки.Колонки.Добавить("Цена");
Строки.Колонки.Добавить("ВидЦен");
Строки.Колонки.Добавить("ЕдиницаИзмерения");
Строки.Колонки.Добавить("ГУИДРегистратора");
Для Каждого Запись Из Объект Цикл
    Строка = Строки.Добавить();
    Строка.Активность = Запись.Активность;
    Строка.Номенклатура = Запись.Номенклатура;
    Строка.Период = Запись.Период;
    Строка.Характеристика = Запись.Характеристика;
    Строка.Цена = Запись.Цена;
    Строка.ВидЦен = Запись.КатегорияЦен;
    Строка.ЕдиницаИзмерения = Запись.ЕдиницаИзмерения;
    Строка.ГУИДРегистратора = Строка(Запись.Регистратор.УникальныйИдентификатор());
КонецЦикла;
НаборЗаписей = Новый Структура("Отбор, Строки");
НаборЗаписей.Отбор = Отбор;
НаборЗаписей.Строки = Строки;

Сообщить(Строки[0].Номенклатура);
Сообщить(Строки.Количество());
ВыгрузитьРегистр(НаборЗаписей,,,Ложь,"ЦеныНоменклатуры");

Отказ = Истина;
1 patapum
 
28.08.17
13:43
(0) Не знаю насчет функции, я переносил движения регистров накопления по ПКС. Чтобы перенеслись, пришлось в объекте в процедуре "после загрузки" принудительно записать наборы записей движений.
2 zmaximka
 
28.08.17
13:44
не могу найти описание функции ВыгрузитьРегистр()
Откріть модуль обработки V8Exchan8x.epf, найти процедуру и посмотреть ее параметры.
3 hawksib
 
28.08.17
16:28
вроде бы понял, в первом параметре должна быть не структура, а набор записей регистра
4 vicof
 
28.08.17
16:49
И его прочитать нужно перед выгрузкой, если он в процедуре не читается.
5 hawksib
 
29.08.17
03:55
(4) в какой процедуре? ВыгрузитьРегистр?
никаких прочитать не делал, всё получилось
6 hawksib
 
29.08.17
04:54
в конвертации свойств цены номенклатуры у всех свойств указал источник, Перед выгрузкой свойства "Регистратор" в "ГУИДРегистратора" написал :

Значение = Строка(Источник.Регистратор.УникальныйИдентификатор())

а в ПВД перед выгрузкой:

НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Объект.Отбор.Регистратор.Значение);

Для Каждого Запись Из Объект Цикл
    Если ЗначениеЗаполнено(Запись.СтруктурнаяЕдиница) И Запись.СтруктурнаяЕдиница.Ссылка <> Параметры.СтруктурнаяЕдиница.Ссылка Тогда
        Продолжить;
    КонецЕсли;
    Строка = НаборЗаписей.Добавить();
    Строка.Активность = Запись.Активность;
    Строка.Номенклатура = Запись.Номенклатура;
    Строка.Период = НачалоДня(Запись.Период);
    Строка.Характеристика = Запись.Характеристика;
    Строка.Цена = Запись.Цена;
    Строка.КатегорияЦен = Запись.КатегорияЦен;
    Строка.ЕдиницаИзмерения = Запись.ЕдиницаИзмерения;
    Строка.Регистратор = Запись.Регистратор;

КонецЦикла;
ВыгрузитьРегистр(НаборЗаписей,,,Ложь,"ЦеныНоменклатуры");

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