Сравнить строковые значения в запросе

1. user876792 20.07.18 12:37 Сейчас в теме
        "ВЫБРАТЬ
        |   ОсновныеСредства.Ссылка,
        |   ОсновныеСредства.КВД,
        |   ОсновныеСредства.СчетУчета,
        |   ОсновныеСредства.КБК,
        |   ОсновныеСредства.КОСГУСчетаАмортизации,
        |   ИнвентарныеНомераОС.Ссылка КАК ИнвентарныйНомер,  
        |   ИнвентарныеНомераОС.Представление,
        |   ЕПСБУОстатки.КоличествоОстаток,
        |   ЕПСБУДвиженияССубконто.Сумма
        |ИЗ
        |   Справочник.ОсновныеСредства КАК ОсновныеСредства
        |       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ИнвентарныеНомераОС КАК ИнвентарныеНомераОС
        |       ПО ОсновныеСредства.Ссылка = ИнвентарныеНомераОС.ОС
        |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.Остатки(, , , Субконто2 = &Объект) КАК ЕПСБУОстатки
        |       ПО ОсновныеСредства.Ссылка = ЕПСБУОстатки.Субконто2
        |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.ДвиженияССубконто(, , СубконтоДт2 = &Объект, , ) КАК ЕПСБУДвиженияССубконто
        |       ПО ОсновныеСредства.Ссылка = ЕПСБУДвиженияССубконто.СубконтоДт2
        |ГДЕ
        |   ОсновныеСредства.Ссылка = &Объект
        |   И ИнвентарныеНомераОС.Представление = &ИнвентНомер";
        
		Запрос.УстановитьПараметр("Объект", стр.Товар.НаименованиеОбъекта);
        Запрос.УстановитьПараметр("ИнвентНомер", стр.Товар.ИнвентарныйНомер);
		РезультатЗапроса = Запрос.Выполнить();		
		Выборка = РезультатЗапроса.Выбрать();
Показать


Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И ИнвентарныеНомераОС.Представление <<?>>= &ИнвентНомер

Типы строковые.
+
По теме из базы знаний
Найденные решения
4. harmer 1 20.07.18 12:53 Сейчас в теме
Поле Представление
Каждая объектная таблица в информационной базе имеет виртуальное поле - "Представление". Это поле содержит текстовое представление объекта. В запросе возможно получать данное поле точно также как и другие поля таблиц, однако никакие операции с данным полем выполнять нельзя. Данная особенность связана с тем, что это поле является виртуальным, и, на самом деле, при получении данного поля из базы данных, запрос получает несколько полей, а при получении значения поля из результата запроса преобразовывает полученные значения в строку. Таким образом, единственное, что можно сделать с полем "Представление", это получить его в результат запроса.
https://its.1c.ru/db/metod8dev/content/2655/hdoc

Замените поле представление на код или наименование.
Leon75; user876792; +2
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. user869223 20.07.18 12:56 Сейчас в теме
(1)а зачем сравнивать Представление? Сравнивайте реквизит Ссылка - он всегда содержит данные, однозначно определяющие объект.
+
7. user876792 20.07.18 12:56 Сейчас в теме
(6) Как сравнивать Ссылку со строкой?
+
8. user869223 20.07.18 12:59 Сейчас в теме
(6)в данном случае вам нужно сравнивать не наименование справочника "Инвентарные номера", а именно ссылку. Наименования могут совпадать, а ссылка всегда уникальна.
 ИнвентарныеНомераОС.Ссылка = &ИнвентНомер
+
9. user869223 20.07.18 13:01 Сейчас в теме
(8)Вы в табличной части выбираете инвентарный номер или пишете рукой? Если выбираете, то там содержится именно ссылка на объект, а если используете ручной ввод, то тогда зачем справочник Инвентарный номер вообще?
+
12. user876792 20.07.18 13:26 Сейчас в теме
13. user869223 20.07.18 13:39 Сейчас в теме
(12)А если попробовать строковое значение преобразовать в число и сравнивать с кодом из справочника?
Запрос.УстановитьПараметр("ИнвентНомер", Число(стр.Товар.ИнвентарныйНомер));
+
10. spacecraft 20.07.18 13:02 Сейчас в теме
(1) зачем сравнивать с представлением?
Что в "стр.Товар.ИнвентарныйНомер"? Строка или ссылка?
Если строка, то с ИнвентарныеНомераОС.Наименование сравнивать нужно.
+
11. user876792 20.07.18 13:22 Сейчас в теме
(10) Потому что у него тип строковый)
в "стр.Товар.ИнвентарныйНомер" - Строка
тут Основное представление - Код
+
14. spacecraft 20.07.18 13:40 Сейчас в теме
(11) а код строковый тип данных? Именно он соответствует стр.Товар.ИнвентарныйНомер? Тогда с кодом и сравнивать.
(12) "Из ТЗ беру". А как в ТЗ попадает?
user876792; +1
15. user876792 20.07.18 13:52 Сейчас в теме
(14) выгружается из ТЧ документа. С кодом работает
+
2. antz 20.07.18 12:42 Сейчас в теме
Используйте Выразить
+
3. user876792 20.07.18 12:49 Сейчас в теме
(2)
 |ГДЕ
        |   ОсновныеСредства.Ссылка = &Объект
        |   И ВЫРАЗИТЬ(ИнвентарныеНомераОС.Представление КАК СТРОКА(30)) = &ИнвентНомер";


Несовместимые типы "ВЫРАЗИТЬ"
И <<?>>ВЫРАЗИТЬ(ИнвентарныеНомераОС.Представление КАК СТРОКА(30)) = &ИнвентНомер
+
5. mad375 20.07.18 12:53 Сейчас в теме
(3)Длины не совпадают?
может так
|   И ВЫРАЗИТЬ(ИнвентарныеНомераОС.Представление КАК СТРОКА(30)) = ВЫРАЗИТЬ(&ИнвентНомер КАК СТРОКА(30))
+
4. harmer 1 20.07.18 12:53 Сейчас в теме
Поле Представление
Каждая объектная таблица в информационной базе имеет виртуальное поле - "Представление". Это поле содержит текстовое представление объекта. В запросе возможно получать данное поле точно также как и другие поля таблиц, однако никакие операции с данным полем выполнять нельзя. Данная особенность связана с тем, что это поле является виртуальным, и, на самом деле, при получении данного поля из базы данных, запрос получает несколько полей, а при получении значения поля из результата запроса преобразовывает полученные значения в строку. Таким образом, единственное, что можно сделать с полем "Представление", это получить его в результат запроса.
https://its.1c.ru/db/metod8dev/content/2655/hdoc

Замените поле представление на код или наименование.
Leon75; user876792; +2
16. Infector 201 21.07.18 19:58 Сейчас в теме
А представление заменить на "код" или "наименование" не реально?
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот