--~~~~~~~~~~~~~~~~2Фирма "ДИЦ", Турбо Бухгалтер 6.09~~~~~~~~~~~~~~~~~~~~~--
--								       --
-- 2Подсистема ТБ0: Стандартный комплект бланков			       --
--=====================================================================--
--			 НАЗВАНИЕ БЛАНКА			       --
--		      Сервис книги покупок			       --
-------------------------------------------------------------------------
-- С помощью бланка заполняются информация о руководстве контрагента   --
--								       --
--								       --
--								       --
--=====================================================================--
-- Список картотек, используемых данным бланком:		       --
-- 1.								       --
-- 2.								       --
-- 3.								       --
-------------------------------------------------------------------------
-- Список бланков, процедуры из которых используются данным бланком:   --
-- 1.								       --
-- 2.								       --
-- 3.								       --
--=====================================================================--
-- 2Автор бланка0:Фойгель И.М.	      2Дата создания0: 09.02.2005        --
--								       --
-- 2Дата модификации0:						       --
--								       --
-- 2Бланк сопровождает:0Фойгель И.М.				       --
--_____________________________________________________________________--

БланкСШаблоном "Сервис книги покупок";

ПоПринятию:Logical; -- Учитывать в книге с.ф. только по принятию на учет (оплаты не учитывать)
НеПересчитывать:Logical; -- Не пересчитывать страницы книги
ПериодКниги:String; -- Период формирования книги для пересчета
ПечататьСчета:Logical=[false]; -- Печатать колонки со счетами
УчитыватьОплату:Logical; -- т.е. учитывать что больше оплата или 1/6 (1/2).
ДополнительныйЛист:Logical;
ИмяИзПодразделения:Logical; -- Имя покупателя брать из подразделения;
БезПодразделений:Logical; -- Учитывать с.ф. без подразделений
Нашеподразд	   :Record;  -- Ссылка на наше подразделение
ИмяПродавца:Logical=[true]; -- В авансовых с.ф. вместо имени продавца имя нашего предприятия
НеСторнировать	   :Logical; -- Не сторнировать авансы при расчете книги покупок
Пост914:Logical; --=[true]; -- Учитывать оплаты


Рамка1:Object;
перПоОплате:Object;
перПоКвартально:Object;
перПоМесяцу:Object;
флОплата:Object;

ТипУчета:Integer=[0]; -- учет старых с.ф. 0 - по оплате; 1 - долями по квартально, 2 - долями по месяцу

proc ПересчетСтрок_ПриНажатии(Кнопка:String);
var Robl,RSub,i,n,kol:Integer;
var D8,Sto18,Sum18,Sto2,Sum2,Sum3,Sto1,Sum1:Numeric;
  if ПериодКниги<>'':
    D8=0;Sto18=0;Sum18=0;Sto2=0;Sum2=0;Sum3=0;Sto1=0;Sum1=0;
    Robl=OpenWorkArea('КнигаПокуп','NСТР','ДДД="'+ПериодКниги+'"'
		      +if(НАШЕПОДРАЗД<>nil,' and НАШЕПОДРАЗД='+RecordToString(НашеПодразд),''));

    Try
      Beginchanging(Robl);
      Try
	kol=records(Robl);
	for i=1..kol do
	  hint('Страница №'+Str(i)+' из '+str(kol));
	  if i>1:
	    i=PutFieldN(Robl,i,'D8Вх',D8);
	    i=PutFieldN(Robl,i,'Sto18Вх',Sto18);
	    i=PutFieldN(Robl,i,'Sum18Вх',Sum18);
	    i=PutFieldN(Robl,i,'Sto2Вх',Sto2);
	    i=PutFieldN(Robl,i,'Sum2Вх',Sum2);
	    i=PutFieldN(Robl,i,'Sum3Вх',Sum3);
	    i=PutFieldN(Robl,i,'Sto1Вх',Sto1);
	    i=PutFieldN(Robl,i,'Sum1Вх',Sum1);
	  fi;
	  if i<kol:
	    RSub=OpenArray(Robl,i,'КНПОК','');
	    Try
	      for n=1..records(RSub) do
		D8=D8+GetFieldN(RSub,n,'D8');
		Sto18=Sto18+GetFieldN(RSub,n,'Sto18');
		Sum18=Sum18+GetFieldN(RSub,n,'Sum18');
		Sto2=Sto2+GetFieldN(RSub,n,'Sto2');
		Sum2=Sum2+GetFieldN(RSub,n,'Sum2');
		Sum3=Sum3+GetFieldN(RSub,n,'Sum3');
		Sto1=Sto1+GetFieldN(RSub,n,'Sto1');
		Sum1=Sum1+GetFieldN(RSub,n,'Sum1');
	      end;
	    Finally
	      CloseWorkArea(RSub);
	    End;
	  fi;
	end;
	EndChanging(Robl);
	message('Пересчет завершен.');
      except
	CancelChanging(Robl);
	raise;
      end;
    Finally
      CloseWorkArea(Robl);
    End;
  else
    message('Откройте этот бланк через книгу покупок');
  fi;
end;

proc Проводить_ПриНажатии(Кнопка:String);
var Robl,i:Integer;
  if ПериодКниги<>'':
    Robl=OpenWorkArea('КнигаПокуп','NСТР','ДДД="'+ПериодКниги+'"'
		      +if(НАШЕПОДРАЗД<>nil,' and НАШЕПОДРАЗД='+RecordToString(НашеПодразд),''));
    Try
      BeginChanging(Robl);
      Try
	for i=1..records(Robl) do
	  i=PutFieldL(Robl,i,'Проводить',true);
	end;
	EndChanging(Robl);
	message('Обработка завершена.');
      except
	CancelChanging(Robl);
	raise;
      end;
    Finally
      CloseWorkArea(Robl);
    End;
  else
    message('Откройте этот бланк через книгу покупок');
  fi;
end;

proc ПриЗакрытии(Уничтожить:Logical);
  ПериодКниги='';
end;

proc кнЗакрыть_ПриНажатии(Кнопка:String);
  Close;
end;

proc ВыводОбъектов;
  Рамка1.visible=ПоПринятию;
  перПоОплате.visible=ПоПринятию;
  перПоКвартально.visible=ПоПринятию;
  перПоМесяцу.visible=ПоПринятию;
  флОплата.visible=false;
end;

proc ОбработатьАвансы_ПриНажатии(Кнопка:String);
  Раб.Бух.Сторнировать('');
end;

proc ПоОприходованию_ПриИзменении(Флаг:String);
  ВыводОбъектов;
end;


proc ПриОткрытии(Создать:Logical);
  ВыводОбъектов;
end;


Конец