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

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

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

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

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


Теги:
 

"Таблица значений" в результате запроса - 1С

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

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

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

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

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

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

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

Ответов: 2
Просмотров: 6210
Последний ответ 28 Июл 2011, 23:55
от Dethmontt
1C ЗУП 2.5 Помогите с отчетом "Списки сотрудников организации" Объединение значений ячеек

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

Ответов: 2
Просмотров: 1046
Последний ответ 10 Фев 2017, 10:49
от ksander-fars

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
172 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal