Введение в прямые запросы к базе 1с7.7.

Архитектура платформы 1с7.7 может быть файл- и клиент-серверная. В первом случае 1с хранит свои данные в таблицах формата dbf, во втором 1с используется как надстройка к Microsoft SQL Server (2000 - 2008). У каждой архитектуры свои особенности работы, но я сейчас не об этом. Затронул эту тему я лишь потому, что в зависимости от архитектуры существуют особенности использования прямых обращений к таблицам базы данных.

В клиент-серверном варианте для получения данных используется ODBC драйвер. В файл-серверном можно воспользоваться драйвером VisualFoxpro или использовать SQLite. 

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

Итак, стартуем!

1) Для клиент-серверной архитектуры.

- Подключаем при начале работы системы компаненту 1cpp.dll:

Процедура ПриНачалеРаботыСистемы() 
...
Если ЗагрузитьВнешнююКомпоненту("1cpp.dll") = 0 Тогда
     Сообщить("Неудачная попытка загрузки 1c++.dll");
КонецЕсли;
...
КонецПроцедуры;

- Там, где нужно получить данные: 

рс = СоздатьОбъект("ODBCRecordset");
ТекстЗапроса = "Select Ном.id [Номенклатура $Справочник.Номенклатура]
|From $Справочник.Номенклатура As Ном"; тз = рс.ВыполнитьИнструкцию(ТекстЗапроса); тз.ВыбратьСтроку();

Получаем выборку из справочника "Номенклатура".   Коротко о том, что я написал:   Синтаксис языка запросов соответствует синтаксису TSQL. Помимо этого объект ODBCRecordset использует парсер (директива [] и $).   В запрос можно передвавать параметры. Делается это так:

рс = СоздатьОбъект("ODBCRecordset");
ТекстЗапроса = "Select Ном.id [Номенклатура $Справочник.Номенклатура]
|From $Справочник.Номенклатура As Ном
|Where Ном.descr = :Наименование";
рс.УстПараметр("Наименование","Товар1");
тз = рс.ВыполнитьИнструкцию(ТекстЗапроса);
тз.ВыбратьСтроку();

Автоматизация хаоса

Контакты:

Телефон: +7 963 570 26 00

E-mail: al_zzz@mail.ru

Дизайн сайта:

Веб-дизайн и верстка: Зелёнкина Елена

8 963 578 05 35, lena_431@mail.ru