Ошибка "несовместимые типы ССЫЛКА в запросе" #698594


#0 by valent-jedi
Конфигурация Зарплата и кадры бюджетного учреждения. Цель в том, чтобы при расчете НДФЛ в Регистрации разовых начислений не учитывались вычеты на детей. Сказано - сделано. В модуле документа в процедуре РассчитатьНДФЛ вызывается функция РассчитатьНДФЛ общего модуля ПроведениеРасчетов. Переходим на строчку №4568, там как раз кусочек запроса, который выбирает количество детей у сотрудника. Я туда добавляю следующие строчки: |КОГДА &Регистратор ССЫЛКА Документ.РегистрацияРазовыхНачисленийРаботниковОрганизаций Вроде в регистрации разовых все стало как надо: вычеты на детей не ставятся, даже если они и должны. Но вот если рассчитываем ЗП, например, документом Начисление Зарплаты то получаем ошибку: Гугл пока не помог, сам что-то тоже не разберусь. Регистратор принимает значение Начисление Зарплаты Сотрудникам Организации. Помогите, пожалуйста :)
#1 by Ненавижу 1С
"Регистратор принимает значение Начисление Зарплаты Сотрудникам Организации" это мы узнаем, когда ты покажешь код заполнения параметра
#2 by valent-jedi
Параметр заполняется типовым кодом, там строка: есть еще один параметр, парамРегистратор: Собственно, одно и то же. Ставлю брейкпоинт и вижу, что значение регистратора - Начисление зарплаты бла-бла-бла, а тип Регистратора - ДокументСсылка.НачислениеЗарплатыРаботникамОрганизаций
#3 by Maxus43
Попробуй использовать вместо Ссылка Документ..... ТИПЗНАЧЕНИЯ(&Регистратор) = ТИП(...
#4 by Defender aka LINN
Тип ДокументСсылка.НачислениеЗарплатыРаботникамОрганизаций никогда и ни при каких условиях не может содержать тип ДокументСсылка.РегистрацияРазовыхНачисленийРаботниковОрганизаций. Всегда ваш, К.О.
#5 by valent-jedi
то есть такой трюк не работает, если у операнда составной тип?
#6 by valent-jedi
Спасибо! Вроде помогло, ошибок не выскакивает :) Так насчет ССЫЛКИ - никак, если имеем составной, в данном случае, параметр регистратор?
#7 by Defender aka LINN
Это как из моих слов можно такой вывод сделать, интересно? Ну и составным типом у тебя и не пахнет, если что.
#8 by valent-jedi
ну, в моем случае Регистратор может принимать тип как ДокументСсылка.НачислениеЗарплатыРаботникамОрганизаций, так и ДокументСсылка.РегистрацияРазовыхНачисленийРаботниковОрганизаций, в зависимости от того, из какого документа вызывается функция. В принципе, ошибку свою я понял. Это, наверное, как а = "а", где а может быть как "а", так и 2 :)
#9 by Defender aka LINN
Не может. Регистратор - это ПАРАМЕТР запроса. В момент выполнения запроса он имеет конкретное значение конкретного типа.
#10 by Maxus43
не, ошибка очень странная, должно работать бы
#11 by Maxus43
не, понял, всё правильно
#12 by valent-jedi
не, я понимаю, что в момент выполнения запроса Регистратор принимает конкретно определенный тип. Регистра тор в момент установки параметра может иметь различные типы, так как функция вызывается из разных мест, и, соответственно, переменная Регистратор, которая устанавливается в параметр запроса, может иметь разные типы =) Собственно, Maxus43 спасибо за выход из ситуации, Defender aka LINN спасибо за настройку мозга на нужную волну =)
#13 by Maxus43
Используй ССЫЛКА когда изначально поле составного типа, и проверяемый тип входит в него. типа ГДЕ РегистрНакопленияДенежныеСредсва.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С