Невозможность длинного наименования в УНФ 1.6
Клиент обратился с проблемой, что не может сохранить карточку номенклатуры, если полное наименование длинное, выдается ошибка:
Запрос невозможно исполнить
Длина шаблона поиска превышает максимально возможную для используемой СУБД
{Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(4958)}: Результат = ЗапросНоменклатура.Выполнить();
{Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(619)}: ПроверитьНаДубли("НаименованиеПолное");
Полное наименование используется в печатных формах и клиент хочет выводить в него полную спецификацию позиции.
Я посмотрел и с горечью обнаружил, что проблема не в каких-то технических ограничениях на длину полного наименования, а в проверке дублей, которое не работает на длинных наименованиях.
Вот этот запрос не работает на длинных полных наименованиях:
Поэтому я поправил проверку, чтобы для полных наименований длиннее чем 150 поиск дублей не работал. Добавил расширение для процедуры ПроверитьНаДубли формы элемента Номенклатуры:
&НаСервере &Вместо("ПроверитьНаДубли") Процедура дор_ПроверитьНаДубли(Реквизит, АвтозаполнениеРеквизита) //Осипов - длинные полные наименования выдают ошибку, поэтому их пропускаем 2022-01-18 Если Реквизит = "НаименованиеПолное" И СтрДлина(Объект.НаименованиеПолное) > 150 Тогда Возврат; КонецЕсли; ПродолжитьВызов(Реквизит, АвтозаполнениеРеквизита); КонецПроцедуры
Среда: УНФ 1.6.25.152. Объем: 0.3 час.
Свежие комментарии