Ошибка при вызове метода контекста удалить несоответствие типов параметр номер 1

Ошибка Несоответствие типов в 1С 8.3 связана с передачей параметров в командах и запросах 1С.

Изучив статью, вы:

  • ознакомитесь с порядком исправления ошибки в запросе и командах 1С;
  • получите два внешних отчета, демонстрирующих ошибочный и правильный коды.

Содержание

  • Несоответствие типов в 1С 8.3
    • Ошибка в таблице запроса
    • Исправление ошибки в команде 1С

Как правило, параметры в командах 1С идут в определенной очередности и ссылаются на данные конкретного типа. Ошибка в указании параметра не на том месте или не того типа приводит к появлению сообщения о несоответствии типов:

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

Рассмотрим причины ее возникновения и исправление на конкретном примере.

Ошибка в таблице запроса

При чтении цен номенклатуры по регистру сведений Цены номенклатуры из внешнего отчета появляется ошибка Неоднозначное поле «ТипЦен.Номенклатура».

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

Для исправления ошибки необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы указанную строчку.

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

Из описания видно, что команда СрезПоследних имеет 2 параметра:

  • Период;
  • Отбор.

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

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

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

Скачать внешний отчет Вывод списка цен номенклатуры

Исправление ошибки в команде 1С

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

1С сообщает место ошибки — Параметр номер 2 при нажатии кнопки ERROR.

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

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

Из описания идно, что команда НайтиПоСсылкам имеет 4 параметра:

  • СписокСсылок;
  • ОбластьПоиска;
  • ВключитьОбъекты;
  • ИсключитьОбъекты.

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

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

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

Скачать внешний отчет Поиск ссылок на контрагента

Вот так можно получить ошибку 1С Несоответствие типов в 1С, поэтому контролируйте правильность указания параметров в запросах и командах 1С в Синтаксис-Помощнике!

См. также:

  • Неоднозначное поле в запросе
  • Исправление технических ошибок при работе с 1С:Бухгалтерия: для начинающих и опытных пользователей
  • Метод объекта не обнаружен
  • Неизвестный идентификатор формы
  • Переменная не определена

Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы Бухэксперт8, записи поддерживающих эфиров и вы сможете задавать любые вопросы по программе 1С.

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

После обновления конфигурации 1с упрощенка 8 до версии 8.3.10.2580 платформы и 3.0.52.42 конфигурации при создании счета вылезла ошибка: Несоответствие типов (параметр номер ‘1’) в отладчике: {ОбщийМодуль.РегламентныеЗаданияСервер.Модуль}: Ошибка при вызове метода контекста (НайтиПоУникальномуИдентификатору)         РегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор); по причине: Несоответствие типов (параметр номер ‘1’) На этом мои познания в программировании 1с заканчиваются. Где собака закопана?

У тебя Идентификатор имеет тип НЕ УНИКАЛЬНЫЙИДЕНТИФИКАТОР. А нужно что бы был УникальныйИдентификатор. МенеджерРегламентныхЗаданий (ScheduledJobsManager) НайтиПоУникальномуИдентификатору (FindByUUID) Синтаксис: НайтиПоУникальномуИдентификатору(<Идентификатор>) Параметры: Тип: УникальныйИдентификатор. Идентификатор регламентного задания. Возвращаемое значение: Тип: РегламентноеЗадание; Неопределено. Если задание для заданного идентификатора не найдено, возвращает Неопределено. Описание: Осуществляет поиск регламентного задания по уникальному идентификатору. Получение регламентного задания возможно только для администратора. Доступность: Сервер, толстый клиент, внешнее соединение.

Соответственно, что мне нужно сделать?

Присвоить переменной Идентификатор тип УникальныйИдентификатор. :)

Так заводская конфигурация и модуль только для чтения.

А ну тогда все..ничего не сделать

Функция ПолучитьРегламентноеЗадание(Знач Идентификатор) Экспорт              ВызватьИсключение( НСтр(«ru = ‘Регламентное задание не найдено.

Вот весь текст модуля. Где исправить идентификатор?

выгрузку-загрузку базы делал?

Выгрузку загрузку — не делал. А что такое тии?

тестирование и исправление в конфигураторе

Тааак. А как ты чистил кэш?

Тестирование  и  исправление запускал. C:Users1AppDataRoaming1C1Cv82 C:Users1AppDataLocal1C1Cv82 Из них грохнул папки с длинными названиями Еще пробовал через ClearCache и тонкий клиент

Выгрузил — загрузил. Все равно так-же.

Пройдись отладчиком, что у тебя в функцию передается? ИМХО, неопределено. И проблема не на самом деле не здесь, а при создании счета.

{ОбщийМодуль.РегламентныеЗаданияСервер.Модуль}: Ошибка при вызове метода контекста (НайтиПоУникальномуИдентификатору)         РегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор); по причине: Несоответствие типов (параметр номер ‘1’) Это в отладчике

Как посмотреть, что в функцию передается?

Проблема была в расположении информационной базы. Перенес в корень другого диска. Все завелось))))

это значит кэш. про кэш наврал.

Как говАривала Алиса «все чудесатее и чудесатее»)

Не обязательно. Скорее всего на клиенте почистил. :)

Тэги:

Комментарии доступны только авторизированным пользователям

02.07.2018, 11:35

#1

Марочка98 вне форума


Гость форума


Здравствуйте, помогите пожалуйста с проблемой.
У меня внешняя обработка, загрузка xml файла в дерево значений, и выдает ошибку {Обработка.Обработка1.Форма .Форма.Форма(37)}: Ошибка при вызове метода контекста (УстановитьСтроку)
Чтение.УстановитьСтроку(Те кстXML);
по причине:
Несоответствие типов (параметр номер ‘1’)
Что нужно сделать?? Я начинающий программист в 1с, и поэтому не очень сильна в этом.

Вот полностью мой код модуля.

&НаКлиенте
Процедура Файл(Команда)
Диалог = Новый ДиалогВыбораФайла(РежимДи� �логаВыбораФайла.Открытие);
Диалог.Заголовок = «Выбор документа»;
Диалог.Фильтр = «Документы XML (*.xml, *.xdr, *.xsd, *.xsl)|*.xml;*.xdr;*.xsd;*.xsl|Все файлы|*.*|»;
Если Диалог.Выбрать() Тогда
ТекстXML.Прочитать(Диалог.По лноеИмяФайла);
Документ = ТекстXML.ПолучитьТекст();
Заголовок = «Просмотр XML-документа: » + Диалог.ПолноеИмяФайла;

КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура КнИмпорт(Команда)
Если НЕ ПустаяСтрока(ТекстXML) Тогда
Дерево = Импорт1();

Если Объект.Дерево.Строки.Колич� �ство() > 0 Тогда
ЭлементДерево = ТекстXML.Объект.Дерево;
ЭлементДерево.СоздатьКоло� �ки();
ЭлементДерево.Колонки.Удал ить(ЭлементДерево.Колонки[«Атрибуты»]);

КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция Импорт1() Экспорт
Чтение = Новый ЧтениеXML();
Чтение.УстановитьСтроку(Те кстXML);
ДеревоЗначений = Новый ДеревоЗначений();

