|
Сравнение объекта в документе с регистром сведений | ☑ | ||
---|---|---|---|---|
0
cdsven
23.11.18
✎
11:14
|
Добрый день. Имеется обработка, которая должна сравнивать данные из документа с данными из регистра сведений. Пожалуйста помогите разобраться в данной проблеме.
При выполнении выдает ошибку: {Документ.ВедомостьНаВыплатуЗарплатыВБанк.Форма.ФормаДокумента.Форма(1575)}: Значение не является значением объектного типа (Состав) Запрос.УстановитьПараметр("ФизическоеЛицо", Объект.Состав.ФизическоеЛицо.Выгрузить()); &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи, МестоВыплаты, ЗарплатныйПроект, ИскомыеСтроки, ФизическоеЛицо, Состав, Объект) Запрос = Новый Запрос; Запрос.Текст = ("ВЫБРАТЬ | КадроваяИсторияСотрудников.ФизическоеЛицо КАК ФизическоеЛицо, | КадроваяИсторияСотрудников.Организация КАК Организация, | КадроваяИсторияСотрудников.Подразделение КАК Подразделение, | КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник |ПОМЕСТИТЬ ВТСотрудники |ИЗ | РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников |ГДЕ | КадроваяИсторияСотрудников.ФизическоеЛицо В (&ФизическоеЛицо) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.НомерЛицевогоСчета КАК НомерЛицевогоСчета, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.ЗарплатныйПроект КАК ЗарплатныйПроект, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.Банк КАК Банк |ПОМЕСТИТЬ ВТЛицевыеСчета |ИЗ | РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.СрезПоследних КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ ВТСотрудники КАК ВТСотрудники | ПО ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.ФизическоеЛицо = ВТСотрудники.ФизическоеЛицо |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | МестаВыплатыЗарплатыСотрудников.ФизическоеЛицо КАК ФизическоеЛицо, | ЕСТЬNULL(МестаВыплатыЗарплатыСотрудников.МестоВыплаты, ЕСТЬNULL(МестаВыплатыЗарплатыПодразделений.МестоВыплаты, МестаВыплатыЗарплатыОрганизаций.МестоВыплаты)) КАК МестоВыплаты |ПОМЕСТИТЬ ВТМестаВыплаты |ИЗ | ВТСотрудники КАК ВТСотрудники | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаВыплатыЗарплатыСотрудников КАК МестаВыплатыЗарплатыСотрудников | ПО (МестаВыплатыЗарплатыСотрудников.ФизическоеЛицо = ВТСотрудники.ФизическоеЛицо) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаВыплатыЗарплатыОрганизаций КАК МестаВыплатыЗарплатыОрганизаций | ПО (МестаВыплатыЗарплатыОрганизаций.Организация = ВТСотрудники.Организация) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаВыплатыЗарплатыПодразделений КАК МестаВыплатыЗарплатыПодразделений | ПО (МестаВыплатыЗарплатыПодразделений.Подразделение = ВТСотрудники.Подразделение) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТСотрудники.ФизическоеЛицо КАК ФизическоеЛицо, | ВТМестаВыплаты.МестоВыплаты КАК МестоВыплаты, | ВТЛицевыеСчета.НомерЛицевогоСчета КАК НомерЛицевогоСчета, | ВТЛицевыеСчета.ЗарплатныйПроект КАК ЗарплатныйПроект, | ВТЛицевыеСчета.Банк КАК Банк |ИЗ | ВТСотрудники КАК ВТСотрудники | ЛЕВОЕ СОЕДИНЕНИЕ ВТМестаВыплаты КАК ВТМестаВыплаты | ПО ВТСотрудники.ФизическоеЛицо = ВТМестаВыплаты.ФизическоеЛицо | ЛЕВОЕ СОЕДИНЕНИЕ ВТЛицевыеСчета КАК ВТЛицевыеСчета | ПО ВТСотрудники.ФизическоеЛицо = ВТЛицевыеСчета.ФизическоеЛицо"); Запрос.УстановитьПараметр("ФизическоеЛицо", Объект.Состав.ФизическоеЛицо.Выгрузить()); Выборка = Запрос.Выполнить().Выбрать(); пока Выборка.Следующий() Цикл Если объект.ЗарплатныйПроект <> Выборка.МестоВыплаты тогда Отказ = Истина; Сообщить("Карта не используется!" + Выборка.ФизическоеЛицо); ИначеЕсли ИскомыеСтроки = Объект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо) тогда Для каждого ИскомаяСтрока из ИскомыеСтроки Цикл Если ИскомаяСтрока.НомерЛицевогоСчета <> Выборка.НомерЛицевогоСчета Тогда Отказ = Истина; Сообщить("Карта не используется!" + ИскомаяСтрока.НомерЛицевогоСчета); КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; //Возврат; КонецПроцедуры |
|||
1
AllJoke
23.11.18
✎
11:19
|
Смотрите отладчиком что такое Состав. И использовать надо ВыгрузитьКолонку();
Запрос.УстановитьПараметр("ФизическоеЛицо", Объект.Состав.ФизическоеЛицо.ВыгрузитьКолонку(<ТутВашаКолонка>)); |
|||
2
Lexey_
23.11.18
✎
11:19
|
(0) так тебе ж платформа уже помогла: "Значение не является значением объектного типа (Состав)"
|
|||
3
AllJoke
23.11.18
✎
11:21
|
||||
4
cdsven
23.11.18
✎
12:17
|
(1) посмотрел отладчиком, пишет тип неопределенно
|
|||
5
catena
23.11.18
✎
12:26
|
(4)У Неопределено не может быть реквизита ФизическоеЛицо. Проблема решена.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |