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

16.06.23

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

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

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

 

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

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

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

 

 

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

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

 

 

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

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

 

 

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

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

 

 

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

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

 

 

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

 

 

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

 

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

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

 

 

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

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

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

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

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

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

 

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

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

 

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

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

 

 

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

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

 

 

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

&НаКлиенте

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

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

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

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

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

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

   КонецЕсли;

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

&НаСервере

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

Загрузка и выгрузка в 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    47157    612    71    

223

Работа с интерфейсом Анализ учета Мониторинг 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    88671    65    44    

75

Загрузка и выгрузка в 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    234715    757    540    

502

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 14.05.2026, версия 9.3.1 - 10.7.2)

20740 руб.

20.11.2015    177205    427    397    

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

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

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