|
Сравнение многозначного поля регистра с параметром в запросе | ☑ | ||
---|---|---|---|---|
0
YurAnt
28.03.17
✎
09:50
|
Доброго времени суток, господа-форумчане.
Собственно сабж. Платформа 8.3 (8.3.9.2170), Конфа: Итилиум, редакция 4.1 (4.1.01), переписанная. Имеется регистр где измерения документ1 и Документ2 имеют составной тип ДокументСсылка.Релиз, ДокументСсылка.Событие, ДокументСсылка.Инцидент, ДокументСсылка.Проблема, ДокументСсылка.Наряд, ДокументСсылка.Изменение пытаюсь выполнить запрос по регистру и проверить есть ли запись из 2х связанных документов 1-2 или 2-1 т.е. когда документ1 = &СсылкаНаИнцидент1 И Документ2 = &СсылкаНаИнцидент2 ну или наоборот документ2 = &СсылкаНаИнцидент1 И Документ1 = &СсылкаНаИнцидент2 Ошибка при вызове метода контекста (Выполнить) РезультатЗапроса = Запрос.Выполнить(); по причине: {(22, 57)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. (ВЫРАЗИТЬ(ВТТипизация.Документ1 КАК Документ.Инцидент) <<?>>= &СсылкаНаИнцидент1 http://savepic.ru/13410684.png Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВЫРАЗИТЬ(ЕСТЬNULL(СвязанныеДокументы.Документ1, ЗНАЧЕНИЕ(Документ.Инцидент.ПустаяСсылка)) КАК Документ.Инцидент) КАК Документ1, | ВЫРАЗИТЬ(ЕСТЬNULL(СвязанныеДокументы.Документ2, ЗНАЧЕНИЕ(Документ.Инцидент.ПустаяСсылка)) КАК Документ.Инцидент) КАК Документ2 |ПОМЕСТИТЬ ВТТипизация |ИЗ | РегистрСведений.СвязанныеДокументы КАК СвязанныеДокументы |ГДЕ | СвязанныеДокументы.ВидДокумента1 = ""Инцидент"" | И СвязанныеДокументы.ВидДокумента2 = ""Инцидент"" | И СвязанныеДокументы.ВидСвязи = &Основной | И ТИПЗНАЧЕНИЯ(СвязанныеДокументы.Документ1) = ТИП(Документ.Инцидент) | И ТИПЗНАЧЕНИЯ(СвязанныеДокументы.Документ2) = ТИП(Документ.Инцидент) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВЫРАЗИТЬ(ЕСТЬNULL(ВТТипизация.Документ1, ЗНАЧЕНИЕ(Документ.Инцидент.ПустаяСсылка)) КАК Документ.Инцидент), | ВЫРАЗИТЬ(ЕСТЬNULL(ВТТипизация.Документ2, ЗНАЧЕНИЕ(Документ.Инцидент.ПустаяСсылка)) КАК Документ.Инцидент) |ИЗ | ВТТипизация КАК ВТТипизация |ГДЕ | (ВЫРАЗИТЬ(ЕСТЬNULL(ВТТипизация.Документ1, ЗНАЧЕНИЕ(Документ.Инцидент.ПустаяСсылка)) КАК Документ.Инцидент) = &СсылкаНаИнцидент1 | И ВЫРАЗИТЬ(ЕСТЬNULL(ВТТипизация.Документ2, ЗНАЧЕНИЕ(Документ.Инцидент.ПустаяСсылка)) КАК Документ.Инцидент) = &СсылкаНаИнцидент2) | ИЛИ (ВЫРАЗИТЬ(ЕСТЬNULL(ВТТипизация.Документ2, ЗНАЧЕНИЕ(Документ.Инцидент.ПустаяСсылка)) КАК Документ.Инцидент) = &СсылкаНаИнцидент1 | И ВЫРАЗИТЬ(ЕСТЬNULL(ВТТипизация.Документ1, ЗНАЧЕНИЕ(Документ.Инцидент.ПустаяСсылка)) КАК Документ.Инцидент) = &СсылкаНаИнцидент2)"; Запрос.УстановитьПараметр("Основной", Перечисления.ВидыСвязей.Основной); Запрос.УстановитьПараметр("СсылкаНаИнцидент1", СсылкаНаИнцидент1); Запрос.УстановитьПараметр("СсылкаНаИнцидент2", СсылкаНаИнцидент2); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); http://savepic.ru/13427069.png Собственно скрин с бряком, ставлю перед запросом. Параметры и Типы параметров вынес в табло. док объект Обращение - он же инцидент(см чёрный кружок на скрине). То ли я уже перегрелся, то ли что-то упускаю... В момент перед исполнением запроса оба Инцидента существуют. Записи в регистре нет (предположительно по крайней мере сейчас). ну а после запроса начинает отрабатывать уже механизм. Но вот упёрся в ошибку. Типизировал уже вроде всё что мог. В консоли выполняется нормально. В конфигураторе валится в ошибку. В чем может быть проблема? Заранее благодарен, С уважеинем, YurAnt. |
|||
1
YurAnt
28.03.17
✎
09:55
|
В первом запросе уже отбираются только доки нужного типа "инцидент". Там же проверяю их на NULL (а по идее они и должны вернуть нуль - ибо записей нет), т.е. должны вернуть пустую ссылку.
Ну а во второй идет тот же отбор (по хорошему изначально пытался запихать в 1 запрос без ВТ), но уже перерыл достаточно, и натыкался на то что фиксили это типизацией с помещением в ВТ |
|||
2
YurAnt
28.03.17
✎
09:59
|
PS: приведенный код запроса + скрин запроса
отличаются от второй картинки... (во второй я более упрощенный вариант тестил) |
|||
3
Naf2017
28.03.17
✎
10:10
|
у тебя там не ссылки в параметрах, а объекты
|
|||
4
YurAnt
28.03.17
✎
10:14
|
(3) тьфу блин)
Спасибо большущее, слона то я и не заметил) :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |