Универсальная процедура проверки на дубли строк в табличной части документа Код 1C v 8.2 УП
Процедура ПроверимДублиСтрок(ДокументСсылка,ИмяТабЧасти,ПроверяемыеРеквизиты,Отказ)
ТаблицаДокумента = ДокументСсылка[ИмяТабЧасти]. Выгрузить( ) ;
ТаблицаДокумента. Колонки. Добавить( "КвоПроверкаДублей" ) ;
ТаблицаДокумента. ЗаполнитьЗначения( 1 , "КвоПроверкаДублей" ) ;
ТаблицаДокумента. Свернуть( ПроверяемыеРеквизиты, "КвоПроверкаДублей" ) ;
Для Каждого ТекущаяСтрока Из ТаблицаДокумента Цикл
Если ТекущаяСтрока. КвоПроверкаДублей > 1 Тогда
РеквизитыДляСообщения = "" ;
Стр = СокрЛП( ПроверяемыеРеквизиты) ;
Пока Найти( Стр, "," ) > 0 Цикл
НаимРеквизита = СокрЛП( Лев( Стр, Найти( Стр, "," ) - 1 ) ) ;
Стр = Прав( Стр, СтрДлина( Стр) - Найти( Стр, "," ) ) ;
РеквизитыДляСообщения = РеквизитыДляСообщения+ ТекущаяСтрока[НаимРеквизита]+ ", " ;
КонецЦикла ;
РеквизитыДляСообщения = РеквизитыДляСообщения+ ТекущаяСтрока[СокрЛП( Стр) ];
Сообщить( "Информация " + РеквизитыДляСообщения+ " введена несколько раз в табличную часть, проведение невозможно!" ) ;
Отказ = Истина ;
КонецЕсли ;
КонецЦикла ;
КонецПроцедуры
Пример обращения к процедуре проверки
Код 1C v 8.2 УП
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если Запасы. Количество( ) = 0 Тогда
Возврат ;
КонецЕсли ;
ПроверимДублиСтрок( Ссылка, "Запасы" , "Номенклатура, АлгоритмФормированияШК,Регион" , Отказ) ;
КонецПроцедуры
Да, в списке реквизитов добавленные случайно пробелы игнорируются
Процедуру можно добавить в общий модуль и обращаться к ней из любого документа Опубликовано на сайте: https://HelpF.pro Прямая ссылка: https://HelpF.pro/faq/view/1333.html