|   |   | 
| 
 | Перенос регистра сведений через КД с изменением структуры | ☑ | ||
|---|---|---|---|---|
| 0
    
        Dwarrior 13.02.19✎ 15:07 | 
        Здравствуйте!
 Переношу из Источника регистр сведений с регистратором в Получатель, в регистр сведений без регистратора. Проблема в том, что из Источника выгружается РегистрСведенийЗапись, а нужно сделать РегистрСведенийНаборЗаписей, чтобы в Получателе все загрузилось успешно. Вопрос - как это сделать в Источнике, если там отбор по регистратору? Сейчас я ПередВыгрузкой разбираю исходный набор записей на отдельные записи и ВыгружаюПоПравилу(), набором с регистратором выгружается, но криво загружается в Получатель. Чего хочется - чтобы в выгруженном xml были объекты РегистрСВеденийНаборЗаписей с отбором по измерениям, как это существует в Получателе. Такой файл загрузится в Получателе. | |||
| 1
    
        hhhh 13.02.19✎ 15:10 | 
        (0) в правилах выгрузки произвольный алгоритм. и там запрос не по регистраторам, а по нужным измерениям.     | |||
| 2
    
        Dwarrior 13.02.19✎ 15:23 | 
        (1)  Ну это обмен по правилам, работает ли запрос с произвольным алгоритмом в таких условиях? Из чего выбирать?
 Запрос вернет набор полей - Номенклатура, Цена и пр. Сейчас я почти так и делаю - создаю Структуру с полями Номенклатура и Цена, заполняю и ВыгружаюПоПравилу(). Выгружается Запись, а не НаборЗаписей. То же самое происходит, если выгружать вместо Структуры РегистрСВеденийЗапись - в xml попадает Запись. По моему мнению, так происходит потому, что в Источнике ничего не известно про структуру регистра в Получателе, в правилах тоже ничего нет, только реквизиты линейным списком. Поэтому об отборе по Номенклатуре в Источнике ничего не известно. Может можно как-тио использовать многоуровневую структуру? Типа Запись = Новый Структура("Отбор,НаборЗаписей", Новый Структура("Номенклатура"), Новый Массив)? | |||
| 3
    
        Dwarrior 14.02.19✎ 09:38 | 
        Коллеги, апну пожалуй     | |||
| 4
    
        scanduta 14.02.19✎ 09:43 | 
        (1) +1
 Делай произвольный алгоритм получай нужные тебе поля , формируй набор записей и используй процедуру ВыгрузитьРегистр(..) | |||
| 5
    
        Dwarrior 14.02.19✎ 10:04 | 
        (4) О! Кажется то что нужно, спасибо! Не знал, что есть такая функция:) Отпишусь по результату     | |||
| 6
    
        Dwarrior 14.02.19✎ 10:54 | 
        (5) Все получилось, спасибо! Именно к этому я и пришел - создать искусственную структуру, аналогичную набору записей в Получателе. Но не знал как сделать. Спасибо scanduta за подсказку!
 Вот мой код, перед выгрузкой в ПВД регистра: //Формируем искуственную структуру-шаблон, аналогичную РегистрСВеденийНаборЗаписей Строки = Новый ТаблицаЗначений; Строки.Колонки.Добавить("Период"); Строки.Колонки.Добавить("Номенклатура"); Строки.Колонки.Добавить("ФорматМагазина"); Строки.Колонки.Добавить("РазрешеныЗакупки"); Строки.Колонки.Добавить("РазрешеныПродажи"); Строки.Колонки.Добавить("Активность"); Строки.Колонки.Добавить("Документ"); Строки.Добавить(); Отбор = Новый ТаблицаЗначений; Отбор.Колонки.Добавить("Имя"); Отбор.Колонки.Добавить("Значение"); Отбор.Колонки.Добавить("Использование"); СтрокаОтбора = Отбор.Добавить(); СтрокаОтбора.Имя = "Номенклатура"; СтрокаОтбора.Использование = Истина; СтрокаОтбора = Отбор.Добавить(); СтрокаОтбора.Имя = "ФорматМагазина"; СтрокаОтбора.Использование = Истина; ШаблонНЗ = Новый Структура("Отбор, Строки"); ШаблонНЗ.Отбор = Отбор; ШаблонНЗ.Строки = Строки; //Каждую запись из набора представляем как набор записей Для каждого Запись из Объект Цикл НЗ = ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(ШаблонНЗ)); СтрокаОтбора = НЗ.Отбор.Найти("Номенклатура"); СтрокаОтбора.Значение = Запись.Номенклатура; СтрокаОтбора = НЗ.Отбор.Найти("ФорматМагазина"); СтрокаОтбора.Значение = Запись.ОбъектПланирования; СтрокаНабора = НЗ.Строки[0]; ЗаполнитьЗначенияСвойств(СтрокаНабора, Запись); СтрокаНабора.ФорматМагазина = Запись.ОбъектПланирования; СтрокаНабора.Документ = сокрлп(Объект.Отбор.Регистратор.Значение); ВыгрузитьРегистр(НЗ, , , , "АссортиментДТС"); КонецЦикла; | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |