|
Ошибка "несовместимые типы ССЫЛКА в запросе" | ☑ | ||
---|---|---|---|---|
0
valent-jedi
13.02.14
✎
15:12
|
Конфигурация Зарплата и кадры бюджетного учреждения. Цель в том, чтобы при расчете НДФЛ в Регистрации разовых начислений не учитывались вычеты на детей. Сказано - сделано. В модуле документа в процедуре РассчитатьНДФЛ вызывается функция РассчитатьНДФЛ общего модуля ПроведениеРасчетов. Переходим на строчку №4568, там как раз кусочек запроса, который выбирает количество детей у сотрудника. Я туда добавляю следующие строчки:
|КОГДА &Регистратор ССЫЛКА Документ.РегистрацияРазовыхНачисленийРаботниковОрганизаций | ТОГДА NULL Вроде в регистрации разовых все стало как надо: вычеты на детей не ставятся, даже если они и должны. Но вот если рассчитываем ЗП, например, документом Начисление Зарплаты то получаем ошибку: Несовместимые типы "ССЫЛКА" КОГДА &Регистратор <<?>> ССЫЛКА Документ.РегистрацияРазовыхНачисленийРаботниковОрганизаций Гугл пока не помог, сам что-то тоже не разберусь. Регистратор принимает значение Начисление Зарплаты Сотрудникам Организации. Помогите, пожалуйста :) |
|||
1
Ненавижу 1С
гуру
13.02.14
✎
15:13
|
"Регистратор принимает значение Начисление Зарплаты Сотрудникам Организации"
это мы узнаем, когда ты покажешь код заполнения параметра |
|||
2
valent-jedi
13.02.14
✎
15:17
|
Параметр заполняется типовым кодом, там строка:
Запрос.УстановитьПараметр("Регистратор", Регистратор); есть еще один параметр, парамРегистратор: Запрос.УстановитьПараметр("парамРегистратор", Регистратор); Собственно, одно и то же. Ставлю брейкпоинт и вижу, что значение регистратора - Начисление зарплаты бла-бла-бла, а тип Регистратора - ДокументСсылка.НачислениеЗарплатыРаботникамОрганизаций |
|||
3
Maxus43
13.02.14
✎
15:26
|
Попробуй использовать вместо Ссылка Документ.....
ТИПЗНАЧЕНИЯ(&Регистратор) = ТИП(... |
|||
4
Defender aka LINN
13.02.14
✎
15:29
|
(2) Тип ДокументСсылка.НачислениеЗарплатыРаботникамОрганизаций никогда и ни при каких условиях не может содержать тип ДокументСсылка.РегистрацияРазовыхНачисленийРаботниковОрганизаций.
Всегда ваш, К.О. |
|||
5
valent-jedi
13.02.14
✎
15:33
|
(4) то есть такой трюк не работает, если у операнда составной тип?
|
|||
6
valent-jedi
13.02.14
✎
15:36
|
(3) Спасибо! Вроде помогло, ошибок не выскакивает :) Так насчет ССЫЛКИ - никак, если имеем составной, в данном случае, параметр регистратор?
|
|||
7
Defender aka LINN
13.02.14
✎
15:37
|
(5) Это как из моих слов можно такой вывод сделать, интересно?
Ну и составным типом у тебя и не пахнет, если что. |
|||
8
valent-jedi
13.02.14
✎
15:44
|
(7) ну, в моем случае Регистратор может принимать тип как ДокументСсылка.НачислениеЗарплатыРаботникамОрганизаций, так и ДокументСсылка.РегистрацияРазовыхНачисленийРаботниковОрганизаций, в зависимости от того, из какого документа вызывается функция. В принципе, ошибку свою я понял. Это, наверное, как а = "а", где а может быть как "а", так и 2 :)
|
|||
9
Defender aka LINN
13.02.14
✎
15:46
|
(8) Не может. Регистратор - это ПАРАМЕТР запроса. В момент выполнения запроса он имеет конкретное значение конкретного типа.
|
|||
10
Maxus43
13.02.14
✎
15:46
|
(8) не, ошибка очень странная, должно работать бы
|
|||
11
Maxus43
13.02.14
✎
15:49
|
не, понял, всё правильно
|
|||
12
valent-jedi
13.02.14
✎
15:53
|
(9) не, я понимаю, что в момент выполнения запроса Регистратор принимает конкретно определенный тип. Регистра тор в момент установки параметра может иметь различные типы, так как функция вызывается из разных мест, и, соответственно, переменная Регистратор, которая устанавливается в параметр запроса, может иметь разные типы =)
Собственно, Maxus43 спасибо за выход из ситуации, Defender aka LINN спасибо за настройку мозга на нужную волну =) |
|||
13
Maxus43
13.02.14
✎
15:59
|
(12) Используй ССЫЛКА когда изначально поле составного типа, и проверяемый тип входит в него.
типа ГДЕ РегистрНакопленияДенежныеСредсва.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |