Имя: Пароль:
1C
1С v8
Работа с базой данных SQL
0 avz07
 
22.07.13
18:00
Доброго всем времени суток!
Обращаюсь с просьбой. Подскажите пожалуйста мне источники, где понятно расписана тема работы с базой данных SQL (как ее прочитать, записать). я так понял, что это работа с COM-объектами.
1 Господин ПЖ
 
22.07.13
18:01
"ado" и с путь...
2 Sorm
 
22.07.13
18:07
3 Sasha_H
 
22.07.13
18:12
Можете использовать внешние источники данных. Все зависит от базы данных и поставленной задачи.
4 avz07
 
22.07.13
18:38
задача у меня такая: есть обработка, выбирает по заданной
  группы товары и дописывает их в БД. надо откорректировать ее так чтобы она проверяла существований в базе такой позиции, если есть то чтобы пропускала (ничего не писала), если нет - чтобы записывала такую ??позицию с товаром в базу.
 
запросы я уже разобрался как писать корректно, а с такой задачей в SQL столкнулся впервые.

вот код:

   СКЛ = Новый COMObject ("SQLDMO.SQLServer");
   СКЛ.Connect("10.133.100.3\sqlexpress","operator","operatorkpk1");

   Запрос = Новый Запрос;
   Запрос.Текст ="ВЫБРАТЬ
       |    ТоварыНаСкладахОстатки.Номенклатура,
       |    ТоварыНаСкладахОстатки.Номенклатура.Код КАК Код,
       |    ТоварыНаСкладахОстатки.Номенклатура.Наименование КАК тов
       |ИЗ
       |    РегистрНакопления.ТоварыНаСкладах.Остатки(
       |            &НаДату,
       |            Номенклатура В ИЕРАРХИИ (&тов)
       |                И Склад = &Склад) КАК ТоварыНаСкладахОстатки
       |
       |СГРУППИРОВАТЬ ПО
       |    ТоварыНаСкладахОстатки.Номенклатура";

   Запрос.УстановитьПараметр("НаДату", Дат);
   Запрос.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоКоду("55"));
   Запрос.УстановитьПараметр("тов", Номенклатура);
   Результат = Запрос.Выполнить();
   ВыборкаДетальныеЗаписи = Результат.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
       ТН=СокрЛП(СтрЗаменить(ВыборкаДетальныеЗаписи.тов,""""," "));
       ТН=СокрЛП(СтрЗаменить(ТН,"/","_"));
       СтрокаSQL = "insert into tblPOS(POS_ID,POSType_ID,POS_Name,Status,kod_1c) Values ('"+СокрЛП(ВыборкаДетальныеЗаписи.код)+"','41629','"+лев(ТН,50)+"',2,'"+СокрЛП(ВыборкаДетальныеЗаписи.код)+"')";
       RS = СКЛ.Databases("kpkKabareMisto1").ExecuteWithResults(СтрокаSQL);
       
   КонецЦикла;
5 lll52
 
22.07.13
23:15
Может это поможет:
http://extremallife.ru/tag/podklyuchit-1s-k-mysql
6 Ёпрст
 
23.07.13
09:04
(4) перед insert, воткни запрос на селект с фильтром на эту запись, если запрос пустой - делай инсерт, иначе, либо ничего не делай, либо делай update..
А можешь и тупо сделать delete записей и потом insert
7 avz07
 
24.07.13
11:05
спасибо! сделал.