Невозможность длинного наименования в УНФ 1.6

Клиент обратился с проблемой, что не может сохранить карточку номенклатуры, если полное наименование длинное, выдается ошибка:

Запрос невозможно исполнить
Длина шаблона поиска превышает максимально возможную для используемой СУБД
{Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(4958)}:	Результат = ЗапросНоменклатура.Выполнить();
{Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(619)}:	ПроверитьНаДубли("НаименованиеПолное");

Полное наименование используется в печатных формах и клиент хочет выводить в него полную спецификацию позиции.

Я посмотрел и с горечью обнаружил, что проблема не в каких-то технических ограничениях на длину полного наименования, а в проверке дублей, которое не работает на длинных наименованиях.

Вот этот запрос не работает на длинных полных наименованиях:

Поэтому я поправил проверку, чтобы для полных наименований длиннее чем 150 поиск дублей не работал. Добавил расширение для процедуры ПроверитьНаДубли формы элемента Номенклатуры:


&НаСервере
&Вместо("ПроверитьНаДубли")
Процедура дор_ПроверитьНаДубли(Реквизит, АвтозаполнениеРеквизита)
	//Осипов - длинные полные наименования выдают ошибку, поэтому их пропускаем 2022-01-18
	Если Реквизит = "НаименованиеПолное" И СтрДлина(Объект.НаименованиеПолное) > 150 Тогда
		Возврат;
	КонецЕсли;
	ПродолжитьВызов(Реквизит, АвтозаполнениеРеквизита);
КонецПроцедуры

Среда: УНФ 1.6.25.152. Объем: 0.3 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *