Несоответствие типов параметр 1

Ставлю точку останова на этой строке.

// ЧТЕНИЕ ЛИСТА Процедура КоманднаяПанель1ПрочитатьДанныеСЛиста(Кнопка) Если ОбрЗавершена = 1 Тогда Сообщить(«Данный файл уже был обработан. Перезапустите обработку и выберите новый файл для загрузки!»); Возврат; КонецЕсли; &nbsp// &nbsp// Необходимый лист Если Найти(СокрЛП(Строка(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы)), «xls») > 0 Тогда Предупреждение(«Выберите конкретный лист для загрузки, а не сам файл!»); Возврат; КонецЕсли; &nbsp// Если Excel = неопределено Тогда Попытка Excel = новый COMОбъект(«Excel.Application»); Исключение Сообщить(«Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.»); Возврат; КонецПопытки; &nbsp//НашФайл = Excel.Workbooks.Open(ИмяФайла); Excel.Workbooks.Open(ИмяФайла); КонецЕсли; &nbsp// &nbsp//ПаузаПустымЦиклом(5); &nbsp// Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select(); Читаю листы, у загруженного файла в дерево. Читается как и один так и другой.
Останавливаясь на точке останова. Как только я убираю точку останова, при этих же действиях вываливается ошибка.
{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(333)}: Ошибка при вызове метода контекста (Sheets) Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select(); по причине: Произошла исключительная ситуация (0x800a03ec) Что нужно поправить? Подскажите пожалуйста!

Здравствуйте!
Имеется ТЧ с реквизитами: Задача, ОписаниеЗадачи и Отдел
Необходимо вывести Задачу и ее описание, которые хранятся в регистре сведений
При этом, задачи должны выводиться для того отдела, в котором работает пользователь системы
Пишу запрос:

Код 1C v 8.х
Запрос = новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| ТекущиеЗадачиСрезПоследних.НаименованиеЗадачи,
| ТекущиеЗадачиСрезПоследних.ОписаниеЗадачи,
| ТекущиеЗадачиСрезПоследних.Отдел
|ИЗ
| РегистрСведений.ТекущиеЗадачи.СрезПоследних(&Отдел, ) КАК ТекущиеЗадачиСрезПоследних»;
Запрос.УстановитьПараметр(«Отдел», ПараметрыСеанса.ТекущийПользователь.Сотрудник.Отдел);
Результат = Запрос.Выполнить();
ТзВрем = Результат.Выгрузить();
Для Каждого СтрокаТекущиеЗадачи Из ТзВрем Цикл
СтрокаОписаниеЗадачи = ЭтотОбъект.ЗадачиРаботаПользователей.Добавить();
СтрокаОписаниеЗадачи.ОписаниеЗадачи = СтрокаТекущиезадачи.ОписаниеЗадачи;
СтрокаОписаниеЗадачи.Задача = СтрокаТекущиеЗадачи.НаименованиеЗадачи;
КонецЦикла;
Выдается такая ошибка:
{Обработка.РаботаПользователей.Форма.Форма(196)}: Ошибка при вызове метода контекста (Выполнить): {(6, 2)}: Ошибка обработки представления «РегистрСведений.ТекущиеЗадачи.СрезПоследних:Несоответствие типов (параметр номер «»1″»)»
<<?>>РегистрСведений.ТекущиеЗадачи.СрезПоследних(&Отдел, ) КАК ТекущиеЗадачиСрезПоследних
Результат = Запрос.Выполнить();
Табличная часть расположена на панели

