Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Сравнение объекта в документе с регистром сведений

Сравнение объекта в документе с регистром сведений
Я
   cdsven
 
23.11.18 - 11:14
Добрый день. Имеется обработка, которая должна сравнивать данные из документа с данными из регистра сведений.  Пожалуйста помогите разобраться в данной проблеме.

При выполнении выдает ошибку:


{Документ.ВедомостьНаВыплатуЗарплатыВБанк.Форма.ФормаДокумента.Форма(1575)}: Значение не является значением объектного типа (Состав)
Запрос.УстановитьПараметр("ФизическоеЛицо", Объект.Состав.ФизическоеЛицо.Выгрузить());   


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

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

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

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



КонецПроцедуры
 
 
   AllJoke
 
1 - 23.11.18 - 11:19
Смотрите отладчиком что такое Состав. И использовать надо ВыгрузитьКолонку();

Запрос.УстановитьПараметр("ФизическоеЛицо", Объект.Состав.ФизическоеЛицо.ВыгрузитьКолонку(<ТутВашаКолонка>));
   Lexey_
 
2 - 23.11.18 - 11:19
(0) так тебе ж платформа уже помогла: "Значение не является значением объектного типа (Состав)"
   AllJoke
 
3 - 23.11.18 - 11:21
   cdsven
 
4 - 23.11.18 - 12:17
(1) посмотрел отладчиком, пишет тип неопределенно
   catena
 
5 - 23.11.18 - 12:26
(4)У Неопределено не может быть реквизита ФизическоеЛицо. Проблема решена.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит Тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует