Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 13:56

Как избавиться от дублей в таблице

Автор Ogo, 08 окт 2010, 11:17

0 Пользователей и 1 гость просматривают эту тему.

Ogo

Подскажите,пожлуйста,что неправильно в процедуре?мне надо чтобы при вводе данных пользователем в таблицу в колонку Этап,если этот этап уже есть,выдавалось сообщение.Вот процедура:
Процедура СрокиЭтаповЭтапПриИзменении(Элемент)
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Этап", ТекущийЭлемент);

НайденныеСтроки= Объект.СрокиЭтапов.НайтиСтроки(ПараметрыОтбора);
Если НайденныеСтроки.Количество()>1 Тогда
Сообщить("Дубль");
КонецЕсли;

КонецПроцедуры

mohock

Цитата: Ogo от 08 окт 2010, 11:17
Подскажите,пожлуйста,что неправильно в процедуре?мне надо чтобы при вводе данных пользователем в таблицу в колонку Этап,если этот этап уже есть,выдавалось сообщение.Вот процедура:
Процедура СрокиЭтаповЭтапПриИзменении(Элемент)
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Этап", ТекущийЭлемент);

НайденныеСтроки= Объект.СрокиЭтапов.НайтиСтроки(ПараметрыОтбора);
Если НайденныеСтроки.Количество()>1 Тогда
Сообщить("Дубль");
КонецЕсли;

КонецПроцедуры


Самое неправильное в этой процедуре это, то, что ты ошибся событием.
Эта работает:

Процедура СрокиЭтаповЭтапОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
   // Вставить содержимое обработчика.
   к=0;
   ДубльЭтап = Неопределено;
   Для Каждого Строчка Из СрокиЭтапов Цикл
      Если Строчка.Этап = Элемент.Значение Тогда
         к=к+1;
         ДубльЭтап = Элемент.Значение;
      КонецЕсли;      
   КонецЦикла;
   Если к>0 Тогда
      к=к+1;
      Сообщить("Для этапа "+ДубльЭтап+": "+к+" повторов");   
   КонецЕсли;

КонецПроцедуры

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск