19.03.2021 Айдар Фархутдинов 34691
1С и ADOdb

Содержание:

1.       Формирование объекта ADOdb.Connection

2.       Отправка команды серверу

3.       Получение и обработка результата работы команды


В данной статье будет рассмотрено взаимодействие 1С и ADOdb. Но вначале вкратце опишем, что из себя представляет ADOdb. Итак, ADOdb – это библиотека-функция для программного обеспечения, которая создает прикладной интерфейс для способа доступа к базам данных таких языков, как Python и PHP. Данная библиотека даёт разработчику инструменты, которые позволяют делать приложения не программируя каждый возможный тип источника данных. Также используя ADOdb, программист 1С получает возможность перемены в СУБД (Система управления базами данных), не внося исправлений в главную часть кода.


ADOdb может применяться совместно с системами 1С, например, для получения доступа к таблицам в базе данных 1С при помощи методов ADO. Методы ADO и SQL-DMO разрешают исполнять командование доступом и модификацию данных при помощи функций T-SQL (расширение SQL). В обоих случаях порядок действий будет одинаковым. Рассмотрим же его подробнее!  


1.     Формирование объекта ADOdb.Connection


формирование объекта в ADOdb.Connection

Формирование объекта ADOdb.Connection


Реализовали мы данное действие в глобальном модуле, то есть существует объект до тех пор, пока сеанс в 1С открыт – по окончанию работы удалять не нужно. 


2.     Отправка команды серверу


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

 

Привязка объекта ADOdb.Connection к соединению 

Привязка объекта ADOdb.Connection к соединению

 

Далее задаётся непосредственно команда:


 ADOdb.Connection тип команды

Команда для объекта ADOdb.Connection

 

Текст в команде – это некий оператор из T-SQL или имя процедуры из нашей базы данных.

Чтобы работа программы стала быстрее? можно отметить для объекта ADOdb тип команды (функция «ТипКомандыАдо()»).


Как отметить для объекта ADOdb.Connection тип команды

Как отметить для объекта ADOdb.Connection тип команды


Примечание: по внутренним настройкам при создании объекта ADOdb.Command стоит тип adCmdUnknow.



Тип команды по умолчанию для объекта ADOdb.Connection


В случае, когда используем процедуру с параметрами, которую храним – нужно внести их в собрание «Parameters» в объекте ADOdb.Command. Создание параметров происходит через функцию CreateParameter в объекте ADOdb.Command:


«CreateParamerer (Name, Value Type, Param type, Param Value)», где:

·        Name – название параметра (точно так же, как указано в процедуре, в которой он хранится);

·        Value Type – значение параметра по типу, определяем при помощи КонстантаАДО();

·        Param Type – тип в параметре («Output» или «Input»), определяем при помощи функции ТипПарамедраАДО();

·        Param Value – само значение.


создание в объекте ADOdb.Command

Создание параметров в объекте ADOdb.Command


 

Функция CreateParameter в объекте ADOdb.Command

Функция CreateParameter в объекте ADOdb.Command

 


работа в ADOdb.Command

Пример создания параметров в объекте ADOdb.Command


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


Примечание: параметры с типом Numeric нужно будет конвертировать в строки, а только потом передавать.  


3.     Получение и обработка результата работы команды


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

·        как набор с данными, который возвращаем функцией «Execute» из объекта ADOdb.Command;

·        как обособленные значения, которые можно передать из той процедуры, где они хранятся, по параметрам с типом OUTPUT.


Выведение результатов работы ADOdb.Command

Выведение результатов работы ADOdb.Command


Стоит обратить внимание, что параметры нумеруются начиная со значения «0». Параметры можно использовать ещё раз, если присвоить им значения через опцию Value.


Конечный набор с записями сможет проходить обработку с начала и до конца цикла и будет обращаться к полям по их названиям. Например:


Обработка набора с начала и до конца года

Обработка набора с начала и до конца года


Когда записи стали не нужными, закрываем их с помощью Rs.Close.

Таким образом, соединив 1С и методы ADOdb, мы получили набор записей при работе с базой данных SQL.


Специалист компании «Кодерлайн»

Айдар Фархутдинов

 

 

Наши проекты

Автоматизация складских операций на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
1С:Управление холдингом

Реализовали разработку уникального модуля «Интернет-магазины» на базе прог...

Внедрение ПП "1С:Управление небольшой фирмой 8 ПРОФ" в ООО «Шокостайл»
ООО «Шокостайл»

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

Управление продажами, логистикой и транспортом (SFM, WMS, TMS):
- Планирование п...

ФГУП «Почта России»
ФГУП «Почта России»

Отрасль:
Почта, доставка

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Бухгалтерский учет
- Расчет зарплаты и кадровый учет
- Налоговый учет ...

ЗАО «Инвестгеосервис»
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Объемно-календарное планирование производства Автоматизация бизнес-проце...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО Фирма «Бисер»
ООО фирма «Бисер»

Отрасль:
Производство

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Финансы, управленческий учет, мониторинг показателей:
- Налоговый учет...

ПЭК
ПЭК

Отрасль:
Грузоперевозки

Внедренное типовое решение:
«1С: Управление торговлей»

- Создание прототипа SRM-системы на базе «1С: Управление торговлей»
- Автомат...

ООО "НЦКТ"
ООО "НЦКТ"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Управление нашей фирмой 8 ПРОФ

Взаиморасчеты с покупателями
Автоматизация бизнес-процессов...

АО «РЭП Холдинг»
АО «РЭП Холдинг»

Отрасль:
Энергомашиностроительный холдинг

Внедренное типовое решение:
«1С: Управление производственным предприятием» и «1С:Консолидация ПРОФ»

- Функциональный блок «Консолидированная отчетность РСБУ» - разработка час...

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

Отрасль:
Авиаперевозки

Внедренное типовое решение:
1С:Зарплата и управление персоналом

Управление персоналом и кадровый учет (HRM) Кадровый учет Расчет зарплаты Рег...

Разработка функциональных требований к информсистеме на базе «1С:Управление холдингом 8»
ФГУП «СВЯЗЬ-безопасность»

Отрасль:
Охранные услуги

Внедренное типовое решение:
1С:Управление холдингом

- Зафиксировали процессы по блокам бухгалтерского, налогового учета, казнач...

ООО "АСК ИНЖИНИРИНГ"
ООО "АСК ИНЖИНИРИНГ"

Отрасль:
Машиностроение, приборостроение

Внедренное типовое решение:
1С:Документооборот ПРОФ

Делопроизводство
Учет и хранение документов
Ведение номенклатуры дел
...

ООО "Смена"
ООО "Смена"

Отрасль:
Торговля, склад, логистика, транспорт

Внедренное типовое решение:
1С:Комплексная автоматизация

Банк и касса
Расчеты с контрагентами
Торговые операции
Взаиморасчеты с...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение