Вверх ↑
Ответов: 16884
Рейтинг: 1239
#1: 2012-12-08 23:57:21 ЛС | профиль | цитата
Kazbek17, уже есть. 1С называется.
Пример

// Шкедов Д.Ю.   -   Начало блока.
Процедура ГЛмояУдалитьКонкретныеЗначенияИзТЗ(тз,яКолонка,яУдаляемоеЗначение,Условие=0) Экспорт


//универсальная процедура удаления значений из ТаблицыЗначений
//удаляет из таблицы значений "тз" из колонки "яКолонка" все значения "яУдаляемоеЗначение"
//если указано условие тогда можно удалить диапазон чисел
//условие можно указать так: "<=" ">=" ">" "<" "<>"
//например: яУдаляемоеЗначение=5 Условие= "<=" Тогда из тз будут удалены все значения которые меньше или равны 5


Если Условие=0 Тогда
Если ТипЗначенияСтр(яУдаляемоеЗначение)="Строка" Тогда
Для Индекс=1 По тз.КоличествоСтрок() Цикл
Если Индекс>тз.КоличествоСтрок() Тогда
Прервать;
КонецЕсли;
Если СокрЛП(тз.ПолучитьЗначение(Индекс,яКолонка))=СокрЛП(яУдаляемоеЗначение) Тогда
тз.УдалитьСтроку(Индекс);
Индекс=Индекс-1;
КонецЕсли;
КонецЦикла;
Иначе
Для Индекс=1 По тз.КоличествоСтрок() Цикл
Если Индекс>тз.КоличествоСтрок() Тогда
Прервать;
КонецЕсли;
Если тз.ПолучитьЗначение(Индекс,яКолонка)=яУдаляемоеЗначение Тогда
тз.УдалитьСтроку(Индекс);
Индекс=Индекс-1;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Иначе
Для Индекс=1 По тз.КоличествоСтрок() Цикл
Если Индекс>тз.КоличествоСтрок() Тогда
Прервать;
КонецЕсли;
Стр=Шаблон("[?(тз.ПолучитьЗначение(Индекс,яКолонка)"+Условие+"яУдаляемоеЗначение,1,0)]");
Если Стр="1" Тогда
тз.УдалитьСтроку(Индекс);
Индекс=Индекс-1;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
// Шкедов Д.Ю. - Конец блока.
//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


Не знаю, как для тебя, а для меня типа анекдота.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0