ДеревоЗначений.Колонки.Доб авить(«Элемент»);
ДеревоЗначений.Колонки.Доб авить(«Текст»);
ДеревоЗначений.Колонки.Доб авить(«Атрибуты»);
Корень = ДеревоЗначений.Строки.Доба вить();
Корень.Элемент = Чтение.Имя;
Рекурсия(Корень, Чтение);
Возврат ДеревоЗначений;
КонецФункции
Процедура Рекурсия(СтрокаДерева, Чтение)
Если Чтение.КоличествоАтрибуто� �() > 0 Тогда
АтрибутыСоответствие = Новый Соответствие();
Пока Чтение.ПрочитатьАтрибут() Цикл
АтрибутыСоответствие.Вста� �ить(Чтение.Имя, Чтение.Значение);
КонецЦикла;
СтрокаДерева.Атрибуты = АтрибутыСоответствие;
КонецЕсли;
//Состояние(Чтение.Имя);
Пока Чтение.Прочитать() Цикл
Если Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Прервать;
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
СтрокаДерева.Текст = Чтение.Значение;
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Дочерний = СтрокаДерева.Строки.Добави ть();
Дочерний.Элемент = Чтение.Имя;
Рекурсия(Дочерний, Чтение);
КонецЕсли;
КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура Дерево1ПриАктивизацииСтро� �и(Элемент)
Объект.Атрибуты.Очистить();
Данные = Элемент.ТекущиеДанные;
Если Данные <> Неопределено Тогда
АтрибутыДерева = Данные.Атрибуты;
Если ТипЗнч(АтрибутыДерева) = Тип(«Соответствие») Тогда
Для каждого АтрибутДерева из АтрибутыДерева Цикл
СтрокаТаблицы = Объект.Атрибуты.Добавить();
СтрокаТаблицы.Атрибут = АтрибутДерева.Ключ;
СтрокаТаблицы.ЗначениеАтр� �бута = АтрибутДерева.Значение;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура Дерево1Выбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ОткрытьЗначение(Выбранная� �трока.Текст);
КонецПроцедуры

&НаКлиенте
Процедура АтрибутыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ОткрытьЗначение(Выбранная� �трока.ЗначениеАтрибута);

КонецПроцедуры

Процедура ОчиститьТаблицы() Экспорт
Объект.Дерево.Строки.Очист� �ть();
Объект.Дерево.Колонки.Очис� �ить();
Объект.Атрибуты.Очистить();
КонецПроцедуры


11.07.2018, 05:59

#2

FraerFFSG вне форума


Пришел за помощью


По умолчанию Re: Несоответствие типов (параметр номер ‘1’)

Цитата Сообщение от Марочка98
Посмотреть сообщение

Здравствуйте, помогите пожалуйста с проблемой.
У меня внешняя обработка, загрузка xml файла в дерево значений, и выдает ошибку {Обработка.Обработка1.Форма .Форма.Форма(37)}: Ошибка при вызове метода контекста (УстановитьСтроку)
Чтение.УстановитьСтроку(Те кстXML);
по причине:
Несоответствие типов (параметр номер ‘1’)
Что нужно сделать?? Я начинающий программист в 1с, и поэтому не очень сильна в этом.

Вот полностью мой код модуля.

&НаКлиенте
Процедура Файл(Команда)
Диалог = Новый ДиалогВыбораФайла(РежимДи� �логаВыбораФайла.Открытие);
Диалог.Заголовок = «Выбор документа»;
Диалог.Фильтр = «Документы XML (*.xml, *.xdr, *.xsd, *.xsl)|*.xml;*.xdr;*.xsd;*.xsl|Все файлы|*.*|»;
Если Диалог.Выбрать() Тогда
ТекстXML.Прочитать(Диалог.По лноеИмяФайла);
Документ = ТекстXML.ПолучитьТекст();
Заголовок = «Просмотр XML-документа: » + Диалог.ПолноеИмяФайла;

КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура КнИмпорт(Команда)
Если НЕ ПустаяСтрока(ТекстXML) Тогда
Дерево = Импорт1();

Если Объект.Дерево.Строки.Колич� �ство() > 0 Тогда
ЭлементДерево = ТекстXML.Объект.Дерево;
ЭлементДерево.СоздатьКоло� �ки();
ЭлементДерево.Колонки.Удал ить(ЭлементДерево.Колонки[«Атрибуты»]);

КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция Импорт1() Экспорт
Чтение = Новый ЧтениеXML();
Чтение.УстановитьСтроку(Те кстXML);
ДеревоЗначений = Новый ДеревоЗначений();

ДеревоЗначений.Колонки.Доб авить(«Элемент»);
ДеревоЗначений.Колонки.Доб авить(«Текст»);
ДеревоЗначений.Колонки.Доб авить(«Атрибуты»);
Корень = ДеревоЗначений.Строки.Доба вить();
Корень.Элемент = Чтение.Имя;
Рекурсия(Корень, Чтение);
Возврат ДеревоЗначений;
КонецФункции
Процедура Рекурсия(СтрокаДерева, Чтение)
Если Чтение.КоличествоАтрибуто� �() > 0 Тогда
АтрибутыСоответствие = Новый Соответствие();
Пока Чтение.ПрочитатьАтрибут() Цикл
АтрибутыСоответствие.Вста� �ить(Чтение.Имя, Чтение.Значение);
КонецЦикла;
СтрокаДерева.Атрибуты = АтрибутыСоответствие;
КонецЕсли;
//Состояние(Чтение.Имя);
Пока Чтение.Прочитать() Цикл
Если Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Прервать;
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
СтрокаДерева.Текст = Чтение.Значение;
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Дочерний = СтрокаДерева.Строки.Добави ть();
Дочерний.Элемент = Чтение.Имя;
Рекурсия(Дочерний, Чтение);
КонецЕсли;
КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура Дерево1ПриАктивизацииСтро� �и(Элемент)
Объект.Атрибуты.Очистить();
Данные = Элемент.ТекущиеДанные;
Если Данные <> Неопределено Тогда
АтрибутыДерева = Данные.Атрибуты;
Если ТипЗнч(АтрибутыДерева) = Тип(«Соответствие») Тогда
Для каждого АтрибутДерева из АтрибутыДерева Цикл
СтрокаТаблицы = Объект.Атрибуты.Добавить();
СтрокаТаблицы.Атрибут = АтрибутДерева.Ключ;
СтрокаТаблицы.ЗначениеАтр� �бута = АтрибутДерева.Значение;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура Дерево1Выбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ОткрытьЗначение(Выбранная� �трока.Текст);
КонецПроцедуры

&НаКлиенте
Процедура АтрибутыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ОткрытьЗначение(Выбранная� �трока.ЗначениеАтрибута);

КонецПроцедуры

Процедура ОчиститьТаблицы() Экспорт
Объект.Дерево.Строки.Очист� �ть();
Объект.Дерево.Колонки.Очис� �ить();
Объект.Атрибуты.Очистить();
КонецПроцедуры

Поставить бряку на
Чтение.УстановитьСтроку(Те кстXML);

И посмотреть Shift+F9 выделив Те кстXML — Что же скрывается под этой переменной.


не могу удалить строки из Табличного Поля

Я
   relax

14.01.05 — 14:33

есть две формы. в одну форму заносятся данные в ТабличноеПоле1

затем открывается другая форма и при удалении элемента из нее должен удаляться элемент и из ТабличногоПоля1. Программно получается лишь добавить строки а вот удалить нет =/

ошибки:

«Ошибка при вызове метода контекста (Удалить): Несоответствие типов (параметр номер «1»)

Форма.ЭлементыФормы.Удалить(ТекущаяСтрока); //ЭлементыФормы.ТабличноеПоле1.Ссылка»

вот код который должен удалять:

ОбработкаСписок = Обработки.Список.ПолучитьФорму();

   Форма = ОбработкаСписок.ПолучитьФорму();

ТекущаяСтрока=Форма.ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.ссылка;

Форма.ЭлементыФормы.Удалить(ТекущаяСтрока); //ЭлементыФормы.ТабличноеПоле1.Ссылка

Форма.Открыть();

Форма.Обновить();

помогите……

   Дурочка 1С

1 — 14.01.05 — 14:44

Что за табличное поле? Эксель на форме лежит?

   simplyUser

2 — 14.01.05 — 14:44

Нада же писать, что енто V8

   relax

3 — 14.01.05 — 14:47

ой ой ой… буду знать да это V8.

   relax

