Имя: Пароль:
1C
1С v8
Планы обмена, КД, выгрузка наборов записей РС.
0 0xFFFFFF
 
20.10.13
21:30
Настроил правила обмена (выгрузка в РС), создал план обмена.
Использую БСП.
При загрузке данных происходят ошибки - ругается на
Объект.ДополнительныеСвойства - которые есть у набора записей, но нет у записи регистра сведений.
Если повсюду эти Допсвойства закомментить, то все чудно грузится. Но это не вариант...

В обработке Универсальный обмен данными есть галка ЗаписыватьРегистрыНаборамиЗаписей. Так вот нет ли чего то подобного в КД? Как заставить записи РС загружаться наборами, чтобы модуль БСП на них не ругался?
1 Ageres
 
21.10.13
06:44
В БСП регистр сведений выгружается только наборами, нужно использовать процедуру ВыгрузитьРегистр().
2 0xFFFFFF
 
21.10.13
10:39
Это где настраивается? В плане обмена или в КД?
3 0xFFFFFF
 
21.10.13
10:48
Примером можно кинуть?
4 0xFFFFFF
 
21.10.13
11:56
Апну
5 0xFFFFFF
 
21.10.13
14:30
Ну что, нет спецов по планам обмена на БСП?
6 Ageres
 
21.10.13
15:39
Например:

        Набор = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
        Набор.Отбор.Объект.Установить(Источник.Ссылка);
        Набор.Отбор.Тип.Установить(Выборка.Тип);
        Набор.Отбор.Вид.Установить(Выборка.Вид);
        Стр = Набор.Добавить();
        ЗаполнитьЗначенияСвойств(Стр, Выборка,,"Объект");
        Стр.Объект = Источник;
ВыгрузитьРегистр(Набор,,,Ложь, "КонтактнаяИнформация");
7 0xFFFFFF
 
21.10.13
20:12
(6) не канает. У меня правило, в котором документ конвертится в запись регистра сведений.
Посмотрел функцию ВыгрузитьРегистр - в нее можно передать не только записи РС, но еще и структуру (Строки, Отбор). Передаю структуру, тоже не получается. Валится на
Правило.ПриоритетОбъектовОбмена;
Хотя правило передаю, но у него блин такого свойства нетути.
8 milan
 
21.10.13
20:32
БСП свежая ?
9 0xFFFFFF
 
21.10.13
21:21
не совсем
10 Ageres
 
22.10.13
03:41
Ну х.з. Все работает. Ты само правило передаешь или ИмяПКО?
11 0xFFFFFF
 
22.10.13
10:58
А откуда вообще берется ВыгрузитьРегистр?...
Я только нашел такой вариант
Обр = Обработки.КонвертацияОбъектовИнформационныхБаз.Создать();
Обр.ВыгрузитьРегистр(НаборЗаписей,,,Ложь,"МоеПравило");

Но проблема в том, что обработку еще видимо проинициализировать надо...
Например есть там метод НайтиПравило - используется переменная Менеджеры. А она получается Неопределено.
Короче чет я не так делаю видимо.
12 Ageres
 
22.10.13
11:05
Что-то я не понял, ты как БСП используешь? Данная обработка автоматически вызывается в рамках выгрузки-загрузки через подсистему обмена БСП. Правила обмена для БСП в общем случае будут несовместимы с правилами обмена через универсальный обмен данными.
13 0xFFFFFF
 
22.10.13
11:19
ок. Допустим имеем в приемнике простейший регистр с одним измерением ЗаказКлиента

В пко (Документ - Запись РС) после выгрузки пишем

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

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

НаборЗаписей = Новый Структура("Отбор,Строки", тзОтбор, тзСтроки);
ВыгрузитьРегистр(НаборЗаписей,ПКО,,Ложь);

Подгружаю в план обмена, жму обмен, выдает
Не найдено правило конвертации объектов
    ТипОбъекта             =  Строка таблицы значений
    Объект                 =  СтрокаТаблицыЗначений
    КСообщенияОбОшибках    =  45
14 0xFFFFFF
 
22.10.13
11:20
А ВыгрузитьРегистр вроде как позволяет структуру с двумя ТЗ передавать ("отбор", "строки")
15 Ageres
 
23.10.13
17:15
Тебе нужно создать ПКО регистра без источника. А ВыгрузитьРегистр вызывать при выгрузке данных. Можно посмотреть пример выгрузки контактной информации из УТ11 в БП20.
Программист всегда исправляет последнюю ошибку.