БСП. При переносе по ссылке, элементы не существующие на стороне приемнике не создаются.

1. lopatin 689 29.09.15 16:19 Сейчас в теме
Здравствуйте!

Есть ПВД:

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
				|	ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник,
				|	ПриемНаРаботуВОрганизациюРаботникиОрганизации.ПодразделениеОрганизации КАК Подразделение,
				|	ПриемНаРаботуВОрганизациюРаботникиОрганизации.Должность,
				|	ПриемНаРаботуВОрганизациюРаботникиОрганизации.ЗанимаемыхСтавок КАК Ставка,
				|	ПриемНаРаботуВОрганизациюРаботникиОрганизации.ДатаПриема,
				|	ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник.ВидЗанятости КАК ВидЗанятости,
				|	ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка.Дата,
				|	ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка.Номер,
				|	ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка.Проведен,
				|	ВЫБОР
				|		КОГДА ПриемНаРаботуВОрганизациюОсновныеНачисления.ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоЧасам)
				|			ТОГДА ИСТИНА
				|		ИНАЧЕ ЛОЖЬ
				|	КОНЕЦ КАК СдельнаяОплатаТруда,
				|	ПриемНаРаботуВОрганизациюОсновныеНачисления.ВидРасчета КАК ВидРасчета
				|ИЗ
				|	Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизациюРаботникиОрганизации
				|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботуВОрганизацию.ОсновныеНачисления КАК ПриемНаРаботуВОрганизациюОсновныеНачисления
				|		ПО ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка = ПриемНаРаботуВОрганизациюОсновныеНачисления.Ссылка
				|			И ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник = ПриемНаРаботуВОрганизациюОсновныеНачисления.Сотрудник
				|ГДЕ
				|	ВЫБОР
				|		КОГДА &ИспользоватьОтборПоПодразделениям ТОГДА
				|			ПриемНаРаботуВОрганизациюРаботникиОрганизации.ПодразделениеОрганизации В ИЕРАРХИИ (&Подразделения)
				|		ИНАЧЕ 
				|			ИСТИНА
				|	КОНЕЦ
				//Отбор по видам расчета для выгрузки через БСП
				|	И ВЫБОР
				|		КОГДА &ИспользоватьОтборПоВидамРасчета ТОГДА
				|			ПриемНаРаботуВОрганизациюОсновныеНачисления.ВидРасчета В ИЕРАРХИИ (&ВидРасчета)
				|		ИНАЧЕ 
				|			ИСТИНА
				|	КОНЕЦ
				//Отбор по видам расчета для выгрузки через УОД
				//|	И ПриемНаРаботуВОрганизациюОсновныеНачисления.ВидРасчета В ИЕРАРХИИ (&ВидРасчета)
				//|	И ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка.Дата > &Дата
				|	И ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка = &Ссылка";

Выполнить(Алгоритмы.ЗаполнитьПараметрыОтбораПоВидамРасчета);

//Отбор по видам расчета для выгрузки через УОД
//Выполнить(Алгоритмы.ПолучитьМассивЗаданныхВидовРасчетов);

Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);

//ДатаОтбораДокументов = Дата("00010101");

//Выполнить(Алгоритмы.ПолучитьДатуСрезаПоследних);

//Запрос.УстановитьПараметр("Дата", ДатаОтбораДокументов);

Выполнить(Алгоритмы.ЗаполнитьПараметрыОтбораПоПодразделениям);

ВыборкаДанных = Неопределено;
ПустаяТабличнаяЧасть = Неопределено;

Выполнить(Алгоритмы.ПолучитьСтруктуруВыгрузкиКадровыхДокументов);

РезультатЗапроса = Запрос.Выполнить().Выгрузить();

Сотрудники = ПустаяТабличнаяЧасть.Скопировать();

СтрокаДокумента = Неопределено;
Для Каждого СтрокаРезультата Из РезультатЗапроса Цикл 
	//Сообщить("1");
	ДанныеИзВнешнихСистем = "Выгружено из ЗиКБУ, документ ""Прием на работу в организацию"" №" + СтрокаРезультата.Номер + " от " + Формат(СтрокаРезультата.Дата, "ДФ=dd.MM.yyyy") + 
	", " + СтрокаРезультата.Подразделение.Наименование;
	
	СтрокаДокумента = ВыборкаДанных.Найти(ДанныеИзВнешнихСистем);
	
	Если СтрокаДокумента = Неопределено Тогда  	
		СтрокаДокумента = ВыборкаДанных.Добавить(); 
		СтрокаДокумента.Дата = СтрокаРезультата.ДатаПриема;
		СтрокаДокумента.Кафедра = СтрокаРезультата.Подразделение;
		СтрокаДокумента.Проведен = СтрокаРезультата.Проведен;
		СтрокаДокумента.ДокументСАктивнымиДолжностями = Истина;
		СтрокаДокумента.ДанныеИзВнешнихСистем = ДанныеИзВнешнихСистем;
		СтрокаДокумента.АктивныеДолжности = ПустаяТабличнаяЧасть.Скопировать();
		СтрокаДокумента.НеактивныеДолжности = ПустаяТабличнаяЧасть.Скопировать();
	КонецЕсли;	
	
	СтрокаРаботников = СтрокаДокумента.АктивныеДолжности.Добавить();
	СтрокаРаботников.Должность = СтрокаРезультата.Должность;
	СтрокаРаботников.Сотрудник = СтрокаРезультата.Сотрудник.Физлицо;
	СтрокаРаботников.Ставка = СтрокаРезультата.Ставка * 100;
	СтрокаРаботников.ВидНачисления = СтрокаРезультата.ВидРасчета; 
	СтрокаРаботников.ВидЗанятости = СтрокаРезультата.ВидЗанятости;
КонецЦикла;

ДокументыЗакреплениеЗаКафедрой = Неопределено;

Выполнить(Алгоритмы.ПереводТаблицыЗначенийВМассивЗакреплениеЗаКафедрой);

Для каждого Документ Из ДокументыЗакреплениеЗаКафедрой Цикл
	ВыгрузитьПоПравилу(,,Документ,,"ЗакреплениеЗаКафедройИзВходящихДанных");
КонецЦикла;

Отказ = Истина;
Показать


Как видно в нем в конце используется функция ВыгрузитьПоПравилу()

ПКО ЗакреплениеЗаКафедройИзВходящихДанных имеет следующий вид:



Табличные части этого ПКО имеют следующий вид:



Проблема следующая:

При выгрузке через обработку "Универсальный обмен данными в формате XML" все перегружается.

При обмене через БСП документ Закрепление за кафедрой создается, а ссылочные реквизиты, если объекты в базе не находятся по полям поиска не создают, а на место реквизита вставляется не известная ссылка и пишет "Объект не найден (<ссылка на объект>)". Собственно, что делать?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
18. frogo 6 02.10.15 11:56 Сейчас в теме
(1) lopatin, стоп-стоп-стоп...
что-то намешали Вы кажется..
1. в ПВД Вы используете объект "ВыборкаДанных", который заполняете. Из справки: "Если определить данную переменную, то обход коллекции и выгрузка объектов будет осуществляться автоматически".
2. Вы создаете объект "ДокументыЗакреплениеЗаКафедрой", который обходите в цикле и для каждого элемента выполняете: ВыгрузитьПоПравилу(,,Документ,,"ЗакреплениеЗаКафедройИзВходящихДанных");
Сам объект "ДокументыЗакреплениеЗаКафедрой" заполняется, вероятно, в алгоритме: Выполнить(Алгоритмы.ПереводТаблицыЗначенийВМассивЗакреплениеЗаКафедрой);

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

Кстати, из справки нюанс: "Если для выборки данных ПВД используется произвольный алгоритм и в обработчике ПВД "Перед обработкой" инициируется параметр ВыборкаДанных, то для ПКО следует установить признак "Не запоминать выгруженные объекты"."
19. lopatin 689 02.10.15 12:58 Сейчас в теме
(18) frogo, ВыборкаДанных опеределена в обработчике Перед обработкой, а я же определяю обработчик Перед выгрузкой. Я просто позаимствовал имя переменной, это собственная переменная.

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

Вот такого рода была ошибка:

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


Объект выборки Неопределен был.. и это естественно ведь при произвольном алгоритме мы объект выборки не указываем.

А что нибудь в сторону ТолькоПолучитьУзелСсылки из обработчика ПКО Перед выгрузкой может это, как-нибудь использовать?
20. lopatin 689 02.10.15 13:05 Сейчас в теме
(18) frogo, Может мне действительно переменную переименовать, зря я так?
21. lopatin 689 02.10.15 13:09 Сейчас в теме
(20) lopatin, Не помогло, проблема не в этом
22. lopatin 689 02.10.15 13:34 Сейчас в теме
(18) frogo, Ладно давайте так, как бы вы решили такую задачу:

Есть документ на стороне источника ПриемНаРаботу

Особенность, которую надо учесть для обмена - в нем одна табличная часть и каждому сотруднику(строке) табличной части указывается подразделение.

Есть документ на стороне приемника ЗакреплениеЗаКафедрой.

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

В итоге получаем:

Один документ ПриемНаРаботу разбиваем на несколько документов ЗакреплениеЗаКафедрой. Т.е. отбираем сотрудников по подразделениям и заносим каждого в соответствующее ЗакреплениеЗаКафедрой.
23. lopatin 689 02.10.15 14:02 Сейчас в теме
(22) lopatin, Если не сложно посмотрите правила. Так может будет проще понять, какой я алгоритм реализовал.
24. frogo 6 02.10.15 14:12 Сейчас в теме
(23) lopatin, вечером обязательно посмотрю и отвечу.
25. lopatin 689 02.10.15 14:15 Сейчас в теме
26. frogo 6 02.10.15 16:40 Сейчас в теме
(25) lopatin, Александр!
Надеюсь я правильно Вас понял, рассматриваю ПВД "ПриемНаРаботуВОрганизацию". Источник - пусто, произвольный алгоритм, ПКО "ЗакреплениеЗаКафедрой". В том виде, который Вы выложили.

Вы используете переменную "ВыборкаДанных", работая с ней как с таблицей значений, но нигде ее не создаете и не описываете структуру. Надо добавить строки:
ВыборкаДанных = Новый ТаблицаЗначений;
ВыборкаДанных.Колонки.Добавить("Дата");
ВыборкаДанных.Колонки.Добавить("УчебныйГод");
ВыборкаДанных.Колонки.Добавить("Кафедра");
ВыборкаДанных.Колонки.Добавить("ДанныеИзВнешнихСистем");
ВыборкаДанных.Колонки.Добавить("ДокументСАктивнымиДолжностями");
ВыборкаДанных.Колонки.Добавить("АктивныеДолжности");
ВыборкаДанных.Колонки.Добавить("НеактивныеДолжности");


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

Для отладки, я бы весь код из ПВД в обработку загнал и посмотрел на результирующую таблицу значений - в каком виде она создается, какие данные туда попадают и соответствуют ли они ожидаемым.
У Вас должна быть ТЗ:
каждая строка - конечный документ "ЗакреплениеЗаКафедрой", колонки - реквизиты документа.
Реквизиты "АктивныеДолжности" и "НеактивныеДолжности" также таблица значений, со структурой идентичной табличным частям.
Ну и конечно проверьте типы значений которыми заполняются ТЗ.
29. lopatin 689 19.10.15 11:11 Сейчас в теме
(26) frogo, Здравствуйте! Я был в отпуске, не смотрел больше правила.

Посмотрите такой вариант правил. Способ выборки должен быть "Стандартный"
30. lopatin 689 19.10.15 11:25 Сейчас в теме
(29) lopatin, В этом варианте правил я установил

ТолькоПолучитьУзелСсылки = Ложь;


Но теперь другая ошибка при выгрузке в обработчике после выгрузки в файл, выгружаются связанные элементы например у Физ. Лиц выгружаются Дипломы и происходит зацикливание, так как у дипломов есть ссылочное поле Физ лицо и т.д.
36. frogo 6 20.10.15 10:24 Сейчас в теме
Александр! Правила в (29) актуальны или уже по другим работаете? Смысл есть смотреть?
37. lopatin 689 20.10.15 11:13 Сейчас в теме
(36) frogo, Конечный вариант, того что сейчас в этом файле.

Проблема с выгрузкой по ссылкам вроде решена, писал выше.

Теперь проблема с выгрузкой регистров через функцию ВыгрузитьПоПравилу.. Описал так же выше.

Смотреть в ПКО ФизическиеЛица, обработчик ПослеВыгрузкиВФайл: закомментированный код выдает ошибку на стороне приемника.
28. superkuzja 3 02.10.15 19:28 Сейчас в теме
(1) lopatin, попробуй в ПКС для реквизитов ссылочных типов в обработчике "Перед выгрузкой" написать
ВыгрузитьОбъект = Истина;
31. lopatin 689 19.10.15 11:43 Сейчас в теме
(28) superkuzja, Кажется помог такой вариант. Получается это у каждого ПКС ссылочного типа в правилах надо прописать?
32. lopatin 689 19.10.15 12:49 Сейчас в теме
(31) lopatin, проставил у всех ссылочных ПКС:

ВыгружатьОбъект = Истина;


Все кажется работает.

Осталась еще одна проблема: Выгрузка записей Регистров сведений.

В обработчике ПКО ПослеВыгрузкиВФайл, есть такой код:

///////////////////////////////////////////////////////
//Выгрузим паспортные данные Физического лица
Запрос = Новый Запрос;
Запрос.Текст = 
	"ВЫБРАТЬ
	|	ПаспортныеДанныеФизЛиц.Период,
	|	ПаспортныеДанныеФизЛиц.ФизЛицо,
	|	ПаспортныеДанныеФизЛиц.ДокументСерия,
	|	ПаспортныеДанныеФизЛиц.ДокументНомер,
	|	ПаспортныеДанныеФизЛиц.ДокументДатаВыдачи,
	|	ПаспортныеДанныеФизЛиц.ДокументКодПодразделения,
	|	ПаспортныеДанныеФизЛиц.ДокументКемВыдан,
	|	ПаспортныеДанныеФизЛиц.ДокументВид
	|ИЗ
	|	РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц
	|ГДЕ
	|	ПаспортныеДанныеФизЛиц.ФизЛицо = &ФизЛицо";

Запрос.УстановитьПараметр("ФизЛицо", Источник);

РезультатЗапроса = Запрос.Выполнить();

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

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	ВыгрузитьПоПравилу(ВыборкаДетальныеЗаписи, , , , "ПаспортныеДанные");
КонецЦикла;
Показать


Т.е. тут отбираются записи регистра сведений связанные с текущим выгружаемым Физ. лицом.

На стороне источника все вроде нормально выгружается, вот что попадает по этому правилу в файл обмена:

<Объект Нпп="6" Тип="РегистрСведенийЗапись.ПаспортныеДанные" ИмяПравила="ПаспортныеДанные">
	<Свойство Имя="Активность" Тип="Булево">
		<Значение>true</Значение>
	</Свойство>
	<Свойство Имя="Период" Тип="Дата">
		<Значение>1900-01-01T00:00:00</Значение>
	</Свойство>
	<Свойство Имя="ФизическоеЛицо" Тип="СправочникСсылка.ФизическиеЛица"><Ссылка ПродолжитьПоиск="true">
	<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка" ТипИсточника="СправочникСсылка.ФизическиеЛица" ТипПриемника="СправочникСсылка.ФизическиеЛица">
		<Значение>e3030cc0-208b-11e5-80c6-002590e4b7db</Значение>
	</Свойство>
	<Свойство Имя="ДатаРождения" Тип="Дата">
		<Значение>1994-12-31T00:00:00</Значение>
	</Свойство>
	<Свойство Имя="Наименование" Тип="Строка">
		<Значение>Гунькина Дарья Сергеевна</Значение>
	</Свойство>
	<Свойство Имя="ЭтоГруппа" Тип="Булево">
		<Значение>false</Значение>
	</Свойство>
</Ссылка>
	</Свойство>
	<Свойство Имя="ДатаВыдачи" Тип="Дата">
		<Значение>2015-01-23T00:00:00</Значение>
	</Свойство>
	<Свойство Имя="КодПодразделения" Тип="Строка"/>
	<Свойство Имя="Номер" Тип="Строка">
		<Значение>139743</Значение>
	</Свойство>
	<Свойство Имя="Серия" Тип="Строка">
		<Значение>40 14</Значение>
	</Свойство>
	<Свойство Имя="ОВД" Тип="Строка">
		<Значение>ТП №81 ОУФМС  России по СПб и Ленинградской обл. в Центральном р-не гор. СПб</Значение>
	</Свойство>
	<Свойство Имя="ТипДокумента" Тип="СправочникСсылка.ТипыДокументов"><Ссылка>
	<Свойство Имя="{ИмяПредопределенногоЭлемента}">
		<Значение>ПаспортРФ</Значение>
	</Свойство>
	<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка" ТипИсточника="СправочникСсылка.ДокументыУдостоверяющиеЛичность" ТипПриемника="СправочникСсылка.ТипыДокументов">
		<Значение>ffeceef4-bc4c-4076-8ea7-03636eb00fbb</Значение>
	</Свойство>
	<Свойство Имя="Наименование" Тип="Строка">
		<Значение>Паспорт гражданина Российской Федерации</Значение>
	</Свойство>
</Ссылка>
	</Свойство>
</Объект>
Показать


На стороне приемника следующая ошибка:

{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(9362)}: Поле объекта не обнаружено (ДополнительныеСвойства)
Объект.ДополнительныеСвойства.Вставить("ОбменДанными", Новый Структура("АнализДанных", Не РежимЗагрузкиДанныхВИнформационнуюБазу()));


Я как понял система запись регистра сведений пытается как объект обработать и пытается найти поле ДополнительныеСвойства, которого у регистра сведений нет.

В чем проблема? Кто скажет?

UPDATE

Объектом является здесь РегистрСведенийМенеджерЗаписи, а ДополнительныСведения определены для РегистрСведенийНаборЗаписей. Получается или я неправильно передаю записи регистра в функцию ВыгрузитьПоПравилу или таким способом передать запись регистра нельзя??? В интернете все примеры предлагают аналогичный вариант решения как у меня и ни кто не жалуется на работу. Через УОД у меня все работает замечательно, но в БСП не получается.
33. invertercant 22 19.10.15 17:25 Сейчас в теме
(32) lopatin, Какие знакомые правила. МФТИ?
34. superkuzja 3 19.10.15 17:36 Сейчас в теме
(32) lopatin, а какая у тебя версия БСП?
35. lopatin 689 20.10.15 09:28 Сейчас в теме
(34) superkuzja, На стороне источника 2.1.3.48, на стороне приемника 2.1.9.1

