(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Заполнение справочника 1C данными из Excel через механизм OLE

Источник: msexcel
Алексей Шмуйлович

Система 1С позволяет гибко интегрировать приложения,написанные в этой среде с другими приложениями. Имеется возможность как обращаться ко внешним приложениям из кода 1С, так и наоборот, из внешних приложений обращаться к 1С. Рассмотрим пример обращения к 1С из кода на VBA.

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

Адлер Краснодарский край

Азов Ростовская область

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

Анапа Краснодарский край

Арзамас Нижегородская область

Архангельск Архангельская область

Архипо-Осиповка Краснодарский край

Астрахань Астраханская область

Балахна Нижегородская область

и т.п.

Сначала необходимо создать подключение к нужной базе 1С:

Public v8 As Object Dim v8con As New V82.COMConnector

Public Sub v8connect()

       Set v8 = v8con.Connect("Srvr=srv-db10;Ref=holding;Usr=""Алексей Шмуйлович"";pwd=**************")

End Sub

В строку подключения нужно подставить наименование своих сервера, базы, пользователя и пароль. Пользователю 1С, от имени которого происходит подключение, должно быть заранее предоставлено право внешнего подключения. Обратите внимание, для присвоения переменной v8 значения типа V82.COMConnector, как и других агрегатных типов данных системы 1С, использование ключевого слова Set обязательно! Соединение установлено. Переменная v8 предоставляет доступ ко всем свойствам и методам конкретной базы 1С. Правда Вы не получите привычных подсказок VBA с доступными свойствами и методами. Так что для упрощения работы лучше сначала написать код в конфигураторе 1С, а затем уже скопировать его в модуль VBA и лишь немного адаптировать синтаксис и заменить ссылки на абстрактные переменные ссылками на данные Excel. Теперь создадим процедуру заполнения справочника:

Sub ЗаполнитьГорода()

If v8 Is Nothing Then v8connect 'Проверяем, что подключение к 1С установлено

'Получаем ссылку на значение "Россия" справочника Классификатор стран мира, оно понадобится ниже.

Set Россия = v8.Справочники.КлассификаторСтранМира.НайтиПоНаименованию("Россия")

'Начинаем обход строк исходного списка Excel

For Each стр In Sheets("Города").UsedRange.Rows

'Создаем новый элемент справочника и заполняем его свойства

Set спр = v8.Справочники.НКМ_ПунктыНазначения.СоздатьЭлемент

спр.Город = Trim(стр.Cells(1)) 'Функция trim(), помимо того, что удаляет лишние пробелы, преобразует значение к типу Строка.

'Можно было использовать вместо этого конструкцию стр.Cells(1).Value

спр.Регион = Trim(стр.Cells(2))

спр.Страна = Россия

спр.Наименование = спр.Город + ", " + спр.Регион + ", Россия"

спр.Записать

Next

     End Sub

Обратите внимание, после выполнения кода переменная v8 все еще содержит ссылку на 1С и занимает сеанс подключения. Чтобы закрыть сеанс нужно либо в коде присвоить переменной пустое значение (set v8 = Nothing), либо вручную нажать Reset, то есть остановить отладку в редакторе VBA. Я не включил в код сброс переменной сознательно. Обычно запуск сеанса 1С занимает некоторое немалое время. Если с базой через удаленное соединение нужно проделать несколько операций, такое построение кода позволит каждый раз использовать уже установленное ранее соединение.

Заполнение справочника из Excel - лишь пример разнообразных возможностей, предоставляемых механизмос OLE Automation. Вы можете получать данные из справочников, создавать и читать документы 1С, считывать проводки, получать данные из запросов и т.п. Следует только учитывать, что внешнее подключение не может использовать свойства, связанные с интерфейсом 1С, так как объект V82.COMConnector запускается в фоновом режиме без отображения на экране.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 04.06.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office для дома и учебы 2019 (лицензия ESD)
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Microsoft 365 Apps for business (corporate)
Microsoft 365 Business Standard (corporate)
Microsoft Windows Professional 10, Электронный ключ
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Программирование на Visual Basic/Visual Studio и ASP/ASP.NET
Windows и Office: новости и советы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100