Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
22 Май 2018, 18:25
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Удаление строк из таблицы значений по заданному условию  (Прочитано 12773 раз)

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

Оффлайн sergqwert

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-11-09
  • Сайт: 
Нужен алгоритм удаления строк из таблицы значений по заданному условию(платформа 1с 8). На входе таблица:
Код                 Артикул
0001           432AB432
0002            321DC321
0003            634CG345
0004           345PC324
0005           324FQ543
0006           234PG244
0007            234GG432

Необходимо удалить все строки, в артикуле которых встречается символ "С" или символ "G".
Сделал обработку, но строки не удаляются почему-то. Помогите, пожалуйста.
Код:

Процедура КнопкаВыполнитьНажатие(Кнопка)
   ТаблицаЗначений = Новый ТаблицаЗначений;
   // создаем нужные колонки
   ТаблицаЗначений.Колонки.Добавить("Код");
   ТаблицаЗначений.Колонки.Добавить("Артикул");
   // Добавим новую строку и зададим значения в колонках таблицы
   НоваяСтрока = ТаблицаЗначений.Добавить();
   НоваяСтрока.Код = 0001;
   НоваяСтрока.Артикул = "432AB432";
    НоваяСтрока = ТаблицаЗначений.Добавить();
   НоваяСтрока.Код = 0002;
   НоваяСтрока.Артикул = "321DC321";           
   НоваяСтрока = ТаблицаЗначений.Добавить();
   НоваяСтрока.Код = 0003;
   НоваяСтрока.Артикул = "634CG345";
   НоваяСтрока = ТаблицаЗначений.Добавить();
   НоваяСтрока.Код = 0004;
   НоваяСтрока.Артикул = "345PC324";
   НоваяСтрока = ТаблицаЗначений.Добавить();
   НоваяСтрока.Код = 0005;
   НоваяСтрока.Артикул = "324FQ543";
    НоваяСтрока = ТаблицаЗначений.Добавить();
   НоваяСтрока.Код = 0006;
   НоваяСтрока.Артикул = "234PG244";
   НоваяСтрока = ТаблицаЗначений.Добавить();
   НоваяСтрока.Код = 0007;
   НоваяСтрока.Артикул = "234GG432";
      
КонецПроцедуры

Процедура ОсновныеДействияФормыУдалитьСтроки(Кнопка)
   // удалим все строки по заданному условию
   Сч = 0;
   Пока Сч < ТаблицаЗначений.Количество() Цикл
   НоваяСтрока = ТаблицаЗначений.Получить(Сч);
   // заменить символы C, G на кавычки
   НоваяСтрока.Артикул = СтрЗаменить(НоваяСтрока.Артикул, "C", """");
   НоваяСтрока.Артикул = СтрЗаменить(НоваяСтрока.Артикул, "G", """");
   Если НоваяСтрока = """" Тогда
      // удалить строки, в которых присутствуют кавычки
      ТаблицаЗначений.Удалить(НоваяСтрока);
   Иначе
      Сч = Сч + 1;
   КонецЕсли;
   КонецЦикла;

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


Оффлайн Slin

  • Глобальный модератор
  • *****
  • Сообщений: 780
  • РЕПУТАЦИЯ: 247
  • КПД: 32%
  • Game over...
  • Регистрация: 2010-10-13
  • Сайт: 
  • Профессия: Программист 1С
Непонятно зачем вы меняете буквы на кавычку.
Теперь собственно ответ на вопрос. Зачем вы сравниваете НоваяСтрока с кавычкой? Она никогда не будет равна, хотя бы потому, что разные типы (СтрокаТаблицыЗначений и Строка). Использовать нужно НоваяСтрока.Артикул. И не сравнивать, а искать.
skype: slin-dev

Оффлайн dimalf

  • **
  • Сообщений: 62
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-01-13
  • Сайт: 
  • Профессия: Программист 1С
Можно создать ещё одну ТЗ с теми же колонками и если строка из ТЗ1 не содержит "С" или "G" или других символов, записывать её в ТЗ2

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2861
  • РЕПУТАЦИЯ: 548
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Процедура ОсновныеДействияФормыУдалитьСтроки(Кнопка)
   
    Массив= Новый Массив;
    Для Сч=0 Из ТаблицаЗначений.Количество()-1 Цикл
       Если Найти(ТаблицаЗначений[сч].Артикул,"C") > 0 или Найти(ТаблицаЗначений[сч].Артикул,"G") > 0 Тогда
          Массив.Добавить(Сч);
       КонецЕсли;
    КонецЦикла;
   
    Для Сч=0 По Массив.ВГраница() Цикл
       ТаблицаЗначений.Удалить(Массив[Массив.ВГраница()-Сч]);
    КонецЦикла;   

КонецПроцедуры
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!


Теги:
 

Обнаружено дублирование ключевых значений в колонке ссылка [&quot;обнаружено дублирование ключевых з

Автор lianinfoРаздел Пользователям "1С - Предприятие 8"

Ответов: 10
Просмотров: 685
Последний ответ 20 Мар 2018, 16:54
от alex0402
"Таблица значений" в результате запроса - 1С

Автор mvk843Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 1294
Последний ответ 15 Июн 2017, 07:53
от mvk843
Ошибка - Обнаружено дублирование ключевых значений в колонке "Ссылка". Отображение данных в списке не возможно.

Автор welldoneРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 5465
Последний ответ 24 Ноя 2015, 15:38
от welldone
"Проверка мутабельных значений на заполненность не поддерживается"

Автор proofetРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 22874
Последний ответ 13 Фев 2011, 17:36
от proofet
Почему реквизит типа "список значений" может оказаться недоступным для изменения

Автор VdegРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 6616
Последний ответ 28 Июл 2011, 23:55
от Dethmontt

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
153 Сообщений
oleg-x
69 Сообщений
alex0402
65 Сообщений
AIFrame AIFrame
55 Сообщений
wise wise
39 Сообщений
buketov.av buketov.av
36 Сообщений
KOI8-R
34 Сообщений
ilyay ilyay
29 Сообщений
Alter
27 Сообщений
trialex3
25 Сообщений

* Кто онлайн

  • Точка Гостей: 401
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal