Импорт данных из файла Xlsx и загрузка изображения в форму элемента справочника

16.06.23

Интеграция - Загрузка и выгрузка в Excel

В данном посте мы рассмотрим процесс создания необходимых элементов справочника и создание команды добавления данных из xlsx файлов и картинок.

Здравствуйте, сегодня мы создадим конфигурацию системы 1С, в которой будет реализована возможность загрузки данных из .xlsx файлов, а также изображений в расширении .png .jpg. Начнём.

 

Создание информационной базы

Для начала нужно создать информационную базу в приложении 1С, в нашем случае на учебной версии программы. 

Открываем приложение 1С:Предприятие. Перед вами откроется данное окно, а это значит, что вы успешно запустили программу, поздравляем!

 

 

Далее заходим в конфигурацию нашей информационной базы.

Я уже создал ряд нужных мне элементов для выгрузки xlsx. Нужны справочники и соответствующие им реквизиты, это вы можете узнать в самом xlsx файле, а именно наименование колонок. Главный справочник с нужным вам названием и реквизитами и дополнительные с данными, которых может быть большое разнообразие, всё зависит от ваших нужд.

 

 

Конфигурирование базы

Заходим в свойства конфигурации и далее спускаемся в самый низ до параметров совместимости и выставляем такие же настройки как на скрине.

 

 

Создание формы справочника

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

 

 

Создание команды

Создаем на форме команду под названием ЗагрузитьДанные и добавляем её на форму. Она добавится в виде формы.

 

 

Заходим в свойства команды и добавляем действие на клиенте. Откроется окно написания кода.

 

 

Далее создайте вышеуказанные на скриншоте процедуры, в них мы будем писать код.

 

Написание кода

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

 

 

Разберем построчно. 

1. Создание диалога выбора файла, в нем пользователь будет выбирать загружаемый файл.

2. Отключаем множественный выбор, чтобы пользователь мог выбрать только один файл.

3. Определяем фильтр, чтобы можно выбрать только табличные документы нужного нам расширения.

4. Ссылаемся на функцию и отображаем диалог выбора файла.

Мы написали код на клиенте для диалога выбора файла, далее же мы написали код для сервера.

 

Вначале мы проверяем выбран ли файл пользователем, если выбран, запоминаем имя файла в переменной ИмяФайла, а если нет, то мы сообщаем пользователю что файл не выбран и прекращаем выполнение кода. Далее если мы получаем имя файла, то создаем новый табличный документ и считываем файл, имя которого узнали ранее. После идёт цикл, рассмотрим как считывать строчки.

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

 

Возможность добавления картинки

Создаем справочник с изображениями, реквизит которого будут в формате хранилище данных, а также реквизит в главном справочнике с названием "Фото", тип которого будет ссылка на хранилище значения в справочнике Файлы.

 

 

Далее создаем в главном справочнике форму элемента справочника.

И именно в форме создаем реквизит Картинка, тип которого строка, а вид "поле картинки". Перенесите реквизит на форму и после поставьте галочку "гиперссылка" в свойствах реквизита. Получится данный элемент формы.

 

 

Далее создайте процедуру на клиенте для события "по нажатию" и вставьте нижеуказанный код.

&НаКлиенте

    Процедура ФотоНажатие(Элемент, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь; ИмяФайла = "";

    ПутьКФайлу = "";

    Если ПоместитьФайл(ПутьКФайлу, ИмяФайла, Истина) = Истина Тогда

    Фото = ПутьКФайлу;

   УстановитьКартинку();

   КонецЕсли;

КонецПроцедуры

&НаСервере

    Процедура УстановитьКартинку()

    НовыйФайлКартинки = Справочники.Файлы.СоздатьЭлемент();

    НовыйФайлКартинки.Файл = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(Фото));

    Фото = ПоместитьВоВременноеХранилище(НовыйФайлКартинки.Файл.Получить());

    НовыйФайлКартинки.Записать();

    Объект.Картинка = НовыйФайлКартинки.Ссылка;

КонецПроцедуры

&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    Фото = ПолучитьНавигационнуюСсылку(Объект.Картинка, "Файл"); Элементы.Фото.РазмерКартинки = РазмерКартинки.АвтоРазмер;

КонецПроцедуры

Данный код поможет добавлять и сохранять изображения, но годится только для учебного или же личного проекта, не советую использовать в коммерции. Всего доброго!

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

31720 руб.

27.03.2025    84310    60    42    

71

Загрузка и выгрузка в Excel Маркетплейсы Программист Бухгалтер Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы преобразуете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, Детский мир, Магнит Маркет (быв.МагнитЭкспресс), Лемана про, ЭНФАНТА (Акушерство), ЛаМода, Летуаль, Твой дом, Золотое Яблоко, Каспи, Авито, Аптеки+ в документы "Отчет комиссионера (агента) о продажах" и другие. Работает в 1С:БП 3.0, 1С:БП 3.0 КОРП, 1С:УТ 11, 1С:УНФ, 1С:ERP.

5490 руб.

12.08.2021    45986    583    71    

219

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

12444 руб.

29.10.2014    232734    750    534    

498

Загрузка и выгрузка в Excel Маркетплейсы Программист Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Загружает данные из Акта приемки товара от ООО «Вайлдберриз», полученный из личного кабинета в формате *.xlsx или API в документ "Реализация (акты, накладные, УПД)" для конфигурации: Бухгалтерия предприятия, редакция 3.0, в документ "Реализация товаров и услуг" для Управление торговлей, редакция 11; Комплексная автоматизация 2; ERP 2 Управление предприятием и в документ "Расходная накладная" для Управление нашей фирмой 3.0; Розница 3.0

6100 руб.

24.01.2021    24926    122    0    

63
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ddsax 5 15.06.23 22:46 Сейчас в теме
Кстати, следующий пост будет по теме тестирования, но расскажу немного тут для затравки.
Brico; G_116349140909069275340; user1957184; +3 Ответить
2. aleksey2 96 19.10.23 14:25 Сейчас в теме
Ошибка при вызове конструктора (ОписаниеОповещения)
{}:ВыборФайла.Показать( Новый ОписаниеОповещения ("ДиалогНаСервере", ЭтотОбъект, Новый Структура ));
по причине:
Не найден экспортируемый метод: ДиалогНаСервере

Ошибка при вызове метода контекста (Прочитать)
{}:ТабДок.Прочитать(ИмяФайла);
по причине:
Ошибка при выполнении файловой операции 'C:\Users\Desktop\Копия Таблица данных для 1С по 29.09.2023.xls'. Формат файла не поддерживается.

+ фильтр нужен на оба
ВыборФайла.Фильтр = "Excel(*.xls;*.xlsx)|*.xls;*.xlsx";
3. Гость 26.05.25 13:24
Для отправки сообщения требуется регистрация/авторизация