АИС "Работа с покупателями"

ФункцияглВернутьЦену(Номенклатура,ТипЦены,ДатаЦены=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); ДБФ.СоздатьФайл(КатВыгр+"Ceni.dbf"); ДБФ.КодоваяСтраница(1); Запрос.ВНачалоВыборки(); ПокаЗапрос.Группировка(1)=1Цикл Если(Запрос.ТипКод<>"00010")Тогда ДБФ.Добавить(); глВернутьЦену(Запрос.Номенклатура,Запрос.Тип,,изПроц,,,,0); ДБФ.Cena=изПроц; ДБФ.Nomen=Запрос.Номенклатура.Код; ДБФ.Prajs=ВозрНомерПрайса(Запрос.ТипКод); ДБФ.Записать(); КонецЕсли; КонецЦикла; Возврат1; КонецФункции //******************************************************************* //Функциявозвращаетостаткиноменклатуры ФункцияGlVozrOstatki()Экспорт ПеремкатВыгр,дат; Перемск; ОСТ=СоздатьОбъект("XBase"); ОСТ.ДобавитьПоле("Kod",2,9,0); ОСТ.ДобавитьПоле("Ostatok",1,5,0); катВыгр=ПарамПоИмени("КаталогВыгр")+ПарамПоИмени("Ост"); ОСТ.СоздатьФайл(катВыгр+"ost.dbf");

АИС Работа с покупателями

Реферат

Компьютеры, программирование

Другие рефераты по предмету

Компьютеры, программирование

Сдать работу со 100% гаранией
л(КатВыгр+"Ceni.dbf");
ДБФ.КодоваяСтраница(1);
Запрос.ВНачалоВыборки();
ПокаЗапрос.Группировка(1)=1Цикл
Если(Запрос.ТипКод<>"00010")Тогда
ДБФ.Добавить();
глВернутьЦену(Запрос.Номенклатура,Запрос.Тип,,изПроц,,,,0);
ДБФ.Cena=изПроц;
ДБФ.Nomen=Запрос.Номенклатура.Код;
ДБФ.Prajs=ВозрНомерПрайса(Запрос.ТипКод);
ДБФ.Записать();
КонецЕсли;
КонецЦикла;
Возврат1;
КонецФункции


//*******************************************************************
//Функциявозвращаетостаткиноменклатуры
ФункцияGlVozrOstatki()Экспорт
ПеремкатВыгр,дат;
Перемск;

ОСТ=СоздатьОбъект("XBase");
ОСТ.ДобавитьПоле("Kod",2,9,0);
ОСТ.ДобавитьПоле("Ostatok",1,5,0);

катВыгр=ПарамПоИмени("КаталогВыгр")+ПарамПоИмени("Ост");

ОСТ.СоздатьФайл(катВыгр+"ost.dbf");

ОСТ.КодоваяСтраница(1);
Запрос=СоздатьОбъект("Запрос");
ТекстЗапроса=
"//{{ЗАПРОС(Выгр_Ост)
|РегНом=Регистр.ОстаткиТМЦ.Номенклатура;
|РегСклд=Регистр.ОстаткиТМЦ.Склад.Код;
|РегКол=Регистр.ОстаткиТМЦ.Количество;
|ГруппировкаРегНомбезГрупп;
|ГруппировкаРегСклд;
|ФункцияКОН=КонОст(РегКол);"//}}ЗАПРОС
;

ЕслиЗапрос.Выполнить(ТекстЗапроса)=0Тогда
Предупреждение("Ошибкавзапросе");
КонецЕсли;

Запрос.ВНачалоВыборки();
ПокаЗапрос.Группировка(1)=1Цикл
ПокаЗапрос.Группировка(2)=1Цикл
ЕслиЗапрос.РегСклд="00001"Тогда
ОСТ.Добавить();
ОСТ.Kod=Запрос.РегНом.Код;
ОСТ.Ostatok=Запрос.КОН;
ОСТ.Записать();
КонецЕсли;
КонецЦикла;
КонецЦикла;

Возврат1;
КонецФункции

ПРИЛОЖЕНИЕ Г

Некоторые хранимые процедуры и запросы

к системе «SQL Server»

Хранимая процедура «DobTov»

/*добавляет товар к указанному заказу в указанном количестве,

а сумму исчет сам и вставляет - по коду передаваемого прайса */

CREATE PROCEDURE DobTov

@Nomen char(9) ,

@Zakaz int,

@Kolichestvo int,

@Prajs smallint

AS

DECLARE @cen money

 

SET @cen=(SELECT SUM(Cena) FROM _Ceni WHERE ((NomerPrajsa = @Prajs) and (_Ceni.Nomen=@Nomen)))

 

INSERT _TovariVZakaze (Nomen, Zakaz, Kolichestvo, Cena, Sym)

VALUES (@Nomen, @Zakaz, @Kolichestvo, @cen, @cen*@Kolichestvo)

GO

 

Хранимая процедура «NomenObnovi»

/* Служит для загрузки Номенклатуры с сервера 1С.

Если позиция с таким кодом, то обновляет. Иначе - добавляет

*/

CREATE PROCEDURE NomenObnovi

@KodNom char(9),

@EtoGruppa smallint,

@Otec char(9),

@Strana char(30),

@Naimenov char(300)

AS

IF (SELECT COUNT(KodNom) FROM _Nomenklatura WHERE (KodNom = @KodNom))>0 BEGIN

