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

Обучение и Решения · 11 мин

Как перенести столбец в 1С: практическое руководство

Как перенести столбец в 1С: изменение порядка колонок в списках и табличных частях, перенос данных между колонками обработкой, работа в отчётах СКД и загрузка из Excel.

Задача «перенести столбец» в 1С возникает в трёх разных ситуациях: нужно поменять порядок колонок в списке документов или справочника, переместить данные из одной колонки табличной части в другую либо перестроить столбцы в отчёте. Каждая из этих задач решается своим инструментом, и путать их нельзя: изменение порядка колонок на экране не затрагивает данные, а вот перенос значений между реквизитами — уже операция над базой, требующая осторожности.

В типовых конфигурациях (Бухгалтерия, Управление торговлей, Зарплата и управление персоналом) большинство списков построено на динамических списках с настройкой «Изменить форму», где порядок и видимость колонок меняется мышью без программирования. Перенос же данных между колонками выполняется либо вручную, либо групповой обработкой, либо через загрузку из табличного документа (Excel).

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

Определите, какой именно перенос вам нужен

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

Маршрут решения

Как выбрать действие

Нужно, чтобы колонка отображалась левее или правее в спискеИспользуйте «Изменить форму» или перетаскивание заголовка — данные не затрагиваются
Нужно перенести значения из одной колонки табличной части в другуюИспользуйте групповое изменение реквизитов или обработку с записью объектов
Нужно перестроить столбцы в отчётеОткройте настройки отчёта (СКД) и измените порядок полей в группировках
Данные находятся в Excel и их нужно перенести в колонку 1СИспользуйте «Загрузку данных из табличного документа» или копирование через буфер обмена

Перенос столбца в списке документов или справочника

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

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

Чтобы вернуть порядок колонок к исходному состоянию, в том же окне «Изменить форму» есть кнопка «Установить стандартные настройки». Она отменяет все пользовательские изменения формы, включая ширину и видимость колонок.

Перенос данных из одной колонки табличной части в другую

Типовая ситуация: в документах заполнена колонка «Комментарий», а нужно, чтобы эти значения стояли в колонке «Содержание», или цены из одной колонки нужно продублировать в другую. Ручное редактирование каждого документа приемлемо только при малом количестве строк; для массового переноса есть три рабочих способа.

Групповое изменение реквизитов

В типовых конфигурациях на платформе 8.3 есть обработка «Групповое изменение реквизитов» (в разделе «Администрирование» → «Обслуживание», либо через «Все функции» → «Обработки»). Она позволяет отобрать документы по условию и присвоить реквизиту произвольное значение, в том числе вычисляемое по формуле от других реквизитов. Однако работа с табличными частями в ней ограничена: стандартно меняются реквизиты шапки, а для строк табличной части часто требуется режим выполнения произвольного алгоритма, доступный в расширенных вариантах обработки.

Обработка на встроенном языке

Универсальный способ — небольшая обработка или консоль кода. Логика проста: перебрать документы, в каждом пройтись по строкам табличной части, присвоить целевой колонке значение исходной и записать объект. Пример для переноса значений из реквизита «КомментарийСтроки» в «Содержание»:

Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Документ.РеализацияТоваровУслуг");

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

Объект = Выборка.Ссылка.ПолучитьОбъект();

Для Каждого Строка Из Объект.Услуги Цикл

Строка.Содержание = Строка.КомментарийСтроки;

КонецЦикла;

Объект.Записать();

КонецЦикла;

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

Перенос столбца при загрузке данных из Excel

Когда исходные данные находятся в Excel, «перенос столбца» означает сопоставление колонки файла реквизиту 1С. В типовых конфигурациях для этого служит обработка «Загрузка данных из табличного документа» (ищите через «Все функции» → «Обработки», в некоторых конфигурациях она вынесена в раздел закупок или номенклатуры).

Порядок действий
  1. 1
    Откройте обработку «Загрузка данных из табличного документа» и выберите, куда грузить: справочник или табличную часть документа
  2. 2
    Скопируйте данные из Excel в табличный документ обработки через буфер обмена
  3. 3
    Нажмите «Настройка» и для каждой колонки задайте соответствие реквизиту 1С — именно здесь столбец «привязывается» к нужному полю
  4. 4
    Выполните контроль сопоставления: обработка покажет, какие значения найдены в базе, а какие будут созданы новыми
  5. 5
    Загрузите данные и проверьте несколько записей вручную

Если нужно перенести данные в уже существующую табличную часть открытого документа, есть более простой путь: выделите диапазон в Excel, скопируйте его, встаньте в первую ячейку табличной части в 1С и нажмите Ctrl+V. Платформа вставит значения построчно, если порядок и типы колонок совпадают. Способ работает не во всех формах и требует, чтобы состав колонок в буфере совпадал с колонками табличной части.

Перенос столбцов в отчётах на СКД

В отчётах, построенных на системе компоновки данных (а это большинство отчётов типовых конфигураций), порядок столбцов определяется настройками. Нажмите «Ещё» → «Изменить вариант отчёта» (или кнопку «Настройки»), перейдите на вкладку «Поля» или в настройки группировок и измените порядок полей кнопками перемещения. После формирования отчёта столбцы выстроятся в новом порядке.

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

Перенос колонки в конфигураторе

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

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

Типичные ошибки
01
Перетаскивание колонки в форме списка с ожиданием, что данные куда-то «переедут» — меняется только отображение, значения остаются на месте
02
Запуск обработки переноса данных без резервной копии — при ошибке в условиях отбора изменения затрагивают лишние документы и не откатываются
03
Перенос значений в колонку другого типа (строку в число, дату в строку) — часть значений теряется или преобразуется некорректно
04
Копирование из Excel в табличную часть без проверки порядка колонок — значения попадают не в те поля
05
Ожидание, что личная настройка формы появится у коллег — настройки форм индивидуальны для каждого пользователя

Проверка результата после переноса

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

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

Порядок колонок в списке
Норма

Колонки стоят в нужном порядке, данные в строках не изменились

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

Пропала видимость нужной колонки или сбросилась ширина — вернитесь в «Изменить форму»

Данные после переноса между реквизитами
Норма

В целевой колонке значения совпадают с исходными, исходные не затёрты (если это не требовалось)

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

Часть строк пустая или содержит значения не того типа — проверьте условия обработки

Загрузка из Excel
Норма

Количество загруженных строк совпадает с файлом, сопоставленные элементы найдены, а не продублированы

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

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

Отчёт после настройки
Норма

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

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

Исчезли ресурсы или сломались группировки — откатите настройку варианта отчёта

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

Итог

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

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

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

Как перенести столбец в табличной части, если кнопка «Изменить форму» недоступна?

Значит, у вас нет права на изменение формы или разработчик запретил это в коде. Обратитесь к администратору 1С: порядок колонок можно изменить в конфигураторе, и тогда он станет стандартным для всех пользователей.

Можно ли поменять местами значения двух колонок, а не просто скопировать?

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

Почему после копирования из Excel в табличную часть данные встали не в те колонки?

Платформа вставляет значения по порядку следования колонок. Если в Excel порядок столбцов отличается от порядка в табличной части, сначала приведите файл к нужному порядку или скройте в форме лишние колонки через «Изменить форму», чтобы состав совпал. Надёжнее использовать обработку загрузки с явным сопоставлением.

Настройка порядка колонок пропала после обновления конфигурации. Это нормально?

Такое бывает, если при обновлении форма изменилась и платформа сбросила пользовательские настройки, либо если очищалось хранилище настроек. Настройте форму заново через «Изменить форму» — это займёт пару минут. Для стабильного порядка у всех пользователей порядок колонок лучше задать в конфигураторе.

Как перенести колонку в печатной форме документа?

Печатные формы в 1С — это макеты табличных документов, их порядок колонок на экране не настраивается. Изменить макет может разработчик в конфигураторе, либо в некоторых конфигурациях доступен пользовательский редактор макета через «Администрирование» → «Печатные формы, отчеты и обработки», если такой механизм предусмотрен.

Опасно ли менять порядок реквизитов табличной части в конфигураторе?

Для данных это безопасно: физическое хранение от порядка реквизитов не зависит, значения не теряются. Но изменение требует обновления конфигурации базы данных и монопольного доступа, а в типовых конфигурациях на поддержке может усложнить последующие обновления — по возможности ограничьтесь изменением формы, а не метаданных.