var Label2: РеализацияТоваровУслуг.Номер procedure Memo2.Lines.Add('ИЗ'); Srvr=***;Ref=***;Usr="***";Pwd="***"; :
Телефон службы поддержки:
+7(903)756-28-61
  [ Промышленный дизайн - www.MainCrafT.org ]  •••  [ Размещение статьи на этом сайте: 100р = 1год ]

 
Назад в раздел:

1С предприятие OnLine


Реклама:
 

ICQ консультации:

149 807 234 



'+str1; str2:=Vibor2.Дата; Variant; Лицензией ViborToMemo(Vibor); ' Query.УстановитьПараметр('ТНомер',
 
www.shleg.ruwww.digitalvita.ru
www.phototitle.ru
Locations of visitors to this page
www.people-exe.maincraft.org
oldmaincraft_2009-10-28
www.people-exe.narod.ru
clan-dn
 

Мотиватор:
+40
-23
ВНИМАНИЕ!!!
MainCrafT НЕ MineCrafT
Данный сайт не имеет отношения к игре http://www.minecraft.net/
Подробности: http://www.google.ru/search?q=minecraft
MainCrafT NOT MineCrafT
This site has no relation to the game http://www.minecraft.net/
Details: http://www.google.com/search?q=minecraft

 
"Реализация Товаров и Услуг." из 1С на сайт, продолжение «Табличные данные»

unit Unit1;

interface

uses
  ComObj,
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, Buttons, ComCtrls;

type
  TMyArray = array [0..6] of string;
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Edit_1C8_Name: TEdit;
    Edit_Init: TEdit;
    Memo1: TMemo;
    Memo2: TMemo;
    Button2: TButton;
    Label3: TLabel;
    Label4: TLabel;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    Connect1C: OleVariant;
  end;

const
   // Sets UnixStartDate to TDateTime of 01/01/1970
  UnixStartDate: TDateTime = 25569.0;
  sLineBreak: String = #13#10;

var
  Form1: TForm1;
  NetOrder: array of TMyArray;

implementation

{$R *.DFM}

// Функции для работы с временем в стиле UNIX
function DateTimeToUnix(ConvDate: TDateTime): Longint;
begin
  //example: DateTimeToUnix(now);
 Result := Round((ConvDate - UnixStartDate) * 86400);
end;
function UnixToDateTime(USec: Longint): TDateTime;
begin
  //Example: UnixToDateTime(1003187418);
 Result := (Usec / 86400) + UnixStartDate;
end;

// Проверка к конекту 1С
function YesLinkToVariant(HandleAny : Variant) : boolean;
//Проверяет, корректна ли ссылка (HandleAny)
begin
  Result:=FALSE;
  if not VarIsEmpty(HandleAny) then Result:=TRUE;
end;

// К процедуре PrintArrayOfVar
function VariantType(varVar: Variant): Integer;
begin
  Result:=(VarType(varVar));
end;

// Вывод в мемо
procedure ViborToMemo(Vibor2 : Variant);
var
    str1: string;
    str2: string;
    str3: string;
begin
    str1:=Vibor2.Номер;
    str2:=Vibor2.Дата;
    Form1.Memo1.Lines.Add('Реализация товаров и услуг №'+ str1 +' от '+ str2);
    str1:=Vibor2.СуммаДокумента;
    str2:=Vibor2.ВалютаДокумента.Наименование;
    if(Vibor2.СуммаВключаетНДС=-1)then Form1.Memo1.Lines.Add('На '+str1+str2+' НДС -1')
    else Form1.Memo1.Lines.Add('На '+str1+str2+' НДС ?');
    str1:=Vibor2.Контрагент.Наименование;
    Form1.Memo1.Lines.Add('От контрагента: '+str1);
    str1:=Vibor2.Сделка.Номер;
    str2:=Vibor2.Сделка.Дата;
    Form1.Memo1.Lines.Add('Документ основание №'+str1+' от '+str2);
    str1:=Vibor2.Ответственный.Наименование;
    Form1.Memo1.Lines.Add('Ответственный: '+str1);
    str1:=Vibor2.Комментарий;
    Form1.Memo1.Lines.Add('Комментарий: '+str1);
    Form1.Memo1.Lines.Add('           ');
end;

// Массив в мемо
procedure ArrayToMemo(Vibor2 : TMyArray);
begin
    Form1.Memo1.Lines.Add(Vibor2[0]);
    Form1.Memo1.Lines.Add(Vibor2[1]);
    Form1.Memo1.Lines.Add(Vibor2[2]);
    Form1.Memo1.Lines.Add(Vibor2[3]);
    Form1.Memo1.Lines.Add(Vibor2[4]);
    Form1.Memo1.Lines.Add(Vibor2[5]);
    Form1.Memo1.Lines.Add(Vibor2[6]);
end;

// Variant в массив
function ViborToArray(Vibor2 : Variant): TMyArray;
var
    str1: string;
    str2: string;
    str3: string;
begin
    str1:=Vibor2.Номер;
    str2:=Vibor2.Дата;
    Result[0]:='Реализация товаров и услуг №'+ str1 +' от '+ str2;
    str1:=Vibor2.СуммаДокумента;
    str2:=Vibor2.ВалютаДокумента.Наименование;
    if(Vibor2.СуммаВключаетНДС=-1)then Result[1]:='На '+str1+str2+' НДС -1'
    else Result[1]:='На '+str1+str2+' НДС ?';
    str1:=Vibor2.Контрагент.Наименование;
    Result[2]:='От контрагента: '+str1;
    str1:=Vibor2.Сделка.Номер;
    str2:=Vibor2.Сделка.Дата;
    Result[3]:='Документ основание №'+str1+' от '+str2;
    str1:=Vibor2.Ответственный.Наименование;
    Result[4]:='Ответственный: '+str1;
    str1:=Vibor2.Комментарий;
    Result[5]:='Комментарий: '+str1;
    Result[6]:=Vibor2.Номер;
end;

// Формирование запроса при загрузке
procedure TForm1.FormCreate(Sender: TObject);
var
  oDate : Longint;
  sDate, eDate : TDateTime;
begin
   oDate:=(DateTimeToUnix(now())-60*60*24*4);
   sDate:=now();
   eDate:=UnixToDateTime(oDate);
if Memo2.Text='' then
   Memo2.Lines.Add('ВЫБРАТЬ');
   Memo2.Lines.Add('*');
   Memo2.Lines.Add('ИЗ');
   Memo2.Lines.Add('Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг');
   Memo2.Lines.Add('ГДЕ');
   Memo2.Lines.Add('РеализацияТоваровУслуг.Дата МЕЖДУ НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ('+FormatDateTime('yyyy,mm,dd',eDate)+'), День) И КОНЕЦПЕРИОДА(ДАТАВРЕМЯ('+FormatDateTime('yyyy,mm,dd',sDate)+'), День)');
   Memo2.Lines.Add('И РеализацияТоваровУслуг.Проведен');
   Memo2.Lines.Add('Упорядочить по РеализацияТоваровУслуг.Дата');
end;

// Состыковка с базой 1С
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Edit_1C8_Name.Text <> '' then begin
        if Edit_Init.Text <> '' then begin
                Connect1C := CreateOleObject(Edit_1C8_Name.Text);
                Connect1C.Connect(Edit_Init.Text);
                if YesLinkToVariant(Connect1C) then begin
                  ShowMessage('Есть OLE соединение');
                end else begin
                  ShowMessage('Ошибка OLE соединения');
                end;
        end else begin
          ShowMessage('Ошибка, пустое поле инициализации');
        end;
  end else begin
    ShowMessage('Ошибка, пустое поле типа соединения');
  end;
end;

// Обработка реализаций на интернет
procedure TForm1.Button3Click(Sender: TObject);
var
  i : Integer;
  SprKontr: Variant;
  Query: Variant;
  Vibor3: Variant;
  ViborStrok: Variant;
  num: integer;
  oDate : Longint;
  sDate, eDate : TDateTime;
  NumT: Real;
  str3: string;
  str4: string;
begin
   oDate:=(DateTimeToUnix(now())-60*60*24*4);
   sDate:=now();
   eDate:=UnixToDateTime(oDate);
if(Length(NetOrder)>0)then begin
   Form1.Memo1.Clear;
   for i := 0 to (Length(NetOrder)-1) do begin
//////////////////////// В зависимости от конфигурации поля могут иметь другое наименование!!!
      Query:=Connect1C.NewObject('Запрос');
      Query.Text:='ВЫБРАТЬ'+sLineBreak+
'    РеализацияТоваровУслуг.Номер КАК Номер,'+sLineBreak+
'    РеализацияТоваровУслуг.Дата КАК Дата,'+sLineBreak+
'    РеализацияТоваровУслуг.Контрагент КАК Контрагент,'+sLineBreak+
'    РеализацияТоваровУслуг.СуммаДокумента КАК СуммаДокумента,'+sLineBreak+
'    РеализацияТоваровУслуг.ВалютаДокумента КАК ВалютаДокумента,'+sLineBreak+
'    РеализацияТоваровУслуг.СуммаВключаетНДС КАК СуммаВключаетНДС,'+sLineBreak+
'    РеализацияТоваровУслуг.Ответственный КАК Ответственный,'+sLineBreak+
'    РеализацияТоваровУслуг.Комментарий КАК Комментарий,'+sLineBreak+
'    РеализацияТоваровУслуг.Сделка КАК Сделка,'+sLineBreak+
'    РеализацияТоваровУслуг.Проведен,'+sLineBreak+
'    РеализацияТоваровУслуг.Товары.('+sLineBreak+
'        Количество КАК КоличествоПозиций,'+sLineBreak+
'        КоличествоМест,'+sLineBreak+
'        Коэффициент,'+sLineBreak+
'        Сумма,'+sLineBreak+
'        Номенклатура,'+sLineBreak+
'        ЕдиницаИзмерения,'+sLineBreak+
//'        ЕдиницаИзмеренияМест,'+sLineBreak+
'        Цена'+sLineBreak+
')'+sLineBreak+
'ИЗ'+sLineBreak+
'    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг'+sLineBreak+
'ГДЕ'+sLineBreak+
//'    РеализацияТоваровУслуг.Номер = '+NetOrder[i][6]+sLineBreak+
'    РеализацияТоваровУслуг.Номер = &ТНомер'+sLineBreak+
'    И РеализацияТоваровУслуг.Дата МЕЖДУ НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ('+FormatDateTime('yyyy,mm,dd',eDate)+'), День) И КОНЕЦПЕРИОДА(ДАТАВРЕМЯ('+FormatDateTime('yyyy,mm,dd',sDate)+'), День)'+sLineBreak+
//число(год(НачалоПериода))
//'    РеализацияТоваровУслуг.Номер = число('+NetOrder[i][6]+')'+sLineBreak+
'    И РеализацияТоваровУслуг.Проведен = ИСТИНА';
//запрос1.УстановитьПараметр("ИФ",Перечисления.ИФ.ОМС);
//запрос1.УстановитьПараметр("год", число(год(НачалоПериода)));
//запрос1.УстановитьПараметр("Проведен", Истина);
      Query.УстановитьПараметр('ТНомер', NetOrder[i][6]);
      Form1.Memo2.Clear;
      Form1.Memo2.Text:=Query.Text;
      SprKontr := Query.Выполнить();
      Vibor3 := Unassigned;
      Vibor3 := SprKontr.Выбрать();
      while (Vibor3.Следующий()) do begin
          Memo1.Lines.Add(' --'+IntToStr(i+1)+'-- ');
          ViborToMemo(Vibor3);
          ViborStrok:=Vibor3.Товары.Выбрать();
          num:=0;
          while (ViborStrok.Следующий()) do begin
              //Form1.Memo1.Lines.Add(ViborStrok.Номенклатура.Наименование);
              str3:=ViborStrok.Номенклатура.Код;
              str4:='['+str3+'] ';
              str3:=ViborStrok.Номенклатура.Наименование;
              str4:=str4+str3+': ';
              str3:=ViborStrok.КоличествоПозиций;
              str4:=str4+str3;
              str3:=ViborStrok.ЕдиницаИзмерения.Наименование;
              str4:=str4+str3+' x ';
              str3:=ViborStrok.Цена;
              str4:=str4+str3+' = ';
              str3:=ViborStrok.Сумма;
              Form1.Memo1.Lines.Add(str4+str3);
              NumT:=StrToFloat(ViborStrok.Количество);
              //Form1.Memo1.Lines.Add(ViborStrok.Количество);
              //Form1.Memo1.Lines.Add(ViborStrok.КоличествоПозиций);
              //Form1.Memo1.Lines.Add(ViborStrok.КоличествоМест);
              //NumT:= StrToFloat(ViborStrok.Сумма)/StrToFloat(ViborStrok.Цена);
              //Form1.Memo1.Lines.Add(FloatToStr(NumT));
              //Form1.Memo1.Lines.Add(ViborStrok.Коэффициент);
              //Form1.Memo1.Lines.Add(ViborStrok.Сумма);
              //Form1.Memo1.Lines.Add(ViborStrok.ЕдиницаИзмерения.Наименование);
              //Form1.Memo1.Lines.Add(ViborStrok.ЕдиницаИзмеренияМест.Наименование);
              //Form1.Memo1.Lines.Add(ViborStrok.Цена);
          num:=num+1;
          end;
          Form1.Memo1.Lines.Add('Колличество строк: '+FloatToStr(NumT)+' ('+IntToStr(num)+')');
      end;
   end;
end else ShowMessage('Реализации на интернет не обнаружено!');
end;

// Отсылание запроса к базе 1С
procedure TForm1.Button2Click(Sender: TObject);
var
    sprNomen: Variant;
    sprNomenGr: Variant;
    SprKontr: Variant;
    Query: Variant;
    Vibor: Variant;
    num: integer;
    str1: string;
begin
    Query:=Connect1C.NewObject('Запрос');
    Query.Text:=Form1.Memo2.Text;
    SprKontr := Query.Выполнить();
    Vibor := SprKontr.Выбрать();
    num:=1;
    Form1.Memo1.Clear;
    while (Vibor.Следующий()) do begin
        Memo1.Lines.Add(' -'+IntToStr(num)+'- ');
        ViborToMemo(Vibor);
        str1:=Vibor.Контрагент.Наименование;
        if(str1='Интернет')then begin
            SetLength(NetOrder,Length(NetOrder)+1);
            NetOrder[High(NetOrder)]:=ViborToArray(Vibor);
        end;
        //if num = 10 then break;
        num:=num+1;
    end;
end;
end.




Извиняюсь за индусский код :)
есть к чему стремится... есть что переделать, оптимизировать
...
Теперь задача отправить выгрузку через POST на сайт для обработки

Edit_1C8_Name.Text = V82.Application (V81.Application или V8.Application);
Edit_Init.Text = Srvr=***;Ref=***;Usr="***";Pwd="***";

(CopyLeft) MainCrafT.org 2013г.
Данная программа является свободным программным обеспечением. Вы вправе распространять ее и/или модифицировать в соответствии с условиями версии 2 либо по вашему выбору с условиями более поздней версии Стандартной Общественной Лицензии GNU, опубликованной Free Software Foundation.
Мы распространяем эту программу в надежде на то, что она будет вам полезной, однако НЕ ПРЕДОСТАВЛЯЕМ НА НЕЕ НИКАКИХ ГАРАНТИЙ, в том числе ГАРАНТИИ ТОВАРНОГО СОСТОЯНИЯ ПРИ ПРОДАЖЕ и ПРИГОДНОСТИ ДЛЯ ИСПОЛЬЗОВАНИЯ В КОНКРЕТНЫХ ЦЕЛЯХ.Для получения более подробной информации ознакомьтесь со Стандартной Общественной Лицензией GNU.
Вместе с данной программой вы должны были получить экземпляр Стандартной Общественной Лицензии GNU. Если вы его не получили, сообщите об этом в Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

система комментирования CACKLE

Реклама:

http://www.valuehost.ru/ Хостинг Номер 1: Valuehost 25GB План А • Если вдруг закажите что-то у валуехоста, скажите им номер по партнёрской программе 44877 (Для плательщика 300044877), а то у них она работает непонятно, пока сам не скажешь, не добавят бонусов. Мне будет приятно :) Спасибо!

