1С добавить строку в табличную часть программно

It’s easier than you might think.

Например, у вас имеется документ, в котором вы создали некую табличную часть (в данном примере она называется «Студенты»), и вы хотите программно добавить в нее строки при возникновении какого-то события, тогда возникает вопрос: как именно правильно обратиться к данному объекту документа?

Собственно, в данном примере, вот те строки кода, отвечающие за добавление новой строки в табличную часть при выборе какого-то элемента из динамического списка двойным кликом по нему.

У нас имеется процедура, выполняемая на клиенте, поскольку мы не производим на данном этапе никаких изменений данных, поэтому нам не требуется запрос к серверу («СписокВыборНаСервере() в данном случае не нужен).

Создаем новую переменную «Стр», в которую записываем метод табличной части «Добвить()». Из данной строки видно, что непосредственное обращение к табличной части, называющейся «Студенты», происходит через «Объект». Им является сам документ, в котором создана табличная часть.

Затем происходит заполнение колонок, имеющихся в «Студентах». В данном примере табличная часть имеет лишь одну колонку «Студент» (см. Изображение), она и заполняется данными из динамического списка. В других случаях табличная часть может иметь множество колонок для заполнения. Обращение к ним будет производиться аналогичным образом.

Вот так с помощью пары строк кода (в зависимости от обширности табличной части) можно программно добавить строку данных в табличную часть документа.

1С Предприятие, конфигурации, обработки, услуги программиста, помощь программиста

Нужно вставить обработчик события самой табличной части, который называется «При начале редактирования». В нем есть параметр «Новая строка», что дает нам возможность выполнять некоторые действия только при добавлении новой строки. При этом сама строка уже существует,

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

Читайте также:  Шрифт при отображении входящего звонка iphone

в отличии от обработчика «ПередНачаломДобавления», который можно использовать с тем же успехом, но код будет другой

То бишь, сами добавляем строку и устанавливаем параметры, что мне меньше нравится. Я приверженец использования типовых механизмов насколько это возможно.

Я уже писал об общем принципе программного добавления элементов на управляемую форму, теперь напишу конкретно о том, как добавить колонку табличной части или таблицы значений.

Итак, у нас есть справочник «Тест» с табличной частью «Тест», в табличной части присутствуют реквизиты «Тест1» и «Тест2», а нам нужно добавить еще один реквизит — «Тест3» и показать его на форме.

Выглядит это приблизительно так:

Не думаю, что приведенный код нуждается в комментариях, но на всякий случай скажу, что первые три строки создают новый реквизит типа «Строка» — тут важно указать путь к создаваемому реквизиту — третий параметр.

Точно также можно добавить колонку любой таблице значений (не табличной части) — в этом случае нужно убрать часть «Объект.» из кода.

Следующие три строки добавляют саму колонку на форму.

На этом все, надеюсь данная статья Вам помогла.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Оцените статью
Добавить комментарий

Adblock detector