4 — 14.01.05 — 14:48

«Что за табличное поле? Эксель на форме лежит?»

причем тут Эксель?… тип значений — «ТаблицаЗначений».

   Rovan

5 — 14.01.05 — 14:49

(0) Табличное поле — объект отображающий данные, а не хранящий их, так что используй ТЗ или удаляй строки из самого объекта данных.

   relax

6 — 14.01.05 — 14:51

ТЗ использовать нельзя потому как данная форма задействована уже во многих обработках =/

нужно удалять строки из Табличного поля. но вот вопрос КАК??????????

буду очень благодарен за пример реально работающего кода.

   Michael99

7 — 14.01.05 — 14:51

в (0) полная каша.

1. Прежде чем удалять необходимо найти строку которую хочешь удалять

2 таблицы в разных формах должны имет некое ключевое поле по которому будет осуществлятся посик в удаляемой таблице.

Форма.ЭлементыФормы.Удалить(ТекущаяСтрока); — попытка удалить элемент формы а не строку табличного поля.

ТекущаяСтрока=Форма.ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.ссылка;

текущая строка не может быть ссылкой строка может быть определена либо методом Найти либо по индексу либо при сравнении значения полей в переборе.

   relax

8 — 14.01.05 — 14:55

(7) мне для начала нужно удалить хотя бы одну строку. дальше я как-нибудь разберусь. кстати заметь что проверялось так же: ТекущаяСтрока=Форма.ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока;

   Michael99

9 — 14.01.05 — 15:03

Прочитай внимательно (7) строку надо получить в таблице в которой будешь удалять.

   Michael99

10 — 14.01.05 — 15:21

+ все выше сказаное (мной) относится к таблице значений в которой находятся данные отображаемые в табличном поле.

В табличном поле НЕ связанным с таблицей значений можно скорее всего только почистить значения ячейках.

   relax

11 — 14.01.05 — 15:23

если в открытой форме нажать на DEL то строки удаляются. тоесть возможно вызвать и программным методом, верно?

   Michael99

12 — 14.01.05 — 15:28

Покажи текст как ты его заполняешь.

   relax

13 — 14.01.05 — 15:39

Форма.ЭлементыФормы.ТабличноеПоле1.ДобавитьСтроку();

   Форма.ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Описание=ВыбСтрока;

   Форма.ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Колво=Количество;

   Форма.ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Цена=Цена;

   Форма.ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Вес=0;

   ЦенаКолва=Количество*Цена;

   Форма.Цена=Форма.Цена+ЦенаКолва;

   Форма.Колво=Форма.Колво+Количество;

   Форма.Артикул=ВыбСтрока.Артикул;

это основное

   relax

14 — 14.01.05 — 15:50

??

   Shaytan

15 — 14.01.05 — 16:13

Посмотри в конфигураторе свойство «Данные» элемента Форма.ЭлементыФормы.ТабличноеПоле1. В нём и удаляй строку. ТП лишь средство отображения, данных не содержит а лишь связывается с объектом в котором содержатся строки. «Форма.ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные» — только «ссылка» на строку этого объекта.

   relax

16 — 14.01.05 — 16:15

в Данных у меня забито: «ТабличноеПоле1» так где же у меня содержатся данные? =/ мне кажется я с ума сойду сейчас =///////////

   Shaytan

17 — 14.01.05 — 16:19

Значит у формы д. б. реквизит «ТабличноеПоле1». (Советую назвать его по другому) Какой у него тип?

   Michael99

18 — 14.01.05 — 16:28

Шайтан дело говорит :-)

Попробуй так.

ТабличноеПоле1.Удалить(Форма.ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока);

   Michael99

19 — 14.01.05 — 16:35

Точнее

Форма.ТабличноеПоле1.Удалить(Форма.ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока);

   Shaytan

20 — 14.01.05 — 16:44

(0) Ты вообще что то не то пытаешься сделать. Опиши задачу полностью и подробно.

(0)Если судить по приведенному куску

ОбработкаСписок = Обработки.Список.ПолучитьФорму();

  Форма = ОбработкаСписок.ПолучитьФорму(); // ОШИБКА! Пытаешься получить форму у формы.

ТекущаяСтрока=Форма.ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.ссылка; //Вернет «неопределенно»

Форма.ЭлементыФормы.Удалить(ТекущаяСтрока); //ЭлементыФормы.ТабличноеПоле1.Ссылка  //ОШИБКА! ТекущаяСтрока = Нопределено

Форма.Открыть();

Форма.Обновить();

   relax

21 — 14.01.05 — 17:16

задача такая:

есть форма в нее при подборе добавляются данные (дополнительный монитор)

все работает на ура. разве что если клиент (ррр) отказался от какоголибо товара то менеджеру требуется удалить этот товар. удаляется он из документа на ура. а на мониторе клиента остается. нужно доработать документ «заказ покупателя» что бы в момент нажатия кнопки DEL удалялся товар и на мониторе клиента. но он тварь не удаляется. т.к. используется Табличное Поле а хренова 1с не потрудилась добавить к ТабличномуПолю возможность удаления. я почитал 1с доки + порылся по их замороженным сайтам. попарил разработчиков ответ один — (18) + (19)….. =) эврика уря товарищи =) заработало =)

   relax

22 — 14.01.05 — 17:18

ммм… вопрос другой как спозиционировать ТекущаяСтрока на надобную?.. поиск по номенклатура.наименование подойдет? как думаете?

  

Michael99

23 — 14.01.05 — 17:40

(22) Подойдет любое поле в котором значения уникальны.

Форма.ТабличноеПоле1.Удалить(Форма.ТабличноеПоле1.Найти(Знач,»Поле»));

Содержание:

1.       Несоответствие типов данных

2.       Ошибка внутри таблицы в запросе

3.       Причина ошибки внутри команды

Приветствую, коллеги! В данной статье рассмотрим понятие и описание типа данных и переменных в системе 1С версии 8.3. Также поговорим о распространенной ошибке «Несоответствие типов», изложим инструкцию с по ее устранению. 


1.    Несоответствие типов данных

Тип – это характеристика у значения, которая определяет поведение и свойства, которые имеет данное значение.

В командах внутри системы 1С параметры имеют некую специальную очерёдность, а также все параметры имеют ссылку на данные, которые связаны с каким-либо типом. В случае, когда какой-то из параметров находится в неположенном месте, либо название не соответствует типу, выполняются невозможные действия для конкретного типа – появляется сообщение, в котором говорится о несоответствии типов данных (показано на скриншоте ниже):

Сообщение об ошибке несоответствии типов

Рис. 1 Сообщение об ошибке несоответствии типов

Чаще всего данная неполадка возникает, когда при написании запроса внутри команды не верно указывают параметры. Исправление подобной ошибки производится при помощи изменения типа передаваемого параметра или используемой переменной на правильный тип данных.  

2.    Ошибка внутри таблицы в запросе

Рассмотрим пример: при чтении цен из номенклатуры согласно регистру данных «Цены номенклатуры» с общего внешнего отчёта всплывает ошибка «Неоднозначное поле «ТипЦен.Номенклатура».

Ошибка Неоднозначное поле

Рис. 2 Ошибка Неоднозначное поле

Видим, что в окне с сообщением о неполадке указано место в коде, где возникла ошибка несоответствия типов: «Параметр номер «1», в строчке вида:

«РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.

Чтобы устранить данную ошибку в первую очередь откроем конфигурацию с данным отчётом и найдем внутри кода с формой строчку, которая была приведена выше:

Исправление ошибки несоответствия типов (Параметр номер 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с не хочет удалять элемент из массива

    Для каждого элементМассива из Массив Цикл
    Для каждого ВЗ из ВыгружаемыеЗаписи Цикл
    Если ЭлементМассива=ВЗ Тогда
    ВыгружаемыеЗаписи.Удалить(ВЗ);
    КонецЕсли;
    КонецЦикла;
    
    КонецЦикла;
    
    
    

    вот какую ошибку выдает 1с
    {Обработка.Обработка1.Форма.Форма(195)}: Ошибка при вызове метода контекста (Удалить)
    ВыгружаемыеЗаписи.Удалить(ВЗ);
    по причине:
    Несоответствие типов (параметр номер ‘1’)


  2. Requin

    Offline

    Requin
    Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29

  3. А как узнать какое число в данном случае этот элемент
    ?


  4. yzek

    Offline

    yzek
    Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    718
    Симпатии:
    1
    Баллы:
    29

    Индекс = Массив.Найти(ВЗ);
    

  5. vartanet

    Offline

    vartanet
    Опытный в 1С
    Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.701
    Симпатии:
    15
    Баллы:
    29

    мне кажется, тут логическая ошибка. удалять надо снизу вверх, а не сверху вниз.

    если удалить элемент с индексом 3, то следующий за ним элемент с индексом 4 становится на место 3-го элемента..

    например, с таблицей значений так поступают. я думаю, это же правило распространяется и на массив.

    КолСтрок = Таблица.Количество();
    Для Сч=1 по КолСтрок Цикл
    
    НомерСтроки = КолСтрок - Сч;
    
    Если трампампам Тогда
    Таблица.Удалить(НомерСтроки);
    КонецЕсли;
    
    КонецЦикла;
    
    
    
    


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

Ошибка Несоответствие типов в 1С 8.3 связана с передачей параметров в командах и запросах 1С.

Изучив статью, вы:

  • ознакомитесь с порядком исправления ошибки в запросе и командах 1С;
  • получите два внешних отчета, демонстрирующих ошибочный и правильный коды.

Содержание

  • Несоответствие типов в 1С 8.3
    • Ошибка в таблице запроса
    • Исправление ошибки в команде 1С

Как правило, параметры в командах 1С идут в определенной очередности и ссылаются на данные конкретного типа. Ошибка в указании параметра не на том месте или не того типа приводит к появлению сообщения о несоответствии типов:

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

Рассмотрим причины ее возникновения и исправление на конкретном примере.

Ошибка в таблице запроса

При чтении цен номенклатуры по регистру сведений Цены номенклатуры из внешнего отчета появляется ошибка Неоднозначное поле «ТипЦен.Номенклатура».

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

Для исправления ошибки необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы указанную строчку.

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

Из описания видно, что команда СрезПоследних имеет 2 параметра:

  • Период;
  • Отбор.

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

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

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

Скачать внешний отчет Вывод списка цен номенклатуры

Исправление ошибки в команде 1С

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

1С сообщает место ошибки — Параметр номер 2 при нажатии кнопки ERROR.

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

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

Из описания идно, что команда НайтиПоСсылкам имеет 4 параметра:

  • СписокСсылок;
  • ОбластьПоиска;
  • ВключитьОбъекты;
  • ИсключитьОбъекты.

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

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

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

Скачать внешний отчет Поиск ссылок на контрагента

Вот так можно получить ошибку 1С Несоответствие типов в 1С, поэтому контролируйте правильность указания параметров в запросах и командах 1С в Синтаксис-Помощнике!

См. также:

  • Неоднозначное поле в запросе
  • Исправление технических ошибок при работе с 1С:Бухгалтерия: для начинающих и опытных пользователей
  • Метод объекта не обнаружен
  • Неизвестный идентификатор формы
  • Переменная не определена

Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы Бухэксперт8, записи поддерживающих эфиров и вы сможете задавать любые вопросы по программе 1С.

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

  • Ошибка при вызове метода контекста удалить нарушение прав доступа
  • Ошибка при вызове метода контекста прочитатьизменения ошибка формата представления изменений
  • Ошибка при вызове метода контекста поместитьвовременноехранилище
  • Ошибка при вызове метода контекста сортировать
  • Ошибка при вызове метода контекста прочитатьизменения ошибка преобразования данных xml