Пытаюсь переделать доставшиеся мне правила и столкнулся со странной ситуацией
Если выгружать с отбором только по сотруднику, то XML формируется вместе с физлицом, сотрудником и еще некоторыми регистрами сведений. В файле выгрузки данные есть и по физ лицу и по сотруднику.
<Объект Нпп="1" Тип="СправочникСсылка.Сотрудники" ИмяПравила="Сотрудники">
<Ссылка Нпп="1">
<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка">
<Значение>f4c39537-6834-11e5-b485-80ff39aa4e54</Значение>
</Свойство>
<Свойство Имя="Код" Тип="Строка">
<Значение>0000003322</Значение>
</Свойство>
<Свойство Имя="Наименование" Тип="Строка">
<Значение>Абдурахман Иб Хатаб (осн.)</Значение>
</Свойство>
<Свойство Имя="ГоловнаяОрганизация" Тип="СправочникСсылка.Организации">
<Ссылка Нпп="2" НеСоздаватьЕслиНеНайден="true">
<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка">
<Значение>e0e36007-ce67-11e2-aad8-9b079b25c452</Значение>
</Свойство>
<Свойство Имя="Код" Тип="Строка">
<Значение>000000012</Значение>
</Свойство>
</Ссылка>
</Свойство>
<Свойство Имя="ФизическоеЛицо" Тип="СправочникСсылка.ФизическиеЛица">
<Ссылка Нпп="5">
<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка">
<Значение>f4c39536-6834-11e5-b485-80ff39aa4e54</Значение>
</Свойство>
<Свойство Имя="ДатаРождения" Тип="Дата">
<Значение>2000-01-01T00:00:00</Значение>
</Свойство>
<Свойство Имя="СтраховойНомерПФР" Тип="Строка">
<Пусто/>
</Свойство>
<Свойство Имя="Код" Тип="Строка">
<Значение>000009866 </Значение>
</Свойство>
<Свойство Имя="ФИО" Тип="Строка">
<Значение>Абдурахман Иб Хатаб</Значение>
</Свойство>
</Ссылка>
</Свойство>
</Ссылка>
<Свойство Имя="ПометкаУдаления" Тип="Булево">
<Значение>false</Значение>
</Свойство>
<Свойство Имя="ВАрхиве" Тип="Булево">
<Значение>false</Значение>
</Свойство>
</Объект>
Показать
Вроде все норм...
Но при попытке загрузки с включенной галкой "Записывать в информационную базу только измененные объекты" (а она включена зараза по умолчанию) сотрудник не создается
Физлицо создается...
Запись регистр сведений создается (регистр содержит физлицо и сотрудника и доп подразделение). Физ лицо в записи указано, а в качестве сотрудника стоит ошибка с гуидом
Если снимаю эту галку и гружу по новой тот же файл, то сотрудник заводится и все записи подправляются....
Сотрудник ПередВыгрузкой:
Если Источник.Организация = Справочники.Организации.НайтиПоКоду("000000001")
ИЛИ Источник.Организация = Справочники.Организации.НайтиПоКоду("000000008")
ИЛИ Источник.Организация = Справочники.Организации.НайтиПоКоду("000000014")
ИЛИ Источник.ПометкаУдаления = Истина Тогда
Отказ = Истина;
КонецЕсли;
Сотрудник ПослеВыгрузки:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
| РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо КАК ФизическоеЛицо,
| РаботникиОрганизацийСрезПоследних.Организация КАК ТекущаяОрганизация,
| РаботникиОрганизацийСрезПоследних.Организация КАК ГоловнаяОрганизация,
| РаботникиОрганизацийСрезПоследних.Должность КАК ТекущаяДолжность,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации КАК ТекущееПодразделение,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаПриемаНаРаботу КАК ДатаПриема,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости КАК ТекущийВидЗанятости
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ТекДата, ) КАК РаботникиОрганизацийСрезПоследних
|ГДЕ
| РаботникиОрганизацийСрезПоследних.Сотрудник = &Сотрудник";
Запрос.УстановитьПараметр("Сотрудник", Источник);
Запрос.УстановитьПараметр("ТекДата", ТекущаяДата());
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ВыгрузитьПоПравилу(,,Выборка, , "ТекущиеКадровыеДанныеСотрудников");
КонецЦикла;
Показать
Куда можно копнуть? Может с приоритетами косяк какой-то?
«Записывать в информационную базу только измененные объекты» – если флаг установлен, то производится запись только измененных объектов в информационную базу. Если объект изменен не был, то при загрузке из файла обмена он не будет перезаписан.