Тип не может быть выбран в запросе в 1С

1. alex_4x 85 15.03.17 16:09 Сейчас в теме
В запрос передается таблица и там из неё делается выборка.
Всё работало как вдруг стала появляться ошибка при выполнении запрос "Тип не может быть выбран"
Я проверил, все колонки таблицы в том числе та, на которое ругается 1С при выполнении запроса - типизированы.
В чём может быть проблема - совершенно непонятно.

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

Я сейчас это поборол - просто сделал колонку с "уменьшенным" описанием типов, только те типы, которые есть в таблице оставил.
Ошибка ушла. Но всё равно не понятна причина возникновения. Какая разница для системы - много или мало типов в описании типа колонки.
Прикрепленные файлы:
+
По теме из базы знаний
Найденные решения
16. alex_4x 85 21.03.17 11:28 Сейчас в теме
Я нашел причину. После какого-то обновления - один ТИП документа пропал из конфигурации, при этом по какой-то причине этот же тип документа остался в основных описаниях типов. Также он остался в списке документов в режиме работы 1С (в списке, который позволяет выбрать любой вид документа). Если этот вид документа выбрать - 1С сразу падала. Как такое могло произойти - это не понятно. Но после того как я снова добавил этот тип документа, записал конфигурацию и потом снова удалил тип документа и записал конфигурацию - всё стало замечательно.
newtraveller; sommid; +2
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. WWWWW 8 15.03.17 16:57 Сейчас в теме
Так мало типов или ругается когда вообще нет ни одного? хотелось бы видеть код.
+
3. alex_4x 85 15.03.17 17:38 Сейчас в теме
Ругается когда составной тип. Очень много видов документов.

	Запрос = Новый Запрос;
	МенеджерВремТаблиц = Новый МенеджерВременныхТаблиц;
	Запрос.МенеджерВременныхТаблиц = МенеджерВремТаблиц;
	Запрос.Текст =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	Таб.Сделка КАК Сделка,
	|	Таб.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом
	|ПОМЕСТИТЬ ТаблицаВзаиморасчетов
	|ИЗ
	|	&ТаблицаВзаиморасчетов КАК Таб
	|ГДЕ
	|	НЕ Таб.ДокументРасчетовСКонтрагентом = &Ссылка";
	
	

	Запрос.УстановитьПараметр("ТаблицаВзаиморасчетов", ТаблицаВзаиморасчетов);
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	Запрос.Выполнить();
Показать
+
6. пользователь 15.03.17 20:20
Сообщение было скрыто модератором.
...
7. пользователь 15.03.17 20:38
Сообщение было скрыто модератором.
...
8. пользователь 15.03.17 20:48
Сообщение было скрыто модератором.
...
9. li5enok 15.03.17 22:33 Сейчас в теме
(3) Как заполняется ТаблицаВзаиморасчетов? Может там NULL встречается?
+
10. alex_4x 85 15.03.17 23:24 Сейчас в теме
(9) Александр, я конечно же отловил эту ошибу по брэкпоинту и посмотрел на содержание таблицы. Там только одна строка и в нужной колонке ссылка на не битую ссылку на документ. Заполняется таблица запросом и по идее там вообще не может быть полей без явно определнных типов данных.
В контрольном примере на котором происходит вылет - есть ссылка на документ, документ не битый, его тип присутсвует в описании типов. Описание типов так же содержит много других типов документов и больше ничего.
+
4. sommid 15.03.17 18:05 Сейчас в теме
а в описании типов случайно не было строки неограниченной длины? причиной может быть ключевое слово Различные, т.к. запрос не умеет сравнивать такие строки
+
5. alex_4x 85 15.03.17 20:05 Сейчас в теме
(4) Дмитрий, нет. В составном типе только ссылочные типы на документы.
И второй подвопрос - до этого всё работало очень долго. Вдруг неожиданно стала появляться такая ошибка.
При чём в копии базы (в востановленном бэкапе) отрабатывает эта же функция на этих же документах без ошибки.
Прям фантастика какая-то.
p.s. "Упрощением" составного типа проблему решил. Но хочется найти причину такого странного поведения.
+
11. sommid 16.03.17 16:20 Сейчас в теме
ну не знаю.. сделал запрос, который возвращает таблицу с 478 типами для колонки - эта таблица нормально помещается во временную в следующем запросе.
И тип NULL кстати будет в описании типов колонок таблицы, полученной из запроса, но он не мешает

всегда, когда появлялось такое сообщение - причиной были не типизированные колонки.. в таблице, которую передаете в запрос все колонки типизированы?
+
13. spacecraft 16.03.17 16:56 Сейчас в теме
(11) эксперимент на файловой базе или на MSSQL? Да и показана только малая часть запроса.
Сдается мне, что сказывается ограничение MSSQL. Но автор это проигнорировал.
+
12. Ганс 16.03.17 16:40 Сейчас в теме
Видимо не хватает типов! Посмотрите внимательно и добавте!

Может у вам просто кэш почистить?

7 бед один ответ!)
+
14. qwer107 16.03.17 17:04 Сейчас в теме
Возможно таблиц стало > 256 на сервере sql и для него это ограничение, когда он запрос строит
starik-2005; +1
15. sommid 17.03.17 12:59 Сейчас в теме
(14) такое ограничение вроде бы было только на sql 2000, на старших версиях такого уже нет, да и формулировка сообщения по-моему и была связана с превышением количества используемых таблиц в запросе
+
16. alex_4x 85 21.03.17 11:28 Сейчас в теме
Я нашел причину. После какого-то обновления - один ТИП документа пропал из конфигурации, при этом по какой-то причине этот же тип документа остался в основных описаниях типов. Также он остался в списке документов в режиме работы 1С (в списке, который позволяет выбрать любой вид документа). Если этот вид документа выбрать - 1С сразу падала. Как такое могло произойти - это не понятно. Но после того как я снова добавил этот тип документа, записал конфигурацию и потом снова удалил тип документа и записал конфигурацию - всё стало замечательно.
newtraveller; sommid; +2
17. sommid 23.03.17 14:33 Сейчас в теме
поставьте свой ответ в качестве решения этой темы, кому-то может пригодиться
+
18. Leoon 3 24.03.17 12:31 Сейчас в теме
Судя по решению проблемы, могла помочь реструктуризация базы.
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот