Vba подключение к 1с
Хочу из VBa (допустим Excel) получать данные отчета 1С. Не могу понять в чем ошибка..библиотеку v8 подключил. говорит что такаого метода или объекта не существует (про result).
Set Query = result.NewObject("Запрос")
Set Query2 = result.NewObject("Запрос")
далее идет сам запрос 1С в ". " .
Работаю над минимизацией времени составления отчетов и рассылки по адресатам. Алгоритм создания отчетов следующий:данные из отчетов (либо файлов) 1C перемещаются в соответствующие базы данных (Access), далее отчеты с помощью запросов формируются и перемещаются в Excel где форматируются, далее перемещаются в OUtLook и рассылаются. Все это сейчас полностью автоматизировано (т.е. все отчеты формируются по средставм пары процедур VBA). Осталось лишь одно - автоматизировать перенос информации из первичного источника данных т.е. 1С. Сейчас на все отчеты уходит 20 минут (19 из них на получение данных из 1С)..хочется сократить то время т.к. число отчетов будет только расти и возможно прибавятся ежедневные.
«процедура на языке 1С»
Итак, через VBa открываю 1С (создаю объект v8 и получаю связь указывая логин и пароль (см. код выше)). Далее полсе того как связь я получил хочу ввести код на языке 1С (который заготовлен уже). ввожу в "". И получаю ошибку по переменной result.
Что это может быть за ошибка…может как то по другому подсоединится
И еще сразу возникает проблема….дело в том что сама процедура на 1С довольно длинная поэтому приходится пользоваться переносами «_». VBA показывает еще ошибку ссыласясь на то что много переносов..может есть совет как избежать этого )))
1. По какой причине Вы пишите запрос к базе 1С по кому, если можно сразу писать запрос к базе SQL по дмо? По времени все это будет быстрее в разы.
2. Какой код и куда вы пытаетесь ввести? Если Вы хотите выполнить запрос к 1С-ой базе, то необходимо (в 8.1.) сделать в модуле отчета фиктивную функцию, объявить ее как экспортную, в ее теле вернуть выборку запросу, и уж ее дергать по кому.
3.Вы зачем огород городите такой с рассылкой отчетов по адресам? Почему нельзя посредством 1С все это разослать? Верните выборку в табличный документ и сохраните его посредством самого 1С в excel. Далее уже форматируйте и отошлите куда нужно самим 1С-ом. Просто совсем нелогично (на первый взгляд) производить такие манипуляции 1C-Access - Excel только ради того, чтобы отослать отчет по емайлу.
Если Вы боритесь за минимизацию времени, то максимальной производительность в вашем случае можно достичь используя SSIS в случае 2005-2008, или же прямой запрос к скулю через дмо в 1С с рассылкой оттуда же.
Ну а про ошибку по переменной результ: попробуйте подклюиться из аналайзера с вашими параметрами. Ошибка есть или нет?
Dim V8 As Object
Set q1 = Con.newObject("Запрос"
q1.Text = "ВЫБРАТЬ Валюты.Наименование ИЗ Справочник.Валюты КАК Валюты"
Set Result = q1.Execute()
Запрос реально действет только поянть не могу как далее готовый запрос в переменной result вгрузить куданибудь в офис (в Фксесс и эксель)
Может вы подскажите?
Про функцию обязателбно подумаю (у меня с ними пока плохо я ж не програмист по роду деятельности так что могут быть проблемы)
3. Из 1С действительно можно но я работаю только с VBA к сожалению. Манипуляции производятся преде всего для создания отчетов из СУБД (по запросам и новым переменным по дате например) а у ж потом чтоб время не тратить они еще и в аутлу идут. Кончено в 1с было бы гораздо удобнее и не через огород но я не зняю языка 1С.
4. В дальнейшем этот вариант конечно рассмотрю так будет гораздо более оптимально
Про ваши старания. Метод Выполнить(), он же Execute(), возвращает значение типа РезультатЗапроса. С этим типом по кому работать не удастаться. Поэтому необходимо получить таблицу значений из результата запроса, а уж потом ее обойти в цикле и почитать те данные которые вам необходимы. Т.е. в Вашем случае нужно просто подписать ниже строчку:
Set TZ = Result.Unload() И далее эту ТЗ обойти в цикле и выудить то, что Вам нужно.
Повторюсь все это очень не оптимально. Все таки создайте вььху русскую на таблицу Валюты и дерните через дмо все это. Будет и быстрее, да и грамотнее.
Про Upload понял. Про цикл не очень. Т.е. я не понимаю как обращаться к полям этого запроса. ну допустим в Excel я обращусь через .offset ( индекс цикла, . ) а в акссе допустим через Fields (индекс цикла ). Но здесь то в запрсое другие объекты. Как мне через цикл выгрузить знчаения переменной TZ?
Про Upload понял. Про цикл не очень. Т.е. я не понимаю как обращаться к полям этого запроса. ну допустим в Excel я обращусь через .offset ( индекс цикла, . ) а в акссе допустим через Fields (индекс цикла ). Но здесь то в запрсое другие объекты. Как мне через цикл выгрузить знчаения переменной TZ?
Запустите дебаггер, добавьте туда TZ и поробуйте понажимать на "+" в отладчике - увидите то что вам нужно.
"вьюха" - View. Представление таблицы скуля. Т.к. в 1С все поля в таблицах имеют англоязычное представление, то для большей понятности рекомендуется сделать к ним русские вьюхи, т.е. тупо переименовать поле типа _SP6693 во что-то более понятное, например "Цена". Соотв. также поступить с таблицами. В результате можно писать осмысленные запросы.
Дебагер показывает 3 значения Item 1 2 и 3. В каждом Iteme (при нажатии на +) есть текстовая строка: рублий доллары и евром соответственно.
Я не понимаю как мне обойти этот массив в цикле
если я не знаю как к нему обращаться.
Итак.
Set TZ = Result.Unload() '- получили вариантную коллекцию (1С-овская таблица значений)
Далее смотрим в дибагере что это. Видим, что дибагер показывает плюсик - раскрываем и видим:
+ Item 1
|----------item 1 (рубли)
+ Item 2
|----------item 2 (доллары)
+ Item 3
|----------item 3 (евро)
Возник вопрос, как обойти этот "массив".
Set TZ = Result.Unload()
For Each TekStr In TZ ' это мы идем по первой ступеньки иерархии
For Each Item In TekStr
' в Item храниться нужное значение
Next
Next
Опыта мало, прошу помощи, не пинайте сильно.
Есть БД 1C в которой данные конфигурации CRM 2.0
Пишу прогу в Visual C++ 6.0.
Помогите пожалуйста найти работающий пример на Visual C++ 6.0 подключения к БД и выполнения различных действий?
Конфигуратор 1С:Предприятие 8
Внешнее соединение (External connection)
Внешнее соединение (External connection)
Методы:
NewObject (NewObject)
String (String)
В общем и целом работа с 1С:Предприятием 8 через внешнее соединение подобна работе с 1С:Предприятием в режиме Automation сервера. Основные отличия заключаются в следующем:
В случае Automation сервера запускается полноценное приложение 1С:Предприятия 8, а в случае внешнего соединения запускается относительно небольшой внутрипроцессный COM-сервер.
При работе через внешнее соединение не доступны функциональные возможности, так или иначе связанные с организацией пользовательского интерфейса 1С:Предприятия 8;
При работе внешнего соединения не используется модуль управляемого приложения (модуль обычного приложения) конфигурации 1С:Предприятия 8. Его роль при работе с внешним соединением играет модуль внешнего соединения.
При использовании внешнего соединения имеются следующие преимущества по сравнению с использованием Automation сервера:
Более быстрая установка соединения, так как не требуется создания отдельного процесса операционной системы, а все действия производятся в рамках вызывающего процесса;
Более быстрое обращение к свойствам и методам объектов 1C:Предприятия, так как для организации обращения не требуется организации межпроцессной коммуникации;
Меньший расход ресурсов операционной системы.
Для организации доступа к данным 1С:Предприятия 8 через внешнее соединение, выполняется следующая последовательность действий:
создается менеджер COM-соединений, с помощью которого производится установка соединения;
производится обращение к методу Connect менеджера COM-соединений. Метод Connect возвращает внешнее соединение с информационной базой 1С:Предприятия 8;
через внешнее соединение производится обращение к допустимым методам, свойствам и объектам информационной базы, с которой установлено соединение.
Важно! В связи с отсутствием пользовательского интерфейса не все объекты, а также свойства и методы можно использовать во внешнем соединении.
Внешнее соединение предоставляет полный доступ к своему глобальному контексту. Поэтому внешнее соединение в качестве своих методов может иметь: системные константы, значения заданных в конфигураторе объектов, доступ к которым осуществляется с помощью менеджеров (например, константы, перечисления, справочники, документы, журналы документов, отчеты, обработки, планы видов характеристик, планы счетов, планы видов расчета, регистры), а также переменные, объявленные в модуле внешнего соединения с ключевым словом Экспорт.
Чтобы это стало возможным, приложения должны предоставлять свои сервисы не только человеку, но и программам, т. е. они должны быть программируемыми. Обеспечение программируемости и является целью "Автоматизации" (технология OLE Automation). Приложение можно сделать программируемым, обеспечив доступ к его сервисам, через обычный СОМ-интерфейс.
Механизм OLE был задуман как технология интеграции программных продуктов Microsoft Office. Технология OLE предоставляет нам возможность работать с объектами, созданными в других приложениях (документы, рисунки, таблицы). Основные термины, с которыми оперирует данная технология, — это OLE-объект, сервер приложения и контейнер приложения.
OLE-объектом называют объект, созданный в другом приложении и сохранивший связь с этим приложением. Документ, редакции Word, или электронные таблицы в формате Excel — все они могут быть OLE-объектами, если будут вставлены в документ соответствующим образом. Если не вставлять их как OLE-объект, то связь с оригинальным приложением будет отсутствовать.
Контейнером приложения OLE называют приложение, в котором создается составной документ, позволяя обрабатывать его в исходном приложении (например, таком как Word или Excel), которое использовалось для создания этого объекта.
Сервером приложения OLE (OLE Server Application) называют приложение, создающее объекты, которые можно поместить в документ-контейнер.
Программы — "1С:Предприятие", Microsoft Word и Excel являются приложениями, которые могут выступать и как OLE-сервер, и как OLE-контейнер. Другими словами, эти приложения могут создавать новые OLE-объекты, а такжет хранить OLE-объекты, созданные в других приложениях.
С точки зрения пользователя, составной документ выглядит единым набором информации, но фактически содержит элементы, созданные двумя или несколькими разными приложениями.
Использование Automation сервера в версии 8.2
Система "1С:Предприятие 8.2" может использоваться внешними приложениями в качестве OLE Automation сервера.
Обычно в этих целях "1С:Предприятие" используют для управления конфигурациями системы программ "1С:Предприятие" из других приложений и выполнения действий аналогичным интерактивным действиям пользователя (например, построение отчетов).
Для запуска системы "1С:Предприятие" в качестве OLE Automation сервера из внешнего приложения выполняется следующая последовательность действий:
1. Создается OLE Объект с идентификатором "V82.Application".
2. Выполняется инициализация системы "1С:Предприятие" методом Connect .
3. Вызываются свойства и методы системы "1С:Предприятие" как OLE Automation сервера.
Приведем пример доступа к данным информационной базы посредством из Visual Basic скрипта
Некоторые версии внешних программ, в том числе и Visual Basic Script, обращающихся к программе "1С:Предприятие" посредством OLE Automation, могут неправильно интерпретировать русские идентификаторы объектов. По этому, для обращения к свойствам и методам агрегатных типов данных системы "1С:Предприятие" из внешних приложений рекомендуется использовать их англоязычные синонимы.
При работе в качестве OLE Automation сервера "1С:Предприятием предоставляет доступ ко всем свойствам и методам своего глобального контекста, а также позволяет включать и выключать пользовательский интерфейс (главное окно приложения). Поэтому объект OLE-сервер системы «1С:Предприятием» в качестве своих свойств может использовать: системные перечисления, значения констант, перечислений, справочников, документов и т. п., а также переменные, объявленные в модуле приложения с ключевым СЛОВОМ Экспорт.
Кроме того, OLE Automation сервер имеет одно дополнительное свойство и два метода с целью выполнения действий, специфичных для работы в режиме OLE Automation.
Единственное свойство visible имеет значение логического типа и позволяет управлять видимостью пользовательского интерфейса системы «1С:Предприятием». По умолчанию свойство имеет значение ложь.
Объект OLE-сервер системы "1С:Предприятие" в качестве своих методов может использовать системные процедуры и функции, а также процедуры и функции модуля приложения и общих модулей, объявленные с ключевым словом экспорт. Кроме того, OLE-сервер системы "1С:Предприятие" имеет два дополнительных метода: Connec t и NewObject .
Метод Connect выполняет инициализацию системы "1С:Предприятие" и имеет единственный параметр — строку, используемую для соединения с информационной базой. Метод возвращает Истина, если инициализация прошла успешно, или Ложь, если нет.
Существует два варианта подключения к OLE-серверу системы "1С:Предприятие", которые зависят от варианта использования информационной базы (файловый или клиент-серверный варианты). Приведем пример подключения файловой и клиент-серверной версии системы "1С:Предприятие"
Рассмотрим параметры подключения к базе данных в файловом варианте.
• File — указывает на каталог базы данных.
• usr — имя пользователя, под которым будет происходить авторизация.
• Pwd — пароль пользователя.
Для подключения к базе данных в клиент-серверном варианте используются четыре параметра.
• srvr — указывает имя сервера, на котором работает сервер приложений системы "1С:Предприятие";
• Ref — указывает имя базы данных на сервере приложений;
• usr — определяет имя пользователя, под которым будет происходить авторизация;
• Pwd — пароль пользователя.
Второй специальный метод OLE-сервера системы "1С:Предприятие" — NewObject , который создает объект агрегатного типа данных системы "1С:Предприятие" и возвращает ссылку на него. Единственный параметр метода — строковое выражение, значение которого содержит имя агрегатного типа данных, объявленного в конфигураторе.
Доступ к объектам базы данных
Mетод NewObject используется для создания объекта типа запрос.
Поскольку система "1С:Предприятие" может создавать и использовать OLE Automation серверы, то из системы "1С:Предприятие" можно обращаться к другим информационным базам.
Для создания объектов агрегатного типа используется метод NewObject , но для доступа к константам и перечислениям достаточно использовать свойства глобального контекста константы и перечисления сервера приложения.
Для доступа к справочникам и документам можно использовать метод NewObject . Однако можно использовать и свойства глобального контекста Справочники и Документы. После создания объекта справочника или документа к нему применимы все методы, касающиеся соответствующего объекта в среде "1С:Предприятие".
Доступ к документам производится так же, как и к справочникам.
В объектах OLE-базы данных можно использовать только ее же объекты. В примере, рассмотренном выше, для заполнения реквизита документа контрагент используется элемент справочника контрагенты той же OLE-базы. Это правило касается не только объектов агрегатных типов (справочников, документов, регистров и т. п.), но и универсальных коллекций значений, таких как массивы, структуры, списки значений и т.п.
Рассмотрим пример вывода курса доллара из регистра сведений.
Вызов пользовательских интерфейсов
В предыдущем примере показана возможность выборки данных с помощью запроса и вывода результатов запроса в основную базу. Эти же данные можно визуализировать и в базе данных, используемой в качестве OLE Automation сервера.
Для начала необходимо показать основное окно приложения с помощью свойства Visible , а затем можно вызывать стандартные операторы — сообщить, предупреждение, а также открывать формы объектов и формировать отчеты.
В приведенном примере последовательно выполняются следующие действия:
1. Соединение с базой данных.
2. Установка видимости главного окна приложения.
4. Открытие формы списка справочника контрагенты.
Доступ к метаданным
Для доступа к метаданным можно использовать свойство глобального контекста метаданные. Приведем пример вывода всех справочников и их реквизитов для конфигурации, используемой в качестве OLE Automation сервера
Использование СОМ-соединения в версии 8.2
Основная задача использования СОМ-соединения для конфигурации системы "1С:Предприятие 8.2" — это обеспечение надежного и быстрого программного доступа к объектам конфигурации из внешних приложений. Применение СОМ-соединения во многом похоже на использование OLE Automation сервера, но существуют и очень важные отличия. Приведем некоторые общесистемные отличия СОМ-соединения от OLE Automation.
При использовании СОМ-соединения:
• затрачиваются гораздо меньше системных ресурсов;
• происходит более быстрая установка соединения с базой данных;
• происходит более быстрое обращение к свойствам и методам объектов;
• полностью отсутствуют пользовательские интерфейсы.
Отличия в программном использовании СОМ-соединения можно определить следующим образом:
• отсутствует свойство Visible ;
• не работают все методы системы "1С:Предприятие", касающиеся визуализации объектов;
• недоступен модуль приложения, но при этом доступен модуль внешнего соединения;
• из общих модулей доступны только те, у которых установлено свойство Внешнее соединение;
• метод Connect возвращает объект соединения с базой данных (в OLE Automation метод возвращал значение логического типа, а доступ к базе данных происходил через объект, созданный с помощью идентификатора "V82.Application").
Приведем пример подключения к базе данных системы "1С:Предприятие 8.2" с помощью СОМ-соединения на языке Visual Basic Script .
С помощью объекта Excel.Application, предоставляемого OLE-сервером MS Excel, можно программно создавать электронные таблицы, а также использовать все функции MS Excel, предоставляемые пользователям.
Основным, в объектной модели Excel, является объект Application, содержащий коллекцию Workbooks объектов типа WorkBook . Каждый объект типа WorkBook содержит коллекцию объектов Worksheets типа Worksheet , коллекцию объектов Сharts типа Сhart и др. Манипуляция рабочими книгами, их листами, ячейками, диаграммами и др. осуществляется путем обращения к свойствам и методам этих объектов.
Для создания примеров использования Microsoft Excel можно использовать следующий код создания контроллера:
Создать новую рабочую книгу Excel можно, используя метод Add коллекции Workbooks объекта Application:
Для создания рабочей книги на основе шаблона следует указать его имя в качестве первого параметра метода Add :
В качестве первого параметра этого метода можно также использовать следующие константы:
• -4109 — рабочая книга состоит из листа с диаграммой;
• -4167 — рабочая книга состоит из листа с данными.
В этом случае рабочая книга будет содержать лист того типа, который задан указанной константой (график, обычный лист с данными и др.).
Для открытия уже существующего документа следует воспользоваться методом Open коллекции WorkBooks .
Отметим, что свойство ActiveWorkBook объекта Excel.Application указывает на текущую активную рабочую книгу среди одной или нескольких открытых. Помимо этого к рабочей книге можно обращаться по ее порядковому номеру. Например, ко второй открытой рабочей книге можно обратиться с помощью записи:
Сделать рабочую книгу активной можно с помощью метода Activate :
Следующее, чему следует научиться, — это сохранять рабочие книги в файлах.
Закрытие документа может быть осуществлено с помощью метода close:
Метод Сlose имеет несколько необязательных (в случае позднего связывания) параметров, влияющих на правила сохранения рабочей книги. Первый из параметров принимает значения истина или ложь и влияет на то, сохранять ли изменения, внесенные в рабочую книгу. Второй параметр — имя файла, в котором нужно сохранить рабочую книгу (если в нее были внесены изменения). Третий параметр также принимает значения истина или ложь и влияет на то, будет ли пересылаться документ следующему пользователю по электронной почте.
Просто сохранить рабочую книгу, не закрывая ее, можно с помощью метода Save или SaveAs :
Метод SaveAs имеет более десятка параметров, влияющих на то, как именно сохраняется документ (под каким именем, с паролем или без него, какова кодовая страница для содержащегося в ней текста и др.).
Закрыть среду Excel можно с помощью метода Quit объекта Excel .Application. В случае Excel этот метод параметров не имеет.
Вывод документа Excel на устройство печати можно осуществить с помощью метода PrintOut объекта WorkBook , например:
Если нужно изменить параметры печати, следует указать значения соответствующих параметров метода PrintOut (в случае Excel их восемь).
Обращение к листам рабочей книги производится с помощью коллекции WorkSheets объекта WorkBook . Каждый член этой коллекции представляет собой объект Worksheet . К члену этой коллекции можно обратиться по его порядковому номеру, например:
Приведенная выше запись иллюстрирует, как можно изменить имя листа рабочей книги.
К листу рабочей книги можно обратиться и по имени, например:
Обращение к отдельным ячейкам листа производится с помощью коллекции Cells объекта WorkSheet . Например, добавить данные в ячейку B1 можно следующим образом:
Здесь первая из координат ячейки указывает на номер строки, вторая — на номер столбца.
Добавление формул в ячейки производится аналогичным способом:
Очистить ячейку можно с помощью метода ClearContents .
Форматирование текста в ячейках производится с помощью свойств Font
и Interior объекта Cell и их свойств. Например, приведенный фрагмент кода, выводит текст в ячейке красным жирным шрифтом Courier размера 16 на желтом фоне.
Свойство Colorlndex может принимать числовые значения от 1 до 56. Ниже
приведены значения только основных цветов:
Обратиться к текущей ячейке можно с помощью свойства ActiveCell объекта Excel.Application, а узнать местоположение ячейки можно с помощью свойства Address объекта Cell , например:
Помимо обращения к отдельным ячейкам, можно манипулировать прямоугольными областями ячеек с помощью объекта Range. Объект Range также часто используется для копирования прямоугольных областей через буфер обмена.
Обратите внимание на то, что диапазон, куда копируются данные, предварительно выделяется с помощью метода Select .
Выгрузка метаданных в MS Excel
Рассмотрим пример выгрузки метаданных произвольной конфигурации системы "1С:Предприятие 8.2" в лист Microsoft Excel.
Основной недостаток данного примера в том, что все тексты ячеек не отформатированы и представлены одним цветом, что затрудняет чтение таблицы.
Ниже показан пример цветового оформления ячеек MS Excel и задание в них определенного шрифта.
В первой строке данного примера в переменную ячейка помещается ссылка на конкретную ячейку с координатами НомерСтроки и НомерКолонки . После этого через данную переменную устанавливается размер шрифта, цвет текста, ширина ячейки, границы, положение текста и т. д.
* Источник информации: Михайлов А. В. 1С:Предприятие 7.7/8.0: системное программирование.
Как подключиться через Ado к листам Excel?
Знаю строку для установления связи с файлом. Но как открыть recordset на лист (например, мне нужно.
Из Excel в DBGrid. Подключиться к рабочей книге MS Excel, как к базе данных.
Доброго времени суток! У меня возникли проблемы при выводе таблицы с Excel на DBGrid, а именно.
Excel через ODBC, Как выбрать через Select столбец из файла Excel по букве?
Собственно проблема такая. Надо с помощью команды Select получить данные из столбца файла Excel по.
Как подключиться к таблице SQL из Excel
Здравствуйте. Такая проблема, не могу подобрать скрипт для экспорта таблицы в SQL. Помогите.
Решение
Нужно посомтреть в агенте сервера 1с как называется сервер sql и база данных на sql и подставить эти значения в эксель видимо _ЕГОР_, а ты не подскажешь что такое агент сервера, из как туда зайти?Решение
Это типа связующее звео между 1с и sql сервером. Обычно ярлык запуска находится по пути C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc (зависит от разрядности ОС). там список баз которые подключены к sql серверу и реквизиты подключенияРешение
_ЕГОР_, Ну скорее всего да, потому что в компании все работаю на ноутбуках, сервер с 1С находится где-то в другом месте. К нему как-то удалённым доступом подключение происходит насколько я знаю. Честно-говоря не очень разбираюсь в этомРешение
ГарриНаФеррари, не так. базы могут быть серверными, и файлавыми. а даже находят на сервере, она все ровно может быть файловая. Здесь подробней _ЕГОР_, подскажи пожалуйста, а где-то в 1С или на своём компьютере я могу это узнать?Решение
О программе - Режим
Добавлено через 21 секунду
ой блин на первом скрине ведь видно что серверная
Добавлено через 32 секунды
значит агент сервера по любому есть
Решение
Это все папки? не вижу в принципы чтобы здесь 1с была установлена. _ЕГОР_, Прошу прощения, вылетело из головы, 1С у нас установлена на виртуальной машине. Когда я зашёл в диск С через виртуальную машину, то там нашёл вот эти папки, но всё-равно не понятно, что есть чтоРешение
ну заходите в папку 1cv8, там должен быть 1CV8 Servers (x86-64).msc или как то так _ЕГОР_, насколько я понял, там такого нет (но может я и не прав). Но на панели быстрого доступа есть "диспетчер серверов". Посмотри пожалуйста скрины, там есть то, что нужно? Уважаемый, а у Вас есть опыт подключения Excel-я к MS SQL Server? vpivo, нет, первый раз пробую подключиться. Раньше excel даже к access не пробовал подключятьВот так это выглядит в экселе:
Provider=SQLOLEDB.1;Password=бла-бла-бла;Persist Security Info=True;User Catalog=ИмяБД;Data Source=123.456.789.65\ИмяИнстансаСервера,Порт;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation машины;Use Encryption for Data=False;Tag with column collation when possible=False
По большому счету, Вы должны зайти на виртуальную машину и посмотреть имя инстанса и имя машины. А вот что Вы будете делать дальше - непонятно. Вы знаете имена БД, таблиц Вашей 1С?
Добавлено через 3 минуты
Увидел Ваш ответ и понял, что для начала Вы поставьте у себя SQL Server Management Studio (это штатный менеджер сервера). Как только Вы сможете подключиться им к SQL СЕРВЕРУ на виртуалке - сразу увидите, что на нем есть и что Вам нужно. Запросы отладите, прежде чем в этого монстра под названием Эксель их пихать.
vpivo, скажи пожалуйста, а где посмотреть имя инстанса и имя машины (примерно где). Я открыл снова диспетчер серверов (он в панели быстрого доступа), там кажется ничего нужного (скрин скинул), открыл сведения о системе (это уже внутри виртуальной машины), там что-то написано, но насколько это полезно неизвестно (скрин скинул). И ещё, когда открываю виртуальную машину, она представляется в виде окна, в верху которого написано "terminal2.domain.local", может это и есть имя машины?
Добавлено через 1 минуту
По поводу SQL Server Management Studio, подскажи пожалуйста, где его взять можно?
Как в ADO подключиться к файлу EXCEL?
Нужно взять данные из EXEL и положить в базу. Не получается в ADO подключиться к файлу EXEL.
Как подключиться к листу Excel, получив с него длинные текстовые значения?
Добрый день всем. Есть лист Эксель, к которому подключаюсь напрямую запросом вида: .
Как подключиться через wi-fi к интернету
Всем привет! Я хотел бы спросить,вот куплю я вай-фай установлю его на комп,а как через фай-фай.
Как подключиться к БД через ConnectoPool?
Vsem privet. Narod kto znaet kak podkljuchit'sja k DB cherez ConnectoPool. Budu.
Как средствами vba подключиться к sap и выполнять транзакции с данными из файла excel
Как средствами vba подключиться к sap, если можно напишите пример. Нужно выполнять транзакции с.
Как подключиться к базе 1С через инет?
Имеется компьютер с 1С и находящейся на нем базе. Интернет раздает свитч, т.е. у компьютера серый.
Загрузка из Excel в 1С при помощи VBA. Ускорение 200%.
Как-то возникла у меня необходимость анализа большого отчета, который выгружался из 1С в Excel. Это был такой монструозный отчет, что при выводе терялись данные, куча условий на выводе, которые вносили ошибку. Конечно, скажете вы, проще переделать отчет, чем его проверять, но на тот момент времени не было на переделку.
Сражу же пришел на ум вариант загрузить результаты отчет из Excel в 1С и произвести сверку данных путем простой выборки.
Взялся я загружать данные, а данные это около 5000 строк и 27 столбцов. Не помню сколько у меня заняло времени на загрузку, используя вызов Excel из 1С и загрузка данных с преобразованием. Но факт в том, что в то время пока загружались данные и отлаживалась загрузка, я задумался, почему же так долго происходит загрузка.
Начал копать Excel при помощи VBA и заметил что в VBA код выполняется быстрее, чем в 1С (обход ячеек, преобразование данных) и тут меня осенило… Ну а в чем заключался мой метод, я опишу ниже. Сразу оговорюсь, что подобного метода я не встречал, если кто-то встречал подобные статьи, прошу скинуть мне ссылочку.
Для демонстрации моего метода, разработана простейшая конфигурация, ее состав один справочник и обработка, создан файл Excel c 5000 строк.
Вид тестового файла
Для указания файла сделана процедура
Сначала я сделал стандартную загрузку из Excel.
Поскольку это тонкий клиент, запись элементов справочника происходит на сервере
А вот теперь другая загрузка. Для нее нам понадобиться:
1. Написать скрипт для выгрузки данных в текстовый файл;
2. Написать код для загрузки данных из текстового файла.
Казалось бы все просто, но нет, мы не будем загружать данные из текстового файла, загрузку сделает сама 1С.
Текст скрипта на VBA
Sub Load(Filename As String)
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile(Filename, True)
a.WriteLine ("СписокЗначений = Новый СписокЗначений;")
Set whs = ThisWorkbook.Worksheets(1)
a.WriteLine ("СписокЗначение.Добавить("" + whs.Cells(rw.Row, 1).Value + "");")
Что он делает, создаем текстовый файл, имя его мы будем передавать из 1С.
И уже в текстовый файл пишем инструкции для 1С
СписокЗначение.Добавить("" + whs.Cells(rw.Row, 1).Value + "");
В этом скрипте можно не только записывать текстовые данные, но и, например, такие инструкции:
Справочники.Номенклатура.НайтиПоКоду("" + whs.Cells(rw.Row, 1).Value + "");
Т.е все зависит от целей.
После того как скрипт отлажен (все бы они такие легкие были) помещаем этот скрипт в макет (текстовый документ). В код не советую текст вставлять, замучаетесь кавычки удваивать.
Что здесь происходит:
Создаем объект Excel, без этого ни куда )).
Для того что бы иметь возможность добавлять модуль в проект VBAProject необходимо установить «Доверять доступ к Visual Basic Project». В подсказке написано где это сделать.
Ну и все, устанавливаем скрипт, выполняем его и получаем файл с результатом.
Далее этот результат загружаем в текстовый документ и выполняем командой Выполнить. В результате выполнения кода из файла у нас создастся СписокЗначений с именем СписокЗначение. А поскольку в коде из файла объект называется так же, 1С поместит в этот объект результат выполнения кода.
Ну вот и все , а теперь все ради чего это делалось: сравнение производительности:
Тестирование производительности первым методом загрузки.
Тестирование производительности вторым методом загрузки.
Как видно, используя второй метод загрузки, выигрыш во времени получился существенный.
Удачи в Ваших начинаниях.
© neusro , 20 13 . При копировании и републикации статьи ссылка на первоисточник обязательна.
Читайте также: