Перенос таблиц Excel в 1С:Предприятие 8.3 — справочники, документы и макеты
Содержание
Чтобы загрузить таблицу из Excel в 1С 8.3, откройте список нужного справочника или табличную часть документа и вызовите команду загрузки из файла: 1С покажет данные, предложит сопоставить колонки с полями и найдёт совпадения. Если нужно перенести в конфигурацию готовый макет печатной формы, откройте файл .xlsx прямо в конфигураторе как табличный документ и скопируйте ячейки в макет.
Прайс от поставщика на 800 строк, список контрагентов из старой программы, бланк договора, нарисованный в Excel, — всё это переносится без ручного набора. Ниже порядок действий для каждого случая и то, на чём загрузка чаще всего спотыкается.
Подготовка таблицы Excel к загрузке в 1С
Половина проблем загрузки решается до того, как файл попал в 1С. Программа читает таблицу буквально: лишняя строка шапки, объединённая ячейка или число, сохранённое как текст, дают пустые поля и ошибки сопоставления.
Приведите файл к виду «одна строка — один объект»:
- Оставьте одну строку заголовков. Шапку прайса с логотипом, адресом и датой удалите или вынесите на другой лист.
- Разъедините объединённые ячейки. В объединённой области значение хранится только в первой ячейке, остальные 1С прочитает пустыми.
- Уберите промежуточные итоги и пустые строки между группами. Строка «Итого по разделу» превратится в новую номенклатуру с таким названием.
- Замените формулы значениями: выделите столбец, скопируйте и вставьте как значения. Так вы увидите то же, что прочитает программа.
- Проверьте форматы чисел. Цена
1 250,00с неразрывным пробелом или с текстом «руб.» не распознается как число. - ИНН, КПП, артикулы и штрихкоды храните как текст. Иначе Excel срежет ведущие нули или запишет штрихкод в виде
4,6E+12. - Сохраните файл в
.xlsx. Старый.xlsплатформа тоже читает, но с.xlsxпроблем меньше.
Один лист — одна загрузка. Если в книге номенклатура и остатки лежат на разных листах, загружайте их отдельно, в правильном порядке: сначала справочник, потом документ, который на него ссылается.
| Тип данных | Как оформить в Excel | Что будет при ошибке |
|---|---|---|
| Наименование | Текст без лишних пробелов по краям | Дубли «Болт М8» и «Болт М8 » |
| Количество, цена | Числовой формат, десятичная запятая | Пустое значение или ноль |
| Дата | Формат даты, не текст | Дата не распознана |
| ИНН, артикул, штрихкод | Текстовый формат | Потеря нулей, экспоненциальная запись |
| Единица измерения | Как в классификаторе 1С: «шт», «кг» | Не найдена при сопоставлении |
Стандартная загрузка из файла в типовых конфигурациях
В актуальных релизах Бухгалтерии предприятия 3.0, Управления торговлей 11 и других конфигураций на Библиотеке стандартных подсистем загрузка встроена в формы. Отдельную обработку искать не нужно.
Загрузка в справочник
- Откройте список справочника, например
Справочники → Номенклатурав БП 3.0. - В командной панели списка найдите команду загрузки. Она называется «Загрузить» или «Загрузить из файла», в части релизов спрятана в меню «Ещё».
- Откроется помощник загрузки данных. Нажмите кнопку выбора файла и укажите таблицу Excel либо скопируйте строки из Excel и вставьте их в поле помощника через
Ctrl+V. - Укажите, какая колонка таблицы соответствует какому реквизиту: наименование, артикул, единица, ставка НДС.
- Перейдите к следующему шагу. Программа покажет, какие строки она сопоставила с существующими элементами, а какие создаст как новые.
- Проверьте результат и завершите загрузку.
Вставка через буфер обмена удобна, когда нужен не весь файл, а 30 строк из середины. Скопировали диапазон в Excel — вставили в помощник.
Загрузка в табличную часть документа
В документах поступления и реализации, в заказах и инвентаризации команда загрузки находится над табличной частью «Товары». Порядок тот же: файл или вставка из буфера, сопоставление колонок, проверка найденных позиций.
Типичный сценарий — поступление товаров по прайсу поставщика:
- 📄 создайте документ поступления, заполните шапку: контрагент, договор, склад;
- 📥 загрузите товары из Excel в табличную часть;
- 🔍 проверьте строки, где номенклатура не найдена, и решите, создавать её или выбрать существующую;
- ✅ проверьте итоговую сумму документа с суммой накладной и проведите документ.
Загрузка в документ не создаёт справочник «на лету» во всех конфигурациях одинаково. Если номенклатуры много новой, надёжнее сначала загрузить её в справочник, а потом уже заполнять документ.
Универсальная обработка для старых и нетиповых баз
Если в конфигурации нет встроенной команды, используют внешнюю обработку
«Загрузка данных из табличного документа» (ЗагрузкаДанныхИзТабличногоДокумента.epf). Она распространяется на диске ИТС для управляемых форм и открывается через Файл → Открыть в режиме 1С:Предприятие.
Обработка умеет загружать в справочник, в табличную часть или в регистр сведений . Для каждой колонки задаётся реквизит, способ поиска и значение по умолчанию.
Перед загрузкой сотен записей в рабочую базу сделайте резервную копию или потренируйтесь на копии базы. Отменить массовую загрузку одной кнопкой нельзя: созданные элементы придётся помечать на удаление вручную.
Сопоставление колонок Excel с реквизитами 1С
Сопоставление — главный шаг загрузки. От него зависит, найдёт ли 1С существующий товар или создаст дубль.
Как программа ищет существующие элементы
Помощник ищет совпадение по тем полям, которые вы указали как ключевые. Для номенклатуры это обычно артикул или наименование, для контрагентов — ИНН.
Правило простое: ищите по самому уникальному полю. Наименования пишут по-разному, а ИНН и артикул одинаковы везде.
| Справочник | Лучшее поле для поиска | Запасной вариант |
|---|---|---|
| Номенклатура | Артикул или штрихкод | Наименование |
| Контрагенты | ИНН (+ КПП для филиалов) | Наименование |
| Физические лица | ИНН или СНИЛС | ФИО + дата рождения |
| Склады, подразделения | Наименование | — |
Ссылочные поля
Колонка «Единица измерения» или «Группа» в Excel — это текст, а в 1С — ссылка на другой справочник. Программа ищет элемент по представлению. Если в файле «шт.», а в классификаторе «шт», связь не найдётся.
Поэтому перед загрузкой сверьте значения таких колонок со справочниками в базе. Быстрый способ — построить в Excel сводную таблицу по колонке и увидеть все уникальные значения.
Строки, которые не сопоставились
После сопоставления помощник разделяет строки на найденные, новые и проблемные. У проблемных строк вы можете вручную выбрать элемент из справочника или исключить строку из загрузки.
Не пропускайте этот шаг. Десять нераспознанных строк в прайсе на 500 позиций — это десять будущих дублей, которые потом придётся объединять.
Перенос макета из Excel в табличный документ 1С
Если под «макетом» понимается бланк печатной формы или отчёта, нарисованный в Excel, его переносят не загрузкой данных, а через табличный документ. Платформа 1С 8.3 умеет открывать файлы Excel как табличные документы.
В конфигураторе
- Откройте конфигурацию и у нужного объекта (документа, обработки, отчёта) или в ветке «Общие макеты» добавьте макет с типом «Табличный документ».
- Через
Файл → Открытьвыберите файл.xlsx. Конфигуратор откроет его в отдельном окне как табличный документ. - Выделите в этом окне нужный диапазон или весь лист и скопируйте его.
- Перейдите в пустой макет и вставьте ячейки.
- Проверьте ширину колонок, высоту строк, шрифты и границы. Они переносятся, но не всегда точно.
- Разметьте именованные области (шапка, строка, подвал) и задайте параметры ячеек, в которые программа будет подставлять значения.
Сам файл Excel можно хранить в конфигурации как есть. Для этого создайте макет с типом «Двоичные данные» и выберите файл. В коде такой макет получают как двоичные данные и записывают во временный файл — так удобно хранить шаблоны выгрузки.
Без доработки типовой конфигурации
Менять типовую конфигурацию ради одного бланка — значит снять её с полной поддержки и усложнить обновления. Практики делают иначе:
- 🧩 расширение конфигурации — макет добавляют или подменяют в расширении, основная конфигурация остаётся на поддержке (расширения работают с платформы 8.3.6);
- 📑 внешняя печатная форма — обработка с макетом подключается через
Администрирование → Печатные формы, отчеты и обработки; - ✏️ пользовательский макет — в том же разделе есть список «Макеты печатных форм», где типовой макет можно изменить без конфигуратора.
В режиме 1С:Предприятие файл Excel тоже открывается через Файл → Открыть (меню с тремя полосками в левом верхнем углу). Его можно просмотреть, скопировать ячейки и вставить в редактируемый макет печатной формы.
Ошибки при загрузке из Excel и как их разобрать
Встроенный помощник после загрузки показывает, сколько строк создано, обновлено и пропущено. Если что-то пошло не так, начните с пропущенных строк: там обычно видна причина.
После любой массовой загрузки проверьте результат выборочно. Отсортируйте справочник по дате создания (если в списке есть такая колонка) или отберите элементы новой группы и откройте 5–10 карточек.
Автоматическая загрузка Excel в 1С программным кодом
Когда один и тот же файл приходит каждую неделю, помощник надоедает. Загрузку пишут в виде внешней обработки, которая читает файл и сама создаёт элементы.
Способы чтения файла
| Способ | Когда подходит | Ограничения |
|---|---|---|
ТабличныйДокумент.Прочитать | Почти всегда, файл .xlsx | Читает только значения ячеек, без формул |
COM-объект Excel.Application | Нужны формулы, макросы, форматирование | Excel должен стоять там, где выполняется код; медленно |
| Помощник загрузки БСП | Разовые загрузки пользователем | Не для регулярного запуска по расписанию |
Чтение через табличный документ не требует установленного Excel ни на клиенте, ни на сервере. Это главный довод в его пользу.
Пример чтения файла
Пример ниже выполняется на сервере: файл передан с клиента во временное хранилище. Код читает первую и вторую колонки, начиная со второй строки (первая — заголовки).
&НаСервере
Процедура ЗагрузитьИзExcelНаСервере(АдресФайла)
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайла);
ИмяФайла = ПолучитьИмяВременногоФайла("xlsx");
ДвоичныеДанные.Записать(ИмяФайла);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 1, НомерСтроки, 1).Текст);
Наименование = СокрЛП(ТабДок.Область(НомерСтроки, 2, НомерСтроки, 2).Текст);
Если ПустаяСтрока(Артикул) Тогда
Продолжить;
КонецЕсли;
Сообщить(СтрШаблон("Строка %1: %2 — %3",
Формат(НомерСтроки, "ЧГ=0"), Артикул, Наименование));
КонецЦикла;
УдалитьФайлы(ИмяФайла);
КонецПроцедуры
Дальше на месте Сообщить пишут поиск по артикулу и создание или обновление элемента. Пустые строки пропускаются, поэтому «хвост» пустого листа не создаст мусор.
Параметр СпособЧтенияЗначенийТабличногоДокумента.Значение читает типизированные значения ячеек. Если нужен именно текст, как его видно в Excel, читайте свойство .Текст области, как в примере.
Регулярная загрузка
Для ежедневного прайса поставщика логику из обработки переносят в расширение и вызывают из регламентного задания. Файл забирают из сетевой папки, к которой есть доступ у пользователя, под которым работает сервер 1С. В файловом варианте базы задание выполняется только при запущенном клиенте, поэтому для расписания лучше клиент-серверная база.