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

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

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

Оффлайн ktu78

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

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

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

Спасибо


Оффлайн LexaK

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

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

Оффлайн Luzer1C

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

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

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

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

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

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

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

Оффлайн Luzer1C

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

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

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

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

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

Оффлайн Luzer1C

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

Оффлайн KrivosheevEV

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

Оффлайн Luzer1C

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

Оффлайн KrivosheevEV

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


Теги:
 

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

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

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

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

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

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

Ответов: 3
Просмотров: 3326
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Добавление сведений в графу "основание" документа "ТОРГ-12"

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

Ответов: 4
Просмотров: 6767
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984
"Не совпадают сумма документа и общая сумма по платежным ведомостям"

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

Ответов: 1
Просмотров: 3780
Последний ответ 11 Янв 2015, 02:55
от MuI_I_Ika

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

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

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


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

* Реклама

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

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
149 Сообщений
alex0402
102 Сообщений
MuI_I_Ika MuI_I_Ika
53 Сообщений
Norfolk
51 Сообщений
LexaK
47 Сообщений
AsadRoman
27 Сообщений
SlimShady
21 Сообщений
друган
21 Сообщений
alexandr_ll
19 Сообщений
MrLvovsky MrLvovsky
16 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal