Отчеты и Аналитика · 8 мин
Как выгрузить колонку табличной части в 1С
Способы выгрузить колонку табличной части (ТЧ) документа в 1С: копирование, выгрузка в Excel, консоль запросов, обработка. Пошаговая инструкция с примерами кода.
Задача выгрузить одну колонку табличной части (ТЧ) документа или справочника возникает часто: нужно получить список артикулов из счёта, колонку количеств из инвентаризации, перечень сотрудников из кадрового приказа. В 1С нет кнопки «выгрузить колонку», но есть несколько рабочих способов — от простого копирования до программной выгрузки через запрос.
Выбор способа зависит от трёх факторов: есть ли у вас права на конфигуратор и внешние обработки, какой объём данных нужно получить и что делать с результатом дальше — вставить в Excel, загрузить в другую базу или обработать кодом. Ниже разобраны все основные варианты с пошаговыми действиями.
Способ 1. Копирование колонки через буфер обмена
Самый простой вариант — не требует ни конфигуратора, ни дополнительных инструментов. Откройте документ с табличной частью, кликните по заголовку нужной колонки, чтобы выделить её целиком. В тонком клиенте и веб-клиенте выделение колонки работает при клике по шапке колонки; если колонка не выделяется, проверьте, что таблица не находится в режиме редактирования ячейки.
После выделения нажмите Ctrl+C и вставьте данные в Excel или текстовый редактор: каждое значение встанет в отдельную строку. Если выделение колонки недоступно в вашей версии платформы, используйте команду «Ещё → Вывести список» над табличной частью: в открывшемся табличном документе снимите лишние флажки колонок, оставьте нужную и сохраните результат в файл.
- 1Откройте документ и табличную часть
- 2Кликните по заголовку нужной колонки для выделения
- 3Нажмите Ctrl+C или используйте «Ещё → Вывести список»
- 4Вставьте данные в Excel и проверьте число строк
- 5Сверьте количество строк с количеством строк в ТЧ документа
Способ 2. Выгрузка через «Вывести список» в файл
Команда «Вывести список» (в некоторых конфигурациях — «Выгрузить») формирует табличный документ из содержимого ТЧ. В диалоге настройки отметьте только нужную колонку, снимите остальные флажки и нажмите «ОК». Полученный табличный документ сохраняется через «Файл → Сохранить как» в форматы MXL, XLSX, ODS, CSV или TXT.
Формат CSV удобен, если колонку нужно передать в другую систему или обработать скриптом. Учтите ограничение: при сохранении в CSV из табличного документа разделителем обычно служит точка с запятой, а числа сохраняются в отображаемом виде — с разделителями групп разрядов, если они заданы в формате ячейки. Перед дальнейшей обработкой проверьте, не «поплыли» ли числа и даты.
Способ 3. Консоль запросов для больших объёмов
Если строк много, документов несколько или выгрузка нужна регулярно, ручное копирование не подходит. Используйте консоль запросов — стандартную обработку, доступную на ИТС и во многих типовых конфигурациях. Запрос выбирает колонку из табличной части напрямую из базы.
Пример запроса для выгрузки колонки «Номенклатура» из табличной части «Товары» документа «РеализацияТоваровУслуг»:
SELECT
РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура
FROM
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
WHERE
РеализацияТоваровУслугТовары.Ссылка = &Ссылка
Результат запроса в консоли можно скопировать или сохранить — большинство консолей позволяют выгрузить результат в табличный документ или файл. Преимущество подхода: можно сразу отфильтровать данные, убрать дубли через «SELECT DISTINCT» и объединить колонки из нескольких документов одним запросом.
Способ 4. Программная выгрузка методом ВыгрузитьКолонку()
У табличной части объекта есть встроенный метод ВыгрузитьКолонку("ИмяКолонки"), который возвращает массив значений. Этот вариант подходит разработчикам и тем, кто пишет разовую обработку. Метод работает быстро, так как не создаёт промежуточную таблицу значений.
ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
МассивНоменклатуры = ДокументОбъект.Товары.ВыгрузитьКолонку("Номенклатура");
Текст = Новый ТекстовыйДокумент;
Для Каждого Элемент Из МассивНоменклатуры Цикл
Текст.ДобавитьСтроку(Строка(Элемент));
КонецЦикла;
Текст.Записать("C:\Выгрузка\колонка.txt", КодировкаТекста.UTF8);
Если нужна не одна колонка, а несколько, используйте Выгрузить() без параметров — получите таблицу значений со всеми колонками ТЧ, из которой затем возьмёте нужные. Для выгрузки в Excel программным путём таблицу значений удобно преобразовать в табличный документ через построитель отчёта или заполнить ячейки напрямую через COM-объект Excel.
Массив = ДокументОбъект.Товары.ВыгрузитьКолонку("Номенклатура");Способ 5. Универсальная обработка «Выгрузка и загрузка данных»
Если задача — перенести колонку или всю табличную часть в другую базу 1С, используйте типовую обработку выгрузки/загрузки данных XML (с диска ИТС или из состава конфигурации «Конвертация данных»). Она выгружает объекты целиком вместе с табличными частями в XML-файл, из которого данные можно загрузить в идентичную конфигурацию.
Этот способ избыточен для простого «получить список в Excel», но незаменим при переносе данных между базами. Важное ограничение: конфигурации источника и приёмника должны быть совместимы по структуре метаданных, иначе загрузка завершится ошибками или потерей части данных.
Сравнение способов выгрузки
Подходит для разовой выгрузки до нескольких тысяч строк; не требует прав разработчика, но легко ошибиться при выделении
Удобен для сохранения в Excel/CSV; ограничен возможностями отбора данных
Гибкая фильтрация и объединение документов; требует прав и навыка написания запросов
Для автоматизации и регулярных выгрузок; нужен доступ к конфигуратору или внешним обработкам
Для переноса между базами 1С; избыточен для выгрузки одной колонки в Excel
Проверка результата и типичные ошибки
После выгрузки сверьте количество строк в результате с количеством строк табличной части — расхождение означает потерю данных при копировании или лишние строки-итоги в файле. Если колонка содержит ссылочные значения (номенклатуру, контрагентов), проверьте, что выгрузилось именно то представление, которое нужно: наименование, артикул или код. В коде для этого указывайте нужный реквизит через точку: ВыгрузитьКолонку("Номенклатура.Артикул") не сработает — сначала выгрузите колонку, затем получите артикулы обходом.
Числовые колонки при вставке в Excel иногда превращаются в текст с неразрывными пробелами-разделителями разрядов. Признак проблемы — числа выравнены по левому краю и не участвуют в суммах. Лечится заменой неразрывного пробела (код символа 160) на пустую строку или настройкой формата перед вставкой.
Как проверить результат
Совпадает с числом строк в табличной части
Строк больше (итоги, шапка) или меньше (обрыв копирования)
Выровнены вправо, суммируются формулой
Выровнены влево, воспринимаются как текст
Текст читаемый при открытии
Крякозябры — неверная кодировка при сохранении
FAQ
Можно ли выгрузить колонку из ТЧ сразу нескольких документов?
Да, проще всего консолью запросов: уберите отбор по конкретной ссылке или задайте список документов в условии «В (&СписокСсылок)». В результат добавьте поле «Ссылка», чтобы видеть, из какого документа каждая строка.
Как выгрузить колонку без дублей значений?
В запросе используйте «SELECT DISTINCT» или конструкцию «ВЫБРАТЬ РАЗЛИЧНЫЕ». При копировании через буфер дубли придётся удалять уже в Excel штатной командой «Удалить дубликаты».
Почему метод ВыгрузитьКолонку() возвращает пустой массив?
Чаще всего указано неверное имя колонки — проверьте точное имя реквизита табличной части в конфигураторе. Также массив будет пуст, если документ не содержит строк в этой ТЧ или объект не прочитан из базы.
Можно ли выгрузить колонку в Excel без установленного Excel на компьютере?
Да. Сохраните табличный документ в формате XLSX — платформа записывает файл сама, без участия Excel. Открыть такой файл можно в Excel, LibreOffice или Google Таблицах.
Как выгрузить колонку, если нет прав на конфигуратор и внешние обработки?
Используйте штатные средства: выделение колонки и копирование или команду «Ещё → Вывести список» с сохранением в файл. Эти функции доступны большинству пользователей без дополнительных прав.
Что важно запомнить
Для разовой выгрузки колонки достаточно копирования или «Вывести список», для регулярных задач и больших объёмов — консоль запросов или метод ВыгрузитьКолонку(). После выгрузки всегда сверяйте число строк и проверяйте формат чисел и кодировку файла.