Как сохранить лидирующие нули в артикулах и убрать видимый апостроф при выгрузке из 1С в Excel?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При выгрузке отчетов из 1С в Excel пользователи часто сталкиваются с проблемой: платформенные механизмы Excel воспринимают артикулы и коды, состоящие из цифр, как числовые значения. В результате лидирующие нули (например, код 00012345 превращается в 12345) автоматически отсекаются. Попытка решить проблему путем добавления символа апострофа (одиночной кавычки ') перед значением приводит к другой сложности: апостроф отображается в ячейке как обычный печатный символ и не скрывается до тех пор, пока пользователь не зайдет в ячейку и не нажмет Enter.

Разберем подробно причины такого поведения и проанализируем основные способы корректного вывода текстовых данных с нулями из 1С в таблицы Excel.

Выясним причину проблемы

Символ апострофа в Excel является служебным префиксом формата, подсказывающим табличному редактору, что содержимое ячейки необходимо трактовать как текст. Однако при сохранении табличного документа из 1С через штатный метод Записать() в форматы XLS или XLSX, платформа выгружает апостроф как текстовый символ ячейки. Специальный служебный флаг Excel при этом не устанавливается, из-за чего кавычка остается видимой при обычном открытии файла.

Способ 1. Настройка макета табличного документа в 1С

Если выгрузка происходит из отчета (например, на базе Универсального отчета в конфигурации 1С:Управление торговлей 10.3), проанализируем настройки свойств ячеек макета:

  1. Откроем макет отчета в режиме конфигуратора или пользовательской настройки макетов.
  2. Выделим ячейку, в которую выводится артикул или код с нулями.
  3. В палитре свойств ячейки найдем свойство Тип значения и укажем значение Строка.
  4. Убедимся, что для ячейки взведен флажок Содержит значение.

Явное указание строкового типа на уровне макета помогает платформе сформировать правильные текстовые свойства ячеек в выгружаемом файле без использования символа апострофа.

Способ 2. Программная выгрузка с использованием COM-объекта Excel

Если штатное сохранение табличного документа не дает нужного результата, наиболее надежным решением является программное формирование файла с помощью OLE/COM-автоматизации (Excel.Application).

Рассмотрим два варианта корректной передачи текстовых данных через COM:

Вариант А: Задание текстового формата для ячейки или колонки

Перед записью значений установим для требуемой колонки текстовый формат (маска @). В этом случае значение передается напрямую без подстановки апострофа:


// Создаем объект Excel
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.Workbooks.Add();
Лист = Книга.Worksheets(1);

// Задаем текстовый формат для всей колонки артикулов (например, колонка A)
Лист.Columns("A:A").NumberFormat = "@";

// Заполняем ячейку значением с лидирующими нулями
Лист.Cells(1, 1).Value = "00012345";

Excel.Visible = Истина;

Вариант Б: Запись значения в виде формулы

Если требуется зафиксировать строковое представление без изменения общего формата колонки, можно записать значение в ячейку в виде текстовой формулы:


// Передаем значение в виде формулы Excel
Артикул = "00012345";
Лист.Cells(ИндексСтроки, ИндексКолонки).Formula = "=""" + Артикул + """";

Способ 3. Массовое исправление открытого файла средствами Excel

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

  1. Инструмент «Текст по столбцам»: выделим колонку с артикулами, перейдем на вкладку Данные > Текст по столбцам. В появившемся мастере нажимаем «Далее» до 3-го шага, где выбираем формат данных столбца Текстовый, после чего нажимаем «Готово». Excel конвертирует значения в текстовый формат и скроет ненужные апострофы.
  2. Пользовательский числовой формат: если артикулы имеют фиксированную длину (например, ровно 8 цифр), выделим столбец, откроем окно Формат ячеек (Ctrl+1) > вкладка Число > категория Все форматы и укажем маску из нулей (например, 00000000). Нули отобразятся визуально без изменения типа исходных данных.

Способ 4. Выгрузка через промежуточный формат CSV

Сформируем текстовый документ в формате CSV с разделителями. При открытии файла в Excel воспользуемся инструментом импорта (вкладка Данные > Из текста/CSV или Мастер импорта текста). На шаге настройки типов данных укажем для колонки с артикулами тип Текстовый. Это гарантирует сохранение всех лидирующих нулей без искажения структуры данных.

← На главную