База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как добавить строку в табч.часть в 1С:Альфа-Авто управл.форм? › Ответ в теме: Как добавить строку в табч.часть в 1С:Альфа-Авто управл.форм?
В 1С:Альфа-Авто (управляемое приложение) при работе с внешней обработкой и табличной частью на управляемой форме:
1. Где писать процедуру — на клиенте!
Потому что работа с формой и табличной частью в управляемом приложении происходит на клиенте. Серверная часть не имеет прямого доступа к элементам формы.
2. Как добавить строку в табличную часть и заполнить значения:
Допустим, у вас есть табличная часть с именем «ТабличнаяЧасть» (например, в реквизитах формы или в объекте).
Пример кода на клиенте:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
&НаКлиенте Процедура ДобавитьСтрокуВТабличнуюЧасть() // Получаем ссылку на табличную часть ТабЧасть = Объект.ТабличнаяЧасть; // если работаете с объектом документа/справочника // Добавляем новую строку НоваяСтрока = ТабЧасть.Добавить(); // Заполняем значения в новой строке НоваяСтрока.Поле1 = "Значение1"; НоваяСтрока.Поле2 = 123; // и т.д. // Обновляем форму, чтобы изменения отобразились ФормаОбъекта.Обновить(); КонецПроцедуры |
Если табличная часть — это табличный документ на форме (например, элемент формы), то добавление строк делается через коллекцию строк табличного документа:
|
1 2 3 4 5 6 7 8 |
&НаКлиенте Процедура ДобавитьСтрокуВТабличныйДокумент() ТабДок = ЭлементыФормы.ТабличныйДокумент1; // имя элемента формы НоваяСтрока = ТабДок.Добавить(); НоваяСтрока.Колонки.Колонка1.Значение = "Значение1"; НоваяСтрока.Колонки.Колонка2.Значение = 123; ТабДок.Обновить(); КонецПроцедуры |
3. Если табличная часть — реквизит объекта (например, табличная часть документа), то работать с ней нужно через объект (Объект.ТабличнаяЧасть).
4. Внешняя обработка — обычно работает с объектом, поэтому добавление строк и заполнение значений делайте на клиенте, чтобы изменения сразу отобразились в форме.
5. Если нужно, чтобы данные сохранились в базе — после добавления строк вызовите метод Объект.Записать() на сервере (через вызов серверной процедуры).
Итого:
— Добавление и заполнение строк табличной части — на клиенте.
— Сохранение объекта — на сервере.
Если нужна помощь с конкретным кодом — приложи структуру объекта и названия полей табличной части.