...
Сайт разработан для продвижения идей клуба "Основное ремесло"
© MainCrafT.org 2005-2017гг. © Клуб "Основное ремесло" 2005-2017гг. © Shleg A.V.
© people-exe.org (закрыт) 1998-2006гг. © red-brick.org (закрыт) 2004-2005гг. © propeopleclub.org (закрыт) 2004-2005гг.


Внимание!!! Данный интернет-сайт носит исключительно информационный характер и ни при каких условиях не является публичной офертой, определяемой положениями ч. 2 ст. 437 Гражданского кодекса Российской Федерации. Информацию о стоимости и сроках выполнения услуг, можно получить по контактам указанными далее. с 10-00 до 19-00, Пн-Пт по телефону: +7 (903) 756-28-61, через сайт: круглосуточно, без выходных. Для подтверждения заказа через сайт менеджер свяжется с Вами в самый короткий срок. Написать нам на почту: support@maincraft.org, При возникновении вопросов, Вы можете связаться с нами по телефону либо получить ICQ консультации, ICQ№149-807-234, С администратором ресурса можно связаться по e-mail: admin@maincraft.org
РеализацияТоваровУслуг.Номер if procedure Variant): КАК 1C8 МЕЖДУ
  [ Промышленный дизайн - www.MainCrafT.org ]  •••  [ Размещение статьи на этом сайте: 100р = 1год ]
Rambler's Top100 Яндекс цитирования Яндекс.Метрика
раскрутка сайта, оптимизация сайта Сео анализ сайта Проверка сайта

© MainCrafT.org 2005-2017гг. © Клуб "Основное ремесло" 2005-2017гг. © Shleg A.V.
Unassigned; ' type + Проверка TObject); Query:=Connect1C.NewObject('Запрос');