ЗапросПД = Новый Запрос;
ЗапросПД.Текст = "ВЫБРАТЬ
| КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
| КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Код КАК СотрудникКод,
| КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
| ДокументыФизическихЛицСрезПоследних.Серия КАК Серия,
| ДокументыФизическихЛицСрезПоследних.Номер КАК Номер,
| ДокументыФизическихЛицСрезПоследних.ДатаВыдачи КАК ДатаВыдачи,
| ДокументыФизическихЛицСрезПоследних.СрокДействия КАК СрокДействия,
| ДокументыФизическихЛицСрезПоследних.КемВыдан КАК КемВыдан,
| ДокументыФизическихЛицСрезПоследних.КодПодразделения КАК КодПодразделения,
| ДокументыФизическихЛицСрезПоследних.ВидДокумента.Ссылка КАК ВидДокументаСсылка,
| ДокументыФизическихЛицСрезПоследних.ВидДокумента.Наименование КАК ВидДокументаНаименование
|ИЗ
| РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних КАК ДокументыФизическихЛицСрезПоследних
| ПО (КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.Ссылка = ДокументыФизическихЛицСрезПоследних.Физлицо.Ссылка)
|ГДЕ
| КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.Ссылка = &ФизическоеЛицоСсылка
|
|УПОРЯДОЧИТЬ ПО
| КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Наименование" ;
ЗапросПД.УстановитьПараметр("ФизическоеЛицоСсылка", Источник);
ЗапросРезультат = ЗапросПД.Выполнить().Выбрать();
Пока ЗапросРезультат.Следующий() Цикл
ВыгрузитьПоПравилу(ЗапросРезультат, , ЗапросРезультат,,"ФизическиеЛица",,,);
КонецЦикла;
Показать
Выдаёт ошибку( на скрине). Уже сталкивался. Что то было там через ВЫРАЗИТЬ () и т.д.
Странно почему консоль запросов хавает и отрабатывает.
Как всё это поправить и в чём дело? Может что то можно почитать, чтоб вкурить ситуацию?: Заранее СПАСИБО!
Судя по скриншоту, вы вообще не понимаете, что вы делаете.
Вы смешали все в кучу и ожидаете, что 1С сама разберется, что и как вам нужно сериализировать?
Это так не работает.
Внимательнее читайте статью и реализуйте правильно.
(13) Да. Пока делаю в ПКО. А вот подскажите можно отобрать нужное для выгрузки в ПРО, так как в обмене я не вижу "правила обмена", только "правила регистрации объектов (ПРО)".
(14) логичнее использовать обработчик "После выгрузки" или даже "После выгрузки в файл". Кроме того, в процедуре ВыгрузитьПоПравилу должно быть указано ИНОЕ ПКО, а у вас почему-то тоже самое!
У вас создано отдельное ПКО где приемник это регистр сведений в к-ром хранится паспортная информация? Вот его ПКО и надо указывать.
(23) Пока не могу победить((((((((
ОШИБКА- "получение по индексу для значения не определено".
и думаю лучше так написать, т.к. у меня название полей то не совпадают и "ЗаполнитьЗначенияСвойств"-явно не будет отрабатывать.
Запросы.ПаспортныеДанныеФизЛиц.УстановитьПараметр("ФизическоеЛицоСсылка", Источник.Физлицо);
Выборка = Запросы.ПаспортныеДанныеФизЛиц.Выполнить().Выбрать();
Если Выборка.Следующий() тогда
ИсходящиеДанные = Новый Структура ("ФизЛицо, ВидДокумента, ДатаВыдачи, КемВыдан, КодПодразделения, Номер, Серия");
ИсходящиеДанные.Вставить("ФизЛицо", Строка(Выборка.ФизлицоНаименование));
ИсходящиеДанные.Вставить("ВидДокумента", Выборка.ВидДокументаНаименование);
ИсходящиеДанные.Вставить("ДатаВыдачи", Выборка.ДатаВыдачи);
////и т.д
ВыгрузитьПоПравилу( , , ИсходящиеДанные, ,"ДокументыФизическихЛиц");
КонецЕсли;
ВЫБРАТЬ
КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Код КАК СотрудникКод,
КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
ДокументыФизическихЛицСрезПоследних.Серия КАК Серия,
ДокументыФизическихЛицСрезПоследних.Номер КАК Номер,
ДокументыФизическихЛицСрезПоследних.ДатаВыдачи КАК ДатаВыдачи,
ДокументыФизическихЛицСрезПоследних.СрокДействия КАК СрокДействия,
ДокументыФизическихЛицСрезПоследних.КемВыдан КАК КемВыдан,
ДокументыФизическихЛицСрезПоследних.КодПодразделения КАК КодПодразделения,
ДокументыФизическихЛицСрезПоследних.ВидДокумента.Ссылка КАК ВидДокументаСсылка,
ДокументыФизическихЛицСрезПоследних.ВидДокумента.Наименование КАК ВидДокументаНаименование,
КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.Код КАК ФизическоеЛицоКод
ИЗ
РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних КАК ДокументыФизическихЛицСрезПоследних
ПО (КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.Ссылка = ДокументыФизическихЛицСрезПоследних.Физлицо.Ссылка)
ГДЕ
КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.ВАрхиве = ЛОЖЬ И
КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.Ссылка = &ФизическоеЛицоСсылка
УПОРЯДОЧИТЬ ПО
КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Наименование
(26) 1. в ПКО "ДокументыФизическихЛиц" Истоника нет и быть не может.
2. Ругается на ПКС "Активность". Вы этму самую активность как заполняете? В коде на картинке этого не видно.
(29) след. реквизит "ВидДокумента". Тип у него должен быть перечисление, а вы пихаете туда ВидДокумента.Наименование зачем-то. В общем, ошибки детские, тыкать носом в каждую я точно не буду.
(38) я ж на картинках вчера показал рабочий пример. Там прекрасно видно в каком месте используется запрос и куда попадёт информация в ВыгрузитьПоПравилу
(44) Спасибо! Да был касяк.....запрос пустой приходил (есть специфика).
Переписал немного на пустой запрос - ОТКАЗ истина. Но теперь приходит ошибка "Переполнение стека встроенного языка на сервере". В ИСТОЧНИК зацикливается и приходит одно и тоже, либо где то так понимаю рекурсия(((
Процедура ПКО_ПередВыгрузкой_ФизическиеЛица(ФайлОбмена, Источник, ВходящиеДанные, ИсходящиеДанные, ИмяПКО,
ПКО, ВыгруженныеОбъекты, Отказ, КлючВыгружаемыхДанных, ЗапоминатьВыгруженные,
НеЗамещатьОбъектПриЗагрузке, ВсеОбъектыВыгружены, ТолькоПолучитьУзелСсылки,
Приемник, РежимЗаписи, РежимПроведения, НеСоздаватьЕслиНеНайден) Экспорт
Если не Источник.ЭтоГруппа Тогда
Запросы.ПаспортныеДанныеФизЛиц.УстановитьПараметр("ФизическоеЛицоСсылка", Источник);
Выборка = Запросы.ПаспортныеДанныеФизЛиц.Выполнить();
Если Выборка.Пустой() Тогда
Отказ= ИСТИНА;
ИНАЧЕ
РезультатЗапроса=Выборка.Выбрать();
Если РезультатЗапроса.Следующий() тогда
ИсходящиеДанные = Новый Структура ("ФизЛицо, ВидДокумента, ДатаВыдачи, КемВыдан,");
ИсходящиеДанные.ФизЛицо= Источник.Ссылка;
ЗаполнитьЗначенияСвойств(ИсходящиеДанные, РезультатЗапроса);
////и т.д
ВыгрузитьПоПравилу( , , ИсходящиеДанные, ,"ДокументыФизическихЛиц");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Тут ошибка точно в строке "ВыгрузитьПоПравилу"
Сначала выгружается просто ФизЛицо, а потом еще раз вызывается правило, но уже в качестве источника у вас РезультатЗапроса. Вот в этот момент и ошибка. Ругается когда вы делаете сравнение ....ФизическоеЛицо.Ссылка = РезультатЗапроса
Похоже надо делать другое правило, чтобы было как в (17)