2009
25
марта
Как подключить 1С к базе данных Oracle
марта 25, 2009 | Комментировать
- «
- 1
- »
Ковырялся недавно в старых файлах. В одной из «шараг» стоял Oracle сервер, который активно взаимодействовал с SQL сервером, на котором крутилась 1С. Нашел несколько обработок, которые подключаются к Оракловскому серверу напрямую и обрабатывают данные.
Вот пример подключения и обработки:
Конторка занималась фармакологическим бизнесом и там было понятие ХИТ продаж – наиболее уходимый, продаваемый товар, вот их то обработка и выставляла, в соответствии с запросом по продажам
Процедура ЗаписатьХиты()
// ТЗ – это таблица значений, которая заполняется запросом 1С анализирующим продажи. Заполняется в другой процедуре
Если ТЗ.КоличествоСтрок() = 0 Тогда
Предупреждение(«Не выбраны хиты!»);
Возврат;
КонецЕсли;
Стр = 0;
// Подключение к базе Oracle, где base – имя базы данных в Оракле, mak/mak – пользователь/пароль
Попытка
OraSession = СоздатьОбъект(«OracleInProcServer.XOraSession»);
OraDatabase = OraSession.OpenDatabase(«omsk», «mak/mak», 0);
Исключение
Предупреждение(«Ошибка подключения к Oracle»);
OraSession = 0;
OraDatabase = 0;
Возврат;
КонецПопытки;
SqlFindHitNumber = «select ps.param_num from elz.params_system ps where ps.name_param = ‘NUM_KATEG_HIT’»;
FindHitNumber = OraDatabase.CreateDynaset(SqlFindHitNumber, 4);
НомерХита = Строка(FindHitNumber.Fields(«param_num»).value);
FindHitNumber = 0;
// Очистим ВСЕ хиты в базе Oracle
SqlDelHits=»begin update elz.c_med_list t set t.cd_c_m = 0 where t.cd_c_m = «+ НомерХита + «;commit;end;»;
OraDatabase.ExecuteSQL(SqlDelHits);
Сообщить(«Таблица хитов очищена!», «!»);
//Проставим хиты в базе Oracle. ТЗ_Вр – временная ТЗ
ТЗ_Вр = СоздатьОбъект(«ТаблицаЗначений»);
ТЗ.Выгрузить(ТЗ_Вр);
ТЗ_Вр.Сортировать(«-Пометка»);
ТЗ_Вр.ВыбратьСтроки();
Сч = 1;
Пока ТЗ_Вр.ПолучитьСтроку() > 0 Цикл
Если ТЗ_Вр.Пометка = МеткаЕсть Тогда
КодТовара = Число(ТЗ_Вр.Товар.Код);
Авторские права на предоставленный материал принадлежат автору сайта http://extremallife.ru
//Далее пишем текст запроса и выполняем его.
SqlDelHits=»begin update elz.c_med_list t set t.cd_c_m = » + НомерХита + » where t.cd_med = » + Строка(КодТовара) + «;commit;end;»;
OraDatabase.ExecuteSQL(SqlDelHits);
Сообщить(Шаблон(«[Сч] – добавлен хит: [ТЗ_Вр.Товар.Код] [ТЗ_Вр.Товар]«), «i»);
Иначе
// Закончились отмеченные позиции
Прервать;
КонецЕсли;
Сч = Сч + 1;
КонецЦикла;
Сообщить(«Таблица хитов записана!», «!»);
КонецПроцедуры // ЗаписатьХиты()
- «
- 1
- »
| В Мой Мир | В FaceBook |
Автор статьи admin марта 25, 2009
Рубрики: 1С, Вопросы и ответы
