helpf.pro
Регистрация

Как удалить строки табличной части справочника в упр форме (8.2)?

user1c
01.10.2010 23:50Прочитано: 7284
Как удалить строки табличной части справочника в упр форме (8.2)? Методы, применяемые к ТаблицаФормы не подходят. Если это таблица из реквизитов справочника - то возвращает строку таблицы как объект. Для Элементы.ТабличнаяЧастьНастройкаВопросов.ТекущаяСтрока тип числовой.
Можно удалить данные как объект на сервере, но если пользователь откажется от сохранения измененных данных – проблема, данные изменены. Надо добиться эффекта нажатия кнопки «Удалить текущий элемент» на командной панели табличной части справочника – чтобы удалялись данные на форме, а не в базе.
Спасибо.
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
02.10.2010 13:54Ответ № 1
(0) user1c,
Код 1C v 8.2 УП
 &НаКлиенте
Процедура ОбработатьВыполнить()
Объект.Обработан=Истина;
БылоСтрок= Объект.Данные.Количество();
Для Счетчик =1 по Объект.Данные.Количество() Цикл
НомерСтроки= БылоСтрок-Счетчик;
лСтр = Объект.Данные[НомерСтроки];
Если лСтр.Группа = Объект.ВозрастнаяГруппа Тогда
Иначе
Объект.Данные.Удалить(НомерСтроки);
КонецЕсли;
КонецЦикла;
КонецПроцедуры


или это: код работает - но так сказать с точки зрения грамотности написания - никакой
Код 1C v 8.2 УП
 Процедура УдалитьСтрокуОборудование(Услуга)
КолВо = Объект.ОборудованиеПраздник.Количество();
Для Сч = 1 по КолВо Цикл
Удалено = Ложь;
Для Каждого ТекСтрока из Объект.ОборудованиеПраздник Цикл
Если ТекСтрока.Услуга = Услуга Тогда
Объект.ОборудованиеПраздник.Удалить(ТекСтрока);
Удалено = Истина;
КонецЕсли;
КонецЦикла;
Если удалено=Ложь Тогда
Прервать;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
user1c
03.10.2010 21:57Ответ № 2
Большое спасибо. Помог первый вариант. Только не понял строку «Объект.Обработан=Истина;» Управляемое приложение. Управляемая форма. «Обработан» не нашел даже по синтакс-помошнику.

Скорее всего Вы хотели сообщить об изменении данных на форме.
Это можно сделать двумя способами.
1-й способ:
В начале процедуры указать:
Код 1C v 8.2 УП
 ЭтаФорма.Модифицированность =Истина;   

2-й способ.
В окне команды формы выбрать команду для удаления. В окне свойств для этой команды установить флажок «Изменяет сохраняемые данные»

В таком случае, если в процессе редактирования формы при программном удалении строк табличной части на форме будет признак модифицированности и предложение сохранить изменения при выходе.
E_Migachev
03.10.2010 23:00Ответ № 3
(2) ) Обработан - это реквизит справочника, его надо было выкинуть из примера *13
Mokey
12.10.2010 15:05Ответ № 4
Код 1C v 8.х
 Процедура УдалитьСтроки(ТЗ)
Счетчик = 0;
Пока Счетчик <= ТЗ.Количество()-1 Цикл
Стр = ТЗ[Счетчик];
Если <Тут условие на удаление> Тогда
ТЗ.Удалить(Стр);
//счетчик не перещёлкиваем, поскольку строки ниже сместились вверх
//и количество строк ТЗ тоже изменилось
Иначе
Счетчик = Счетчик + 1;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
user1c
15.10.2010 15:40Ответ № 5
Спасибо за ответы. Проблема решена. Вопрос закрыт.
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.