UPDATE [_Nomenklatura] SET [EtoGruppa] = @EtoGruppa, [Otec] = @Otec, [Strana] = @Strana, [Naimenov] = @Naimenov WHERE ([KodNom] = @KodNom)

END

ELSE BEGIN

INSERT INTO [_Nomenklatura] ([KodNom], [EtoGruppa], [Otec], [Strana], [Naimenov]) VALUES (@KodNom, @EtoGruppa, @Otec, @Strana, @Naimenov)

END

GO

 

Запрос из VisualStudio (страница «default.aspx» при переходе с «prajs.aspx») к 1С, сохраняющий данные по условию в Excel:

// Копируем файл из вложенного каталога /shabloni в /zaka4

// При копировании - добавляем к имени файла rendom'om число

Random rnd = new Random(); // Для получения случайного значения

// тут мы получаем случайное значение, чтобы потом добавить к имени файла

String str_rnd = Convert.ToInt32(rnd.NextDouble() * 10000).ToString();

// Задаём пути к файлам

string path = Server.MapPath("") +@"\Shabloni\Price.xls";

string path2 = Server.MapPath("") + @"\Zaka4\Price" + str_rnd + ".xls";

// Копируем файл шаблонный

FileInfo fi1 = new FileInfo(path);

fi1.CopyTo(path2);

 

String zapr3;

zapr3 = "insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0; Database=" + path2 + " ; ID=Foks; Password=676676', 'SELECT * FROM [Прайс$]') SELECT Naimenov, KodNom, Strana, MinimPartija, CAST (Cena AS nvarchar) FROM dbo._Nomenklatura, dbo._Ceni, dbo._Ostatki WHERE (([EtoGruppa] = 0) AND (Kolichestvo>0) AND (_Ostatki.Nomen=KodNom) AND (_Ceni.Nomen=KodNom) AND (NomerPrajsa=" +

Session["prs"].ToString() + ") AND (Otec='"+ str +"') ) ORDER BY Naimenov";

// помечаем всё цыфркой 3, дабы 100% не было конфликтов

SqlConnection con3 = new SqlConnection(System.Configuration.ConfigurationSettings.ConnectionStrings["ConnectionForForWeb"].ConnectionString);

SqlCommand cmd3 = new SqlCommand(zapr3, con3);

con3.Open();

cmd3.ExecuteScalar();

con3.Close();

 

ПРИЛОЖЕНИЕ Д

Код работы с WEB Службой из ASP.NET

//******************************************************************************

//Загрузка номенклатуры, которую получаем от удалённой службы

void Button1_Click(object sender, EventArgs e)

{

int i, vsego; // Счётчик и общее число записей, полученных от Web Службы

 

DataTable ds = new DataTable();

Sluzba.Service ws = new Sluzba.Service();

ws.Timeout = 1000 * 60 * 5;

try{

ds = ws.VigruzNom(); // Получаем данные с удалённой службы

}

catch{

LabelInfo.Text = "Ошибка доступа к 1С. Подождите 15 минут и повторите попытку";

return;

}

// ds.Tables[0].TableName = "Nomenkl";

// ds.Tables[0].Columns[0].ColumnName = "EtoGruppa";

// ds.Tables[0].Columns[1].ColumnName = "KodNom";

// ds.Tables[0].Columns[2].ColumnName = "Otec";

// ds.Tables[0].Columns[3].ColumnName = "Strana";

// ds.Tables[0].Columns[4].ColumnName = "Naimenov";

// ds.WriteXml(@"C:\ds.xml");

 

// Подключение к MS SQL Server

SqlConnection konekt = new SqlConnection("Server=FKS;Integrated Security=True;Database=ForWeb");

SqlCommand sqlcom = new SqlCommand("NomenObnovi", konekt);

sqlcom.CommandType = CommandType.StoredProcedure;

SqlParameter param = null;

param = sqlcom.Parameters.Add(new SqlParameter("@KodNom", SqlDbType.Char, 9));

param.Direction = ParameterDirection.Input;

param = sqlcom.Parameters.Add(new SqlParameter("@EtoGruppa", SqlDbType.SmallInt, 9));

param.Direction = ParameterDirection.Input;

param = sqlcom.Parameters.Add(new SqlParameter("@Otec", SqlDbType.Char, 9));

param.Direction = ParameterDirection.Input;

param = sqlcom.Parameters.Add(new SqlParameter("@Strana", SqlDbType.Char, 30));

param.Direction = ParameterDirection.Input;

param = sqlcom.Parameters.Add(new SqlParameter("@Naimenov", SqlDbType.Char, 300));

param.Direction = ParameterDirection.Input;

 

LabelInfo.Text = "Ждите завершения выгрузки номенклатуры";

vsego = ds.Rows.Count;

konekt.Open();

for (i = 0; i < vsego; i++)

{

sqlcom.Parameters[0].Value = ds.Rows[i][1];

sqlcom.Parameters[1].Value = ds.Rows[i][0];

sqlcom.Parameters[2].Value = ds.Rows[i][2];

sqlcom.Parameters[3].Value = ds.Rows[i][3];

sqlcom.Parameters[4].Value = ds.Rows[i][4];

sqlcom.ExecuteNonQuery();

}

konekt.Close();

 

 

LabelInfo.Text = "Выгрузка номенклатуры успешно завершена, обновилось записей - " + vsego;

}

 

 

Похожие работы

<< < 6 7 8 9 10