Подключение к 1C 8.3 и 8.2 и работа по COM соединению

Подключение к другой базе 1С 8 по COM-соединению — очень полезная вещь. В основном, эта функция необходима для обмена данными между конфигурациями.

Но по каким-то причинам у новичков часто возникают затруднения с этим несложным процессом. Ниже я подскажу способ решения этой проблемы на примере простой задачки.

Поставлена задача:

Из конфигурации «Документооборот» необходимо подключится к базе УПП:

  • найти документ по заранее известному коду, допустим «123»;
  • получить статус документа;
  • если статус изменился, то поменять и в соответствующем документе «документооборота».

Реализация задачи:

Создание подключения к базе 1C по COM

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

Функция вернет СОМ-объект, с помощью которого можно производить действия с другой базой данных 1С 8.2.

Для клиент-серверного режима строка подключения будет немного отличаться:

Получите 267 видеоуроков по 1С бесплатно:

Если Вы подключаетесь к базе на платформе 1C 8.1, то Вам необходимо использовать не «V82.COMConnector», а «V81.COMConnector».

Найти документ 1С по COM

Для примера, пусть номер нужного документа будет «1234», а наш Документ-объект — «ДокументОбъект»:

Вот и все: мы подключились по COM, получили нужный документ, прочитали его статус и, если он отличается, установили статус нашему документу.

Другие статьи по 1С:

Видеоурок по подключению 1С 8.3 через COM:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Настройка использования аппаратного ключа защиты или программной лицензии 1С:Предприятие

Как настроить порядок использования аппаратного ключа защиты или программных лицензий системы «1С:Предприятие 8» для каждого рабочего места или информационной базы?

Программные продукты системы «1С:Предприятие» могут защищаться от несанкционированного копирования как с помощью программных лицензий, так и аппаратных USB-ключей.

Первые программные продукты на платформе «1С:Предприятие» с программной системой защиты «1С:Предприятие 8» была выпущены фирмой 1С в сентябре 2010 года (1С:Документооборот и 1С:УНФ, а также дополнительные клиентские и серверные лицензии). В 2011 году были выпущены ПРОФ версии основной линейки программных продуктов «1С:Предприятие 8» для хозрасчетных предприятий, а 2012 г. для бюджетников. На момент написания статьи все типовые программные продукты «1С:Предприятие 8» можно купить с программной системой защиты, при этом для большинства программных продуктов существует возможность приобрести вариант и с традиционными USB-ключами, которые стоят приблизительно на 20% дороже аналогов с программной защитой.

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

Похожие статьи на тему:

Отключение использования аппаратной лицензии (ключа защиты) «1С:Предприятие 8.3» на отдельном рабочем месте

Указать параметр «UseHWLicenses=0» в конфигурационном файле 1cestart.cfg, который представляет собой текстовый документ в кодировке UTF-16LE и находится в каталогах:

  • %APPDATA%\1C\1CEStart — для конкретного пользователя;
  • %ALLUSERSPROFILE%\1C\1CEStart — для всех пользователей компьютера.

Параметр UseHwLicenses управляет поиском ключа защиты при запуске «1С:Предприятия»:

1 ‑ поиск ключа защиты выполняется (значение по умолчанию);
0 ‑ поиск ключа защиты не выполняется.

Если в разных конфигурационных файлах указано различное значение UseHwLicenses, то используется значение параметра в соответствии со следующим приоритетом:

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

Данный параметр позволяет отключить поиск ключа защиты в тех случаях, когда получение клиентских лицензий реализовано с помощью расширения веб-сервера, сервера «1С:Предприятия» или в случае базовой версии.

Значение параметра может изменяться системой автоматически в следующих случаях:

  • Если поиск ключа защиты включен, то при старте клиентского приложения выполняется анализ времени поиска ключа защиты. Если ключ защиты не был найден, запуск выполнен успешно и время поиска превысило 3 секунды, пользователю предлагается отключить поиск ключа защиты для ускорения последующих запусков. В случае согласия пользователя в файл 1cestart.cfg этого пользователя выполняется запись параметра UseHwLicenses=0.
  • Если поиск ключа защиты отключен и при запуске обнаруживается, что лицензия не получена от сервера «1С:Предприятия» или расширения веб-сервера, то пользователю предлагается включить поиск ключа защиты. В случае согласия пользователя в файл 1cestart.cfg этого пользователя выполняется запись параметра UseHwLicenses=1 и выполняется перезапуск клиентского приложения.

Если осуществляется запуск внешнего соединения, то выполняется попытка анализа параметра из файла 1cestart.cfg, расположенного в профиле пользователя, от имени которого запускается внешнее соединение. Если у пользователя отсутствует профиль (например, пользователь LocalSystem в ОС Windows), то поиск ключа выполняется всегда.

Отключение использования аппаратной лицензии (ключа защиты) «1С:Предприятие 8.3» для отдельной информационной базы

В окне «Дополнительные параметры запуска» указываем параметр /UseHwLicenses со знаком «+» или «-«, который определяет режим поиска локального ключа защиты и может принимать следующие значения:

  • /UseHwLicenses+ ‑ поиск локального ключа защиты выполняется.
  • /UseHwLicenses- ‑ поиск локального ключа защиты не выполняется.

Порядок поиска программной лицензии 1С:Предприятие, Как настроить использование аппаратного клиентского ключа или программной лицензии 1С 8, Настройка приоритета использования программной или аппаратной лицензии 1С, Как отключить использование аппаратной клиентской лицензии для конкретной информационной базы 1С:Предприятие

Подключение к базе 1С через COM

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

Подключение к базе

Для подключения к базе 1С через COM необходимо:

  1. Создать COM-объект 1С необходимой версии ([ V8 ; V81 ; V82 ; V83 ].COMConnector);
  2. Подключиться к базе при помощи метода Connect () , указав параметры доступа.

Ниже представлены примеры подключения к серверной и файловой базам:

Примеры обращения к данным другой базы

В библиотеке стандартных подсистем(БСП) предусмотрены методы для работы с COM-подключениями. Вот некоторые из них:

  • ОбщегоНазначенияКлиентСервер . ИмяCOMСоединителя () — возвращает имя COM-класса для работы с 1С:Предприятием через COM-соединение (например, «v83.COMConnector»).
  • ОбщегоНазначения . ИдентификаторCOMСоединителя (Знач ИмяCOMСоединителя ) — возвращает CLSID COM-класса для работы с 1С:Предприятием 8 через COM-соединение (для v83.COMConnector — «181E893D-73A4-4722-B61D-D604B3D67D47»).
  • ОбщегоНазначенияКлиентСервер . УстановитьВнешнееСоединениеСБазой ( Параметры ) — устанавливает внешнее соединение с информационной базой по переданным параметрам подключения и возвращает указатель на это соединение.
  • СоединенияИБ . ИнформацияОСоединениях ( ПолучатьСтрокуСоединения = Ложь, СообщенияДляЖурналаРегистрации = Неопределено, ПортКластера = 0 ) — возвращает структуру, из которой можно узнать, есть ли в текущий момент COM-соединения с базой.
Смотрите так же:  Пособие по экономике для учителя

COMСоединитель = Новый COMОбъект ( ОбщегоНазначенияКлиентСервер . ИмяCOMСоединителя ());

CLSID = ОбщегоНазначения . ИдентификаторCOMСоединителя ( ОбщегоНазначенияКлиентСервер . ИмяCOMСоединителя ());

Результат = ОбщегоНазначенияКлиентСервер . УстановитьВнешнееСоединениеСБазой ( Параметры );

ТекущиеСоединения = СоединенияИБ . ИнформацияОСоединениях (Истина);

Для каждого COM-соединения расходуется одна лицензия. Лицензии ищутся в следующем порядке:

  1. локальные клиентские лицензии;
  2. локальные серверные лицензии;
  3. сетевые клиентские лицензии;
  4. клиентские лицензии на сервере 1С:Предприятия или веб-сервере.

1с внешнее соединение лицензия

Моя интеграция с 1С

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

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

В качестве языка, который будет интегрироваться с 1С, я выбрал Питон. Он очень хорошо подходит для автоматизации процессов. Этому способствуют минималистичность синтаксиса (код набирается очень быстро), богатая стандартная библиотека (меньшая потребность в сторонних модулях), кроссплатформенность — с большой вероятностью, код, написанный в ОС Linix, успешно заработает в Windows.

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

