К статье
Практический материал

Быстрый старт · 10 мин

Как добавить строку в таблице 1С

Как добавить строку в табличную часть документа, таблицу значений и табличный документ в 1С. Кнопки, горячие клавиши, примеры кода и типичные ошибки.

Добавление строки в таблицу — одна из самых частых операций в 1С, но слово «таблица» здесь означает разные объекты: табличную часть документа со списком товаров, таблицу значений в программном коде или табличный документ для печати. Способ добавления строки зависит от того, с каким именно объектом вы работаете.

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

Как определить, с какой таблицей вы работаете

Прежде чем добавлять строку, важно понять тип объекта, потому что методы различаются. Табличная часть — это список строк внутри документа или справочника, например перечень товаров в «Поступлении товаров и услуг». Она хранится в базе данных вместе с объектом и сохраняется при записи.

Таблица значений — временная структура данных в памяти, которая существует только во время выполнения кода или сеанса. Табличный документ — это печатная форма или отчёт в виде сетки ячеек, похожей на Excel. Путаница между этими объектами — главная причина ошибок «метод не обнаружен» у начинающих разработчиков.

Табличная частьСписок внутри документа

Строки сохраняются при записи документа

Таблица значенийДанные в памяти

Исчезает после закрытия формы или завершения кода

Табличный документПечатная форма

Сетка ячеек для просмотра и печати, не хранит данные

Добавление строки в табличную часть документа в режиме пользователя

Откройте документ и перейдите на вкладку с табличной частью, например «Товары» или «Услуги». Над списком находится командная панель с кнопкой «Добавить» — нажмите её, и в конец списка добавится пустая строка с курсором в первой редактируемой колонке. Тот же результат даёт клавиша Insert, когда фокус стоит на таблице.

Через контекстное меню (правый клик по строке) доступны дополнительные варианты: «Добавить» — новая пустая строка, «Скопировать» — строка с уже заполненными данными текущей позиции, что удобно при вводе однотипных позиций. Во многих конфигурациях также работает кнопка «Подбор», открывающая форму выбора номенклатуры с возможностью добавить сразу несколько строк.

После заполнения колонок переведите курсор на другую строку или нажмите Enter — это завершает редактирование. Проверьте, что итоговые суммы в подвале документа пересчитались: если количество и цена заполнены, а сумма осталась нулевой, скорее всего, строка не завершена или нарушена формула расчёта в конфигурации.

Добавление строки в документ
  1. 1
    Откройте документ и перейдите на вкладку с табличной частью
  2. 2
    Нажмите кнопку «Добавить» на командной панели или клавишу Insert
  3. 3
    Заполните колонки строки: номенклатуру, количество, цену
  4. 4
    Завершите ввод клавишей Enter и проверьте пересчёт итогов
  5. 5
    Запишите документ кнопкой «Записать» или «Провести»

Добавление строки программно: табличная часть и таблица значений

В модуле объекта или формы новая строка табличной части создаётся методом Добавить(). Метод возвращает ссылку на созданную строку, через которую заполняются реквизиты. Типовой фрагмент выглядит так:

НоваяСтрока = Объект.Товары.Добавить();

НоваяСтрока.Номенклатура = НайденныйТовар;

НоваяСтрока.Количество = 2;

НоваяСтрока.Цена = 1500;

Для таблицы значений синтаксис идентичен: ТаблицаЗначений.Добавить() возвращает новую строку, далее присваиваются значения колонок. Важно, чтобы колонки были заранее описаны через ТаблицаЗначений.Колонки.Добавить(), иначе обращение к несуществующей колонке вызовет ошибку «Поле объекта не обнаружено».

Если строку нужно добавить именно в форму с открытием режима редактирования для пользователя, используется метод элемента формы: Элементы.Товары.ДобавитьСтроку(). Он визуально добавляет строку и переводит её в режим ввода, аналогично нажатию Insert. Этот метод доступен только на клиенте в модуле формы.

bsl
НоваяСтрока = Объект.Товары.Добавить(); НоваяСтрока.Номенклатура = Товар; НоваяСтрока.Количество = 1;

Копирование и вставка строк: быстрые альтернативы

Когда нужно добавить несколько похожих строк, копирование экономит время. Выделите строку, нажмите F9 или выберите «Скопировать» в контекстном меню — появится дубликат, в котором останется изменить только отличающиеся поля. Комбинации Ctrl+C и Ctrl+V для целых строк табличной части в типовых формах обычно не работают, используйте именно F9 и Shift+F9 (копирование и вставка строки).

Многие конфигурации поддерживают загрузку табличной части из файла Excel или буфера обмена через обработку «Загрузка данных из табличного документа» или встроенную кнопку «Заполнить». Это оправдано при вводе десятков позиций: вручную такой объём вводить долго и велик риск опечаток в количестве и ценах.

Способы добавить строку

Кнопка «Добавить» / Insert

Подходит для одной-двух строк; требует ручного заполнения всех колонок

Копирование строки (F9)

Подходит для однотипных позиций; легко забыть исправить скопированные значения

Подбор номенклатуры

Подходит для массового ввода товаров; доступен не во всех документах

Метод Добавить() в коде

Подходит для автоматизации; требует прав на изменение конфигурации или внешней обработки

Добавление строки в табличный документ и макет печати

Табличный документ заполняется не «добавлением строк», а выводом областей из макета. В макете создаётся именованная область «Строка» с параметрами, затем в цикле по данным она выводится методом ТабличныйДокумент.Вывести(ОбластьСтрока). Перед выводом параметры области заполняются через ОбластьСтрока.Параметры.Наименование = Значение.

Если нужно вставить строки в уже сформированный табличный документ вручную, включите режим редактирования: в типовых конфигурациях это команда «Ещё — Изменить» или снятие флажка «Только просмотр». После этого доступны вставка строк через контекстное меню и правка ячеек. Учтите, что ручные правки печатной формы не изменяют данные документа — при повторном формировании они пропадут.

Типичные ошибки и их устранение

Ошибка «Метод объекта не обнаружен (Добавить)» почти всегда означает, что метод вызван не у той коллекции: например, у элемента формы вместо данных табличной части или у строки вместо таблицы. Проверьте, что слева от точки стоит именно коллекция строк — Объект.Товары, а не Элементы.Товары и не отдельная строка.

В управляемых формах частая ситуация — метод Добавить() вызывается на клиенте для объекта, недоступного на клиенте. Реквизит формы типа «ДанныеФормыКоллекция» поддерживает Добавить() на клиенте, а вот обращение к данным объекта напрямую может потребовать серверного вызова. Перенесите заполнение в серверную процедуру с директивой &НаСервере.

Ещё одна проблема — строка добавляется, но не видна в форме. Причины: не вызвано обновление отображения, строка добавлена в другую коллекцию (копию таблицы значений, а не в реквизит формы) или сработал отбор строк, скрывающий новую запись. Проверьте установленные отборы у элемента формы.

Типичные ошибки
01
Вызов Добавить() у элемента формы вместо коллекции данных — ошибка «метод не обнаружен»
02
Заполнение несуществующей колонки таблицы значений — ошибка «поле не обнаружено»
03
Добавление строки в копию таблицы, а не в реквизит формы — строка не отображается
04
Ручная правка печатной формы вместо данных документа — изменения теряются при перепечатке
05
Забытая запись документа после добавления строк — данные теряются при закрытии

Проверка результата и границы самостоятельной работы

После добавления строки в документ убедитесь в трёх вещах: строка видна в табличной части, итоги по документу пересчитались, документ успешно записывается без сообщений об ошибках заполнения. Если при проведении появляется сообщение о незаполненном обязательном поле — вернитесь к строке и заполните подсвеченную колонку.

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

Контрольные точки

Как проверить результат

Строка в табличной части
Норма

Строка видна, все обязательные колонки заполнены

Тревожный признак

Строка пустая или исчезла после записи

Итоги документа
Норма

Сумма и количество пересчитались с учётом новой строки

Тревожный признак

Итоги не изменились после добавления

Проведение документа
Норма

Документ проводится без сообщений об ошибках

Тревожный признак

Сообщения о незаполненных полях или ошибках кода

Итог

Что важно запомнить

В форме документа строка добавляется кнопкой «Добавить» или Insert, в коде — методом Добавить() у коллекции строк, в табличном документе — выводом области макета. Проверяйте результат по видимости строки, пересчёту итогов и успешной записи документа.

Частые вопросы

Какая клавиша добавляет строку в табличную часть 1С?

Insert — добавляет новую пустую строку, когда фокус находится на таблице. F9 копирует текущую строку со всеми значениями. Точный набор горячих клавиш зависит от конфигурации и версии платформы, но Insert работает практически везде.

Почему кнопка «Добавить» неактивна в документе?

Чаще всего документ открыт в режиме просмотра, проведён и закрыт для редактирования, либо у пользователя нет прав на изменение. Также табличная часть может быть заблокирована настройками формы. Проверьте статус документа и свои права доступа.

Как добавить строку не в конец, а в середину таблицы?

В пользовательском режиме вставьте строку в конец, затем переместите её кнопками со стрелками на командной панели табличной части. В коде используйте метод Вставить(Индекс), который создаёт строку в указанной позиции коллекции.

Чем Добавить() отличается от ДобавитьСтроку()?

Добавить() — метод коллекции данных, создаёт строку и возвращает её для заполнения в коде. ДобавитьСтроку() — метод элемента формы таблицы, визуально добавляет строку и открывает её для ввода пользователем. Первый работает везде, второй — только на клиенте в модуле формы.

Можно ли добавить сразу несколько строк программно?

Да, вызовите Добавить() в цикле нужное число раз, заполняя каждую строку внутри итерации. Для переноса данных из другой таблицы удобен метод Загрузить(), который полностью заменяет содержимое коллекции строками источника.

Почему добавленная в коде строка не отображается в форме?

Вероятно, строка добавлена в локальную копию таблицы, а не в реквизит формы, либо на таблицу установлен отбор, который её скрывает. Убедитесь, что вы работаете с реквизитом формы напрямую, и проверьте настройки отбора элемента формы.