Содержание:
1. Пример с внешней обработкой
3. Новое условие при выполнении запроса
Данная ошибка выполнения запроса 1С может возникнуть при выполнении запроса, если в качестве параметра передается таблица значений с колонками, в которых не определен тип.
Разберем на примере почему данная ошибка программы 1С происходит, и как ее избежать при разработке.
1. Пример с внешней обработкой
Для простоты создадим внешнюю обработку 1С 8, которая будет выгружать в табличную часть обработки номенклатуры.
Предположим, у вас есть таблица значений, заполняемая некоторыми данными, например, наименованием производителей (Рисунок 1).
Рис. 1
Теперь напишем запрос, который будет выводить номенклатуру данных производителей (Рисунок 2).
Рис. 2
При попытке запустить заполнение табличной части 1С 8.3 выдает ошибку «Тип не может быть выбран в запросе» (Рисунок 3).
Рис. 3
Данная ошибка при выполнении операции в 1С возникла потому, что в таблице значений не указан тип колонки «Наименование».
2. Исправление ошибки в 1С
Чтобы исправить ошибку, необходимо явно указать тип при добавлении колонки. Сделать это можно при помощи Описания типов. Укажем наименование строкового типа данных (Рисунок 4).
Рис. 4
Также можно указать тип «СправочникСсылка.Производители», но тогда таблица значений не заполнится необходимыми данными, что, впрочем, можно исправить, воспользовавшись поиском по наименованию в справочнике, и подставив найденное значение в поле «Наименование» (Рисунок 5).
Рис. 5
Но остановимся на типе «Строка».
При попытке выполнить код, возникает новая ошибка программы, говорящая о том, что нельзя сравнивать разные типы (Рисунок 6).
3. Новое условие при выполнении запроса 1С
Вернемся к выполнению запроса 1С и изменим его, заменив жесткое сравнение на условие «Подобно».
Запрос примет следующий вид (Рисунок 7).
Рис. 7
В результате мы получим список всей номенклатуры данных производителей (Рисунок 8).
Рис. 8
Специалист компании «Кодерлайн»
Айдар Фархутдинов