Когда-то в организации стояла программа, написанная на Дельфи и использующая в качестве БД MSSQL/Firebird. В те славные времена можно было подключиться к базе с помощью любого языка и совершить множество действий — выбрать абонентов-должников, разнести поступившие оплаты, зафиксировать показания приборов. Неудивительно, что коллекция скриптов, автоматизирующих рутину, постоянно росла. Программисты могли выполнять любые действия, не открывая саму программу.

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

Основные задачи, стоявшие передо мной — это возможность быстрого получения данных по конкретному лицевому счету — ФИО, адрес, приборы учета, показания приборов, платежи, начисления. Плюс формирование документов — акта сверки, платежной квитанции. Итак, возможность прямого соединения с БД отсутствует — каждый, кто просматривал базу 1С на SQL-сервере, видел, что в массе таблиц вида aaa1, aaa2 разобраться трудно. А строить запросы с такими названиями таблиц и полей просто нереально. К тому же, многие таблицы 1С (особенно самые важные, вроде среза последних, остатков и оборотов) являются виртуальными и разбросаны по разным физическим таблицам, собираясь множественными джоинами. Это способ не подходит.

Платфома 1С предоставляет возможность соединяться с ней через COM-соединение. Подобно многим windows-программам, во время установки 1С в системе регистрируются два COM-объекта — Automation Server и COM Connector. С обоими объектами можно работать, используя язык, в котором предусмотрена поддержка COM-технологии.

Объект Automation Server — это приложение 1С, почти ничем не отличающееся от обычного клиентского приложения. Разница в том, что дополнительно появляется возможность программного управления экземпляром приложения. При работе с объектом COM Connector запускается облегченный вариант 1С-приложения, в котором недоступны формы, а так же функции и методы, имеющие отношение к интерфейсу и визуальным эффектам. Само приложение запускается в режиме «Внешнее соединение». Инициализация глобальных переменных (например, определение текущего пользователя и его настроек) должна выполняться в модуле внешнего соединения 1С. Если в режиме внешнего соединения в коде будет вызвана функция, не доступная в этом режиме, то будет вызвано исключение (которое будет передано в наш питон-скрипт). Вызов небезопасных функций следует обрамлять конструкциями вида

Поскольку работа с COM-объектами — технология исключительно windows-only, то не удивительно, что в стандартной поставке Питона она отсутствует. Потребуется установить расширение Win32 — набор модулей, предоставляющих весь нужный функционал для программирования под Windows на Питоне. Его можно скачать в виде уже собранного exe-установщика. Само расширение предоставляет доступ к реестру, службам, ODBC, COM-объектам и т.д. В качестве альтернативы можно сразу поставить дистрибутив ActiveState Python, в котором расширение Win32 поставляется из коробки.

Некоторое время я экспериментировал с COM-соединением в разработке веб-приложений, в частности, личного кабинета. Были выявлены следующие минусы:

— COM-соединение работает медленно. Низкая производительность — известный минус COM-технологии.
— Процесс установки соединения с 1С в зависимости от конфигурации может занять от 1 до 8 секунд (в моем случае — 6 секунд). Стоит ли говорить, что установка соединения на каждый запрос приведет к тому, то каждая страница будет загружаться 8 секунд.
— Поскольку веб-приложения на питоне работают как самостоятельные сервера, то предыдущий пункт можно компенсировать хранением соединения в некоторой глобальной переменной и в случае ошибки восстанавливать его. Как поддерживать соединение на PHP, я, честно говоря, еще не думал.
— Теряется кроссплатформенность веб-приложения.

Исходя из перечисленных выше пунктов, было решено изменить принцип взаимодейстия, разделив его на 2 части — первую платформозависимую (виндовую), выгружающую данные 1С в какой-либо удобный формат, и вторую, не зависимую от платформы, способную работать с данными, ничего не подозревая об 1С в принципе.

Стратегия действий состоит в следующем: питон-скрипт соединяется с 1С, выполняет нужные запросы и выгружает данные в SQLite базу. К этой базе можно подключиться из Питона, PHP, Джавы. Большинство наших проектов работает на питоне, и так как я не выношу писать сырые SQL-запросы руками, то вся работа с базой SQLite выполняется через ORM SQLAlchemy. Потребовалось лишь описать структуру данных базы декларативном стиле:

