При объединении таблиц в запросах (ОБЪЕДИНИТЬ ВСЕ), если одно из полей неограниченной длины, а второе просто строкой, возникает данная ошибка.
Поведение системы
При этом выполнение программы завершается (Критическая ошибка с диалогом Закрыть/Перезапустить).
Причины и исправление
Вариантом решения является приведение значения к определенной длине с возможной потерей данных через функцию ПОДСТРОКА(). Например,
ПОДСТРОКА(ЗатратыПоСтраховомуПокрытиюУслуги.Диагноз,1,1023) КАК Диагноз
В данном случае мы ограничили максимальную длину 1023 символами, т.к. второе объединяемое поле имеет такую же длину.
Не рекомендуется использовать поля, которые будут использоваться в запросах с неограниченной длинной, тут мной была совершена ошибка, на этапе создания документа, т.к. совместное использование таких полей усложняется.
Специфика медицинской сферы требовала длинных диагнозов, но надо было также сделать и конечными, либо использовать другие варианты хранения (несколько полей, справочники, разделение на краткий диагноз и полный).
Проблема не хочет уходить
Далее, все-таки эта ошибка выскочила второй раз, но уже без завершения программы (в отчете на скд). Было найдено еще одно поле неограниченной длины, которые было выбрано в полях отчета через точку «Документ.Примечание», его не возможно было объединить автоматически.
Добавил еще одно поле выборку запроса с приведение как выше и после этого в настройках СКД изменил поле на это.
Довольно таки не явная ошибка — очень трудно было понять:
- перерыл все реквизиты объектов в запросе на несколько раз,
- добавил указание типов в данных СКД(как оказалось бесполезно),
- скопировал схему компоновки — предполагал кэширование пользовательских настроек.
Обнаружил ошибку только, когда начал исключать эти поля из выборки в СКД
Реклама побуждает людей жить не по средствам? То же самое можно сказать о браке.