Имя: Пароль:
1C
1С v8
Сравнение объекта в документе с регистром сведений
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)У Неопределено не может быть реквизита ФизическоеЛицо. Проблема решена.