Такие версии указаны в модуле ОбновлениеИнформационнойБазыБСП Процедура ПриДобавленииПодсистемы
2. lopatin 689 30.09.15 14:48 Сейчас в теме
Ни кто не сталкивался с подобной проблемой?
5. Xershi 1555 01.10.15 09:47 Сейчас в теме
(2) lopatin, а не проще ли заполнить ПКО и в ПВД не мудрить?
6. lopatin 689 01.10.15 10:19 Сейчас в теме
(5) Xershi, В смысле заполнить ПКО?
7. Xershi 1555 01.10.15 10:20 Сейчас в теме
(6) lopatin, получать данные в самом ПКО, а не через ПВД.
8. lopatin 689 01.10.15 10:23 Сейчас в теме
(7) Xershi, А потом? У меня из одного документа источника создается несколько документов получаетелей? создавать фиктивное ПКО, которое будет так же потом вызывать нужное ПКО, получающее ВходящиеДанные?
9. lopatin 689 01.10.15 10:31 Сейчас в теме
(7) Xershi, Объект приемник не может быть пустым. Какой я приемник укажу если между ними соответствия нельзя сделать? Или так же потом, как в ПВД делать отказ в конце работы ПКО?
11. Xershi 1555 01.10.15 10:52 Сейчас в теме
(9) lopatin, у вас могут быть пустые приемники?
Тогда что-то у вас не вяжется.
В ПКО приемник, то всегда должен быть. И писать его нужно соответственно.
Если у вас все так мутно, тут тогда только книжки почитать. Такого я не делал.
10. lopatin 689 01.10.15 10:41 Сейчас в теме
(7) Xershi, Не помогло, убрал отбор входящих данных из ПВД, перенес в ПКО от туда вызывая Функцию ВыгрузитьПоправилу. Результат такой же, только ссылки на объекты сами объекты не появились.
3. frogo 6 01.10.15 08:58 Сейчас в теме
В алгоритме ПВД последняя строка:
Отказ = Истина;

не нужна.
4. lopatin 689 01.10.15 09:32 Сейчас в теме
(3) frogo, Она тогда не начнет выполнение по ПКО? Которое не указано? или молча отработает?

P.S. Проверил. Документы появились, проблема с ссылками остались и появились новые, документ не проводятся и в ходе обмена появляются ошибки ПКО не найдено.
12. frogo 6 01.10.15 18:20 Сейчас в теме
права на создание обьектов у пользователя, под которым идет обмен, есть?
обмен через файл? Сделайте через файл и в файле выгрузки проверьте выгружаются ли обьекты или только ссылки
13. lopatin 689 02.10.15 10:17 Сейчас в теме
(12) frogo, Да для меня это оказалось неожиданностью... В файл попал только сам документ Закрепление за кафедрой, ссылки на объекты и поля поиска.

Хотя там по ссылке должны еще множество ПКО вызываться, а в самом ПКО Физ. лица еще не однократно вызывается функция ВыгрузитьПоПравилу

Вот пример того, как выгрузился один из документов:

<Объект Нпп="1" Тип="ДокументСсылка.ЗакреплениеЗаКафедрой" ИмяПравила="ЗакреплениеЗаКафедройИзВходящихДанных"><Ссылка>
	<Свойство Имя="ДанныеИзВнешнихСистем" Тип="Строка">
		<Значение>Выгружено из ЗиКБУ, документ "Прием на работу в организацию" №00000000091 от 02.07.2015, Кафедра журналистики</Значение>
	</Свойство>
</Ссылка>
	<Свойство Имя="Дата" Тип="Дата">
		<Значение>2015-07-01T00:00:00</Значение>
	</Свойство>
	<Свойство Имя="Кафедра" Тип="СправочникСсылка.СтруктураУниверситета"><Ссылка ПродолжитьПоиск="true">
	<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка" ТипИсточника="СправочникСсылка.ПодразделенияОрганизаций" ТипПриемника="СправочникСсылка.СтруктураУниверситета">
		<Значение>019ecec5-2cc1-11e2-8052-50e5492043a3</Значение>
	</Свойство>
	<Свойство Имя="Наименование" Тип="Строка">
		<Значение>Кафедра журналистики</Значение>
	</Свойство>
</Ссылка>
	</Свойство>
	<Свойство Имя="Проведен" Тип="Булево">
		<Значение>true</Значение>
	</Свойство>
	<Свойство Имя="ДокументСАктивнымиДолжностями" Тип="Булево">
		<Значение>true</Значение>
	</Свойство><ТабличнаяЧасть Имя="АктивныеДолжности">
	<Запись>
		<Свойство Имя="Сотрудник" Тип="СправочникСсылка.ФизическиеЛица"><Ссылка ПродолжитьПоиск="true">
	<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка" ТипИсточника="СправочникСсылка.ФизическиеЛица" ТипПриемника="СправочникСсылка.ФизическиеЛица">
		<Значение>e3030cc0-208b-11e5-80c6-002590e4b7db</Значение>
	</Свойство>
	<Свойство Имя="ДатаРождения" Тип="Дата">
		<Значение>1994-12-31T00:00:00</Значение>
	</Свойство>
	<Свойство Имя="Наименование" Тип="Строка">
		<Значение>Гунькина Дарья Сергеевна</Значение>
	</Свойство>
	<Свойство Имя="ЭтоГруппа" Тип="Булево">
		<Значение>false</Значение>
	</Свойство>
</Ссылка>
		</Свойство>
		<Свойство Имя="Должность" Тип="СправочникСсылка.Должности"><Ссылка ПродолжитьПоиск="true">
	<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка" ТипИсточника="СправочникСсылка.ДолжностиОрганизаций" ТипПриемника="СправочникСсылка.Должности">
		<Значение>3e4b92f1-1e8b-11e3-b478-003048568f61</Значение>
	</Свойство>
	<Свойство Имя="Наименование" Тип="Строка">
		<Значение>Специалист по учебно-методической работе 1ой категории</Значение>
	</Свойство>
</Ссылка>
		</Свойство>
		<Свойство Имя="Ставка" Тип="СправочникСсылка.ШтатныеСтавки"><Ссылка НеСоздаватьЕслиНеНайден="true">
	<Свойство Имя="ПроцентОтПолнойСтавки" Тип="Число">
		<Значение>100</Значение>
	</Свойство>
</Ссылка>
		</Свойство>
		<Свойство Имя="ВидНачисления" Тип="СправочникСсылка.ВидыНачисленияЗаработнойПлаты"><Ссылка ПродолжитьПоиск="true">
	<Свойство Имя="{УникальныйИдентификатор}" Тип="Строка" ТипИсточника="ПланВидовРасчетаСсылка.ОсновныеНачисленияОрганизаций" ТипПриемника="СправочникСсылка.ВидыНачисленияЗаработнойПлаты">
		<Значение>0ab6bd37-3574-11e2-8898-002522b9c92d</Значение>
	</Свойство>
	<Свойство Имя="Наименование" Тип="Строка">
		<Значение>1 ОКЛАД</Значение>
	</Свойство>
</Ссылка>
		</Свойство>
		<Свойство Имя="ВидЗанятости" Тип="ПеречислениеСсылка.ВидыЗанятости">
			<Значение>ОсновноеМестоРаботы</Значение>
		</Свойство>
	</Запись>
</ТабличнаяЧасть><ТабличнаяЧасть Имя="НеактивныеДолжности"/>
</Объект>
Показать


Вот кусок в который выгрузилось Физ лицо:

<Свойство Имя="Сотрудник" Тип="СправочникСсылка.ФизическиеЛица">
    <Ссылка ПродолжитьПоиск="true">
        <Свойство Имя="{УникальныйИдентификатор}" Тип="Строка" ТипИсточника="СправочникСсылка.ФизическиеЛица" ТипПриемника="СправочникСсылка.ФизическиеЛица">
            <Значение>e3030cc0-208b-11e5-80c6-002590e4b7db</Значение>
        </Свойство>
        <Свойство Имя="ДатаРождения" Тип="Дата">
            <Значение>1994-12-31T00:00:00</Значение>
        </Свойство>
        <Свойство Имя="Наименование" Тип="Строка">
            <Значение>Гунькина Дарья Сергеевна</Значение>
        </Свойство>
        <Свойство Имя="ЭтоГруппа" Тип="Булево">
            <Значение>false</Значение>
        </Свойство>
    </Ссылка>
</Свойство>
Показать


Есть соображения что нужно делать? Буду сейчас по отладчику смотреть, что ему не нравится. Но если будут соображения буду рад выслушать.
14. frogo 6 02.10.15 11:16 Сейчас в теме
(13) lopatin, настойки ПКО "ФизическиеЛица" покажите.
15. lopatin 689 02.10.15 11:36 Сейчас в теме
(14) frogo,

Вы наверное про галку не создавать новый объект, если он НЕ найден

Кстати, различные обработчики тоже в файл не грузятся, например, в ЗакреплениеЗаКафедрой событие после загрузки, подставляет Учебный год.
16. frogo 6 02.10.15 11:39 Сейчас в теме
(15) lopatin, была шальная мысль..
мне не нравится как выгружается физ лицо, не видно строки:
<Объект Нпп="1" Тип="СправочникСсылка.ФизическиеЛица"

Нпп, естесственно, другой должен быть.
17. lopatin 689 02.10.15 11:46 Сейчас в теме
(16) frogo, Кстати, различные обработчики тоже в файл не грузятся, например, в ЗакреплениеЗаКафедрой событие после загрузки, подставляет Учебный год.
27. frogo 6 02.10.15 16:55 Сейчас в теме
И еще, если все же используете переменную "ВыборкаДанных", с ПКО "ЗакреплениеЗаКафедрой" установите флаг "Не запоминать выгруженные объекты".
Совет из справки.
38. lopatin 689 21.10.15 09:43 Сейчас в теме
Кажется нашел в какую сторону копать:

Есть функция ВыгрузитьРегистр, надо для неё НаборЗаписей подготовить и использовать так же, как ВыгрузитьПоПравилу
39. lopatin 689 21.10.15 11:16 Сейчас в теме
Переписал перенос связанного регистра таким образом:

Запрос = Новый Запрос;
Запрос.Текст = 
	"ВЫБРАТЬ
	|	ПаспортныеДанныеФизЛиц.Период,
	|	ПаспортныеДанныеФизЛиц.ФизЛицо,
	|	ПаспортныеДанныеФизЛиц.ДокументСерия,
	|	ПаспортныеДанныеФизЛиц.ДокументНомер,
	|	ПаспортныеДанныеФизЛиц.ДокументДатаВыдачи,
	|	ПаспортныеДанныеФизЛиц.ДокументКодПодразделения,
	|	ПаспортныеДанныеФизЛиц.ДокументКемВыдан,
	|	ПаспортныеДанныеФизЛиц.ДокументВид
	|ИЗ
	|	РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц
	|ГДЕ
	|	ПаспортныеДанныеФизЛиц.ФизЛицо = &ФизЛицо";

Запрос.УстановитьПараметр("ФизЛицо", Источник);

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

Пока Выборка.Следующий () Цикл
	
	Отбор = Новый ТаблицаЗначений;
	Отбор.Колонки.Добавить ("Имя");
	Отбор.Колонки.Добавить ("Значение");
	Отбор.Колонки.Добавить ("Использование");
	
	СтрокаОтбора = Отбор.Добавить ();
	СтрокаОтбора.Имя = "ФизЛицо";
	СтрокаОтбора.Значение = Выборка.ФизЛицо;
	СтрокаОтбора.Использование = Истина;
	
	Строки = Новый ТаблицаЗначений;
	Строки.Колонки.Добавить("Период");
	Строки.Колонки.Добавить("ФизЛицо");
	Строки.Колонки.Добавить("ДокументСерия");
	Строки.Колонки.Добавить("ДокументНомер");
	Строки.Колонки.Добавить("ДокументДатаВыдачи");
	Строки.Колонки.Добавить("ДокументКодПодразделения");
	Строки.Колонки.Добавить("ДокументКемВыдан");
	Строки.Колонки.Добавить("ДокументВид");
	
	Строка = Строки.Добавить();
	//ЗаполнитьЗначенияСвойств(Строка, Выборка);
	Строка.Период = Выборка.Период;
	Строка.ФизЛицо = Выборка.ФизЛицо;
	Строка.ДокументСерия = Выборка.ДокументСерия;
	Строка.ДокументНомер = Выборка.ДокументНомер;
	Строка.ДокументДатаВыдачи = Выборка.ДокументДатаВыдачи;
	Строка.ДокументКодПодразделения = Выборка.ДокументКодПодразделения;
	Строка.ДокументКемВыдан = Выборка.ДокументКемВыдан;
	Строка.ДокументВид = Выборка.ДокументВид;
	
	НаборЗаписей = Новый Структура("Отбор, Строки");
	НаборЗаписей.Отбор = Отбор;
	НаборЗаписей.Строки = Строки;
	
	ВыгрузитьРегистр(НаборЗаписей,,,,"ПаспортныеДанные");
КонецЦикла;
Показать
zyama; superkuzja; +2 Ответить
40. superkuzja 3 21.10.15 11:20 Сейчас в теме
(39) lopatin, теперь буду знать про функцию ВыгрузитьРегистр(). Спасибо!
41. lopatin 689 21.10.15 12:44 Сейчас в теме
(40) superkuzja, Только вот описание не смог найти её нормального, только примеры кода, хотелось бы еще описание, чтобы знать назначение всех параметров. А так по примерам на ощупь, под свое переделываешь и не знаешь, почему эти параметры не указывать, эти указывать.

Например, два регистра я еще таким образом перенес:

ВыгрузитьРегистр(НаборЗаписей,,,Истина,"КакойтоРегистрСведений");


Вопрос: принципиально указывать Истина или нет.
42. invertercant 22 21.10.15 13:00 Сейчас в теме
(41) lopatin, Если ты пользуешься обменом на БСП открой обработку "Конвертация объектов информационных баз" там есть функция ВыгрузитьРегистр().
Любой экспортной функцией из этой обработки можешь пользоваться. Достоверно это будет работать только на БСП обмене и до тех пор пока 1с не решат чего нибудь обновить в обработке.
В УниверсальномОбменеДаннымиXML те же самые функции могут работать чуть иначе. Даже ВыгрузитьПоПравилу().
Посмотрел ВыгрузитьРегистр() вызывает ВыгрузитьПоПравилу() внутри себя.
superkuzja; +1 Ответить
43. Kesak 14 08.04.16 13:47 Сейчас в теме
(39) lopatin, что делать, если источник в описании ПКО пустой, а приемник - РС? Сделал как как описано в (39). Данные в ПКО попадают из ПКС с процедурой ВыгрузитьРегистр(НаборЗаписей,,,,"КакойтоПКО"), но проблема в том, что обработка "Конвертация объектов информационных баз" считает, что если имя типа источника пустое(т.е. не Метаданные, например Структура) и признак выгрузки объекта = Истина, то Источник имеет ссылочный тип и соответственно выскакивает следующая ошибка:
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(9676)}: Ошибка в обработчике события ПередОбработкойВыгрузки группы свойств
	ПКО                    =  ГруппыПользователей  (Пользователи -> Группы пользователей)
	ПКГС                   =  4  (--> Состав)
	Объект                 =  ОТР  (Справочник объект: Пользователи)
	Обработчик             =  ПередОбработкойВыгрузкиГруппыСвойств
	ОписаниеОшибки         =  Поле объекта не обнаружено (Ссылка)
	ПозицияМодуля          =  Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(11286)
	КСообщенияОбОшибках    =  48
				ВызватьИсключение СтрокаСообщенияОбОшибке;
Показать
44. v.gonchar 09.12.16 13:38 Сейчас в теме
(43)
Столкнулся с аналогичной проблемой, решил путём добавления колонки с именем "Ссылка" в строки набора записей.
Рабочий пример для обработчика ПКО "После выгрузки в файл"

Запрос = Новый Запрос("
|ВЫБРАТЬ
|	ФизическиеЛицаКонтактнаяИнформация.Ссылка КАК Объект,
|	ФизическиеЛицаКонтактнаяИнформация.Тип КАК Тип,
|	ФизическиеЛицаКонтактнаяИнформация.Вид КАК Вид,
|	ФизическиеЛицаКонтактнаяИнформация.Представление КАК Представление,
|	ИСТИНА КАК Активность
|ИЗ
|	Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
|ГДЕ
|	ФизическиеЛицаКонтактнаяИнформация.Ссылка = &Ссылка");

Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);

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

Пока Выборка.Следующий() Цикл
	
	Отбор = Новый ТаблицаЗначений;
	Отбор.Колонки.Добавить ("Имя");
	Отбор.Колонки.Добавить ("Значение");
	Отбор.Колонки.Добавить ("Использование");
	
	СтрокаОтбора = Отбор.Добавить();
	СтрокаОтбора.Имя = "Объект";
	СтрокаОтбора.Значение = Выборка.Объект;
	СтрокаОтбора.Использование = Истина;
	
	Строки = Новый ТаблицаЗначений;
	Строки.Колонки.Добавить("Представление");
	Строки.Колонки.Добавить("Вид");
	Строки.Колонки.Добавить("Тип");
	Строки.Колонки.Добавить("Объект");
	Строки.Колонки.Добавить("Активность");
	Строки.Колонки.Добавить("Ссылка"); // Добавленная колонка.
	
	Строка = Строки.Добавить();
	Строка.Представление = Выборка.Представление;
	Строка.Вид = Выборка.Вид;
	Строка.Тип = Выборка.Тип;
	Строка.Объект = Выборка.Объект;
	Строка.Активность = Выборка.Активность;
	
	НаборЗаписей = Новый Структура("Отбор, Строки");
	НаборЗаписей.Отбор = Отбор;
	НаборЗаписей.Строки = Строки;
	
	ВыгрузитьРегистр(НаборЗаписей,,,, "КонтактнаяИнформация");

КонецЦикла;
Показать
zyama; user657734_YGREEN; +2 Ответить
Оставьте свое сообщение

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