1с чтение файла excel управляемые формы

Загрузка из Excel в управляемом приложении

Столкнулся очередной раз с задачей древней как мир, кому-то из коллег показалось что в excel задача по загрузке информации в регистр сведений 1С (в частности ЛицевыеСчетаСотрудников) будет выполняться проще, чем в интерфейсе 1С. Но не надо на этом зацикливаться, информация, изложенная ниже, носит более широкий характер. Так вот, ввиду отсутствия MS Office на компьютере с базой пользователь благополучно был с обидой отправлен восвояси, при этом на локальном компьютере у пользователя был установлен офис, и это даже ставилось как аргумент. Позже возникла необходимость загрузки информации в похожий регистр, но задача отличалась тем, что теперь требовалось загрузить из Excel с локальной тачки в клиент-серверную базу. Устав людям доказывать, что не одним экселем сыт 1С, взялся за реализацию несложной задачи и так получилось, что увидел в наискучнейшем рутинном занятии повод для изысканий тут. Итак, как ни странно, подробного разбора полетов не нашел ни здесь, ни на профильных сайтах, есть опытные ответчики на сайтах и тут тоже был замечен из категории черного пояса по «Спасибо, кэп», с советами «в управляемом приложении перенеси все &НаКлиент» или «Конечно, перед открытием нужно указать путь на сервере, проснулся, типа скачай мою обработку и научись». Так вот эта заметка будет полезна тем, кто обойдется без выслушивания подобного рода высказывателей.

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

Первый вариант &НаКлиенте

Второй вариант &НаСервере.

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

Временный каталог используется стандартного пользователя USR1CV82. В своем коде я еще применил таймстэмп на всякий случай, во избежание ошибки разделенного доступа к файлу в случае неожиданного завершения в прошлый запуск (почему-то окончание фразы сразу подумалось о другом и стало немного грустно ;) а потом весело: не только 1С-ники косячат).

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

Источник

Работа с файлами Excel

MS Excel давно стал стандартом для работы с электронными таблицами. В статье рассматриваются способы программной выгрузки и загрузки из 1С в файлы Excel.

Существует несколько способов программной работы с файлами Excel из 1С. Каждый из них имеет свои преимущества и недостатки.

Обмен через табличный документ

Данный способ простой. Его суть заключается в том, что объект ТабличныйДокумент имеет методы:

Внимание!

Метод Записать () доступен как на клиенте, так и на сервере. Метод Прочитать () доступен только на стороне сервера. Необходимо помнить об этом
при планировании клиент-серверного взаимодействия.

Рассмотрим пример сохранения табличного документа в файл. Необходимо любым способом создать и заполнить объект ТабличныйДокумент, а выгрузка в файл осуществляется всего лишь одной строкой:

Здесь ТабДок — сформированный табличный документ, ПутьКФайлу — имя файла для выгрузки, ТипФайлаТабличногоДокумента.XLSX — формат создаваемого файла. Поддерживаются следующие форматы Excel:

Загрузка из файла осуществляется также достаточно просто:

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

Обмен через OLE

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

Пример выгрузки:

Примеры чтения:

Для обхода всех заполненных строк листа Excel можно использовать следующие приемы:

Вместо последовательного обхода всех строк листа можно выгрузить все данные в массив и работать с ним. Такой подход будет быстрее при чтении большого объема данных:

В таблице ниже приведены наиболее востребованные свойства и методы для работы с Excel через OLE:

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

Использование COMSafeArray

При выгрузке больших объемов данных из 1С в Excel для ускорения можно использовать объект COMSafeArray. Согласно определению из синтакс-помощника, COMSafeArray — объектная оболочка над многомерным массивом SafeArray из COM. Позволяет создавать и использовать SafeArray для обмена данными между COM-объектами. Проще говоря, это массив значений, который можно использовать для обмена между приложениями по технологии OLE.

Обмен через ADO

Файл Excel при обмене через ADO представляет собой базу данных, к которой можно обращаться при помощи SQL-запросов. Установка MS Excel не требуется, но обязательно наличие драйвера ODBC, при помощи которого будет осуществляться доступ. Используемый драйвер ODBC определяется при указании строки соединения к файлу. Обычно требуемый драйвер уже установлен на компьютере.

Обмен через ADO заметно быстрее обмена через OLE, но при выгрузке нет возможности использовать функционал Excel для оформления ячеек, разметки страниц, задания формул и т.д.

Пример выгрузки:

// Создание COM-объекта для соединения
Соединение = Новый COMОбъект ( «ADODB.Connection» );

Для создания нового листа и формирования его структуры можно воспользоваться объектами ADOX.Catalog и ADOX.Table. В этом случае код примет вид:

В приведенном примере в методе

во втором параметре указывается тип колонки. Параметр необязательный, вот некоторые значения типа колонки:

Пример чтения:

// Создание COM-объекта для соединения
Соединение = Новый COMОбъект ( «ADODB.Connection» );

// Создание COM-объекта для получения выборки
Выборка = Новый COMОбъект ( «ADODB.Recordset» );
ТекстЗапроса = «SELECT * FROM [Лист1$]» ;

В строке соединения параметр HDR определяет как будет восприниматься первая строка на листе. Возможны варианты:

В приведенных примерах рассмотрено лишь несколько объектов ADO. Объектная модель ADO состоит из следующих объектов:

Выгрузка без программирования

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

Для сохранения табличного документа (например, результата отчета) можно вызвать команду Сохранить или Сохранить как… главного меню.

sohranenie tablichnogo dokumenta

В открывшемся окне требуется выбрать каталог, имя и формат сохраняемого файла.

Для сохранения данных динамических списков (например, списка номенклатуры) необходимо:

sohranenie dinamicheskogo spiska

Остались вопросы?
Спросите в комментариях к статье.

Источник

Шаблоны загрузки Excel файлов из каталога в 1С 8 (обычные и управляемые формы)

Загрузка файла (файлов) в 1С 3.0 (управляемые формы)

Добавим реквизиты обработки:

ИмяФайла: Строка (150 )

ИмяКаталога: Строка (150)

РежимЗагрузки: Число (1)

Настроим форму

Свойства «Форма», закладка «Использование»:

Свойства «ИмяФайла», закладка «Использование»:

1

Вставьте текст в модуль формы:

Добавьте событие реквизиту формы «ИмяФайла:

2

Тоже самое проделайте с реквизитом «ИмяКаталога».

Настройте рекизит «РежимЗагрузки», закладка «Основные»: Вид: Поле переключателя.

Закладка «Расположение» : КоличествоКолонок: 2.

Закладка «Использование»: СписокВыбора:

3

Отметьте реквизиты для сохранения:

7

Добавьте команду «Загрузить». И настройте действие из модуля: Загрузить.

Перенесите команду на форму.

7f3a650a9eb40219ba45d682ee47e2c2

Второй файл с такими же колонками.

Результат загрузки (прочтения файлов):

890a6fb3e539cfde9c880c50a68d2bcd

Обработки приложены к статье.

Скачать файлы

Специальные предложения

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

Обновление 27.02.21 13:37

1c800fd120cb7e671058d44df8c81e9a

См. также

Обработка предназначена прежде всего как пример для разработки внешних доп. обработок во Фреш в помощь программистам.

24.09.2021 770 4 Dem0 0

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы «Режим сравнения форм») на примере ERP 2.5

Данная публикация является продолжением описания функционирования обработки «FormCodeGenerator » в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.

21.12.2020 9851 27 huxuxuya 11

Заготовка обработки (внешняя печатная форма) заполнения Excel документа из 1С

Умеет заполнять как отдельные ячейки, так и таблицы в рамках листов Excel. Удобно при разработке различных “дашбордов” (с графиками, диаграммами), отчетов финансистов (где много формул), заполнения форм документов организации. Эксель шаблон может сделать пользователь (с нужным ему оформлением, формулами и т.д.) и впоследствии самостоятельно этот шаблон менять. Программисту нужно только настроить выдачу данных для заполнения шаблона. Может подключаться как внешняя печатная форма (для обычных и управляемых форм).

29.07.2020 6082 21 wonderboy 0

Вам нравятся запросы в 1С?

Речь не только о том, что простейший запрос с «легальным» оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать «в нагрузку» к тексту запроса. Все эти «Новый Запрос», «УстановитьПараметр» и последующие пляски с обработкой результата. Пора с этим заканчивать!

03.07.2019 28306 7 m-rv 91

Загрузка прайс-листов в БП 3.0, УНФ 1.6, Розница 2.3, УТ 11.4, КА 2 и ERP Промо

Внешняя обработка для загрузки прайс-листов Excel (и не только) в конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление нашей фирмой, редакция 1.6; Розница, редакция 2.3; Управление торговлей, редакция 11; Комплексная автоматизация 2; ERP Управление предприятием 2 без использования COM-объектов (установленного Excel), для толстого, тонкого и веб-клиента.

16.04.2020 13802 162 LamerSoft 15

Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом

Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями «Управление торговлей 10.3», «Управление производственным предприятием 1.3», «Комплексная автоматизация 1.1», «Бухгалтерия предприятия 2.0».

21.09.2018 31033 24 stvorl 1

Работа с публикациями «Инфостарт»

Работа с рублевыми публикациями на сайте «Инфостарт»: ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

13.09.2018 29088 14 RocKeR_13 16

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

09.08.2018 36875 31 informa1555 30

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо

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

17.08.2015 54693 170 ekaruk 32

Работа с данными выбора

17.07.2018 68051 25 kalyaka 17

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ («001», «Новый товар»)

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

01.06.2018 37222 96 m-rv 58

Вы больше не будете разбирать Excel как раньше

Кому не приходилось разбирать файлы в формате Excel? Все матерятся, плюются, требуют обещаний что «это в последний раз», но таки пишут загрузку из Excel. Потом форматы меняются, строки съезжают, колонки переставляют. Вам это не надоело?

07.05.2018 34884 64 m-rv 34

Прыг-Скок. или из MS EXCEL в 1С (8.2) (открытый код) Промо

Универсальная загрузка данных из Microsoft Office Excel. Автоматическая загрузка из любых по форме документов с очень удобным редактором. Почти готовый шаблон для любой конфигурации. Не требует регистрации-бесплатно.

16.09.2015 74154 365 Tatitutu 50

Заполняем по шаблону (по умолчанию)

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

08.02.2018 35185 20 mvxyz 17

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника. ЗУП 3.1

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника по данным экономического отдела. ЗУП 3.1.

20.12.2017 62065 35 mvv1975 7

Печатная форма, сделанная как расширение конфигурации для БП 3.0. Новые возможности БСП

Печатные формы на внешних обработках скоро канут в лету. На смену им приходят ПФ, реализованные в виде расширений конфигурации. Не нашел на сайте примеров таких расширений. Привожу пример подобного расширения для БП 3.0.

06.12.2017 33546 60 kwazi 6

Выгрузка и загрузка данных из файла Excel с поиском по любым полям (есть поиск по ссылке, всего три итерации поиска. Управляемые формы или «Такси») Промо

Обработка позволяет загружать данные с поиском по ссылке как для загружаемого объекта, так и его свойств. Загружает справочники, документы, планы видов характеристик. Будет полезна как замена использования конвертации данных для задач переноса, а также как классическая загрузка из табличного документа (Excel). Поиск объекта при загрузке выполняется до трех раз с разными полями поиска (поля поиска настраиваются). Также реализована выгрузка в Excel по ссылкам. У обработки удобный интерфейс, в котором разберется даже начинающий пользователь. Загрузка накладных из файлов xls реализована с интеллектуальным поиском колонок с данными. В интеллектуальном поиске поддерживаются все основные типовые печатные формы.

16.10.2015 68615 523 primat 35

Загрузка дополнительных реквизитов и сведений справочника Номенклатура из Excel и таблиц УТ 11, ERP 2

Внешняя обработка «Загрузка дополнительных реквизитов и сведений справочника Номенклатура»

07.08.2017 53078 336 Windyhead 45

Расширения конфигураций 1С: учимся перехватывать методы

В этой статье я на примерах разберу некоторые механизмы расширений конфигураций 1С. А именно «перехваты» методов модуля объекта и «перехваты» событий формы и элементов формы. Данная статья написана с учебными целями, чтобы показать, как при помощи расширений конфигурации можно делать такие доработки, ради которых раньше приходилось снимать конфигурацию с поддержки.

30.05.2017 167845 13 signum2009 49

Полное решение билетов сертификации 1С: Специалист УТ 11

Решение 10 основных билетов на экзамене 1С: Специалист по УТ 11. Все билеты попадались группе пользователей, из которой сдали все.

18.08.2016 30316 133 maksimov-y-v 6

1С: Предприятие + корпоративный чат, как наладить оперативные уведомления за 10 минут

Как сделать автоматические уведомления о разных событиях из 1С в корпоративный чат MyChat для сотрудников компании

14.08.2016 55355 36 Demanoidos 60

Интеграция 1С и C#. Обращение к 1С через COM. Создание номенклатуры и выполнение запроса к 1С из C# на примере интеграции с Союз-PLM (система информационной поддержки жизненного цикла изделий). Обработка «Загрузка заказа на сборку». (ERP)

Союз-PLM представляет собой полнофункциональный программный комплекс для решения широкого спектра задач управления инженерной технической информацией наукоемких изделий и сложных инженерных объектов в области машиностроения, приборостроения, архитектуры, строительства. На практике, это управление конструкторской документацией, интегрированное с САПР, бизнес-процессы, файловый архив. Все это работает в SQL и шевелится с помощью скриптов на C#. Скрипты свободно отлаживаются в MS Visual Studio. Подробнее смотрите на их сайте: http://www.programsoyuz.ru/products/system-soyuz-plm.html Редактирование, конструирование и использование бизнес-процессов на порядок лучше систем на базе 1С из тех, что я изучил.

25.07.2016 54061 5 milkers 2

Экзамен 1С:Специалист по платформе 8.3. Полностью решенные ВСЕ билеты экзамена (актуальны на ноябрь 2021 г.).

В публикации представлены полностью решенные билеты экзамена (ВСЕ 16 БИЛЕТОВ ЭКЗАМЕНА + Новые дополнительные задачи) с учетом последних нововведений в заданиях экзамена.

18.07.2016 155563 5755 PoZiTiFFF 372

Хранение файлов в томах на диске (для УПП 1.3)

Доработка типовой УПП 1.3 в плане хранения присоединенных файлов вне базы данных

05.06.2016 68380 12 wowik 32

Остатки на каждый день в запросе

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

26.04.2016 78196 21 arakelyan 25

Выполнение JavaScript кода из 1С в объекте Поле HTML Документа (HTML 5) и вызов события в 1С ПриНажатии

Пример выполнения JS кода из 1С в Поле HTML Документа под управляемыми формами, с удобным получением результата в 1С(С помощью вызова привязанного события ПриНажатии к элементу ПолеHTMLДокумента)

22.03.2016 96463 172 igo1 61

Количество дней недели (понедельников/вторников/. ) в заданном диапазоне одним запросом

При реализации периодического авто-заполнения маршрутных листов по графику (недельному) необходимо было просчитать стоимость всего периода, с условием выездов только по определенным дням. Заморачиваться с обходом результата не хотелось. Пришлось написать «Небольшой» запрос.

03.03.2016 23321 2 Alexander.Shvets 5

Простые радости жизни программиста 1С: выбор типа значения

Предлагаемая в работе обработка включает обычную и управляемую формы, которые максимально точно реализуют функциональность системного диалога выбора типа в толстом клиенте обычное приложение (включая оформление диалога). Эти формы имеют дополнительные интерфейсные удобства и могут быть использованы в качестве альтернативных диалогов выбора типа.

17.02.2016 59746 56 yuraos 18

Яндекс.Деньги «Благотворительность»

Яндекс.Деньги теперь в 1С. Форма для приема благотворительных взносов. Форму легко сделать и вставить на любую страницу сайта или блога. Платежи будут приходить на ваш кошелек. На форме есть три способа платежа: из кошелька, с банковской карты, с баланса мобильного.

16.02.2016 28683 8 Tatitutu 5

Решение билетов к экзамену «1С: Специалист по конфигурированию УТ 11»

08.02.2016 28626 58 dimbasbear 17

Генерация QR-кода программная и интерактивная (код открыт, управляемая форма, обычное и управляемое приложение, API)

Обработку можно быстро и легко интегрировать в любую конфигурацию с и без БСП (Библиотека Стандартных Подсистем).

04.02.2016 56289 186 TuneSoft 30

Мастер рассылки e-mail 2.2 для управляемых форм

Для пользователей: переделанный из старый разработки под 8.2 с использованием библиотеки Мастер рассылки e-mail 2.2 (ERP, УТ, БП) (Только управляемые формы), который теперь может запускаться под любой версией платформы с разрешенными или запрещенными модальными/синхронными вызовами в конфигурации. Также удобный выбор e-mail и их владельцев с помощью отбора динамического списка по любым критериям и галочки исключения.

29.12.2015 47270 21 milkers 4

Нечеткий поиск одним запросом

Использование механизма полнотекстового поиска в 1С не всегда оправдано, т.к. построение индекса и поддержание его в актуальном состоянии может значительно нагружать систему. Предлагаемая реализация нечеткого поиска методом N-грамм выполняется одним запросом, что позволяет производить поиск в любой таблице и не требует предварительного построения индекса.

28.12.2015 35021 74 vasvl123 9

Передача больших пакетов через веб-сервисы

Реализация механизма передачи больших пакетов через веб-сервисы. С его помощью передать файл размером в несколько гигабайт не составит проблем.

06.12.2015 66318 56 YPermitin 19

Автоматическая подстановка уничтожений временных таблиц в текст запроса

Функция, которая сама подставляет в текст запроса «УНИЧТОЖИТЬ» в местах последнего использования ВТ.

14.11.2015 22822 0 SeiOkami 3

Загрузка УПД в Бухгалтерию 3.0 из Excel

20.10.2015 29569 27 teyana 22

Быстрое определение интервалов в запросе

В статье описывается новый метод определения интервалов между данными различных записей в запросе. В отличие от общеизвестного метода, время работы предлагаемого метода зависит от объема данных ЛИНЕЙНО. Это обеспечивает ему значительный выигрыш по быстродействию на больших объемах данных. В качестве иллюстрации возможностей метода приведен отчет, показывающий гистограмму распределения времени между продажами.

01.10.2015 61327 35 ildarovich 41

Полезные приемы при работе с Excel из 1С (Версия 3.1)

Программисту 1С часто приходится работать с таблицами Excel из 1С. Я постарался собрать небольшой FAQ и набор функций для работы с файлами Excel. Надеюсь, кому-то будет полезна данная статья.

22.09.2015 252672 521 Zerocl 81

Code First и Linq to EF на примере 1С версии 7.7 и 8.3 часть I

28.08.2015 26061 3 Serginio 2

Универсальная учетная система с конструктором документов и справочников в режиме 1С: Предприятие

29.07.2015 35622 143 informa1555 41

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с чекбокс в управляемых формах
  • 1с цвет строки управляемые формы 1с