АИС "Работа с покупателями"
Реферат - Компьютеры, программирование
Другие рефераты по предмету Компьютеры, программирование
?ишут файлы dbf
// Параметры:
// ImjaProc - имя вызываемой процедуры
// ImjaKat - каталог, из которого будут загружены таблицы
// ImjaTabl - имя таблицы
DataTable Vigr(string ImjaProc, string ImjaKat, string ImjaTabl)
{
// object ost;
int i;
string rez;
DataSet dt = new DataSet();
DataTable ddt = new DataTable();
if (podkluchenie())
{// Если удалось подключиться
try
{
rez = Procedura1C_tz(ImjaProc, "").ToString();
// Теперь у нас всё как надо - выгрузилась БД в файл.
// Подключаемся к ней через ADO.NET
string konekt = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ImjaKat+";Extended Properties=dBase IV;mode=Read|Write|Share Deny None";
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Тогда