Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/165: Рейтинг темы: голосов - 165, средняя оценка - 4.62
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 103
1C 8.x

Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых тип

08.11.2016, 16:44. Показов 33149. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех, написал запрос в отладчике печатной формы, все нужные данные он мне показывает.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Запрос = Новый Запрос;                                                           
                Запрос.Текст = "ВЫБРАТЬ
                               |              ПОДСТРОКА(КонтактнаяИнформация.Представление, 0, 50) КАК Поле1
                               |ИЗ
                               |              РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                               |                              ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаКонтрагентов КАК КонтактныеЛицаКонтрагентов
                               |                              ПО КонтактнаяИнформация.Объект = КонтактныеЛицаКонтрагентов.Ссылка
                               |ГДЕ
                               |              КонтактнаяИнформация.Тип = &Тип
                               |              И КонтактныеЛицаКонтрагентов.Владелец = &Владелец";                                 
                Запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
                Запрос.УстановитьПараметр("Владелец",СсылкаНаОбъект);
                //Запрос.УстановитьПараметр("Вид",Справочники.ВидыКонтактнойИнформации.АдресЭлектроннойПочтыКонтрагентаДляОбменаДокументами);                                               
                Результат = Запрос.Выполнить();        
                Если Результат.Пустой() Тогда                                              
                               Сообщить("Данные не заполнены.");                              
                Иначе Выборка = Результат.Выбрать();                                           
                               Если Выборка.Следующий() Тогда                                     
                                               Сообщить(Выборка.Поле1);
                               КонецЕсли;       
                КонецЕсли;
Но как только подставляю этот код в форму списка контрагентов в процедуру, то получаю ошибку...
Тип у "Владелец" - СправочникСсылка.Контрагенты.

Подсказать можете, как исправить данную ошибку?
Миниатюры
Неверные параметры в операции сравнения. Нельзя сравнивать поля  неограниченной длины и поля несовместимых тип   Неверные параметры в операции сравнения. Нельзя сравнивать поля  неограниченной длины и поля несовместимых тип   Неверные параметры в операции сравнения. Нельзя сравнивать поля  неограниченной длины и поля несовместимых тип  

0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.11.2016, 16:44
Ответы с готовыми решениями:

Нельзя сравнить поля неограниченной длины и несовместимых типов
Всем ХАЙ)) Тут такое дело: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Док.Номенклатура КАК Номенклатура, ...

Тип поля серийного номера большой длины
Добрый день, Подскажите какой лучше/правильнее выбрать тип поля для серийного номера длинной 19 символов? т.е. серийный номер я получаю...

Увеличить даты из поля дата на основании поля тип и вывести в третье поле
В поле тип может быть несколько вариантов и в зависимости от значения увеличивать дату. Если тип = 1, увеличиваем на 10 дней, если тип =...

27
Эксперт 1С
 Аватар для GreenkA
3065 / 2012 / 525
Регистрация: 25.06.2009
Сообщений: 6,964
08.11.2016, 17:15
Neophyte1C, а что у вас в СсылкаНаОбъект? там такой же тип? - СправочникСсылка.Контрагенты.
0
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 103
08.11.2016, 17:17  [ТС]
GreenkA, Да, СсылкаНаОбъект - СправочникСсылка.Контрагенты.
0
Эксперт 1С
 Аватар для GreenkA
3065 / 2012 / 525
Регистрация: 25.06.2009
Сообщений: 6,964
08.11.2016, 17:25
Neophyte1C, так, а почему я вижу у вас в коде это
1C
1
Запрос.УстановитьПараметр("Владелец",СсылкаНаОбъект);
а на скрине в модуле какая-то чушь - что за "Справочники.КонтактныеЛицаКонтрагентов" ?

Добавлено через 36 секунд
сравните код на скрине и текстовый выше - они разные. К чему бы это?

Добавлено через 4 минуты

Не по теме:

Кстати, по поводу скрина с текстом - изучите правила форума. П.5.18:

Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.

1
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 103
08.11.2016, 17:29  [ТС]
GreenkA, В коде СсылкаНаОбъект - код в отладчике, а то что на скрине, код уже в справочнике формы списка, поэтому заменяю СсылкаНаОбъект на Справочники.КонтактныеЛицаКонтрагентов.
Сделал так:

1C
1
Запрос.УстановитьПараметр("Владелец",Справочники.Контрагенты);
Но всё равно ошибку получаю...

Не по теме:

Буду знать на будущее, сильно не бейте...))

0
Эксперт 1С
 Аватар для GreenkA
3065 / 2012 / 525
Регистрация: 25.06.2009
Сообщений: 6,964
08.11.2016, 17:29

Не по теме:

Neophyte1C, да как так-то:wall:


должна же быть строка:
1C
1
Запрос.УстановитьПараметр("Владелец",СсылкаНаОбъект);
Вам надо установить в параметр один конкретный элемент.
0
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 103
08.11.2016, 17:30  [ТС]
GreenkA, чуть позже проверю...
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
08.11.2016, 22:49
У вас используется левое соединение, а таблица КонтактныеЛицаКонтрагентов у вас справа, в случае когда соединение не происходит, то есть в поле Объект таблицы Контактная информация не контактное лицр, а ссылка другого типа, поле КонтактныеЛицаКонтрагентов.Владелец равно NULL и сравнивать с &Владелец его нельзя, поэтому либо сделайте внутреннее соединение, либо условие

И КонтактныеЛицаКонтрагентов.Владелец = &Владелец

перенесите выше в блок ПО
0
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 103
09.11.2016, 10:17  [ТС]
GreenkA, renat_dmitriev, Если делаю так, то всё равно получаю ту же самую ошибку...

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
СсылкаНаОбъект = Справочники.Контрагенты;
    
    Запрос = Новый Запрос;             
    Запрос.Текст = "ВЫБРАТЬ
                   |    ПОДСТРОКА(КонтактнаяИнформация.Представление, 0, 100) КАК Поле1
                   |ИЗ
                   |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаКонтрагентов КАК КонтактныеЛицаКонтрагентов
                   |        ПО КонтактнаяИнформация.Объект = КонтактныеЛицаКонтрагентов.Ссылка
                   |        И КонтактныеЛицаКонтрагентов.Владелец = &Владелец
                   |ГДЕ
                   |    КонтактнаяИнформация.Тип = &Тип";
                   //|  И КонтактныеЛицаКонтрагентов.Владелец = &Владелец";          
    Запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
    Запрос.УстановитьПараметр("Владелец",СсылкаНаОбъект);         
    Результат = Запрос.Выполнить(); 
    Если Результат.Пустой() Тогда           
        Сообщить("Данные не заполнены.");      
    Иначе Выборка = Результат.Выбрать();            
        Если Выборка.Следующий() Тогда         
            Сообщить(Выборка.Поле1);
        КонецЕсли; 
    КонецЕсли;
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
09.11.2016, 10:28
Neophyte1C, Я не обратил внимание "СсылкаНаОбъект = Справочники.Контрагенты;"

В чем смысл этого? Вы чего хотите добиться этим?

Добавлено через 34 секунды
То есть что за данные вы пытаетесь получить?
0
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 103
09.11.2016, 10:33  [ТС]
renat_dmitriev, повторюсь, если выполняется код в заголовке темы в отладчике внешней формы, то я получаю сообщением адрес электронной почты контактного лица контрагента (1-ый рисунок в заголовке темы это отображает).
Тип у СсылкаНаОбъект - СправочникСсылка.Контрагенты

Но как только я подставляю код в процедуру формы списка справочника контрагенты, прописывая для

СсылкаНаОбъект = СправочникСсылка.Контрагенты

То получаю ошибку, показанную в 3-ем рисунке заголовка темы.
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
09.11.2016, 10:47
Neophyte1C, Еще раз - в чем смысл этого отбора "КонтактныеЛицаКонтрагентов.Владелец = &Владелец", что вы пытаетесь им отфильтровать? Потому что во Владелец по логике должна быть ссылка на конкретного контрагента, когда вы присваиваете Справочники.Контрагенты, то есть значение типа СправочникиМенеджер, это вообще не имеет никакого программного или логического смысла.

Посему пока вы не ответите простым русским языком чего вы хотите добиться этой фильтрацией, никто ничем вам помочь здесь не сможет.
0
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 103
09.11.2016, 11:33  [ТС]
renat_dmitriev, объясню, на следующем рисунке показано, что я открываю нужного мне контрагента (1.), где перехожу во вкладку "Контакты", нахожу контактное лицо контрагента (2.), открываю его (3.) и вижу адрес dsdcs@dsc.r, который мне и надо вывести, вывожу запросом в заголовке темы через отладчик.

А следующим рисунком показан реквизит Владелец, к чему он относится и почему я его подставляю в условие.
В табло-1 показаны данные параметров.
Миниатюры
Неверные параметры в операции сравнения. Нельзя сравнивать поля  неограниченной длины и поля несовместимых тип   Неверные параметры в операции сравнения. Нельзя сравнивать поля  неограниченной длины и поля несовместимых тип  
0
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 103
09.11.2016, 11:37  [ТС]
renat_dmitriev, Весь этот рабочий код переношу в процедуру формы списка Справочники.Контрагенты и получаю ошибку.
Поэтому у меня возник вопрос...
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
09.11.2016, 11:45
Neophyte1C,

