Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 18:37

Конвертация данных

Автор Magenta, 25 авг 2014, 15:46

0 Пользователей и 1 гость просматривают эту тему.

Magenta

Доброго времени суток.

Делаю перенос данных из регистра сведений в одной конфигурации в табличную часть справочника в другой (они разные).

В КонвертацииДанных создала два ПКО (Корреспонденты и корреспонденты0001).
В "Корреспонденты" нахожу нужный справочник - Контрагенты.
В обработчике "Перед выгрузкой" пишу
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Объект", Источник);
Запрос.Текст = "
|ВЫБРАТЬ
| КонтактнаяИнформация.Тип КАК Тип,
| КонтактнаяИнформация.Вид КАК Вид,
| КонтактнаяИнформация.Представление КАК Представление,
| КонтактнаяИнформация.Поле2 КАК Регион,
| КонтактнаяИнформация.Поле4 КАК Город,
| КонтактнаяИнформация.CRM_НомерТелефона КАК НомерТелефона,
| КонтактнаяИнформация.Поле1 + КонтактнаяИнформация.Поле2 + КонтактнаяИнформация.Поле3 + КонтактнаяИнформация.Поле4 + КонтактнаяИнформация.Поле5 + КонтактнаяИнформация.Поле6 + КонтактнаяИнформация.Поле7 + КонтактнаяИнформация.Поле8 + КонтактнаяИнформация.Поле9 + КонтактнаяИнформация.Поле10 КАК ЗначенияПолей
|ИЗ
| РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
|ГДЕ
| КонтактнаяИнформация.Объект = &Объект";


Результат = Запрос.Выполнить();

   

Если НЕ Результат.Пустой() Тогда
Выгрузка = Результат.Выгрузить();

//ИсходящииеДанные = Новый Структура("Наименование");
ИсходящииеДанные = Новый Структура("КонтактнаяИнформация, Наименование", , Источник.Наименование);

ИсходящииеДанные.КонтактнаяИнформация = Новый ТаблицаЗначений;
ИсходящииеДанные.КонтактнаяИнформация.Колонки.Добавить("Тип");
ИсходящииеДанные.КонтактнаяИнформация.Колонки.Добавить("Вид");
ИсходящииеДанные.КонтактнаяИнформация.Колонки.Добавить("Представление");
ИсходящииеДанные.КонтактнаяИнформация.Колонки.Добавить("Регион");
ИсходящииеДанные.КонтактнаяИнформация.Колонки.Добавить("Город");
ИсходящииеДанные.КонтактнаяИнформация.Колонки.Добавить("НомерТелефона");
ИсходящииеДанные.КонтактнаяИнформация.Колонки.Добавить("ЗначенияПолей");

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


В "Корреспонденты0001", для каждого свойства пишу
Значение = Источник.Наименование;

Значение = Источник.КонтактнаяИнформация;



Но данные не выгружаются((
Хэлп

cska-fanat-kz

Делаете ПКО """Ниоткуда" в Справочник"".
Создаете по нему ПВД.
Меняете стандартную выборку на произвольный запрос.
Формируете коллекцию ВыборкаДанных с помощью запроса к Регистру.
Все.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Magenta

Цитата: cska-fanat-kz от 26 авг 2014, 11:47
Делаете ПКО """Ниоткуда" в Справочник"".
Создаете по нему ПВД.
Меняете стандартную выборку на произвольный запрос.
Формируете коллекцию ВыборкаДанных с помощью запроса к Регистру.
Все.

Спасибо) На такой способ обратила внимание уже поздно.
Решила так - в ПКО в структуру ИсходящиеДанные запихнула нужные данные из регистра.
в ПКГС Табличной части - все загрузила в КоллекциюОбъектов.
в ПКС таличной части каждому свойству присвоила ОбъектКоллекции.НужноеСвойство.

cska-fanat-kz

Цитата: Magenta от 26 авг 2014, 11:55
в ПКГС Табличной части - все загрузила в КоллекциюОбъектов.
в ПКС таличной части каждому свойству присвоила ОбъектКоллекции.НужноеСвойство.

Вот вы загрузили в ПКГС нечто в КоллекциюОбъектов.
Если наименования полей Коллекции совпадают с именем приемника в каждом ПКС табличной части, то присвоение можно и не делать - само присвоится.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск