Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по табличной части документа
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
СветланаТ.
Добрый день. у меня такой вопрос: в ТЧ я создала реквисит МойНомер, который должен заполнятся как Предыдущий номер+1, если КоличествоСтрок в таблице<>0.
&НаКлиенте
Процедура ТабличнаяЧастьПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
если Объект.ТабличнаяЧасть.Количество()<>0 тогда
     отказ=истина;
     НоваяСтрока = Объект.ТабличнаяЧасть.Добавить();
     ИсхСтрока = Элементы.ТабличнаяЧасть.ТекущиеДанные;
     НоваяСтрока.Номер=ИсхСтрока.Номер+1;
     Элементы.ТабличнаяЧасть.ТекущаяСтрока=Элементы.ТабличнаяЧасть.ТекущаяСтрока + 1;
    конецесли;
конецесли;    

КонецПроцедуры

Тут все работает, но если активна не последняя строка, то прибавляет к активной. какнайти именно последнюю строку и новый номер считать от неё?
logist
зачем Вам это нужно, если у ТЧ есть стандартный реквизит "НомерСтроки"?


Цитата
какнайти именно последнюю строку и новый номер считать от неё?

вероятно так:
&НаКлиенте
Процедура ТабличнаяЧастьПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
Если Объект.ТабличнаяЧасть.Количество() Тогда
Отказ = Истина;
НоваяСтрока = Объект.ТабличнаяЧасть.Добавить();
НоваяСтрока.МойНомер = Объект.ТабличнаяЧасть.Количество()+1;
КонецЕсли;    

КонецПроцедуры
СветланаТ.
стандартный реквизит руками нельзя править пользователю

Это работает не так как нужно. прибавлять нужно не к количеству, а к номеру, который пользователь ввел в первой строке. при удалении любой строки, пересчет не нужен. только удаление строчки и все
logist
Цитата(СветланаТ. @ 28.06.12, 13:05) необходимо зарегистрироваться для просмотра ссылки
какнайти именно последнюю строку

Цитата(СветланаТ. @ 28.06.12, 13:39) необходимо зарегистрироваться для просмотра ссылки
который пользователь ввел в первой строке

Ничего не понятно...


&НаСервере
Функция ПолучитьНовыйМойНомер()
КолонкаМойНомер = Объект.ТабличнаяЧасть.Выгрузить(,"МойНомер");
КолонкаМойНомер.Сортировать("МойНомер Убыв");

Возврат КолонкаМойНомер[0].МойНомер + 1;
КонецФункции

&НаКлиенте
Процедура ТабличнаяЧастьПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
Если Объект.ТабличнаяЧасть.Количество() Тогда
Отказ = Истина;
НоваяСтрока = Объект.ТабличнаяЧасть.Добавить();
НоваяСтрока.МойНомер = ПолучитьНовыйМойНомер();
КонецЕсли;    

КонецПроцедуры
СветланаТ.
Спасибо огромное за помощь. все заработало:)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.