Как удалить строку в документе 1с
Дата публикации 15.07.2022
Использован релиз 3.1.23
С релизов программы 3.1.23.20 / 3.1.18.546 добавлена возможность удаления сторнирующих строк в документах с перерасчетом прошлого периода.
Если возникла такая необходимость, то для редактирования сторнирующих строк сначала нужно включить такую возможность. В документе в меню «Еще» табличной части перерасчетов выберите пункт «Разрешить редактирование сторнирующих строк» (рис. 1).
Далее сторнирующую строку можно удалить с помощью клавиши «Del» или по команде через меню «Еще – Удалить» либо воспользоваться командой «Удалить» контекстного меню правой кнопкой мыши. При этом будет выдано информационное сообщение о подтверждении удаления. Кнопка «Да».
Подпишитесь на новости
Не пропускайте последние новости — подпишитесь
на бесплатную рассылку сайта:
- десятки экспертов ежедневно мониторят изменения законодательства и судебную практику;
- рассылка бесплатная, независимо от наличия договора 1С:ИТС;
- ваш e-mail не передается третьим лицам;
как удалить строки по условию 8.3
помогите пожалуйста, необходимо удалить строку по условию (выбрать необходимую номенклатуру) в документе «Отчет о розн. продажах » с последущим проведением.
Бухгалтерия 8.3 управляемые формы.
программировать только начинаю.
По теме из базы знаний
- Всякие полезности
- История роста и работы команд 1С в условиях HighLoad и BigData
- Подготовка отчетности за 2020 год в условиях ограничений на уровне записей RLS в УПП 1.3
- Как читать чужой код? Часть 2. Доработка типовой конфигурации. Обновление доработанной типовой конфигурации
- Как изменить режим совместимости расширения 1С
- Дата
- Дата
- Рейтинг всех уровней
- Рейтинг 1-го уровня
- Древо развёрнутое
- Древо свернутое
Свернуть все
2. user811769 13 17.09.19 16:17 Сейчас в теме
Попробуйте использовать методы Найти() и Удалить() применительно к ТЧ Объекта:
Отбор = Новый Структура; Отбор.Вставить("Номенклатура", Номенклатура); Строки = ОтчетОРозничныхПродажах.Товары.НайтиСтроки(Отбор); Для Каждого Строка Из Строки Цикл ОтчетОРозничныхПродажах.Товары.Удалить(Строка); КонецЦикла;
Прикрепленные файлы:
user1819236; ShEpMaN; + 2 – Ответить
3. VmvLer 17.09.19 16:22 Сейчас в теме
можно и на клиенте. у в ДанныеФормыКоллеция тоже есть методы поиска строк по отбору.
если же ориентироваться на ТЧ, то на сервере объект необходимо получить из реквизита, потом загрузить в форму — тернистый путь.
user811769; + 1 – Ответить
4. shura_a 17.09.19 16:23 Сейчас в теме
Пример удаления в табличной части документа строк с нулевым значением реквизита «Количество»?
ОбъектДок = СсылкаДок.ПолучитьОбъект();
СтруктураДляПоиска = Новый Структура(«Количество», 0);
ТабличнаяЧастьДок = ОбъектДок.Товары;
МассивПустыхСтрок = ТабличнаяЧастьДок.НайтиСтроки(СтруктураДляПоиска);
Для каждого Строка Из МассивПустыхСтрок Цикл
ТабличнаяЧастьДок.Удалить(Строка);
КонецЦикла;
ShEpMaN; user811769; + 2 – Ответить
5. ShEpMaN 17.09.19 16:41 Сейчас в теме
(4)мне необходимо выбрать номенклатуру, найти ее в документе, удалить и провести
6. ShEpMaN 17.09.19 16:41 Сейчас в теме
(4)это делается на сервере?
7. VZyryanov 17.09.19 16:41 Сейчас в теме
Функция общего модуля (Клиент, Сервер). Работает с ТаблицаЗначений, ДанныеФормыКоллекция, табличной частью документа.
Функция КоллекцияОчистить(ТЗ,Отбор) Экспорт Рез=Ложь; Строки=ТЗ.НайтиСтроки(Отбор); Для каждого Стр ИЗ Строки Цикл ТЗ.Удалить(Стр); Рез=Истина; КонецЦикла; Возврат Рез; КонецФункции
8. ShEpMaN 17.09.19 16:42 Сейчас в теме
(7)а как мне выбрать необходимое значение?
9. VZyryanov 17.09.19 17:01 Сейчас в теме
(8) Например, в модуле формы
Если МойОбщийМодуль.КоллекцияОчистить(Объект.Товары, Новый Структура("Номенклатура", УдаляемаяНоменклатура)) Тогда Модифицированность=Истина; КонецЕсли;
11. VmvLer 17.09.19 17:04 Сейчас в теме
(9) от спросил как выбрать, а не как удалить — зачем «зашумлять» неокрепший ум еще больше.
Выбор — это всегда клиентский, как правило, интеракткивный метод.
главное понять — выбор из чего и где?
10. VmvLer 17.09.19 17:02 Сейчас в теме
(8) если вы не укажете контекст обработки, то будет еще много «шума»
возможные контексты:
1. открыта форма форма документа и в ней необходимо выбрать номенклатуру, удалить строки из формы этого документа и провести — это клиентский контекст в чистом виде и все предложенные выше варианты избыточны.
2. где-то (в списке, в обработке) выбран документ-ссылка и в этом объекте необходимо выбрать номенклатуру, удалить строки с ней из объекта и провести объект — это серверный контекст
3. ваше описание контекста задачи.
Прежде чем задать вопрос ВСЕГДА правильно формулируйте контекст вашей задачи и среду исполнения(планформа, конф.)
Тогда ответы будут содержать меньше «шума и пыли».
ShEpMaN; user811769; + 2 – Ответить
12. ShEpMaN 17.09.19 17:30 Сейчас в теме
(10)спасибо за описание моей задачи.
т.е. в выбранном документе, выбираем номенклатуру далее удалем все найденные строки и проводим документ.
Прикрепленные файлы:
13. VmvLer 17.09.19 17:32 Сейчас в теме
14. ShEpMaN 17.09.19 17:42 Сейчас в теме
(13)что то не так я понимаю(
Прикрепленные файлы:
15. VmvLer 17.09.19 18:03 Сейчас в теме
(14) задача по выбору номенклатуру не решена.
после выбора документа необходимо
1. получить список уникальных значений колонки номенклатура
2. вызвать асинхронный метод выбора из этого списка
3. в обработчике завершения выбора удалить строки и записать объект.
вот рабочий алгоритм — детали мне не интересны и раб. день закончен)
16. bad_wag 46 17.09.19 18:43 Сейчас в теме
. Новый Структура("Номенклатура", Номенклатура)
. Новый Структура("Номенклатура", ВыбратьНоменклатуру)
17. ShEpMaN 18.09.19 09:52 Сейчас в теме
ВыбратьНоменклатуру
Что может быть не так?
&НаСервере
Процедура УдалитьВыбраннуюСтрокуНаСервере()
ВыбратьОтчетоПродажах = ВыбратьОтчетоПродажах.ПолучитьОбъект();
СтруктураДляПоиска = Новый Структура(«Номенклатура», ВыбратьНоменклатуру);
ТабличнаяЧастьДок = ВыбратьОтчетоПродажах.Товары;
МассивПустыхСтрок = ТабличнаяЧастьДок.НайтиСтроки(СтруктураДляПоиска);
Для каждого Строка Из МассивПустыхСтрок Цикл
ТабличнаяЧастьДок.Удалить(Строка);
КонецЦикла;
Удаление конкретных строк из табличной части
Привет, нужна ваша помощь. Как удалить конкретные строки из табличной части документа? Контекст следующий — заполняю табличную часть РасходМатериалов из справочника Комплектующие. Для этого нужно очистить тч РасходМатериалов только от тех строк, в которых на момент очистки значение в тч СоставЗаказа ОконнаяКонструкция будет равно предыдущему значению, то есть ОконнаяКонструкция = ПредыдущееЗначениеОконнойКострукции. Вот код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
&НаКлиенте Процедура СоставЗаказаОконнаяКонструкцияПриИзменении(Элемент) ТекущаяСтрока = Элементы.СоставЗаказа.ТекущаяСтрока; ЗаполнитьКоплектующиеНаСервере(ТекущаяСтрока); КонецПроцедуры &НаСервере Процедура ЗаполнитьКоплектующиеНаСервере(ИдентификаторСтроки) СтрокаТЧ = Объект.СоставЗаказа.НайтиПоИдентификатору(ИдентификаторСтроки); УдалитьМатериалыПредыдущейОконнойКонструкции(ПредыдущееЗначениеОконнойКострукции); Если ЗначениеЗаполнено(СтрокаТЧ.ОконнаяКонструкция) Тогда Для Каждого Стр ИЗ СтрокаТЧ.ОконнаяКонструкция.Материалы Цикл ЗаполнитьЗначенияСвойств(Объект.РасходМатериалов.Добавить(), Стр); КонецЦикла; КонецЕсли; ПредыдущееЗначениеОконнойКонструкции = СтрокаТЧ.ОконнаяКонструкция; КонецПроцедуры
Как программно удалить строки из табличной части по условию
В статье рассмотрено несколько основных алгоритмов удаления строк из табличной части по условию. Каждый из вариантов по своему хорош, вам нужно подобрать для себя наиболее подходящий. Оглавление (нажмите, чтобы раскрыть) Первый вариант удаления строк по условию Второй вариант удаления строк […]
Другое в 1С
- 1С: Массивы и коллекции. Массивы
- Как передать структуру в параметр. Конвертация данных
- Менеджер заданий не активен. Как исправить
- Как пропорционально распределить сумму
- Как программно отключить регистрацию объектов в планах обмена при записи объекта

В статье рассмотрено несколько основных алгоритмов удаления строк из табличной части по условию. Каждый из вариантов по своему хорош, вам нужно подобрать для себя наиболее подходящий.
- Первый вариант удаления строк по условию
- Второй вариант удаления строк по условию
- Третий вариант удаления строк по условию
Первый вариант удаления строк по условию
КоличествоСтрок = Объект.Товары.Количество(); Индекс = 0; Пока Индекс КоличествоСтрок Цикл ТекущаяСтрока = Объект.Товары(Индекс); //Задаем условие удаления Если ТекущаяСтрока.СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.БезНДС") Тогда Объект.Товары.Удалить(Индекс); КоличествоСтрок = КоличествоСтрок - 1; Иначе Индекс = Индекс + 1; КонецЕсли; КонецЦикла;
Второй вариант удаления строк по условию
КоличествоСтрок = Объект.Товары.Количество(); Для Счетчик = 0 По КоличествоСтрок - 1 Цикл ТекущаяСтрока = Объект.Товары[КоличествоСтрок - Счетчик - 1]; Если ТекущаяСтрока.СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.БезНДС") Тогда Объект.Товары.Удалить(ТекущаяСтрока); КонецЕсли; КонецЦикла;
Третий вариант удаления строк по условию
ПараметрыОтбора = Новый Структура("СтавкаНДС", ПредопределенноеЗначение("Перечисление.СтавкиНДС.БезНДС"); МассивСтрок = Объект.Товары.НайтиСтроки(ПараметрыОтбора); Для Каждого мСтрока Из МассивСтрок Цикл Объект.Товары.Удалить(мСтрока); КонецЦикла;
