Содержание:
1. Несоответствие типов данных
2. Ошибка внутри таблицы в запросе
3. Причина ошибки внутри команды
Приветствую, коллеги! В данной статье рассмотрим понятие и описание типа данных и переменных в системе 1С версии 8.3. Также поговорим о распространенной ошибке «Несоответствие типов», изложим инструкцию с по ее устранению.
1. Несоответствие типов данных
Тип – это характеристика у значения, которая определяет поведение и свойства, которые имеет данное значение.
В командах внутри системы 1С параметры имеют некую специальную очерёдность, а также все параметры имеют ссылку на данные, которые связаны с каким-либо типом. В случае, когда какой-то из параметров находится в неположенном месте, либо название не соответствует типу, выполняются невозможные действия для конкретного типа – появляется сообщение, в котором говорится о несоответствии типов данных (показано на скриншоте ниже):

Рис. 1 Сообщение об ошибке несоответствии типов
Чаще всего данная неполадка возникает, когда при написании запроса внутри команды не верно указывают параметры. Исправление подобной ошибки производится при помощи изменения типа передаваемого параметра или используемой переменной на правильный тип данных.
2. Ошибка внутри таблицы в запросе
Рассмотрим пример: при чтении цен из номенклатуры согласно регистру данных «Цены номенклатуры» с общего внешнего отчёта всплывает ошибка «Неоднозначное поле «ТипЦен.Номенклатура».

Рис. 2 Ошибка Неоднозначное поле
Видим, что в окне с сообщением о неполадке указано место в коде, где возникла ошибка несоответствия типов: «Параметр номер «1», в строчке вида:
«РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.
Чтобы устранить данную ошибку в первую очередь откроем конфигурацию с данным отчётом и найдем внутри кода с формой строчку, которая была приведена выше:

Рис. 3 Исправление ошибки несоответствия типов (Параметр номер 1)
При помощи «Синтаксис-Помощника», в меню конфигурации 1С можно сверить, насколько правильно была написана команда:

Рис. 4 Проверка написания команды с помощью Синтаксис-Помощника
Согласно описанию, в команде «СрезПоследних» находится два параметра: «Отбор» и «Период».
В случае, когда параметр «Период» не был указан, в данной команде будет пустое поле, а после запятой будет написан параметр для отбора. Для нашего примера этим параметром будет «ТипЦен». После правок команда видоизменится так: «СрезПоследних(,ТипЦен = &ТипЦен).

Рис. 5 Исправление команды СрезПоследних
После того как команда СрезПоследних была исправлена, стоит снова сформировать отчёт из «Главное меню → Файл → Открыть».
3. Причина ошибки внутри команды
Имеем такую ошибку: когда происходит поиск вариантов ссылок на контрагента в отчёте системы 1С, то возникает ошибка «Несоответствие типов (параметр номер «2»), как на скриншоте ниже:

Рис. 6 Несоответствие типов (параметр номер «2»)
В системе 1С указано то место, где произошла неполадка – это недопустимый параметр номер 2, если кликнуть на кнопку «ERROR». Чтобы её исправить нужно запустить отчёт в конфигураторе системы 1С, далее ищем форму строчки, в которой написана команда «НайтиПоСсылкам», внутри модуля.

Рис. 7 Команда НайтиПоСсылкам внутри модуля
Можно проверить верность того, как написана команда при помощи «Синтаксис-Помощника» в панели меню системы 1С, кнопка будет выделена:

Рис. 8 Команда НайтиПоСсылкам в Синтаксис-Помощнике
По описанию следует: в команде «НайтиПоСсылкам» находится такие четыре параметра: СписокСсылок, ИсключитьОбъекты, ВключитьОбъекты и ОбластьПоиска.
В параметре с названием «ОбластьПоиска» будет тип «массив», в примере указана единица. Параметр «ОбластьПоиска» — не является обязательным, так что команда, которую исправили будет иметь следующий новый вид: НайтиПоСсылкам(МассивПоиска, , , МассивИсключений).

Рис. 9 Тип массив в НайтиПоСсылкам
Далее запускаем наш отчёт в системе 1С.
После наших действий команда работает исправно и ошибки нет.

Рис. 10 Проверка на наличие ошибок в системе конфигурации 1С
В данной статье было рассмотрено как устранить ошибку несоответствия типов в 1С. На примерах была устранена эта ошибка для запроса и для команды. По данному алгоритму можно всегда устранять данную ошибку.
Специалист компании «Кодерлайн»
Айдар Фархутдинов
Несоответствие типов 1С
Ошибка по причине Несоответствие типов в 1С 8.3 связана с передачей параметров в командах и запросах 1С.
Изучив статью, вы:
- ознакомитесь с порядком исправления ошибки в запросе и командах 1С и узнаете, как исправить;
- получите два внешних отчета, демонстрирующих ошибочный и правильный коды.
В какой момент выходит ошибка
Как правило, параметры в командах 1С идут в определенной очередности и ссылаются на данные конкретного типа. Ошибка в указании параметра не на том месте или не того типа приводит к появлению сообщения о несоответствии типов:

Исправляется подобная ошибка восстановлением правильной последовательности в строке параметров команды или указанием нужного типа данных Ошибка 1С Несоответствие типов наиболее часто появляется при написании запросов и при некорректном указании параметров команды.
Рассмотрим причины ее возникновения и исправление на конкретном примере.
Ошибка в таблице запроса
При чтении цен номенклатуры по регистру сведений Цены номенклатуры из внешнего отчета появляется ошибка Неоднозначное поле «ТипЦен.Номенклатура».

В окне сообщений уже указано место возникновения ошибки: Несоответствие типов Параметр номер «1» в строке Регистр сведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.
Для исправления ошибки необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы указанную строчку.

Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1 С Предприятие:


Из описания видно, что команда СрезПоследних имеет 2 параметра:
- Период;
- Отбор.
Если параметр Период не указывается, место в команде остается пустым, а через запятую указывается параметр отбора, в нашем случае: ТипЦен. Исправленная команда выглядит следующим образом: СрезПоследних(, ТипЦен = &ТипЦен ).

После исправления команды запустите отчет в 1 С Бухгалтерия по кнопке Главное меню — Файл — Открыть:

Теперь отчет формируется правильно!

Исправление ошибки в команде 1С
При поиске ссылок на контрагента в отчете 1С появляется ошибка Несоответствие типов (параметр номер 2):

1С сообщает место ошибки — Параметр номер 2 при нажатии кнопки ERROR.
Для ее исправления необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы строчку с командой НайтиПоСсылкам.

Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1С:


Из описания идно, что команда НайтиПоСсылкам имеет 4 параметра:
- СписокСсылок;
- ОбластьПоиска;
- ВключитьОбъекты;
- ИсключитьОбъекты.
Параметр ОбластьПоиска имеет тип «массив», а в нашем примере указано число 1: НайтиПоСсылкам(МассивПоиска, 1, , МассивИсключений). Область поиска — необязательный параметр, поэтому исправленная команда может выглядеть следующим образом: НайтиПоСсылкам(МассивПоиска, , , МассивИсключений).

После исправления команды запустите внешний отчет в 1С по кнопке Главное меню — Файл — Открыть:

Теперь команда поиска ссылок на контрагента отрабатывает правильно.

Вот так можно получить ошибку 1С Несоответствие типов в 1С, поэтому контролируйте правильность указания параметров в запросах и командах 1С в Синтаксис-Помощнике!
Заказать консультацию
По этой или иной ошибке Вы можете обратиться к нашим специалистам, мы Вам поможем решить Вашу проблему.
17.08.22 — 10:28
Ребята нужно помощь, скажите куда копать. Сегодня пользователи при входе в 1с (Торговля 11.5) увидели такое сообщение (Несоответствие типов (Параметр номер 1)) в 1с входит, но при работе с различными документами частенько выпадает такая же ошибка.
в журнале регистрации нашел расшифровку этой ошибки —
Несоответствие типов (параметр номер ‘1’)
{Справочник.НаборыДополнительныхРеквизитовИСведений.МодульМенеджера(320)}:
НаборыСвойств[СвойстваНабора.Ссылка] = Новый ФиксированнаяСтруктура(НаборыСвойств[СвойстваНабора.Ссылка]);
по причине:
Несоответствие типов (параметр номер ‘1’)
С базой ничего не делали, не обновляли, вчера пользователи работали все было хорошо.
Кэш чистили, не помогло. Предполагаю что и Тестирование и исправление не поможет, (но могу и ошибаться, конечно же).
Почему вылазит ошибка не могу понять.
Функция ПредопределенныеНаборыСвойств() Экспорт
ДеревоНаборов = Новый ДеревоЗначений;
ДеревоНаборов.Колонки.Добавить(«Имя»);
ДеревоНаборов.Колонки.Добавить(«ЭтоГруппа», Новый ОписаниеТипов(«Булево»));
ДеревоНаборов.Колонки.Добавить(«Используется»);
ДеревоНаборов.Колонки.Добавить(«Идентификатор»);
ИнтеграцияПодсистемБСП.ПриПолученииПредопределенныхНаборовСвойств(ДеревоНаборов);
УправлениеСвойствамиПереопределяемый.ПриПолученииПредопределенныхНаборовСвойств(ДеревоНаборов);
НаименованияНаборовСвойств = УправлениеСвойствамиСлужебный.НаименованияНаборовСвойств();
Наименования = НаименованияНаборовСвойств[ТекущийЯзык().КодЯзыка];
НаборыСвойств = Новый Соответствие;
Для Каждого Набор Из ДеревоНаборов.Строки Цикл
СвойстваНабора = СвойстваНабора(НаборыСвойств, Набор);
Для Каждого ДочернийНабор Из Набор.Строки Цикл
СвойстваДочернегоНабора = СвойстваНабора(НаборыСвойств, ДочернийНабор, СвойстваНабора.Ссылка, Наименования);
СвойстваНабора.ДочерниеНаборы.Вставить(ДочернийНабор.Имя, СвойстваДочернегоНабора);
КонецЦикла;
СвойстваНабора.ДочерниеНаборы = Новый ФиксированноеСоответствие(СвойстваНабора.ДочерниеНаборы);
НаборыСвойств[СвойстваНабора.Имя] = Новый ФиксированнаяСтруктура(НаборыСвойств[СвойстваНабора.Имя]);
НаборыСвойств[СвойстваНабора.Ссылка] = Новый ФиксированнаяСтруктура(НаборыСвойств[СвойстваНабора.Ссылка]);
КонецЦикла;
Возврат Новый ФиксированноеСоответствие(НаборыСвойств);
1 — 17.08.22 — 10:30
Смотрите чтобы в именах формул доп. реквизитов и свойств не было всяких левых символов, скобок, запятых и прочего.
2 — 17.08.22 — 10:30
у тебя несоответствие параметров, ставь точку останова и смотри — где корявка
3 — 17.08.22 — 10:31
Могут быть еще битые ссылки.
4 — 17.08.22 — 10:33
(3) т.е. все же сделать Тестирование и Исправление ?
5 — 17.08.22 — 11:14
Кеш?
6 — 17.08.22 — 11:17
точку останова на строке 320 или чуть выше и смотреть внимательно что чему присваивается
7 — 17.08.22 — 11:18
Остановиться по ошибке
8 — 17.08.22 — 11:20
Смотреть функцию СвойстваНабора не предлагали ещё?
9 — 17.08.22 — 11:21
(5) Кэш чистили, базу из списка удалить и заново прописать делали. Ошибка сохраняется
10 — 17.08.22 — 11:23
(9) Кеш серверный почистить если не забыли — то норм. Отладка в месте Остановиться по ошибке
11 — 17.08.22 — 11:24
(9) «базу из списка удалить и заново прописать делали.»
В оснастке сервера 1с, надеюсь, а не в списке баз на клиенте?
12 — 17.08.22 — 11:26
(11) по сути вся процедура делалась на сервере, у пользователей ничего не делалось
13 — 17.08.22 — 11:27
(10) ну тогда буду отладчиком ловить ошибку, думаю, что какой то доп реквизит новый появился и его как то коряво написали или написали с ошибкой
14 — 17.08.22 — 11:30
(12) Если у пользователя ничего не делалось, то кеш у пользователя кривой и остался
claus66
15 — 17.08.22 — 15:32
Спасибо за наводки! Очень помогли.
(14) — Приблизительно так и получилось, где то остался хвостик, тупо закоментил:
СвойстваНабора.ДочерниеНаборы = Новый ФиксированноеСоответствие(СвойстваНабора.ДочерниеНаборы);
НаборыСвойств[СвойстваНабора.Имя] = Новый ФиксированнаяСтруктура(НаборыСвойств[СвойстваНабора.Имя]);
НаборыСвойств[СвойстваНабора.Ссылка] = Новый ФиксированнаяСтруктура(НаборыСвойств[СвойстваНабора.Ссылка]);
КонецЦикла;
Далее зашел в программу, далее вышел из 1с, снял комент и все заработало.
Еще раз спасибо !
Столкнулись с такой вот интересной ошибкой — при попытке открыть контрагента в ERP вываливается ошибка:
Несоответствие типов (параметр номер ‘1’)
И приехали.. Ни у одного пользователя контры не открываются..
Смотрим код, который выдает ошибку и все больше изумляемся-офигеваем:
Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация"));
Да мы ж вообще это добро не трогали! Ни конкретно XDTO контактной информации, ни пакеты в принципе — ни в конфе, ни в расширениях..
Подключаем отладчик и нарастание изумления продолжает ускоряться:
ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация") = Неопределено
Хм. Ну вот как? До этого было не Неопределено, а теперь Неопределено.. Пробуем другие пространства имен — такая же песня — кроме платформенных пакетов фабрика ничего не видит..
Лезем чистить кэш.
А вот не полезли %) Первоначальное желание подавили и полезли гуглить. И оказалось, что пострадавших от подобного поведения платформы много, например, вот тема:
Почитав, понимаем, что чистка кэша особо не помогает.. А расширения? А что расширения? Мы ж в них ничего не трогали, да и опять же деактивация/активация помогает не всем..
Понимаем, что вопрос более мутный, чем мутный. И что в таком случае делаем всегда? Правильно — лезем на форум партнеров..
А там — куча стонов по этому поводу. И, собственно, обнаруживаем хоть какое-то да решение — перезапустить рабочие процессы сервера 1С:
- Временно устанавливаем интервал перезапуска в кластере в значение 120 и возвращаем в исходное.
- Ждем, пока сервер перекинет сеансы на новые процессы, соответственно, тупит все неимоверно.
- Ну и типа работает.
- Внимательно наблюдаем за повторяемостью ошибки..
PS. 1С:Предприятие 8.3 (8.3.12.1685)
PPS. В последствии такая проблема всплыла опять, и тут уже просто перезапуском процесса отделаться не удалось.. Помогло дополнительно взять в расширение XDTO-пакет, обновить — и вроде взлетело..
|
Jackshi 59 / 59 / 6 Регистрация: 16.01.2013 Сообщений: 162 |
||||
|
1 |
||||
Несоответствие типов14.05.2014, 12:23. Показов 16015. Ответов 5 Метки нет (Все метки)
Доброго времени суток. Помогите решить задачу в Бух 3.0
Докум = Ссылка(<Объект не найден> (170:8cde001e6759045111e3b5045af92b08)) {Форма.Форма.Форма(405)}: Ошибка при вызове метода контекста (УстановитьСсылкуНового) Вроде первый раз не ругается, а вот второй раз….. Почему?
0 |
|
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
14.05.2014, 12:23 |
|
Ответы с готовыми решениями: Несоответствие типов Несоответствие типов Несоответствие типов Несоответствие типов begin 5 |
|
SPR1TE89 21 / 21 / 3 Регистрация: 22.04.2014 Сообщений: 112 |
||||
|
14.05.2014, 12:36 |
2 |
|||
|
Jackshi, А если так попробовать?
И еще возможно битая ссылка. Поэтому и ругается.
1 |
|
59 / 59 / 6 Регистрация: 16.01.2013 Сообщений: 162 |
|
|
14.05.2014, 12:42 [ТС] |
3 |
|
Работает, Спасибо! А есть возможность избавиться от битой ссылки?
0 |
|
21 / 21 / 3 Регистрация: 22.04.2014 Сообщений: 112 |
|
|
14.05.2014, 14:06 |
4 |
|
Jackshi, Вообще есть, но лучше пока не заморачивайтесь).
0 |
|
multirum 0 / 0 / 0 Регистрация: 14.09.2020 Сообщений: 6 |
||||
|
30.11.2020, 14:07 |
5 |
|||
{Обработка.ИзменениеЦеныПоКодуЭлемента.Форма.Форма.Форма(4)}: Ошибка при вызове метода контекста (Выбрать)
0 |
|
polax 1876 / 1281 / 460 Регистрация: 16.01.2015 Сообщений: 5,606 |
||||
|
30.11.2020, 18:44 |
6 |
|||
|
multirum, Есть такая штука СП — синтакс помощник называется. Обращайтесь к нему чаще. СправочникМенеджер.<Имя справочника> (CatalogManager.<Catalog name>)
0 |
|
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
30.11.2020, 18:44 |
|
Помогаю со студенческими работами здесь Несоответствие типов Несоответствие типов if then else несоответствие типов interface uses Несоответствие типов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 6 |
Показывать по
10
20
40
сообщений
Новая тема
Ответить
Yakovin
Дата регистрации: 19.02.2007
Сообщений: 49
«Всем, здравствуйте!!! После обновления конфы с 1.6.25.6 до 1.6.25.9 с одного компьютера не получается открыть бухгалтерию, при этом появляется ошибка:<br><br>{ОбщийМодуль.ПолныеПрава(16)}: Ошибка при установке значения атрибута контекста (ТекущийПользователь): Несоответствие типов<br>ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь; по причине:<br>Несоответствие типов<br><br>Данная ошибка появляется при попытке войти под любым пользователем. Причем с любого другого компьютера и под любым пользователем данная база ОТКРЫВАЕТСЯ без проблем.<br><br>Я пробовал переустанавливать платформу, пробовал заново накатывать обновления, но ничего не помогает. База находится в корне сетевого диска. После повторной переустановки обновлений, базу также сохранил и в папке BACKUP, и в неё войти удалось. Т.е. на диске 2 одинаковые базы, одна в корне, другая в папке BACKUP, с проблемного компьютера удаётся войти только во вторую.<br><br>Платформа 8.1.15.14<br><br>Очень нужна Ваша помощь!!! Заранее всем огромное спасибо! «
BelikovS
Дата регистрации: 05.03.2007
Сообщений: 1701
Удалите базу из списка и добавьте снова или почистите кэш …:Documents and Settings…Local SettingsApplication Data1C1Cv81
Yakovin
Дата регистрации: 19.02.2007
Сообщений: 49
Показывать по
10
20
40
сообщений
Читают тему:
17.04.202313.05.2023Ошибки
Данная ошибка возникает при попытке установить действие для события формы или элемента управления формы, где вместо объекта Действие, Вы указываете строку:
ЭтаФорма.УстановитьДействие("ПриОткрытии", "ПриОткрытии");
Правильный синтаксис установки действия выглядит так:
ЭтаФорма.УстановитьДействие("ПриОткрытии", Новый Действие("ПриОткрытии"));
Помните, что процедура-обработчик события должна располагаться в модуле той же формы!
Поделиться страницей в соц.сетях
Метки: Метки Обычные формы

