|
Конвертация, как сделать выгрузку по произвольному алгоритму | ☑ | ||
---|---|---|---|---|
0
mxs089
24.01.15
✎
16:56
|
хочу выгружать остатки номенклатуры, создаю ПВД, способ выборки "Произвольный алгоритм", объект выборки - пусто, правила загружаю в настройку обмена данными, при обмене вылетает ошибка
ОписаниеОшибки = Ошибка при вызове метода контекста (НайтиПоТипу): Несоответствие типов (параметр номер '1') Вопрос, как сделать выгрузку данных по произвольному алгоритму? |
|||
1
ShoGUN
24.01.15
✎
17:00
|
(0) В Правиле выгрузки данных в обработчике "Перед обработкой" вставить свой алгоритм и записать результат его работы в параметр "ВыборкаДанных":
ВыборкаДанных - Запрос, Результат запроса, Выборка из результата запроса или произвольная коллекция выгружаемых объектов. Используется, когда способ выгрузки данных - Произвольный алгоритм. Если определить данную переменную, то обход коллекции и выгрузка объектов будет осуществляться автоматически |
|||
2
mxs089
24.01.15
✎
17:03
|
ошибка происходит перед выполнением этого события
|
|||
3
mxs089
24.01.15
✎
17:03
|
УТ 10.3.7.8
|
|||
4
ShoGUN
24.01.15
✎
17:07
|
(2) Поставь объект выборки. И исходя из (3) - чем выгружаешь - встроенной обработкой, или внешней из комплекта КД?
|
|||
5
mxs089
24.01.15
✎
17:25
|
(4) ставил, в качестве объекта выбрал справочник номенклатура, ошибки нет, но выгружено 0 объектов, план обмена без регистрации номенклатур. выгружаю встроенной обработкой, настройка обмена в справочнике настройки обмена данными
|
|||
6
ShoGUN
24.01.15
✎
17:28
|
(5) Не будет так работать, там же планы обмена используются. Либо лезть внутрь обработки выгрузки править место из (0), либо править выборку, передаваемую для выгрузки, либо регистрировать нужную номенклатуру в плане обмена(а алгоритм сделать в правилах регистрации).
|
|||
7
Rie
24.01.15
✎
17:30
|
(5) А если просто УниверсальнымОбменомXML?
Ну и правило выгрузки - в общих чертах показал бы. А также - какое ПКО назначено? |
|||
8
mxs089
24.01.15
✎
17:36
|
источник УТ , приемник УТ (добавлен регистр сведений, измерения 1. номенклатура, ресурсы 2. остаток).
есть ПКО НовыйРегистрСведений (источник - пусто), в ПВД запросом получаю остатки и в цикле обхода результат выгружаю по правилу необходимо автоматизировать обмен, поэтому выбрал встроеную обработку |
|||
9
ShoGUN
24.01.15
✎
17:41
|
(8) А чего бы тогда источником в ПВД регистр сведений не выбрать?
|
|||
10
mxs089
24.01.15
✎
17:44
|
(9) его нет в конфигурации источника
|
|||
11
mxs089
24.01.15
✎
17:47
|
вроде как получилось, ПВД оставил, событие ПередОбработкой = Отказ=Истина;
в глобальном событии "ПередПолучениемИзмененных" Для каждого СтрокаДерева из ВременныйМассивПравилВыгрузкиДанных Цикл Если СтрокаДерева.Имя <> "Остатки" Тогда //имя ПВД Продолжить; КонецЕсли; Запрос = Новый Запрос( "ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, | ВЫБОР | КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток < 0 | ТОГДА 0 | ИНАЧЕ ТоварыНаСкладахОстатки.КоличествоОстаток | КОНЕЦ КАК ОстатокОбщий |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(, " + ?(ЗначениеЗаполнено(Параметры.Склад), "Склад В ИЕРАРХИИ (&Склад)", "") + ") КАК ТоварыНаСкладахОстатки"); Запрос.УстановитьПараметр("Склад", Параметры.Склад); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ВыгрузитьПоПравилу(Выборка,,,, "_НОВЫЙ_РС_",,,,,,,, Ложь); //последний параметр (ЭтоВыгружаетсяОбъект = Неопределено) в Ложь, иначе осуществляется поиск свойства Ссылка КонецЦикла; Прервать; КонецЦикла; |
|||
12
Rie
24.01.15
✎
17:49
|
(11) А зачем ВыгрузитьПоПравилу? Почему бы самому правилу выгрузки не назначить правило конвертации? Заодно можно было бы и от цикла избавиться.
|
|||
13
mxs089
24.01.15
✎
17:52
|
т.к. у меня нет объекта выборки для ПВД
|
|||
14
Rie
24.01.15
✎
17:57
|
Я имел в виду
ВыборкаДанных = Запрос.Выполнить().Выгрузить(); Цикл - убрать, в ПВД указать правило конвертации _НОВЫЙ_РС_ |
|||
15
mxs089
24.01.15
✎
18:48
|
(14) а нужно указывать объект выборки? если да, то что мне выбрать? такого регистра нет, если же нет, то происходит ошибка!
|
|||
16
Rie
24.01.15
✎
20:47
|
(15) Не нужно. Произвольный алгоритм - он на то и произвольный, что должен просто сформировать ВыборкаДанных, любым способом. А эта ВыборкаДанных "провернётся" через указанное правило конвертации, колонки (поля) выборки будут использоваться в соответствующих ПКС.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |