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

Программист 1С v8.3 (Управляемые формы)
← На главную

Загрузка данных из внешних файлов в 1С — это классическая задача, с которой сталкивается практически каждый специалист. Когда речь заходит о справочниках с ТабличнаяЧасть, сложность возрастает, так как данные нужно не просто создать, но и правильно связать между собой. Давайте разберем этот процесс подробно и пошагово.

Этап 1: Подготовка данных и структуры

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

  1. Создание элементов справочника (шапок). В первом файле у вас должен быть список уникальных методик с их ключевыми реквизитами.
  2. Заполнение табличных частей. Во втором файле для каждого реактива должна быть указана привязка к методике (Наименование или Код), чтобы 1С могла «найти» нужный элемент, к которому мы будем добавлять строки.

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

Этап 2: Выбор инструмента для загрузки

Существует распространенная проблема: многие готовые обработки, найденные на форумах, написаны для «Обычных форм», а современные конфигурации работают на «Управляемых формах». Если при открытии формы обработки вы видите пустые окна, скорее всего, вы столкнулись именно с этим ограничением.

Мы рекомендуем следующие подходы:

  1. Встроенный механизм БСП: Проверьте форму списка вашего справочника. Во многих современных конфигурациях кнопка «Загрузить» уже встроена в стандартный интерфейс.
  2. Универсальные обработки: Ищите обработки типа ЗагрузкаДанныхИзТабличногоДокумента, адаптированные под Управляемые формы. Они позволяют визуально сопоставить колонки Excel с реквизитами объекта.

Этап 3: Программная реализация загрузки

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

Алгоритм действий:

  1. Находим объект (методику) с помощью метода НайтиПоНаименованию().
  2. Получаем объект через ПолучитьОбъект() для возможности его модификации.
  3. Добавляем строки в табличную часть Реактивы.
  4. Записываем объект в базу данных.

Рассмотрим пример кода для обработки данных:


// Предположим, что ТекстыЯчеек — это массив данных из строки Excel
// 4-я колонка — название реактива, 6-я — количество

МетодикаСсылка = Справочники.Методики.НайтиПоНаименованию(ИмяМетодики);
Если ЗначениеЗаполнено(МетодикаСсылка) Тогда
    МетодикаОбъект = МетодикаСсылка.ПолучитьОбъект();
    
    // Добавляем новую строку в табличную часть
    НоваяСтрока = МетодикаОбъект.Реактивы.Добавить();
    
    // Находим ссылку на реактив
    НоваяСтрока.Реактив = Справочники.Реактивы.НайтиПоНаименованию(ТекстыЯчеек[4]);
    НоваяСтрока.Количество = Число(ТекстыЯчеек[6]);
    
    // Записываем измененный объект
    МетодикаОбъект.Записать();
КонецЕсли;

Важные советы при загрузке

Чтобы избежать ошибок при массовом импорте, придерживайтесь этих правил:

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

← На главную