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