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

1. luter-89 30.04.14 11:36 Сейчас в теме
Добрый день.
Вопрос в следующем.

В ПКО создал правило без источника, приемник - Документ.
В ПКС создал свойства с галочкой - получать из входящих данных.

В Правилах выгрузки для этого ПКО указал произвольный алгоритм. Написал код в обработчике ПередОбработкой.

В плане обмена в состав входят все необходимые объекты.

При попытке выгрузить происходит ошибка:

{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(14628)}: Ошибка при вызове метода контекста (НайтиПоТипу)
СтрокаТаблицы.ОбъектВыборкиМетаданные = Метаданные.НайтиПоТипу(СтрокаТаблицы.ОбъектВыборки);
по причине:
Несоответствие типов (параметр номер '1')

Она возникает потому что алгоритм следующий: Выбирается каждый источник из каждого правила, далее происходит поиск источника объекта в метаданных.

Но в моем правиле нет источника - соответственно, ошибка будет всегда возникать.

Как правильно сделать правило без источника, чтобы обойти эту ошибку?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ZergKRSK 130 30.04.14 11:41 Сейчас в теме
(1) luter-89, можешь скриншотиков напилить?
3. emal1989 30.04.14 11:59 Сейчас в теме
(1) luter-89, Если я все правильно понял, галочек "получать из входящих данных" там быть не должно.
11. RocKeR_13 1366 05.05.14 11:27 Сейчас в теме
(1) luter-89, в КД в правилах выгрузки укажите (наравне со способом выборки - произвольный алгоритм) объект выборки: по существу у вас объект выборки - РегистрНакопления.ЗапасыНаСкладах (если в метаданных нет регистров накопления - выгрузите структуру метаданных вместе с регистрами накоплений). Заодно надо глянуть в демке, заполнен ли объект выборки
4. luter-89 30.04.14 13:38 Сейчас в теме
В демо примере конвертации данных по переносу остатков галочки стоят
6. emal1989 30.04.14 13:46 Сейчас в теме
(4) luter-89, Смотря что в коде обработчика перед выгрузкой данных, если данные передаются через переменную "ВыборкаДанных", то насколько я помню галочки быть не должно, если через ВыгрузитьПоПравилу, то вроде как должна быть. Код бы скинули сюда что ли обработчика.
7. luter-89 30.04.14 13:55 Сейчас в теме
Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ
|ЗапасыНаСкладахОстатки.Номенклатура,
|ЗапасыНаСкладахОстатки.КоличествоОстаток КАК Количество
|ИЗ
|РегистрНакопления.ЗапасыНаСкладах.Остатки КАК ЗапасыНаСкладахОстатки";

Выборка = Запрос.Выполнить().Выбрать();

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

ДатаВыгрузки = ТекущаяДата();

Пока Выборка.Следующий() Цикл

СтрокаТоваров = ТоварыНаСкладах.Добавить();
СтрокаТоваров.Номенклатура = Выборка.Номенклатура;
СтрокаТоваров.Количество = Выборка.Количество;

КонецЦикла;

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

СтрокаТаблицы = ТаблицаИменРегистров.Добавить();
СтрокаТаблицы.Имя = "ОстаткиТоваровНаСкладах";
СтрокаТаблицы.Представление = "Остатки товаров на складах";


ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Вставить("Номер", "001");
ИсходящиеДанные.Вставить("Дата", ДатаВыгрузки);
ИсходящиеДанные.Вставить("Комментарий", "Перенос остатков товаров на " + Строка(ДатаВыгрузки));

ИсходящиеДанные.Вставить("ТаблицаРегистровНакопления", ТаблицаИменРегистров);
ИсходящиеДанные.Вставить("ОстаткиТоваровНаСкладах", ТоварыНаСкладах);


ВыгрузитьПоПравилу(, , ИсходящиеДанные, , "ПереносОстатковТоваров");
8. luter-89 30.04.14 13:55 Сейчас в теме
ВыборкаДанных работает для платформы 8.2?
9. luter-89 30.04.14 16:31 Сейчас в теме
В xml для правила не создается тег <ОбъектВыборки>
12. luter-89 05.05.14 17:50 Сейчас в теме
Спасибо за помощь, я думал регистры не выгружаются)
13. RocKeR_13 1366 07.05.14 08:55 Сейчас в теме
(12) luter-89, всегда пожалуйста)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот