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

16.06.23

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

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

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

 

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

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

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

 

 

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

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

 

 

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

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

 

 

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

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

 

 

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

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

 

 

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

 

 

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

 

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

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

 

 

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

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

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

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

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

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

 

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

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

 

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

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

 

 

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

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

 

 

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

&НаКлиенте

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

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

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

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

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

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

   КонецЕсли;

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

&НаСервере

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

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

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

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

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

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

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

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

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

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

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

См. также

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

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

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

10560 руб.

29.10.2014    212288    630    526    

446

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

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

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

14400 руб.

20.11.2015    152090    368    376    

503

Маркетплейсный загрузчик для 12-ти маркетплейсов в 1С:БП 3, УТ 11, КА 2, ERP, УНФ

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

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

1800 руб.

12.08.2021    32588    252    65    

126

SALE! 20%

Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы

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

Универсальная обработка для загрузки документов из Excel в 1С. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

5000 4000 руб.

09.11.2016    217266    935    886    

946

Загрузка данных отчета о реализации товаров из Excel файла СберМегаМаркет

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Загрузка данных отчета о реализации товаров из сервиса СберМегаМаркет для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11 и Управление нашей фирмой, редакция 3.0 в документ "Отчет комиссионера (агента) о продажах".

4800 руб.

07.06.2022    15469    83    0    

64

SALE! 30%

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

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

Универсальная программа для распознавания ЛЮБЫХ СКАНОВ ИЛИ ФОТО ТОВАРНЫХ ДОКУМЕНТОВ в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

6000 5520 руб.

04.06.2019    102429    298    173    

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

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

+ фильтр нужен на оба
ВыборФайла.Фильтр = "Excel(*.xls;*.xlsx)|*.xls;*.xlsx";
Оставьте свое сообщение