Имя: Пароль:
1C
 
Возможно ли удалить редактируемую строку в документе?
0 Shur1cIT
 
18.02.15
12:45
Суть такова
в документе выбираем заявку, по этой заявке должны заполниться строки документа одна или несколько в зависимости есть детализация платежа по строкам или нет, (через подбор добавлять ключевой пользователь запретил хочет так)
вопрос как добавляемую строку удалить после добавления строк?

роцедура ЗаявкиЗаявкаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    ТекНомерСтроки = ЭлементыФормы.Заявки.ТекущиеДанные.НомерСтроки;//запоминаем строку которую необходимо потом удалить
    Запрос = Новый Запрос;    
    Запрос.Текст = "ВЫБРАТЬ
    |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование КАК Заявка,
    |    ИСТИНА КАК Оплачивать,
    |    ЗаявкиНаРасходованиеСредствОстатки.ДоговорКонтрагента,
    |    ЗаявкиНаРасходованиеСредствОстатки.СтатьяДвиженияДенежныхСредств,
    |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование.БанковскийСчетКасса,
    |    СУММА(ЗаявкиНаРасходованиеСредствОстатки.СуммаВзаиморасчетовОстаток) КАК СуммаВВалюте,
    |    ЗаявкиНаРасходованиеСредствОстатки.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
    |    СУММА(ЗаявкиНаРасходованиеСредствОстатки.СуммаУпрОстаток) КАК СуммаРуб,
    |    ЗаявкиНаРасходованиеСредствОстатки.Организация
    |ИЗ
    |    РегистрНакопления.ЗаявкиНаРасходованиеСредств.Остатки(&ДатаОтчета, ЗаявкаНаРасходование = &ЗаявкаНаРасход) КАК ЗаявкиНаРасходованиеСредствОстатки
    |
    |СГРУППИРОВАТЬ ПО
    |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование,
    |    ЗаявкиНаРасходованиеСредствОстатки.ДоговорКонтрагента,
    |    ЗаявкиНаРасходованиеСредствОстатки.СтатьяДвиженияДенежныхСредств,
    |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование.БанковскийСчетКасса,
    |    ЗаявкиНаРасходованиеСредствОстатки.ДоговорКонтрагента.ВалютаВзаиморасчетов,
    |    ЗаявкиНаРасходованиеСредствОстатки.Организация";
    Запрос.УстановитьПараметр("ДатаОтчета",КонецДня(Дата));
    Запрос.УстановитьПараметр("ЗаявкаНаРасход",ВыбранноеЗначение);
    Выборка = Запрос.Выполнить().Выбрать();    
    //элементыформы.Заявки.ТекущиеДанные
    
    Пока Выборка.Следующий() Цикл
        НоваяСтрока = Заявки.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяСтрока,Выборка);
        
        
    КонецЦикла;    
    СтандартнаяОбработка = ЛОЖЬ;
    Заявки.Удалить(ТекНомерСтроки); //пытаемся удалить но ничего не получаеться((
КонецПроцедуры
1 Анютик
 
18.02.15
12:50
бред какой-то...поставить в строку невидимый юзеру флаг. при автоматическом заполнении его не заполнять, а при интерактивном взводить, или наоборот. А потом отбор по флагу и удаление строк по условию
2 Рэйв
 
18.02.15
12:55
Заявки.Удалить(Заявки[ТекНомерСтроки-1])
3 Shur1cIT
 
18.02.15
13:06
(2) почему минус 1 ?
в отладчике смотрю
"ТекНомерСтроки" в начале процедуры присваиваеться значение 8 то есть восьмая строка.
когда дохожу до Заявки.Удалить(ТекНомерСтроки); ТекНомерСтроки равно всеравно 8 несмотре на то что количество строк уже 10
4 Рэйв
 
18.02.15
13:07
(3)Потому что строку получаем по индексу, а он начинается с 0, в отличии от номерСтроки, который с 1
5 Рэйв
 
18.02.15
13:09
>>всеравно 8 несмотре на то что количество строк уже 10

а скакого перепуга ему меняться если ты его как назначил в
ТекНомерСтроки = ЭлементыФормы.Заявки.ТекущиеДанные.НомерСтроки

так больше и не менял?
6 Shur1cIT
 
18.02.15
13:10
Всё понял спасибо, там номер строки получаем. а удаляем по индексу который с нуля начинаться
7 Рэйв
 
18.02.15
13:10
если ты хочешь удалить последнюю строку, то там по другому надо
8 kosts
 
18.02.15
13:13
А может начать заполнять с текущей строки, что бы потом не удалять.