Теперь достаточно импортировать этот модуль в любой питон-проект, и можно работать с данными.

Предвижу ваш вопрос — «а почему SQLite»? Главная причина — база нужна только для чтения, поэтому проблемы с записью в SQLite нас волновать не должны. Во-вторых, формат этой этой СУБД удобен — ее удобнее просматривать (существуем множество бесплатных утилит, в том числе супер-расширение для FireFox). В-третьих, в некоторых случаях требовалось получить доступ к абонентам с тех машин, на которых нет соединения с MySQL-сервером. В таком случае достаточно скопировать файл SQLite-базы, и на этой машине будет доступ ко всей информации.

Смотрите так же:  Требования к кислородным станциям

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

Работа с COM-объектами в Питоне немного необычна. Во-первых, утрачивается «питоничность» кода — правила именования переменных и функций в 1С, мягко говоря, не соответствуют Дзену Питона. Во-вторых, всем известно, что объекты 1С зачастую именуются кириллическими символами, что вызовет проблемы при разработке на Питоне… но они решаемы. Предлагаю ознакомиться с кодом:

Как видно из кода, инициализируется клиент для работы с 1С. Определение COM-объекта происходит по имени «V82.COMConnector». Обратите внимание, что это название справедливо для платформы V8.2, если у вас версия 8.1, то имя будет «V81.COMConnector».

У инициализированного клиента мы вызываем метод Сonnect(), передавая ему строку подключения. Строка складывается из имени сервера, базы, пользователя и пароля. Полученный объект V82 хранит в себе соединение с приложением 1С. У него нет метода Disconnect() или чего-то в этом роде. Чтобы отключиться о базы, достаточно удалить объект из памяти функцией del() или присвоить переменной None.

Имея объект, можно обращаться к любым полям и методам глобального контекста 1С, оперировать универсальными объеками типа ТабличныйДокумент, ТаблицаЗначений и тд. Важно учесть, что при работе через COM-соединение 1С работает в режиме «Внешнее соединение». В нем недоступны любые функции для интерактивной работы, например, всплывающие диалоги, уведомления, и, что самое главное, формы. Уверен, что вы не раз проклянете разработчиков конфигурации, которые заключают самый важный функционал в процедуру Кнопка1Нажатие() в модуле формы документа.

Давайте поговорим о такой важдной вещи, как киррилические атрибуты. Не смотря на то, что 1С — двуязычная среда и для каждого русского метода есть англоязычный аналог, рано или поздно потребуется обратиться к киррилическому атрибуту. Если на языках PHP или VBSCript это не вызовет никаких проблем,

то код на питоне просто вылетит с ошибкой Syntax Error. Что же делать? Править конфигурацию? Нет, достаточно воспользоваться методами getattr и setattr. Передавая в эти функции COM-объект и кириллическое имя аттрибута, можно соответственно получать и устанавливать значения:

Важно следующее: имена реквизитов, а так же параметры функций и методов должны передаваться в кодировке cp1251. Поэтому, чтобы заранее избежать путиницы с кодировками, имеет смысл объявить ее в начале файла: #coding=cp1251. После этого можно передавать строки, не волнуясь об их кодировке. Но! Все строки, полученные из 1С (результаты вызова функций, запросов), будут в кодировке UTF-8.

Пример кода, который выполняет в среде 1С запрос, перебирает результат и сохраняет в SQLite базу:

Здесь CONN — это сессия соединения с SQLite-базой. Создается объект запроса query, заполняется его текст. Как было замечено выше, текст запроса должен быть в cp1251, для чего вначале объявлена кодировка. После выполнения запроса в базе удаляются все абоненты, чтобы не добавить дубли, затем добавляются в цикле и следует финальный комит.

При работе с запросами я выявил следующие правила.

— Выбирая поля, назначайте им названия латиницей, будет гораздо удобнее обращаться к ним через селектор (точку), вместо getattr().
— Выбирайте только примитиные типы данных: строки, числа, дату и булево. Никогда не выбирайте ссылки на объект (документ, справочник)! В данном контексте ссылки вам абсолютно не нужны и даже вредны, потому что любое обращение к реквизиту или методу ссылки приведет к запросу через COM-соединение. Если обращаться к атрибутам ссылки в цикле, то это будет крайне медленно.
— Если вы выбираете поле типа Дата, то оно буде возвращено как объект PyTime. Это специальный тип данных для передачи даты-времени в COM-соединении. С ним не так удобно работать, как с привычным datetime. Если передать этот объект в int(), то вернется timestamp, из которого потом можно получить datetime методом fromtimestamp().

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

Так, документ акта сверки генерируется специальной внешней обработкой. Для тех, кто не знаком с терминологией 1С: обработка — это автономная программа, имеющая свой модуль, формы, шаблоны, предназначенная для запуска в среде 1С. Необходимо инициализировать обработку, заполнить ее реквизиты и вызвать функцию, которая вернет нам табличный документ, предназначенный для просмотра в 1С. Этот документ нужно сохранить в формат Excel и скопировать на сервер или записать в базу.

В приведенном фрагменте выполняется следующее. Подключается обработка, формирующая документ. Обработка может быть встроена в конфигурацию, храниться на диске или в базе данных 1С (в каком-то справочнике). Поскольку обработки часто меняются, то, чтобы каждый раз не обновлять конфигурацию, самые часто меняющиеся обработки хранятся в справочнике «ОтчетыСистемы», в реквизите типа «хранилище значения» с именем Отчет. Обработку можно инициализировать, выгрузив ее из базы на диск и подгрузив, либо методом GetURL(), в который нужно передать ссылку на элемент справочника и имя реквизита. Полученному объекту обработки мы назначаем значения реквизитов, вызываем экспортируемую функцию GetDoc(), получаем табличный документ, который сохраняется во временный Excel-файл. Содержимое этого файла записывается в SQlite-базу.

Последнее, что остается рассмотреть — это программное занесение данных в 1С. Предположим, что требуется занести показания от абонентов. Для этого достаточно создать и провести документ «Акт снятия показаний»:

Теперь занесение данных автоматизированно.

Итак, я изложил способ, который основан на программной выгрузке и загрузке даных с использованием COM-соединния. Этот метод успешно функционирует в моей организации почти год. База, формируемая из 1С, обслуживает 3 платежные системы, интернет-эквайринг (оплата картами через интернет), а так же личный кабинет. Помимо этого, к базе подключаются различные скрипты для автоматизации рутины.

Несмотря на недостатки метода (медленная скорость COM-соединения), в целом он функционирует стабильно. У нас есть данные в платформонезависимом виде (SQLite), с которыми можно работать из любого языка. И основная часть кода написана на Питоне, а значит, доступны множество средств и приемов, о которых даже нельзя мечтать в 1С.

Это один из возможных способов взаимодейстия с 1С. Я уверен, что он не нов и наверняка уже был кем-то опробован, оптимизирован. Однако, я постарался изложить максимум деталей процесса, чтобы уберечь вас от подводных камней, на которые сам наступал.

Желаю всем удачи, и помните, что не так страшен 1С, как его малюют!

COM соединение в 1С 8.3

Одним из способов перенести данные из одной конфигурации 1С в другую является программное подключение с помощью COM. Многие компании используют несколько различных баз, между которыми должны быть определенные связи и зависимости. Если необходимо не только перенести данные, но и выполнить определенную обработку данных, то COM соединение будет оптимальным механизмом. Умение анализировать данные из другой базы 1С пригодиться любому разработчику.

Смотрите так же:  Адвокат по 228 в красноярске

Подключаемся через COM к базе 1С

Для реализации COM соединения в 1С используется специальный механизм под названием COMConnector. Этот объект устанавливается вместе с платформой и применяется для связи информационных баз. Следует учесть, что для версий 8.2 и 8.3 используются разные по наименованию объекты – «V82.COMConnector» и «V83.COMConnector» соответственно.

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

Чтобы иметь возможность подключиться к другой базе и запросить нужную информацию вы должны знать следующие данные:

  1. Какого она типа – файловая или клиент-серверная;
  2. Где она располагается;
  3. Под каким именем и паролем в нее можно зайти;
  4. Какие данные вас интересуют.

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

