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

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


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

Похоже надо делать другое правило, чтобы было как в (17)
Оставьте свое сообщение
Вакансии
1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 100 000 руб.
Временный (на проект)

Разработчик 1С
Москва
зарплата от 150 000 руб.
Полный день

Программист
Санкт-Петербург
зарплата от 180 000 руб. до 240 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб. до 250 000 руб.
Полный день