Соединение с таблицей КонтактныеЛицаКонтрагентов вообще абсолютно бессмысленно. Если вы хотите выбрать контактную информацию определенного типа по конкретному контрагенту, достаточно обращения к таблице контактной информации


1C
1
2
3
4
5
6
7
8
9
10
11
12
    Запрос = Новый Запрос;              
    Запрос.Текст = "ВЫБРАТЬ
                   |    КонтактнаяИнформация.Представление
                   |ИЗ
                   |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                   |       
                   |ГДЕ
                   |    КонтактнаяИнформация.Тип = &Тип
                   |    И КонтактнаяИнформация.Объект ССЫЛКА Справочник.КонтактныеЛицаКонтрагентов
                   |    И ВЫРАЗИТЬ(КонтактнаяИнформация.Объект КАК Справочник.КонтактныеЛицаКонтрагентов).Владелец = &Контрагент";
 
Запрос.УстановитьПараметр("Контрагент", ТутДолжнаБытьСсылкаНаВашегоКонтрагента);
Только так и никак иначе. И пока вы будете пихать Справочники.Контрагенты вместо ссылки на ООО Лена, у вас ничего никогда не выйдет.

Добавлено через 1 минуту
Цитата Сообщение от Neophyte1C Посмотреть сообщение
Весь этот рабочий код переношу в процедуру формы списка Справочники.Контрагенты и получаю ошибку.
Поэтому у меня возник вопрос...
Если этот код в процедуре формы списка, то

1C
1
Запрос.УстановитьПараметр("Контрагент", СправочникСписок.ТекущаяСтрока);
программа выведет данные по текущей строке списка.
1
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 103
09.11.2016, 11:52  [ТС]
renat_dmitriev, прописал так:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Запрос = Новый Запрос;             
    Запрос.Текст = "ВЫБРАТЬ
                   |    ПОДСТРОКА(КонтактнаяИнформация.Представление, 0, 100) КАК Поле1
                    |ИЗ
                   |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                   |       
                   |ГДЕ
                   |    КонтактнаяИнформация.Тип = &Тип
                   |    И КонтактнаяИнформация.Объект ССЫЛКА Справочник.КонтактныеЛицаКонтрагентов
                   |    И ВЫРАЗИТЬ(КонтактнаяИнформация.Объект КАК Справочник.КонтактныеЛицаКонтрагентов).Владелец = &Контрагент";          
    Запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
    Запрос.УстановитьПараметр("Контрагент", СправочникСписок.ТекущаяСтрока);         
    Результат = Запрос.Выполнить(); 
    Если Результат.Пустой() Тогда           
        Сообщить("Данные не заполнены.");      
    Иначе Выборка = Результат.Выбрать();            
        Если Выборка.Следующий() Тогда         
            Сообщить(Выборка.Поле1);
        КонецЕсли; 
    КонецЕсли;
Получаю ошибку:
{Справочник.Контрагенты.Форма.ФормаСписк а.Форма(613)}: Поле объекта не обнаружено (ТекущаяСтрока)
Запрос.УстановитьПараметр("Контрагент", СправочникСписок.ТекущаяСтрока);
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
09.11.2016, 11:54
1C
1
Запрос.УстановитьПараметр("Контрагент", ЭлементыФормы.СправочникСписок.ТекущаяСтрока);
1
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 103
09.11.2016, 11:57  [ТС]
renat_dmitriev, ответил так: Данные не заполнены.
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
09.11.2016, 12:05
Neophyte1C, Посмотрите в отладчике ЭлементыФормы.СправочникСписок.ТекущаяСт рока чему равна?
0
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 103
09.11.2016, 12:11  [ТС]
renat_dmitriev, СправочникСсылка.Контрагенты

Странно, вот сейчас отобразил адрес: dsdcs@dsc.r

Благодарю за помощь, дальше буду копать код...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.11.2016, 12:11
Помогаю со студенческими работами здесь

Сумма всех чисел поля, тип поля float.
Здравствуйте, я недавно начал изучать php и сейчас столкнулся с такой вот проблемой. В общем есть таблица в БД (называется она...

Дополнительные поля (Тип поля: список)
На сайте при добавлении имеется раздел "Выбор плеера" Значение поля (player) При нажатии вылазит список плееров. Каким кодом нужно...

EasyTable - неверные данные для поля TIME
что означает это сообщение? использовал базу данных EasyTable.

Как можно сравнивать поля двух подчиненных форм?
У меня есть две подчиненные формы, расположенные рядышком. В одной в поле со списком выбирается отец, во второй - мать. Ниже расположены...

Найти работу поля, разность потенциалов на концах участка, напряженность поля, объемную плотность энергии поля
Электрон разгоняется однородным полем на участке 10^(-2) см до скорости 4×10^6 м/с. Найти: 1) работу поля; 2) разность...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru