![]() |
![]() |
![]() |
|
V8: Конвертация данных - правила выгрузки данных - произвольный алгоритм | ☑ | ||
---|---|---|---|---|
0
JuliaSoft
08.04.14
✎
13:25
|
Возникла необходимость выгрузить справочник Сотрудники организации (по выбранной организации на выбранную дату) из конфигурации УПП (старой) в другую конфигурацию УПП (чистую обновленную).
Загрузила структуры обоих конфигураций, создала новую конвертацию и добавила новое правило конвертации объектов для объекта Сотрудники организации. Нужна помощь/консультация в правильном написании произвольного алгоритма в правилах выгрузки данных. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СотрудникиОрганизаций.Ссылка, | СотрудникиОрганизаций.Представление, | СотрудникиОрганизаций.ВерсияДанных, | СотрудникиОрганизаций.ПометкаУдаления, | СотрудникиОрганизаций.Предопределенный, | СотрудникиОрганизаций.Родитель, | СотрудникиОрганизаций.ЭтоГруппа, | СотрудникиОрганизаций.Код, | СотрудникиОрганизаций.Наименование, | СотрудникиОрганизаций.Физлицо, | СотрудникиОрганизаций.Актуальность, | СотрудникиОрганизаций.Организация, | СотрудникиОрганизаций.ОбособленноеПодразделение, | СотрудникиОрганизаций.ВидДоговора, | СотрудникиОрганизаций.ВидЗанятости, | СотрудникиОрганизаций.НомерДоговора, | СотрудникиОрганизаций.ДатаДоговора, | СотрудникиОрганизаций.ГрафикРаботы, | СотрудникиОрганизаций.ПодразделениеОрганизации, | СотрудникиОрганизаций.Должность, | СотрудникиОрганизаций.ЗанимаемыхСтавок, | СотрудникиОрганизаций.ДатаНачала, | СотрудникиОрганизаций.ДатаОкончания, | СотрудникиОрганизаций.ИспытательныйСрок, | СотрудникиОрганизаций.ВидРасчета, | СотрудникиОрганизаций.ТарифнаяСтавка, | СотрудникиОрганизаций.ВалютаТарифнойСтавки, | СотрудникиОрганизаций.ПостфиксНаименования, | СотрудникиОрганизаций.ТарифныйРазряд, | СотрудникиОрганизаций.ОсновноеНазначение, | СотрудникиОрганизаций.ГруппаВзносов, | СотрудникиОрганизаций.ТекущееПодразделениеОрганизации, | СотрудникиОрганизаций.ТекущаяДолжностьОрганизации, | СотрудникиОрганизаций.ДатаПриемаНаРаботу, | СотрудникиОрганизаций.ДатаУвольнения, | СотрудникиОрганизаций.ТекущееПодразделениеКомпании, | СотрудникиОрганизаций.ТекущаяДолжностьКомпании, | СотрудникиОрганизаций.ДатаПриемаНаРаботуВКомпанию, | СотрудникиОрганизаций.ДатаУвольненияИзКомпании, | СотрудникиОрганизаций.Представление КАК Представление1 |ИЗ | Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций |ГДЕ | СотрудникиОрганизаций.Ссылка В | (ВЫБРАТЬ | РаботникиОрганизацийСрезПоследних.Сотрудник | ИЗ | РегистрСведений.РаботникиОрганизаций.СрезПоследних(&КонДата, Организация = &Организация) КАК РаботникиОрганизацийСрезПоследних | ГДЕ | РаботникиОрганизацийСрезПоследних.ЗанимаемыхСтавок > 0)"; Запрос.УстановитьПараметр("КонДата",КонДата)); Запрос.УстановитьПараметр("Организация",Организация); ТЗ = Запрос.Выполнить().Выбрать(); ВходящиеДанные = Новый Структура(Актуальность, ВалютаТарифнойСтавки, ВидДоговора, ВидЗанятости, ВидРасчета, ГрафикРаботы, ГруппаВзносов, ДатаДоговора, ДатаНачала, ДатаОкончания, ДатаПриемаНаРаботу, ДатаПриемаНаРаботуВКомпанию, ДатаУвольнения, ДатаУвольненияИзКомпании, Должность, ЗанимаемыхСтавок, ИспытательныйСрок, Код, Наименование, НомерДоговора, ОбособленноеПодразделение, Организация, ОсновноеНазначение, ПодразделениеОрганизации, ПометкаУдаления, ПостфиксНаименования , Родитель, ТарифнаяСтавка, ТарифныйРазряд, ТекущаяДолжностьКомпании, ТекущаяДолжностьОрганизации, ТекущееПодразделениеКомпании, ТекущееПодразделениеОрганизации, Физлицо, ЭтоГруппа); Пока ТЗ.Следующий() Цикл ВходящиеДанные.Актуальность = ТЗ.Актуальность; ВходящиеДанные.ВалютаТарифнойСтавки = ТЗ.ВалютаТарифнойСтавки; ВходящиеДанные.ВидДоговора = ТЗ.ВидДоговора; ВходящиеДанные.ВидЗанятости = ТЗ.ВидЗанятости; ВходящиеДанные.ВидРасчета = ТЗ.ВидРасчета; ВходящиеДанные.ГрафикРаботы = ТЗ.ГрафикРаботы; ВходящиеДанные.ГруппаВзносов = ТЗ.ГруппаВзносов; ВходящиеДанные.ДатаДоговора = ТЗ.ДатаДоговора; ВходящиеДанные.ДатаНачала = ТЗ.ДатаНачала; ВходящиеДанные.ДатаОкончания = ТЗ.ДатаОкончания; ВходящиеДанные.ДатаПриемаНаРаботу = ТЗ.ДатаПриемаНаРаботу; ВходящиеДанные.ДатаПриемаНаРаботуВКомпанию = ТЗ.ДатаПриемаНаРаботуВКомпанию; ВходящиеДанные.ДатаУвольнения = ТЗ.ДатаУвольнения; ВходящиеДанные.ДатаУвольненияИзКомпании = ТЗ.ДатаУвольненияИзКомпании; ВходящиеДанные.Должность = ТЗ.Должность; ВходящиеДанные.ЗанимаемыхСтавок = ТЗ.ЗанимаемыхСтавок; ВходящиеДанные.ИспытательныйСрок = ТЗ.ИспытательныйСрок; ВходящиеДанные.Код = ТЗ.Код; ВходящиеДанные.Наименование = ТЗ.Наименование; ВходящиеДанные.НомерДоговора = ТЗ.НомерДоговора; ВходящиеДанные.ОбособленноеПодразделение = ТЗ.ОбособленноеПодразделение; ВходящиеДанные.Организация = ТЗ.Организация; ВходящиеДанные.ОсновноеНазначение = ТЗ.ОсновноеНазначение; ВходящиеДанные.ПодразделениеОрганизации = ТЗ.ПодразделениеОрганизации; ВходящиеДанные.ПометкаУдаления = ТЗ.ПометкаУдаления; ВходящиеДанные.ПостфиксНаименования = ТЗ.ПостфиксНаименования; ВходящиеДанные.Родитель = ТЗ.Родитель; ВходящиеДанные.ТарифнаяСтавка = ТЗ.ТарифнаяСтавка; ВходящиеДанные.ТарифныйРазряд = ТЗ.ТарифныйРазряд; ВходящиеДанные.ТекущаяДолжностьКомпании = ТЗ.ТекущаяДолжностьКомпании; ВходящиеДанные.ТекущаяДолжностьОрганизации = ТЗ.ТекущаяДолжностьОрганизации; ВходящиеДанные.ТекущееПодразделениеКомпании = ТЗ.ТекущееПодразделениеКомпании; ВходящиеДанные.ТекущееПодразделениеОрганизации = ТЗ.ТекущееПодразделениеОрганизации; ВходящиеДанные.Физлицо = ТЗ.Физлицо; ВходящиеДанные.ЭтоГруппа = ТЗ.ЭтоГруппа; ВыгрузитьПоПравилу(,,ВходящиеДанные,,"СотрудникиОрганизаций"); КонецЦикла; P.S. при попытке выгрузить данные с помощью унив выгр в формате хмл выдает сообщение об ошибке: Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1593)}: Ошибка получения значения свойства объекта (по имени свойства источника) ПКО = СотрудникиОрганизаций (Справочник: Сотрудники организаций) ПКС = 18 (Код --> Код) Объект = 01.01.2014 0:00:00 (Дата) СвойствоПриемника = Код (Строка) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8202) КодСообщения = 13 |
|||
1
PLUT
гуру
08.04.14
✎
13:37
|
(0) попробуй замени структуру на ТЗ
ВыборкаДанных = Новый ТаблицаЗначений; ВыборкаДанных.Колонки.Добавить("Код"); ... |
|||
2
JuliaSoft
08.04.14
✎
13:38
|
сейчас попробую
|
|||
3
JuliaSoft
08.04.14
✎
13:45
|
не помагает
|
|||
4
JuliaSoft
08.04.14
✎
13:47
|
Ошибка получения значения свойства объекта (по имени свойства источника)
ПКО = СотрудникиОрганизаций (Справочник: Сотрудники организаций) ПКС = 18 (Код --> Код) Объект = 01.01.2014 0:00:00 (Дата) СвойствоПриемника = Код (Строка) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8202) КодСообщения = 13 Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1593)}: Ошибка получения значения свойства объекта (по имени свойства источника) ПКО = СотрудникиОрганизаций (Справочник: Сотрудники организаций) ПКС = 18 (Код --> Код) Объект = 01.01.2014 0:00:00 (Дата) СвойствоПриемника = Код (Строка) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8202) КодСообщения = 13 |
|||
5
PLUT
гуру
08.04.14
✎
14:07
|
(4) а просто ссылку передать нельзя на сотрудника в ПКО?
ВыгрузитьПоПравилу(СсылкоНаСотрудника, , , , "СотрудникиОрганизаций"); |
|||
6
JuliaSoft
08.04.14
✎
14:15
|
(5) та же ошибка
|
|||
7
PLUT
гуру
08.04.14
✎
14:29
|
а блин, в ПВД для СотрудникиОрганизаций по произвольному алгоритму сделай ТЗ ВыборкаДанных, заполни ее результатом запроса
если у ПВД определено ПКО, то ВыгрузитьПоПравилу() не нужно писать в ПКО в обормотчике ПередВыгрузкой еще КлючВыгружаемыхДанных определить из справки: КлючВыгружаемыхДанных - Произвольный. По умолчанию - это ссылка на объект Источник, а если Источник неопределен, то используется ИмяПКО (подразумевается, что правило описывает в таком случае один объект-приемник). Данный параметр необходимо использовать если одному объекту источнику могут соответствовать несколько объектов приемника, например, в зависимости от входящих данных, или в случае, когда объект приемник полностью заполняется из входящих данных (например по результатам запроса), а объект источник, как таковой отсутствует. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |