Документы и Печать · 10 мин
Как изменить номер строки в 1С
Как изменить номер строки в 1С: перенумерация табличной части документа, настройка нумерации в печатной форме и изменение номеров программно. Пошаговые инструкции.
Номер строки в 1С встречается в нескольких контекстах: это порядковый номер позиции в табличной части документа (колонка «№»), номер строки в печатной форме, а также номер строки в таблице значений при разработке. Пользователю чаще всего нужно перенумеровать строки после удаления позиций, поменять порядок следования товаров или убрать нумерацию из печатной формы. Разработчику — управлять номерами программно при заполнении табличных частей.
Важно понимать: колонка «№» в табличной части документа — это не самостоятельное хранимое поле, а автоматически вычисляемый порядковый номер строки. Платформа сама присваивает номера по порядку следования строк, поэтому «вручную» задать произвольный номер конкретной строке в типовом интерфейсе нельзя. Изменить нумерацию можно только через изменение порядка строк, программным способом или через настройку печатной формы.
Ниже разобраны все практические сценарии: перемещение строк в документе, перенумерация после удаления, работа с печатными формами, программное изменение номеров и типичные ошибки, которые приводят к «сбитой» нумерации.
Как устроена нумерация строк в 1С
В табличной части любого документа или справочника каждая строка имеет системное свойство «НомерСтроки». Платформа присваивает номера последовательно, начиная с единицы, по мере добавления строк. При удалении строки номера остальных автоматически пересчитываются, поэтому «дырок» в нумерации в типовом интерфейсе не бывает.
Колонка «№», которую пользователь видит в документе, — это визуальное отображение того же порядкового номера. Она не редактируется кликом по ячейке: попытка ввести туда своё значение ни к чему не приведёт, так как поле доступно только для чтения. Это штатное поведение платформы, а не ошибка настройки.
Отдельный случай — нумерация в печатных формах (счетах, ТОРГ-12, УПД). Там номер строки может выводиться из макета печатной формы, и его формат (сквозная нумерация, отсутствие номеров, нумерация по группам) определяется настройками печати или самим макетом.
Изменение номера строки через перемещение в документе
Самый частый пользовательский сценарий — нужно, чтобы конкретная позиция стояла под другим номером. Для этого строку перемещают в табличной части, и номер меняется автоматически.
Порядок действий в типовых конфигурациях (УТ, ERP, Бухгалтерия, УНФ): откройте документ, выделите нужную строку в табличной части, затем используйте кнопки перемещения в командной панели таблицы — «Переместить вверх» и «Переместить вниз» (иконки со стрелками). В ряде конфигураций работает и перетаскивание строки мышью за левую часть строки.
Если кнопок перемещения не видно, нажмите кнопку «Ещё» над табличной частью — команды перемещения часто скрыты в этом меню. После перемещения проверьте, что колонка «№» отразила новый порядок, и запишите документ, чтобы изменения сохранились.
- 1Откройте документ и перейдите на вкладку с табличной частью
- 2Выделите строку, номер которой нужно изменить
- 3Нажмите «Переместить вверх» или «Переместить вниз» в командной панели таблицы или в меню «Ещё»
- 4Повторяйте перемещение, пока строка не займёт нужную позицию
- 5Проверьте колонку «№» и запишите документ
Перенумерация строк после удаления и сортировки
После удаления строки платформа пересчитывает номера автоматически — дополнительных действий не требуется. Если вы видите «пропуски» в нумерации, это признак того, что документ заполнялся программно с ошибкой или данные загружались из внешней обработки, которая задавала номера вручную.
Для изменения порядка большого количества строк удобнее сортировка. В меню «Ещё» табличной части доступны команды «Сортировать по возрастанию» и «Сортировать по убыванию» для той колонки, на которой установлен курсор. Например, отсортировав по наименованию номенклатуры, вы получите новый порядок строк и, соответственно, новые номера.
Учтите ограничение: сортировка в табличной части документа меняет реальный порядок строк в базе, а не только отображение. После записи документа вернуть прежний порядок можно только повторной сортировкой или перемещением строк вручную.
Изменение нумерации строк в печатной форме
Номер строки на бумаге не всегда совпадает с колонкой «№» на экране. В макетах печатных форм номер может выводиться из данных строки или вычисляться отдельным счётчиком при формировании печати. Поэтому изменение порядка строк в документе обычно меняет и печатную нумерацию, но не гарантирует этого, если макет доработан.
В типовых конфигурациях часть настроек доступна без программирования: в параметрах печати документа иногда есть варианты вывода номеров, а внешние печатные формы могут иметь собственные настройки. Если нужно убрать колонку номера или вести нумерацию по группам товаров, чаще всего потребуется доработка макета печатной формы в конфигураторе или подключение внешней печатной формы.
Проверяйте результат через «Предварительный просмотр» перед выдачей документа: убедитесь, что номера идут подряд, начинаются с единицы и совпадают с порядком позиций в документе.
Программное изменение номера строки
Разработчику номер строки доступен через свойство «НомерСтроки» объекта строки табличной части. При добавлении строки методом Добавить() номер присваивается автоматически. Прямое присвоение свойства «НомерСтроки» платформой не поддерживается — изменить порядок можно методами Сдвинуть() и перемещением строк в коллекции.
Типовой приём перенумерации — сдвиг строки на нужную позицию. Метод Сдвинуть(Строка, Смещение) перемещает строку в коллекции, после чего номера пересчитываются. Для полной перестройки порядка табличную часть выгружают в таблицу значений, сортируют и загружают обратно.
// Переместить первую строку в конец табличной части
ТЧ = Объект.Товары;
Если ТЧ.Количество() > 1 Тогда
ТЧ.Сдвинуть(0, ТЧ.Количество() - 1);
КонецЕсли;
// Перенумерация через выгрузку и сортировку
ТЗ = Объект.Товары.Выгрузить();
ТЗ.Сортировать("Номенклатура");
Объект.Товары.Загрузить(ТЗ);
При обходе строк в цикле текущий номер читается как СтрокаТЧ.НомерСтроки — это удобно для протоколирования ошибок загрузки, когда нужно указать пользователю, в какой именно строке найдена проблема.
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
Сообщить("Строка " + СтрокаТЧ.НомерСтроки + ": " + СтрокаТЧ.Номенклатура);
КонецЦикла;Частые ошибки и ограничения
Первая типичная ошибка — попытка редактировать колонку «№» как обычное поле. Это невозможно по архитектуре платформы, и никакие настройки прав это не изменят. Вторая ошибка — изменение порядка строк в проведённом документе без понимания последствий: движения по регистрам привязаны к строкам по ключу, и при перепроведении документа после перестановки строк аналитика обычно сохраняется, но печатные формы, выданные ранее, перестанут совпадать.
Третья ошибка — ожидание, что номер строки в печатной форме изменится сам после доработки макета. Если макет использует собственный счётчик, а не данные табличной части, порядок на печати может отличаться от экранного. Четвёртая — загрузка данных из Excel внешними обработками, которые нарушают естественную нумерацию; после такой загрузки документ стоит перезаписать и проверить порядок строк.
Проверка результата
После изменения номеров выполните простую проверку. На экране: колонка «№» должна идти от единицы без пропусков и повторов, нужная позиция — стоять под ожидаемым номером. Документ должен быть записан, а при необходимости — проведён без ошибок.
На печати: откройте предварительный просмотр и сличите порядок позиций с экранной формой. Если документ ранее передавался контрагенту, убедитесь, что новая версия формы заменяет старую и стороны работают с актуальным экземпляром.
Как проверить результат
Номера идут подряд от 1 без пропусков
Пропуски или повторы номеров — признак программной загрузки с ошибкой
Порядок позиций совпадает с экранной формой
Нумерация на печати отличается — макет использует отдельный счётчик
Документ проводится без ошибок
Ошибки проведения после перестановки строк — обратитесь к разработчику
Частые вопросы
Можно ли задать строке произвольный номер, например 10, если она вторая по счёту?
Нет, в типовом интерфейсе номер строки всегда равен её позиции в табличной части. Чтобы строка стала десятой, её нужно переместить на десятое место. Произвольные номера возможны только в самостоятельно разработанных решениях с отдельным реквизитом.
Почему после удаления строки номера не пересчитались?
В штатном режиме платформа пересчитывает номера автоматически. Если остались пропуски, вероятно, табличная часть заполнялась внешней обработкой или обменом. Перезапишите документ или отсортируйте строки — нумерация восстановится.
Как убрать колонку с номером строки из печатной формы?
Штатной настройкой это делается редко. Обычно требуется доработка макета печатной формы в конфигураторе или подключение внешней печатной формы без этой колонки. Учтите, что в унифицированных формах номер строки является частью структуры документа.
Можно ли использовать номер строки как постоянный код позиции?
Не рекомендуется. Номер строки меняется при удалении и перемещении позиций, поэтому для связей между системами лучше использовать уникальный идентификатор строки или отдельный реквизит-ключ.
Как быстро перенумеровать строки по алфавиту товаров?
Установите курсор в колонку с номенклатурой и в меню «Ещё» табличной части выберите «Сортировать по возрастанию». Строки выстроятся по алфавиту, а номера пересчитаются автоматически. Затем запишите документ.
Изменится ли номер строки в движениях документа после перемещения?
После перепроведения документа движения формируются заново в новом порядке строк. На итоговые суммы и остатки порядок строк не влияет, но аналитические отчёты с детализацией до строки будут отражать новую нумерацию.
Что важно запомнить
Номер строки в 1С — это позиция строки в табличной части, а не редактируемое поле. Меняйте его перемещением строк кнопками «Вверх»/«Вниз» или сортировкой, для печатных форм настраивайте макет, а программно используйте метод Сдвинуть и свойство НомерСтроки. Перед изменением порядка в проведённом документе проверьте, не выдана ли печатная форма контрагенту.