Импорт данных в дочерний список из файла Excel

Статус
Новые ответы в этой теме размещать нельзя.
#1
Здравствуйте! Наша компания занимается поставками, и сейчас делаем для них базу.
Во многих поставках большие списки позиций товаров (в экселе), вбивать отдельно каждый товар в категорию "товары" слишком энергозатратно, можно ли как-то экспортировать списки товаров из экселя или просто куда-то их помещать, чтобы потом легко находить любой товар по поиску?
У меня был вариант хотя бы копировать все названия в раздел "комментарии" (есть в каждой поставке), но по комментариям поиска нет.
Спасибо заранее!
 

Vladimir

Администратор
Команда форума
#2
Добрый день, Ольга!
Импорта из Excel в конструкторе пока не делали - это не было критичной необходимостью и отложили на потом. Обычно импорт требуется при создании новой базы, когда после завершения построения структуры, необходимо единожды импортировать данные из других источников, а далее работа ведётся только в программе. Постараемся добавить импорт в дочерних списках из Excel в одной из подверсий будущей версии 5.2.
Но тем не менее, можно использовать импорт в дочерние списки через файл .csv, который можно создать в MS Excel, OO/LO Calc или других сторонних программах. Подробно процесс импорта описан тут: Импорт данных из файла .csv. Желательно внимательно изучить данную инструкцию, чтобы понимать основные моменты - тогда частный случай импорта через .csv для дочернего списка, который будет тут рассмотрен, не покажется сложным.

В приложенном примере проекта есть объекты:
- Клиент: список контрагентов;
- Товар: общий список всех товаров;
- Поступление: информация о каждом поступлении товаров;
- Состав поступления: список товаров в каждом поступлении.
На базе объекта поступлений создана форма "Поступления" с дочерним списком "Состав поступления". При добавлении дочернего списка, в объекте "Состав поступления" автоматически добавилась системная ссылка на объект "Поступление" с добавлением суффикса "~" (тильда). Данная ссылка будет необходима для корректного добавления состава поступления для каждого конкретного прихода товара. Можно сделать её видимой в списке и на вкладке, чтобы была понятна её работа.
Структура проекта для импорта данных в дочерний список.png

Если есть предварительный список товаров в Excel, то сохраняем его в формате .csv. Полученный файл открываем в текстовом редакторе, который может произвести преобразование кодировки в UTF-8 (например NotePad++) и выполняем данную операцию.
Список товара в Excel.png Список товара в CSV.png

В объекте товаров производим импорт из файла.
Операция импорта данных из файла CSV.png >>> получаем >>> Результат импорта из файла CSV.png
Если список товаров уже есть, данную операцию можно пропустить. Также она будет не обязательна, если новые товары будут формироваться на базе списка состава поступления - но об этом чуть позже.

На базе объекта "Состав поступления" формируем файл .csv, который будет использоваться для загрузки данных из Excel. Для этого производим экспорт структуры, создав файл с необходимым заголовком.
Структура файла для импорта состава поступления.png
Данные из строки заголовка переносим в Excel, именуя столбцы в точном соответствии с именами полей. Можно структуру в Excel сделать и вручную, но так проще, если полей для заполнения в объекте состава много.
Структура файла Excel для импорта состава поступления.png
Данный файл сохраняется как шаблон для будущего заполнения.

Для того, чтобы была возможность привязать состав поступления к самому поступлению, необходимо его создать в форме "Поступления". Открываем форму и создаём новую запись.
Создание записи поступления в базе.png
Ключевым полем в поступлении является его номер (для данного примера). Данный номер понадобится для формирования списка, привязанного к поступлению.

Открываем шаблон Excel для состава поступления, копируем в рабочие столбцы информацию из другого файла, а в столбце "~Поступление" для всех строк указываем номер поступления.
Данные для импорта в Excel с номером поступления.png

Полученный файл сохраняем под другим именем (чтобы не потерять шаблон для будущих операций импорта), открываем его в текстовом редакторе и преобразуем кодировку в UTF-8.
Производим импорт данных в объекте "Состав поступления".
Результат импорта поступления в объект состава.png

Открыв форму "Поступления" - видим список товаров, привязанный к данному приходу.
Состав поступления в форме.png

Другой случай, если в составе поступления есть товар, которого нет в справочнике товаров. В этом случае в объект будут добавлены новые записи с именами товаров, но остальной информации по ним не будет. Можно её довнести вручную, а можно создать файл .csv со всеми данными и произвести его импорт в объекте товаров, установив параметр "Действие" (для записей с повторяющимся первым полем) в значение "заменить".

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

Вложения

Vladimir

Администратор
Команда форума
#3
У меня был вариант хотя бы копировать все названия в раздел "комментарии" (есть в каждой поставке), но по комментариям поиска нет.
Для комментариев, как и для любого поля, можно включить фильтр:
Включение фильтра для текстового поля.png
 
Статус
Новые ответы в этой теме размещать нельзя.