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

Автор Тема: Как удалить в ТЧ документа не все строки, а удовлетворяющие нужному условию  (Прочитано 1886 раз)

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

Оффлайн ktu78

  • ***
  • Сообщений: 153
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-21
  • Сайт: 
  • Профессия: Программист 1С
Добрый день, подскажите пожалуйста коллеги:

Это код удаления всех строк ТЧ
ОбъектДокумента = Документ.ПолучитьОбъект();
    ОбъектДокумента.Товары.Очистить(); 

Как удалить в ТЧ документа не все строки, а удовлетворяющие нужному условию

Спасибо


Оффлайн LexaK

  • *****
  • Сообщений: 1251
  • РЕПУТАЦИЯ: 344
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
да-а-а, похоже что на такой элементарный вопрос вам никто не ответит,
это все равно что вы спросили:
- ребята, а сколько будет "2 + 2"

как вариант (создайте структуру, с ее помощью найдите строчки (которые надо удалить), и в цикле все их удалите) всего 5 строчек кода!
боюсь вы ничего не поняли.
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн Luzer1C

  • ****
  • Сообщений: 411
  • РЕПУТАЦИЯ: 41
  • КПД: 10%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
Только если удалять в цикле, то только с использованием счетчика. По-другому просто нельзя.
Добавлено: 15 Дек 2015, 05:37

Сч = 1;
Пока Сч <= Объект.Товары.Количество() Цикл
Если Объект.Товары[Сч - 1].<<ИмяРеквизитаТЧ_Товары>> = <<Чему то равно>> Тогда
Объект.Товары.Удалить(Сч - 1);
Иначе
Сч = Сч + 1;
КонецЕсли;
КонецЦикла;
Помочь мне очень сложно. Но можно.
Помогаю просто так...
Матёрый разработчик УПП + Бит Финанс

Последний раз редактировалось: Luzer1C; 15 Дек 2015, 05:37. Причина: Объединение сообщений

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Только если удалять в цикле, то только с использованием счетчика. По-другому просто нельзя.

Не есть факт. Да и при вашем алгоритме цикл не собьется часом?

Обычно обхожу таблицу циклом "Для каждого". Проверяем нужное условие и если выполняется то кладем текущую строку в массив для удаления.
Далее циклом обходим получивший массив и удаляем.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Luzer1C

  • ****
  • Сообщений: 411
  • РЕПУТАЦИЯ: 41
  • КПД: 10%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
Так тоже можно.
Только если удалять строки из ТЧ сразу, то они сдвигаются и получится так, что, например, мы удалили строку и на её место встала другая строка. А так как мы обрабатываем циклом, то эту строку мы не проверим. Проверка условия перейдёт на другую строку.
Мой механизм рабочий. Это из обучающего видео Евгения Гилёва.
Помочь мне очень сложно. Но можно.
Помогаю просто так...
Матёрый разработчик УПП + Бит Финанс

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Так тоже можно.
Только если удалять строки из ТЧ сразу, то они сдвигаются и получится так, что, например, мы удалили строку и на её место встала другая строка. А так как мы обрабатываем циклом, то эту строку мы не проверим. Проверка условия перейдёт на другую строку.
Мой механизм рабочий. Это из обучающего видео Евгения Гилёва.

При обходе циклом Для каждого например так
    Для каждого СтрокаТЧ Из Товары
    ...

то в СтрокаТЧ "сидит" каждый раз ссылка (или адрес в памяти) на текущую строку.
поэтому совершенно не важно ее изменяющееся положение относительно других.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Luzer1C

  • ****
  • Сообщений: 411
  • РЕПУТАЦИЯ: 41
  • КПД: 10%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
Правильнее было написать так: "с использованием массива для удаления или с использованием счетчика".
Цитировать
Да и при вашем алгоритме цикл не собьется часом?
Если не верите, советую проверить.
Помочь мне очень сложно. Но можно.
Помогаю просто так...
Матёрый разработчик УПП + Бит Финанс

Оффлайн KrivosheevEV

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 35
  • КПД: 17%
  • Регистрация: 2014-01-20
  • Сайт: 
  • Профессия: Программист 1С
Тоже считаю, что удаление по индексу строки допустимо только снизу. Удаление по ссылке - направление не важно.

Оффлайн Luzer1C

  • ****
  • Сообщений: 411
  • РЕПУТАЦИЯ: 41
  • КПД: 10%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
Вы не понимаете суть алгоритма. Советую разобраться.
Помочь мне очень сложно. Но можно.
Помогаю просто так...
Матёрый разработчик УПП + Бит Финанс

Оффлайн KrivosheevEV

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 35
  • КПД: 17%
  • Регистрация: 2014-01-20
  • Сайт: 
  • Профессия: Программист 1С
А ведь и вправду годно. Не обратил внимание на блок "Иначе".


Теги:
 

Не открывает форму сохраненного документа, открывает форму нового.

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

Ответов: 1
Просмотров: 4196
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Автоматическое заполнение табличной части документа из табличной части другого

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

Ответов: 6
Просмотров: 14702
Последний ответ 16 Авг 2012, 12:07
от Will
Заполнение поля табличной части документа из табличной части справочника.

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

Ответов: 3
Просмотров: 3780
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Заполнение табличной части документа реквизитами табличной части справочника

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

Ответов: 1
Просмотров: 306
Последний ответ 10 Май 2017, 20:44
от ilnur75
Добавление сведений в графу "основание" документа "ТОРГ-12"

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

Ответов: 4
Просмотров: 7243
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

alex0402
94 Сообщений
oleg-x
79 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
66 Сообщений
Golickoff Golickoff
51 Сообщений
AIFrame
46 Сообщений
ilyay ilyay
42 Сообщений
Амал
30 Сообщений
MuI_I_Ika MuI_I_Ika
27 Сообщений
LexaK
23 Сообщений
lansy
22 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal