неверные параметры в операции сравнения нельзя сравнивать поля неограниченной длины

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


Выдаёт ошибку( на скрине). Уже сталкивался. Что то было там через ВЫРАЗИТЬ () и т.д.
Странно почему консоль запросов хавает и отрабатывает.
Как всё это поправить и в чём дело? Может что то можно почитать, чтоб вкурить ситуацию?: Заранее СПАСИБО!
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 28.03.22 10:47 Сейчас в теме
(1)потому что ТипЗнч(Источник) <> Тип("СправочникСсылка.ФизическиеЛица") на момент выполнения кода
4. One_Assembler 28.03.22 11:03 Сейчас в теме
Спасибо! Логично. Но а как в ИСТОЧНИК ссылку передать?
Ориентировался на эту неплохую статью https://1c8xx.ru/fiopeople.php
5. nomad_irk 76 28.03.22 11:08 Сейчас в теме
(4)Разбирайтесь в правилах.
Источником может быть все что угодно, в том числе и ссылка на объект другого справочника/документа/etc
10. One_Assembler 28.03.22 11:15 Сейчас в теме
(5) С чего это? Если всё так и логично , что там как раз нужная ссылка. Разве нет?
Прикрепленные файлы:
11. nomad_irk 76 28.03.22 11:19 Сейчас в теме
(10)с того:
Прикрепленные файлы:
12. nomad_irk 76 28.03.22 11:24 Сейчас в теме
(4)
Ориентировался на эту неплохую статью https://1c8xx.ru/fiopeople.php


Судя по скриншоту, вы вообще не понимаете, что вы делаете.
Вы смешали все в кучу и ожидаете, что 1С сама разберется, что и как вам нужно сериализировать?
Это так не работает.
Внимательнее читайте статью и реализуйте правильно.
13. ZergKRSK 129 28.03.22 11:33 Сейчас в теме
(4) опишите задачу, которую пытаетесь реализовать. При выгрузке физика хотите выгрузить его паспортные данные?
14. One_Assembler 28.03.22 11:34 Сейчас в теме
(13) Да. Пока делаю в ПКО. А вот подскажите можно отобрать нужное для выгрузки в ПРО, так как в обмене я не вижу "правила обмена", только "правила регистрации объектов (ПРО)".
Прикрепленные файлы:
15. ZergKRSK 129 28.03.22 11:37 Сейчас в теме
(14) логичнее использовать обработчик "После выгрузки" или даже "После выгрузки в файл". Кроме того, в процедуре ВыгрузитьПоПравилу должно быть указано ИНОЕ ПКО, а у вас почему-то тоже самое!
У вас создано отдельное ПКО где приемник это регистр сведений в к-ром хранится паспортная информация? Вот его ПКО и надо указывать.
16. ZergKRSK 129 28.03.22 11:43 Сейчас в теме
(14) почитайте что такое ПРО, мне кажется вы путаетесь с теоретической частью.
17. ZergKRSK 129 28.03.22 11:48 Сейчас в теме
(14) вот рабочий пример как это работает
Прикрепленные файлы:
18. One_Assembler 28.03.22 12:17 Сейчас в теме
(17)
вот рабочий пример как это работает

СПАСИБО! Пробую, но пока такое выдаёт(((
Прикрепленные файлы:
19. ZergKRSK 129 28.03.22 12:46 Сейчас в теме
(18) это у вас что-то в самих физиках, не связанное с паспортными данными.
20. One_Assembler 28.03.22 13:09 Сейчас в теме
(19)
не связанное с паспортными данными

Вроде поправил, пересоздал "ПКС". но теперь, как и в начале обсуждения всё...(на скрине) ((((
И кстати просто
Запросы.ПаспортныеДанныеФизЛиц.УстановитьПараметр("ФизическоеЛицоСсылка", Источник);

иначе выдавал ошибку -поле объекта не обнаружено
Прикрепленные файлы:
22. One_Assembler 29.03.22 10:28 Сейчас в теме
(17)
Пока  Выборка.Следующий() Цикл 

А разве нам не цикл нужен?
23. ZergKRSK 129 29.03.22 10:29 Сейчас в теме
24. One_Assembler 29.03.22 10:34 Сейчас в теме
(23) Пока не могу победить((((((((
ОШИБКА- "получение по индексу для значения не определено".
и думаю лучше так написать, т.к. у меня название полей то не совпадают и "ЗаполнитьЗначенияСвойств"-явно не будет отрабатывать.

			
Запросы.ПаспортныеДанныеФизЛиц.УстановитьПараметр("ФизическоеЛицоСсылка", Источник.Физлицо);
			
Выборка = Запросы.ПаспортныеДанныеФизЛиц.Выполнить().Выбрать();
			
Если  Выборка.Следующий() тогда 
				
ИсходящиеДанные  = Новый Структура ("ФизЛицо, ВидДокумента, ДатаВыдачи, КемВыдан, КодПодразделения, Номер, Серия");
				
ИсходящиеДанные.Вставить("ФизЛицо", Строка(Выборка.ФизлицоНаименование));
ИсходящиеДанные.Вставить("ВидДокумента", Выборка.ВидДокументаНаименование);
ИсходящиеДанные.Вставить("ДатаВыдачи", Выборка.ДатаВыдачи);			
	////и т.д
				
				
ВыгрузитьПоПравилу( , , ИсходящиеДанные, ,"ДокументыФизическихЛиц");
КонецЕсли;
			
Показать
25. ZergKRSK 129 29.03.22 10:39 Сейчас в теме
(24)
ОШИБКА- "получение по индексу для значения не определено"

Эта ошибка с каким кодом связана то?
26. One_Assembler 29.03.22 10:43 Сейчас в теме
(25) В ПКО "РегистрСведенийЗапись.ДокументыФизическихЛиц"

			
Запросы.ПаспортныеДанныеФизЛиц.УстановитьПараметр("ФизическоеЛицоСсылка", Источник.Физлицо);
			
Выборка = Запросы.ПаспортныеДанныеФизЛиц.Выполнить().Выбрать();
			
Если  Выборка.Следующий() тогда 
				
ИсходящиеДанные  = Новый Структура ("ФизЛицо, ВидДокумента, ДатаВыдачи,");
				
ИсходящиеДанные.Вставить("ФизЛицо", Строка(Выборка.ФизлицоНаименование));
ИсходящиеДанные.Вставить("ВидДокумента", Выборка.ВидДокументаНаименование);
ИсходящиеДанные.Вставить("ДатаВыдачи", Выборка.ДатаВыдачи);			
	////и т.д
				
				
ВыгрузитьПоПравилу( , , ИсходящиеДанные, ,"ДокументыФизическихЛиц");
КонецЕсли;
			
Показать
Прикрепленные файлы:
27. One_Assembler 29.03.22 10:48 Сейчас в теме
(26)Запрос такой....
ВЫБРАТЬ
	КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
	КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Код КАК СотрудникКод,
	КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
	ДокументыФизическихЛицСрезПоследних.Серия КАК Серия,
	ДокументыФизическихЛицСрезПоследних.Номер КАК Номер,
	ДокументыФизическихЛицСрезПоследних.ДатаВыдачи КАК ДатаВыдачи,
	ДокументыФизическихЛицСрезПоследних.СрокДействия КАК СрокДействия,
	ДокументыФизическихЛицСрезПоследних.КемВыдан КАК КемВыдан,
	ДокументыФизическихЛицСрезПоследних.КодПодразделения КАК КодПодразделения,
	ДокументыФизическихЛицСрезПоследних.ВидДокумента.Ссылка КАК ВидДокументаСсылка,
	ДокументыФизическихЛицСрезПоследних.ВидДокумента.Наименование КАК ВидДокументаНаименование,
	КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.Код КАК ФизическоеЛицоКод
ИЗ
	РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних КАК ДокументыФизическихЛицСрезПоследних
		ПО (КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.Ссылка = ДокументыФизическихЛицСрезПоследних.Физлицо.Ссылка)
ГДЕ
	КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.ВАрхиве = ЛОЖЬ И
	КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.Ссылка = &ФизическоеЛицоСсылка

УПОРЯДОЧИТЬ ПО
	КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Наименование
Показать
28. ZergKRSK 129 29.03.22 10:50 Сейчас в теме
(26) 1. в ПКО "ДокументыФизическихЛиц" Истоника нет и быть не может.
2. Ругается на ПКС "Активность". Вы этму самую активность как заполняете? В коде на картинке этого не видно.
29. One_Assembler 29.03.22 10:57 Сейчас в теме
(28)
Ругается на ПКС "Активность".


1. Так.........тут я что то подвис.
2. Даже если отключить, ошибка на след реквизит по списку....(скрин ниже ПКС)
Прикрепленные файлы:
30. ZergKRSK 129 29.03.22 11:05 Сейчас в теме
(29) след. реквизит "ВидДокумента". Тип у него должен быть перечисление, а вы пихаете туда ВидДокумента.Наименование зачем-то. В общем, ошибки детские, тыкать носом в каждую я точно не буду.
31. One_Assembler 29.03.22 11:16 Сейчас в теме
(30)
ВидДокумента.Наименование зачем-то. В общем, ошибки детские, тыкать носом в каждую я точно не буду
Вы про не соответствие запроса и созданной структуры?
32. ZergKRSK 129 29.03.22 11:21 Сейчас в теме
(31) в том числе и про не соответствие типов данных. Да и сам построение запроса оставляет желать лучшего.
33. One_Assembler 29.03.22 11:41 Сейчас в теме
(30) Какое "перечисление"? "Справочник.ВидыДокументовФизическихЛиц."
Прикрепленные файлы:
34. ZergKRSK 129 29.03.22 11:46 Сейчас в теме
(33) да, справочник, я ошибся. Сути не меняет - вы туда строку пихаете зачем-то.
35. One_Assembler 29.03.22 11:47 Сейчас в теме
(34) Я Вас понял..... переделал, но тоже самое. И что там про ИСТОЧНИК, я не понял((

Запросы.ПаспортныеДанныеФизЛиц.УстановитьПараметр("ФизическоеЛицоСсылка", Источник.Физлицо);
			
Выборка = Запросы.ПаспортныеДанныеФизЛиц.Выполнить().Выбрать();
			
Если  Выборка.Следующий() тогда 
				
ИсходящиеДанные  = Новый Структура ("ФизЛицо, ВидДокументаСсылка, ДатаВыдачи, КемВыдан");
				
ИсходящиеДанные.Вставить("ФизЛицо", Выборка.ФизЛицо);
ИсходящиеДанные.Вставить("ВидДокумента", Выборка.ВидДокументаСсылка);
ИсходящиеДанные.Вставить("ДатаВыдачи", Выборка.ДатаВыдачи);	
ИсходящиеДанные.Вставить("ДатаВыдачи", Выборка.КемВыдан);		
	////и т.д
				
				
ВыгрузитьПоПравилу( , , ИсходящиеДанные, ,"ДокументыФизическихЛиц");
КонецЕсли
Показать
36. ZergKRSK 129 29.03.22 11:49 Сейчас в теме
(35) ну надо смотреть ошибки дальше. Только вам, не мне.
37. ZergKRSK 129 29.03.22 11:58 Сейчас в теме
(35)
И что там про ИСТОЧНИК, я не понял((
Прикрепленные файлы:
38. One_Assembler 29.03.22 12:03 Сейчас в теме
(37) Да что не так то? %?№;"%
Вот у меня всё здесь!!!!!!!!!!!%?:?:%?;"?№;\
Прикрепленные файлы:
39. ZergKRSK 129 29.03.22 12:07 Сейчас в теме
(38) я ж на картинках вчера показал рабочий пример. Там прекрасно видно в каком месте используется запрос и куда попадёт информация в ВыгрузитьПоПравилу
40. One_Assembler 31.03.22 11:41 Сейчас в теме
(39) Отладчиком смотрю...........ошибка чтения запроса.
Прикрепленные файлы:
41. nomad_irk 76 31.03.22 11:51 Сейчас в теме
(40)пффф......смотреть необходимо после того как выполнится Выборка.Следующий()
42. ZergKRSK 129 31.03.22 12:22 Сейчас в теме
(40) надо шагнуть чуть дальше, после Следующий() смотреть
43. One_Assembler 31.03.22 12:41 Сейчас в теме
(42) Ребята, ну конечно шагал. Не обращайте на отладчик. Проходил уже всё!
ОШИБКА в выборке , как на скрине..
44. ZergKRSK 129 31.03.22 12:54 Сейчас в теме
(43) выполнить запрос в консоле запросов с теми же параметрами
45. One_Assembler 04.04.22 00:05 Сейчас в теме
(44) Спасибо! Да был касяк.....запрос пустой приходил (есть специфика).
Переписал немного на пустой запрос - ОТКАЗ истина. Но теперь приходит ошибка "Переполнение стека встроенного языка на сервере". В ИСТОЧНИК зацикливается и приходит одно и тоже, либо где то так понимаю рекурсия(((
Процедура ПКО_ПередВыгрузкой_ФизическиеЛица(ФайлОбмена, Источник, ВходящиеДанные, ИсходящиеДанные, ИмяПКО, 
	ПКО, ВыгруженныеОбъекты, Отказ, КлючВыгружаемыхДанных, ЗапоминатьВыгруженные, 
	НеЗамещатьОбъектПриЗагрузке, ВсеОбъектыВыгружены, ТолькоПолучитьУзелСсылки, 
	Приемник, РежимЗаписи, РежимПроведения, НеСоздаватьЕслиНеНайден) Экспорт
	
	Если не Источник.ЭтоГруппа Тогда 
		
		Запросы.ПаспортныеДанныеФизЛиц.УстановитьПараметр("ФизическоеЛицоСсылка", Источник);
		
		Выборка = Запросы.ПаспортныеДанныеФизЛиц.Выполнить();
		
		Если Выборка.Пустой() Тогда
			
			Отказ= ИСТИНА;
		ИНАЧЕ 
			РезультатЗапроса=Выборка.Выбрать();
			Если  РезультатЗапроса.Следующий() тогда 
				
				ИсходящиеДанные  = Новый Структура ("ФизЛицо, ВидДокумента, ДатаВыдачи, КемВыдан,");
				ИсходящиеДанные.ФизЛицо= Источник.Ссылка;
				ЗаполнитьЗначенияСвойств(ИсходящиеДанные, РезультатЗапроса);					
				////и т.д
				
				ВыгрузитьПоПравилу( , , ИсходящиеДанные, ,"ДокументыФизическихЛиц");
			КонецЕсли;	
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры
Показать
Прикрепленные файлы:
46. ZergKRSK 129 04.04.22 04:27 Сейчас в теме
(45) в этой процедуре ничего криминального не заметил
47. One_Assembler 04.04.22 09:33 Сейчас в теме
(46) Спасибо! Но всё равно ошибка старая, что уже возникала.
"Получение элемента по индексу для значения не определено"
Прикрепленные файлы:
48. ZergKRSK 129 04.04.22 10:18 Сейчас в теме
(47) тут только смотреть и разбираться, я по картинке не смогу помочь
3. Sashares 34 28.03.22 10:49 Сейчас в теме
Источник это скорее всего справочник объект, а не ссылка.
И в запросе ФизическоеЛицо.Ссылка - зачем так делать... включите уже голову.
6. soft_wind 28.03.22 11:08 Сейчас в теме
(4)
вот здесь Ссылка нужна,
а выше, в запросе - нет

ЗапросПД.УстановитьПараметр("ФизическоеЛицоСсылка", Источник.Ссылка);
7. One_Assembler 28.03.22 11:12 Сейчас в теме
(6)
ЗапросПД.УстановитьПараметр("ФизическоеЛицоСсылка", Источник.Ссылка);

Нееееееееее....ошибка-"Поле объекта не обнаружено"(Ссылка)
Прикрепленные файлы:
9. ZergKRSK 129 28.03.22 11:14 Сейчас в теме
(7)
Нееееееееее....ошибка-"Поле объекта не обнаружено"(Ссылка)

Ну значит смотреть что у вас в Источнике то ?
8. ZergKRSK 129 28.03.22 11:13 Сейчас в теме
(6) в хелпе пишут:
Источник - Произвольный - выгружаемый объект источник (ссылка или произвольные данные)

Т.е. там должна быть ссылка, да и в типовых правилах мильён раз встречал что обращаются просто Источник
21. svilsa 12 28.03.22 16:00 Сейчас в теме
Тут ошибка точно в строке "ВыгрузитьПоПравилу"
Сначала выгружается просто ФизЛицо, а потом еще раз вызывается правило, но уже в качестве источника у вас РезультатЗапроса. Вот в этот момент и ошибка. Ругается когда вы делаете сравнение ....ФизическоеЛицо.Ссылка = РезультатЗапроса

Похоже надо делать другое правило, чтобы было как в (17)
Оставьте свое сообщение

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