string zapr = "Select * from " + ImjaTabl;
OleDbDataAdapter adapt = new OleDbDataAdapter(zapr, konekt);
adapt.Fill(dt, ImjaTabl);
//ds.WriteXml(@"C:\ttt.xml");
_1C.InvokeMember("ExitSystem", BindingFlags.InvokeMethod, null, tor, new object[] { 0 });
tor = null;
_1C = null;
return dt.Tables[0];
}
catch
{// Если возникла ошибка
_1C.InvokeMember("ExitSystem", BindingFlags.InvokeMethod, null, tor, new object[] { 0 });
tor = null;
_1C = null;
return ddt;
}
}
else
{ // Если не удалось подключиться
_1C.InvokeMember("ExitSystem", BindingFlags.InvokeMethod, null, tor, new object[] { 0 });
tor = null;
_1C = null;
return ddt;
}
}
[WebMethod]
public
//******************************************************************************
// Возвращает Количество оставшегося товара по его коду
string OstatokPoKodu(string nom) {
string ost;
ost = "Пусто";
if (podkluchenie()){
ost = Procedura1C_par("GlVozrOst", nom).ToString();
_1C = null;
return ost;
}else{
_1C = null;
return null;
}
}
[WebMethod]
public
//******************************************************************************
// Сохраняет номенклатуру
DataTable VigruzNom(){
return Vigr("GlVozrNom", @"C:\BD_WB\nomen\", "nomen");
}
[WebMethod]
public
//******************************************************************************
// Сохраняет и передаёт цены
DataTable VigruzCeni()
{
return Vigr("GlVozrCeni", @"C:\BD_WB\ceni\", "ceni");
}
[WebMethod]
public
//******************************************************************************
// Сохраняет и передаёт остатки
DataTable VigruzOst()
{
return Vigr("GlVozrOstatki", @"C:\BD_WB\ost_osnov\", "ost");
}
}
ПРИЛОЖЕНИЕ В
Функции глобального модуля,
формирующие данные для WEB Службы.
ФункцияглВернутьЦену(Номенклатура,ТипЦены,ДатаЦены=0,ЦенаЦены=0,ЕдЦены=0,ВалЦены=0,НаценкаЦены=0,НайденнаяЦена=0,НеДобавИздержки=0)ЭкспортДалее
ФункцияGlVozrOst(кд_ном)ЭкспортДалее
ФункцияGlVozrCeni()ЭкспортДалее
ФункцияGlVozrNom()ЭкспортДалее
//###############################################################################
//БлокдляработысинтернетмагазиномчерезWebслужбу
//*******************************************************************
//Функциявозвращаетпараметрпоимениизфайлаnastr.txtрабочегокаталога
//Форматфайла:
//строкиначинающиесяс#-коментарии
//имяпараметразадаётсякак[имя],азначениележитнастрочкувнизу
ФункцияПарамПоИмени(пар)
ПеремномСтрок;
Перемстр;
Ткст=СоздатьОбъект("Текст");
Ткст.КодоваяСтраница(0);
Ткст.Открыть(КаталогИБ()+"nastr.txt");
номСтрок=1;
ПоканомСтрок<=Ткст.КоличествоСтрок()Цикл
стр=Ткст.ПолучитьСтроку(номСтрок);
//удаляемпробелывначалеиконцестроки
СокрЛП(стр);
ЕслистрДлина(стр)>0Тогда
//Есликоментарий,топропускаем
ЕслиЛев(стр,1)="#"Тогда
номСтрок=номСтрок+1;
Продолжить;
КонецЕсли;
//Есликакойтопараметр,тогда
ЕслиЛев(стр,1)="["Тогда
стр=лев(стр,стрДлина(стр)-1);
стр=прав(стр,стрДлина(стр)-1);
//Еслиэтотпараметр-искомый
Еслистр=парТогда
ВозвратСокрЛП(Ткст.ПолучитьСтроку(номСтрок+1));
КонецЕсли;
КонецЕсли;
КонецЕсли;
номСтрок=номСтрок+1;
КонецЦикла;
Возврат"0";//Еслиничегоненашли-возвращаетноль
КонецФункции
//******************************************************************
//Функциявозвращаетколичествотоварапоегокоду,преднозначенадлявыводачерезWebслужбу
ФункцияGlVozrOst(кд_ном)Экспорт
ПеремОст;
Ном=создатьОбъект("Справочник.Номенклатура");
Склд=СоздатьОбъект("Справочник.Склады");
Регр=СоздатьОбъект("Регистр.ОстаткиТМЦ");
Склд.НайтиПоКоду("00001");
Ном.НайтиПоКоду(кд_ном);
Ост=0;
Ост=Регр.СводныйОстаток(,ном.ТекущийЭлемент(),Склд.ТекущийЭлемент(),,"Количество");
ВозвратОст;
КонецФункции
//*******************************************************************
//Функциявозвращаеттаблицузначений-номенклатурускодомиеёпараметры
ФункцияGlVozrNom()Экспорт
ПеремОст,ТабЗн;
ПеремКатВыгр;
Запрос=СоздатьОбъект("Запрос");
ТекстЗапроса=
"//{{ЗАПРОС(Номенклатура)
|Ном=Справочник.Номенклатура.ТекущийЭлемент;
|ГруппировкаНом;"//}}ЗАПРОС
;
ЕслиЗапрос.Выполнить(ТекстЗапроса)=0Тогда
Предупреждение("Ошибкавзапросе");
КонецЕсли;
КатВыгр=ПарамПоИмени("КаталогВыгр")+ПарамПоИмени("Ном");
ДБФ=СоздатьОбъект("XBase");
ДБФ.ДобавитьПоле("EtoGruppa",1,1,0);
ДБФ.ДобавитьПоле("KodNom",2,9,0);
ДБФ.ДобавитьПоле("Otec",2,9,0);
ДБФ.ДобавитьПоле("Strana",2,20,0);
ДБФ.ДобавитьПоле("Naimenov",2,250,0);
ДБФ.СоздатьФайл(КатВыгр+"nomen.dbf");
ДБФ.КодоваяСтраница(1);
Запрос.ВНачалоВыборки();
ПокаЗапрос.Группировка(1)=1Цикл
ДБФ.Добавить();
ДБФ.KodNom=Запрос.Ном.Код;
ДБФ.Otec=Запрос.Ном.Родитель.Код;
ДБФ.Strana=Запрос.Ном.СтранаПроисхождения.Наименование;;
ДБФ.Naimenov=Запрос.Ном.Наименование;
ДБФ.EtoGruppa=Запрос.ЭтоГруппа(1);
ДБФ.Записать();
КонецЦикла;
Возврат1;
КонецФункции
//*******************************************************************
//Возвращаетценупоуказаннымпарметрам-используетсявзапросевнизу
ФункцияВозрНомерПрайса(Кд)Экспорт
ЕслиКд="00002"Тогда
Возврат1;
ИначеЕслиКд="00003"Тогда
Возврат2;
ИначеЕслиКд="00004"Тогда
Возврат3;
ИначеЕслиКд="00005"Тогда
Возврат4;
ИначеЕслиКд="00006"Тогда
Возврат5;
ИначеЕслиКд="00007"Тогда
Возврат6;
ИначеЕслиКд="00001"Тогда
Возврат0;
Иначе
Возврат33;//Еслиошибка.0нельзя,т.к.вдругэтоунасболеенизкие
КонецЕсли;
КонецФункции
//*******************************************************************
//Функциявозвращаетценынаноменклатуруиномерпрайса
ФункцияGlVozrCeni()Экспорт
ПеремОст,ТабЗн;
ПеремКатВыгр;
ПеремизПроц;
Запрос=СоздатьОбъект("Запрос");
ТекстЗапроса=
"//{{ЗАПРОС(Цены)
|Номенклатура=Справочник.Цены.Владелец;
|ТипКод=Справочник.Цены.ТипЦен.Код;
|Тип=Справочник.Цены.ТипЦен;
|Цен=Справочник.Цены.ТекущийЭлемент;
|ГруппировкаЦен;
|"//}}ЗАПРОС
;
ЕслиЗапрос.Выполнить(ТекстЗапроса)=0Тогда
Предупреждение("Ошибкавзапросе");
КонецЕсли;
КатВыгр=ПарамПоИмени("КаталогВыгр")+ПарамПоИмени("Цен");
ДБФ=СоздатьОбъект("XBase");
ДБФ.ДобавитьПоле("Cena",1,8,2);
ДБФ.ДобавитьПоле("Nomen",2,9,0);
ДБФ.ДобавитьПоле("Prajs",1,2,0);
ДБФ.СоздатьФай