Страницы статьи:
  • «
  • 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
  • »
Просмотров: 350
В FaceBook

Автор статьи admin марта 25, 2009

Рубрики: , Вопросы и ответы

Теги:


Комментарии

Выскажи свое мнение

Я не робот.Нажми обязательно