Имя: Пароль:
1C
1С v8
Конвертация данных. .Перенос ТЧ в регистр сведений
0 Wefast
 
22.10.15
15:11
Собственно есть БСО 3.0 и УСО
в БСО контактная информация контрагентов в виде табличной части.
А в УСО в виде регистра сведений

В идеале хотелось бы узнать конкретно что куда написать и добавить.
Но сойдет и пример правил типовых. Потому пока нашел только с обратным переносом
1 MadJhey
 
22.10.15
15:30
Какая разница откуда выбирать данные. Запросом получил поля из табличной части. Результат передал в выгрузитьПоПравилу.
2 MadJhey
 
22.10.15
15:32
Запрос = Новый Запрос("
|ВЫБРАТЬ
| КонтактнаяИнформация.Тип,
| КонтактнаяИнформация.Вид,
| КонтактнаяИнформация.Представление,
| КонтактнаяИнформация.Поле1,
| КонтактнаяИнформация.Поле2,
| КонтактнаяИнформация.Поле3,
| КонтактнаяИнформация.Комментарий
|ИЗ
| Справочник.Контрагенты.КонтактнаяИнформация КАК КонтактнаяИнформация
|ГДЕ
| КонтактнаяИнформация.Ссылка= &Ссылка");


Запрос.УстановитьПараметр("Объект", Источник);
Выборка = Запрос.Выполнить().Выбрать();
Сообщить(Выборка.Количество());
Пока Выборка.Следующий() Цикл
ВыгрузитьПоПравилу(Выборка, , , , "КонтактнаяИнформация");
КонецЦикла;
3 MadJhey
 
22.10.15
15:33
В ПКО регистра сведений должны совпадать поля выборки и РС.
4 Wefast
 
22.10.15
16:34
(3) а куда этот запрос пихать? В событие после выгрузки?
5 Wefast
 
22.10.15
17:43
Ладко у ПКО при выгрузке написал вот что:
Если Источник.КонтактнаяИнформация.Количество() > 0 Тогда
    ИсходящиеДанные = Новый Структура("Период, Объект, Тип, Вид, Поле1,Поле2,Поле3,Поле4,Поле5,Поле6,Поле7,Поле8,Поле9,Поле10, Представление,Комментарий,ЗначениеПоУмолчанию,ТипДома,ТипКорпуса,ТипКвартиры");
    Для Каждого ТекСтрока Из Источник.КонтактнаяИнформация Цикл
        ИсходящиеДанные.Объект = Источник;
        ИсходящиеДанные.Тип = ТекСтрока.Тип;
        ИсходящиеДанные.Вид = ТекСтрока.Вид;
        ИсходящиеДанные.Представление = ТекСтрока.Представление;
        ИсходящиеДанные.ЗначениеПоУмолчанию = ЛОЖЬ;
        Если ЗначениеЗаполнено(ТекСтрока.НомерТелефона) Тогда
            ИсходящиеДанные.Поле3 = ТекСтрока.НомерТелефона;
        КонецЕсли;        
        ВыгрузитьПоПравилу(,,ИсходящиеДанные,,"КИ_регистр");
    КонецЦикла;
КонецЕсли;

Создал ПКО где источника нет, а приемник регистр
В ПКС добавил все эти поля
И вроде работает.

Теперь я переношу из другой баз в этой же регистр. И переношу уже из такого же регистра. Они идентичны.
И вот я не пойму мне нужно просто сделать ПКО для регистра указав и источник и приемник?

Поиск при этом же надо по всем полям наверное вести и проблема в том, что измерение Объект имеет составной тип данных. И в ПКС правило конвертации не проставляется, ведь нужно для каждого типа наверное свое правило.

Как быть?

Может мне в какое то событие добавить проверку на тип данных и выполнять функцию ВыгрузитьПоПравилу?

Или еще что то сделать?
6 MadJhey
 
22.10.15
17:56
(5) можно и так, мой вариант будет по быстрее.

"Теперь я переношу из другой баз в этой же регистр. И переношу уже из такого же регистра. Они идентичны.  "

не понятно.
7 MadJhey
 
22.10.15
17:56
у ПКО рс нет полей поиска
8 MadJhey
 
22.10.15
18:01
змерение Объект имеет составной тип данных. И в ПКС правило конвертации не проставляется, ведь нужно для каждого типа наверное свое правило.

Подберет сама, при условии, что эти правила определены.
Либо самостоятельно, в перед выгрузкой ПКС переопределить ИмяПКО. если источник вид = номенклатура то ИмяПКО = ...
9 MadJhey
 
22.10.15
18:06
(4) пихать можно куда угодно. где есть контрагент. Но лучше сделать отдельную выборку данных.