На всякий случай пришлю код всей процедуры:
Код 1C v 8.х
Процедура ПриОткрытии()
ОбработкаОбъект.Пользователь = ПараметрыСеанса.ТекущийПользователь;
ОбработкаОбъект.ПолучательЗадачи = ПараметрыСеанса.ТекущийПользователь.Сотрудник;
ОбработкаОбъект.Отдел = ПараметрыСеанса.ТекущийПользователь.Сотрудник.Отдел;
ЭтотОбъект.Дата=КонецДня(ТекущаяДата());
ЭлементыФормы.Польз.Заголовок = ПараметрыСеанса.ТекущийПользователь;
ЭлементыФормы.Получ.Заголовок = ПараметрыСеанса.ТекущийПользователь.Сотрудник;
ЭлементыФормы.Отд.Заголовок = ПараметрыСеанса.ТекущийПользователь.Сотрудник.Отдел;
Запрос = новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| РаспределениеЗадачиСрезПоследних.ИсполнительЗадачи,
| РаспределениеЗадачиСрезПоследних.НаименованиеЗадачи,
| РаспределениеЗадачиСрезПоследних.Пользователь,
| РаспределениеЗадачиСрезПоследних.Приоритет,
| РаспределениеЗадачиСрезПоследних.ДатаВыполнения,
| РаспределениеЗадачиСрезПоследних.ДатаНачалаВыполнения
|ИЗ
| РегистрСведений.РаспределениеЗадачи.СрезПоследних(&Дата, ) КАК РаспределениеЗадачиСрезПоследних»;
Запрос.УстановитьПараметр(«Дата», КонецДня(ЭтотОбъект.Дата));
Результат = Запрос.Выполнить();
ТзВрем = Результат.Выгрузить();
ТзВрем.Колонки.Добавить(«Номер»);
ТзВрем.Колонки.Добавить(«ПроцентОставшегосяВремени»);
Для Каждого СтрокаРаспределениеЗадачи Из ТзВрем Цикл
СтрокаТабличнойЧасти = ЭтотОбъект.Пользователи.Добавить();
СтрокаТабличнойЧасти.ПользовательСистемы = СтрокаРаспределениеЗадачи.Пользователь;
СтрокаТабличнойЧасти.ТекущаяЗадача = СтрокаРаспределениеЗадачи.НаименованиеЗадачи;
СтрокаТабличнойЧасти.Приоритет = СтрокаРаспределениеЗадачи.Приоритет;
СтрокаТабличнойЧасти.ДатаНачалаВыполнения = СтрокаРаспределениеЗадачи.ДатаНачалаВыполнения;
СтрокаТабличнойЧасти.ДатаВыполненияПоПлану = СтрокаРаспределениеЗадачи.ДатаВыполнения;
СтрокаТабличнойЧасти.ИсполнительЗадачи = СтрокаРаспределениеЗадачи.ИсполнительЗадачи;
ДатаНачала = СтрокаРаспределениеЗадачи.ДатаНачалаВыполнения;
ДатаКонца = СтрокаРаспределениеЗадачи.ДатаВыполнения;
КоличествоДнейНаВыполнение = РазностьДат(ДатаКонца,ДатаНачала);
КоличествоДнейСоДняНачалаВыполнения = РазностьДат(ТекущаяДата(),ДатаНачала);
Если ТекущаяДата()>ДатаКонца тогда
СтрокаРаспределениеЗадачи.ПроцентОставшегосяВремени=»100 %»;
Иначе
СтрокаРаспределениеЗадачи.ПроцентОставшегосяВремени=Окр(Число(КоличествоДнейСоДняНачалаВыполнения / КоличествоДнейНаВыполнение) * 100, 2);
КонецЕсли;
СтрокаТабличнойЧасти.ПроцентОставшегосяВремени = Строка(СтрокаРаспределениеЗадачи.ПроцентОставшегосяВремени)+ » «;
Если СтрокаТабличнойЧасти.Приоритет = Перечисления.Приоритет.Высокий Тогда
СтрокаТабличнойЧасти.Номер = Число(1);
ИначеЕсли СтрокаТабличнойЧасти.Приоритет = Перечисления.Приоритет.Средний Тогда
СтрокаТабличнойЧасти.Номер = Число(2);
ИначеЕсли СтрокаТабличнойЧасти.Приоритет = Перечисления.Приоритет.Низкий Тогда
СтрокаТабличнойЧасти.Номер = Число(3);
КонецЕсли;
КонецЦикла;
ЭтотОбъект.Пользователи.Сортировать(«ДатаВыполненияПоПлану Возр,Номер Возр»);
ЭлементыФормы.Польз1.Заголовок = ПараметрыСеанса.ТекущийПользователь;
ЭлементыФормы.Получ1.Заголовок = ПараметрыСеанса.ТекущийПользователь.Сотрудник;

ЭлементыФормы.Отд1.Заголовок = ПараметрыСеанса.ТекущийПользователь.Сотрудник.Отдел;
Запрос = новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| ТекущиеЗадачиСрезПоследних.НаименованиеЗадачи,
| ТекущиеЗадачиСрезПоследних.ОписаниеЗадачи,
| ТекущиеЗадачиСрезПоследних.Отдел
|ИЗ
| РегистрСведений.ТекущиеЗадачи.СрезПоследних(&Отдел, ) КАК ТекущиеЗадачиСрезПоследних»;
Запрос.УстановитьПараметр(«Отдел», ПараметрыСеанса.ТекущийПользователь.Сотрудник.Отдел);
Результат = Запрос.Выполнить();
ТзВрем = Результат.Выгрузить();
Для Каждого СтрокаТекущиеЗадачи Из ТзВрем Цикл
СтрокаОписаниеЗадачи = ЭтотОбъект.ЗадачиРаботаПользователей.Добавить();
СтрокаОписаниеЗадачи.ОписаниеЗадачи = СтрокаТекущиезадачи.ОписаниеЗадачи;
СтрокаОписаниеЗадачи.Задача = СтрокаТекущиеЗадачи.НаименованиеЗадачи;
КонецЦикла;
КонецПроцедуры
Подскажите, пожалуйста, как исправить эту ошибку

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

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

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

Несоответствие типов в 1С 8.3

Как правило, параметры в командах 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С.

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

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