+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 92.01 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

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

04.06.2012 11:33
Алексей Шмуйлович

Система 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 запускается в фоновом режиме без отображения на экране.

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

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

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



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года