Функция подключения проста и не должна вызвать вопросов, если все параметры указаны верно. Для ускорения отладки и анализа возможных ошибок лучше заключить подключение в конструкцию «Попытка». Возвращать функция будет значение типа «COM объект», с которым и предстоит работать, получая нужные данные.

Через COM соединение вы можете не только выбирать данные, но и добавлять их в базу, к которой подключаетесь. Помните, что передавать через COM объект мы можем 4 примитивных типа данных. Другие типы придется задавать с помощью встроенных в платформу функций поиска. Учтите, что глобальные функции платформы вызываются тоже через COM-соединение.

Получаем данные из базы 1С

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

К примеру, чтобы получить информацию о пользователях определенного подразделения, зададим условие в запрос через параметры. Один параметр будет простого типа – строка, а подразделение – ссылкой элемента справочника «Структура предприятия». Результат запроса является таблицей с перечисленными полями того типа, какого они существуют в базе, к которой произошло COM соединение. Если необходимо их преобразовать в другие типы – воспользуйтесь стандартными функциями платформы:

  • Строка();
  • Число();
  • Дата().

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

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

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

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

COM соединение. Пул соединений.

тут вот не хотят веб сервис, из того что лицензции забирает а соединений будет много.

А получаеться если я создам пул например из 1 соединения — то у меня заберет 1 лицензию и все? я просто буду всегда обращатся к этому соединению.

(19)
Но при многопользовательской работе это будет постоянное ожидание освобождения соединения.

А почему? соединение уже забрало ж себе лицензию зачем ожидать свободной? Или каждое обращение к соединению забирает лицензицю?

(20)
А то что долго не живет — не страшно, можно проверять активно ли оно,если нет то создать новое.

Я просто запутался уже, Соединение забирает лицензицию или каждое обращение к существующему соединению тоже берет лицензию.

(35)
Ну так то понятно, просто одновременно может быть много коннектов, соотвественно в один момент может много лицензий забрать.

Я от хочу понять могу ли я на один и тот же коннект обращаться одновременно, отработает ли он паралельно..

(51) Да я как раз за него и думаю. И согласно статье то тут ми закешировали ком и ое взял одну лицензицю и все.

Хотя впринципе надо попробовать не розрывать соеденения — и обращаться к нему, думаю оно тоже не должно по логике брать лицензии.

Другие публикации:

  • Возврат материалов в 1с 8 Как в 1С 8.3 отразить возврат материалов поставщику? Здравствуйте.В 1 С провожу возврат принятого на учет материала поставщику через обратную реализацию. Почему то формируются такие проводки Д 91,02 К 10,06 сумма материала БЕЗ НДСД […]
  • Счет доходов возврат товаров поставщику Как оформить возврат товара поставщику в 1С 8.3 — пошаговая инструкция В этой публикации мы рассмотрим пошаговую инструкцию по документу «Возврат товаров поставщику» в 1С 8.3 (как и в 1С 8.2) и как с помощью его оформить возврат товаров, […]
  • Как считается компенсация на увольнение Увольнение по соглашению сторон с выплатой компенсации Что такое увольнение по соглашению сторон Рассуждая о прекращении рабочих отношений, следует отметить, что статья 77 ТК РФ предусматривает следующие основания: Соглашение сторон. […]
  • Компенсация отпуска при увольнение в 1с 8 Как начислить компенсацию при увольнении в 1С 8.3 Бухгалтерия Сразу хочу огорчить нашего читателя: специального документа для оформления компенсации за неиспользованный отпуск при увольнении в 1С 8.3 Бухгалтерия нет. Автоматизации расчета […]
  • Налог на имущество организаций в 1с 82 в 2019 году Отчетность по налогу на имуществу в «1С: Бухгалтерия 8», ред 3.0 Автор: Дильнара Юмагулова, бухгалтер-консультант Линии консультаций компании «ГЭНДАЛЬФ» В данной статье будут рассмотрены основные моменты и нюансы, касающиеся налога на […]
  • Системные требования 1 с 82 Блог / Новости Подбор компьютера для 1с 8.3. Подбор компьютера для 1с 8.3. Программа 1С очень удобна и по праву занимает одно из лидирующих позиций на Российском рынке программного обеспечения. Вот цитата с официального сайта компании […]
1с внешнее соединение лицензия