--БланкСШаблоном "Накладная (требование)";
БланкСШаблоном "форма 434 Накладная (требование)", Редактор РПО_Накладная;
cbxУЧТ106:Object;
Учет_ВД:l=[true];
Учет_ЗН:l=[true];
Учет_КТ:l=[true];
Учет_УЧН:l=[true];
var recCurrent:record;
  var flgУЧТ106:L=[False];
  Подпись1:l=[true];
  Подпись2:l=[true];
  var ВниманиеСТР:s;
  var СекцОтпустилЛ:l=pos('РАСХ.',ДНФА)=1 or pos('ВНПР.',ДНФА)=1 or trim(ДНФА)='';
  var СекцПолучилЛ:l =pos('ПРИХ.',ДНФА)=1 or pos('ВНПР.',ДНФА)=1 or pos('РАСХ.107',ДНФА)>0 or trim(ДНФА)='';
  var СекцСтарыйВариантЛ:l=trim(ДНФА)='';
  var СекцОтпустилЛ_1:l=trim(ДНФА)<>'' and length(рекв)>0;
  var СекцПолучилЛ_1:l =trim(ДНФА)<>'' and length(ПОСТ)>0;
  var СекцОтпустилЛ_2:l=pos('РАСХ.',ДНФА)=1 or pos('ВНПР.',ДНФА)=1;
  var СекцПолучилЛ_2:l =pos('ПРИХ.',ДНФА)=1 or pos('ВНПР.',ДНФА)=1 or pos('РАСХ.107',ДНФА)>0;
  var ОткудаМ  :s=if(СекцОтпустилЛ_2,'Отпустил-местонахождение',if(СекцПолучилЛ_1,'поставщик-контрагент/МОЛ',''));
  var ОткудаМОЛ:s=if(СекцОтпустилЛ_1,'Отпустил-МОЛ'            ,if(СекцПолучилЛ_1,'',''));
  var кудаМ    :s=if(СекцПолучилЛ_2,'Получатель-местонахождение',if(СекцОтпустилЛ_1,'Получатель-контрагент/ПБС',''));
  var кудаМОЛ  :s=if(СекцПолучилЛ_1,'Получатель-МОЛ','');

  ВниманиеОбъект:Объект;
  ВниманиеНапоминать:l;

  РУКУЧ:S;
  РУКУЧдолж:S=['Утверждаю: Руководитель учреждения'];
  бухкмнт:S=['Бухгалтер'];
  Начслкмнт:S=['Начальник службы'];
  РУКУЧподпись:S=['подпись']; 
  РУКУЧрасшподпись:S=['расшифровка подписи'];
BlnName:s=[''];
CrdName:s='РПО_НАКЛАДНАЯ';


--  var Сумма[]=if(Позиции[$].Колич<>0,Позиции[$].Колич*Позиции[$].Цена,Позиции[$].Цена);
  var СуммаН[]=if(Позиции[$].Колич<>0,Позиции[$].Колич*Позиции[$].Цена,Позиции[$].Цена);
  СуммаН_=СуммаМассива(СуммаН,Позиции);
  var Ask[]:s;
  var st[]:s;
  ВЫВОДНФА:I;

  КорИмя:Строка=Name_A(Рекв);
  РеквПН:Строка=Name_A(РеквП);
--  НаимН[]:Строка='['+Позиции[$].ТМЦ+'] '+CHR(13)+Name_A(Позиции[$].ТМЦ)+'  '+Name_A(Позиции[$].КАТ);
--  НаимН[]:Строка=РАБ.НФА.B01.ВЫВОДП(Позиции[$].ТМЦ,ВЫВОДНФА);
var КнДопАнН:s='';
var НаимН[]:s=РАБ.НФА.B01.ФорматСтрокиАн(Позиции[$].ТМЦ  ,' ',chr(13),ВЫВОДНФА);

  МолН:Строка=Name_A(Мол);
  МолДН:Строка=if(МолН<>' ':Раб.НФА.B01.ПолеПоПризнакуС(Мол,'ДОЛЖНОСТЬ.ДОЛЖ'),'');
  ФИОКН:Строка=Name_A(ФИОК);
  ФИОКДН:Строка=if(ФИОК<>' ':Раб.НФА.B01.ПолеПоПризнакуС(ФИОК,'ДОЛЖНОСТЬ.ДОЛЖ'),'');
  МолБух:Строка;
  МолНач:Строка;
  ФИОБух:Строка=Name_A(МолБух);
  МолДбух:Строка=if(ФИОБух<>' ':Раб.НФА.B01.ПолеПоПризнакуС(МолБух,'ДОЛЖНОСТЬ.ДОЛЖ'),'');
  ФИОнач:Строка=Name_A(МолНач);
  МолДнач:Строка=if(ФИОнач<>' ':Раб.НФА.B01.ПолеПоПризнакуС(МолНач,'ДОЛЖНОСТЬ.ДОЛЖ'),'');
  DD:i=Day(Дата);
  MM:s=Месяца(Mon(Дата));
  YY:i=Year(Дата);
--  DD1:i=Day(ЗакДата);
--  MM1:s=Месяца(Mon(ЗакДата));
--  YY1:i=Year(ЗакДата);
  Q=1;
  var NN[]=$;
  var ЕдИзм_[]:s=Unit(ВыделитьСлово(1,Позиции[$].ТМЦ,' '));
  ОКПОП:s;
  ОКПОО:s;


FUNC SetDate(Об:с;Итер:Ц):L;
Var DTMP :Date;
 DTMP=КАЛЕНДАРЬ;
 If DTMP > 1.1.100 :
  if Об="DD" or Об="YY" or Об="MM" or Об="Дата":
      Дата=DTMP;
      ^False;
  | Об="DD1" or Об="YY1" or Об="MM1" :
      ЗакДата=DTMP;
      ^False;
  Fi;
 Fi;
^False;
КОНЕЦ;

proc ana(ob:s);
 openblank("РАБ.НФА.B010",true);
end;

Func ВыборСчета(S:S;I:I):L;
 var Сч:s;
  if позиции=0:insertframe(позиции,позиции+1);fi;
  Сч=ВыборСчета('*');
  if s='ДебСчет':Позиции[i].ДебСчет=сч;
   | s='КреСчет':Позиции[i].КреСчет=сч;
  fi;
^false;
end;

Func ВыборТМЦ(S:S;I:I):L;
var R:Record;
var f:l;
var f1:integer;
var n:integer;
var cf:s;
  if позиции=0:insertframe(позиции,позиции+1);fi;
 f1=asInteger(Template.Row);
 f=РАБ.НФА.B010.b1;
 if not f:
  R=OpenCardFile("РПО_НФА","");cf="РПО_НФА";
  if R<>Nil:
   try
    ПОЗИЦИИ[i].ТМЦ='НФА.'+GetCardFieldS(cf,R,"ГрНФА")+'.'+GetCardFieldS(cf,R,"Признак");
    ПОЗИЦИИ[i].ЕдИзм=Unit(Позиции[$].ТМЦ);
   finally
   end;
  fi;
 | true:
    ПОЗИЦИИ[i].ТМЦ=AnaElection("НФА.*");
 fi;
  if i<>1:
   Позиции[i].КреСчет=Позиции[i-1].КреСчет;
 fi;
^false;
end;

Func ВыборОрг(S:S;I:I):L;
var R:Record;
  if s="КорИмя":
    РЕКВ=AnaElection("К.*");
    ОКПОО=РАБ.НФА.B01.ПолеПоПризнакуС(РЕКВ,"ОКПО");
  |s="РеквПН":
    РЕКВП=AnaElection("К.*");
    ОКПОП=РАБ.НФА.B01.ПолеПоПризнакуС(РЕКВ,"ОКПО");
  |s="ПОСТ":
    s=AnaElection("М.*");
    if s<>'':
      ПОСТ=Name_A(s);
    fi;
  fi;
^false;
end;

Func ВыборМол(S:S;I:I):L;
var R:Record;
var n:i;
var Сч:s;
var sss:s;
 if s='ФИОКН':ФИОК=AnaElection("МОЛ.*");
  | s='МолН' :МОЛ=AnaElection("МОЛ.*");
  | s='ФИОБух' :МОЛбух=AnaElection("МОЛ.*");
  | s='ФИОНач' :МОЛнач=AnaElection("МОЛ.*");
 fi;
^false;
end;

func modtab(s:s;i:i):l;
var n : i;
var m : i;
var l : i;
var res : i;
 if s="Q":
  try insertframe(Позиции,1);except end;
 |true:
  st[1] = "Добавить запись после текущей";
  st[2] = "Добавить 20 записей после текущей";
  st[3] = "Добавить запись перед текущей";
  st[4] = "Удалить N записей, включая текущую";
  st[5] = "Удалить текущую запись";
  n = 1;
  n = alternate ( "Добавить/удалить запись таблицы", st, 40) ;
  if n = 1 : try insertframe(Позиции,i+1);except end;
  |  n = 2 : try for n=1..20 do insertframe(Позиции,i+1);end; except end;
  |  n = 3 : try insertframe(Позиции,i);except end;
  |  n = 4 :
    res=Input(m, "Сколько записей удалить?");
    if res = кмдВерно:
      for n=1..m do try deleteframe(Позиции,i);except end;end;
    fi;
  |  n = 5 : try deleteframe(Позиции,i);except end;
  fi;
 fi;
^false;
end;

Proc Кнопка1_ПриНажатии(s:s);
 var d1,d2:d;
 var t,nsig1,nsig2,nsig3,ii,j,k:i;
 var ll,учн_в_инвед:l;
 var УслМол1,УслМол2,УслМ1,УслМ2,ss,ss0,ss00:s;
 var RecWrk: Record;
 var CrdWrk,fielddate: String;


 var Приход,ВнПер,Расход,услсч,АН_ДНФА:s;
 if flgУЧТ106:
   Приход='+(*.?.101.??.???|*.?.102.??.???|*.?.105.??.???|*.?.106.??.???|ЗАБ.??.*)/*&~(*.?.101.??.???|*.?.102.??.???|*.?.105.??.???|*.?.106.??.???|ЗАБ.??.*)';
   ВнПер = '(*.?.101.??.???|*.?.102.??.???|*.?.105.??.???|*.?.106.??.???|ЗАБ.??.*)/(*.?.101.??.???|*.?.102.??.???|*.?.105.??.???|*.?.106.??.???|ЗАБ.??.*)';
   Расход='-(*.?.101.??.???|*.?.102.??.???|*.?.105.??.???|*.?.106.??.???|ЗАБ.??.*)/*&~(*.?.101.??.???|*.?.102.??.???|*.?.105.??.???|*.?.106.??.???|ЗАБ.??.*)';
 else
   Приход='+(*.?.101.??.???|*.?.102.??.???|*.?.105.??.???|ЗАБ.??.*)/*&~(*.?.101.??.???|*.?.102.??.???|*.?.105.??.???|ЗАБ.??.*)';
   ВнПер = '(*.?.101.??.???|*.?.102.??.???|*.?.105.??.???|ЗАБ.??.*)/(*.?.101.??.???|*.?.102.??.???|*.?.105.??.???|ЗАБ.??.*)';
   Расход='-(*.?.101.??.???|*.?.102.??.???|*.?.105.??.???|ЗАБ.??.*)/*&~(*.?.101.??.???|*.?.102.??.???|*.?.105.??.???|ЗАБ.??.*)';
 fi;

 if CRD<>'' and RECCRD<>0:
    CrdWrk=CRD;
    RECWrk=IntegerToRecord(Abs(RECCRD));
    fielddate  = РАБ.БЮДЖЕТ2005.ПолеДатыПроводкиКартотеки(CrdWrk);
    if fielddate="": fielddate = 'ДАТАОПЕР'; fi;
  | true:
    CrdWrk="РПО_ОПЕРАЦИИДНФА";
    RECWrk=IntegerToRecord(Abs(ДНФАID));
    fielddate='ДАТОПЕР';
 fi;
 d1=ВзятьКартПолеД(CrdWrk, RECWrk, fielddate);
 d2=d1+1;
 ДАТА=d1;
 ЗАКДАТА=d1;
 if CrdWrk='РПО_ВНУТР_ПЕРЕМ_МОЛ':АН_ДНФА='ВНПР.ХЭ';
   |CrdWrk='РПО_ОПЕРАЦИИДНФА':АН_ДНФА=ВзятьКартПолеС(CrdWrk,RECWrk,'АН_ДНФА');
   else Message("Документ сформирован из неизвестной картотеки: "+CrdWrk, mtError);Exit;
 fi;
 днфа=АН_ДНФА;
 if pos('ПРИХ.',АН_ДНФА)=1:услсч=Приход;УслМол1='МОЛ,+ ';УслМ1='М,+ '  ;УслМол2=''      ;УслМ2='ПБС|К|МОЛ,- ';
  | pos('ВНПР.',АН_ДНФА)=1:услсч=ВнПер; УслМол1='МОЛ,+ ';УслМ1='М,+ '  ;УслМол2='МОЛ,- ';УслМ2='М,- '        ;
  | pos('РАСХ.',АН_ДНФА)=1:услсч=Расход;УслМол1=''      ;УслМ1='ПБС,+ ';УслМол2='МОЛ,- ';УслМ2='М,- '        ;
  | true:message(АН_ДНФА);услсч='*';
 fi;
 ClearVariable(Позиции);
 if ФИОК<>'':ФИОК='';fi;
 if Мол<>'' :Мол ='';fi;
 if ПОСТ<>'':ПОСТ='';fi;
 ll=false;
 nsig1=0;
 nsig2=0;
 nsig3=0;
--  ss0='КТ. ЗН. УЧН. ВД. ПГР.';
--  ss0='КТ. УЧН. ЗН. ВД.';
ss0='';
if Учет_КТ :ss0=trim(ss0+' КТ.' );fi;
if Учет_УЧН:ss0=trim(ss0+' УЧН.');fi;
if Учет_ЗН :ss0=trim(ss0+' ЗН.' );fi;
if Учет_ВД :ss0=trim(ss0+' ВД.' );fi;
 ii=КоличествоСлов(ss0,' ');
 for transaction t=услсч+'{НФА.*&ДНФАID.'+стр16(RecordToInteger(RecWrk))+if(CRDWrk='РПО_ОПЕРАЦИИДНФА','&ДНФА.'+АН_ДНФА,'')+'}',d1,d2 do
-- for transaction t=услсч+'{ДНФАID.00000001 }',1.1.100,сегодня do
  if Позиции>1:
     if
       НаимН  [Позиции]=НаимН  [Позиции-1] and
       Позиции[Позиции].ДебСчет=Позиции[Позиции-1].ДебСчет and
       Позиции[Позиции].КреСчет=Позиции[Позиции-1].КреСчет:
       if
         (Позиции[Позиции].ДокКол=0 or Позиции[Позиции-1].ДокКол=0)  and
         (Позиции[Позиции].Колич =0 or Позиции[Позиции-1].Колич =0)  and
         (Позиции[Позиции].Цена  =0 or Позиции[Позиции-1].Цена  =0):
         Позиции[Позиции-1].ДокКол=Позиции[Позиции-1].ДокКол+Позиции[Позиции].ДокКол;
         Позиции[Позиции-1].Колич =Позиции[Позиции-1].Колич +Позиции[Позиции].Колич ;
         Позиции[Позиции-1].Цена  =Позиции[Позиции-1].Цена  +Позиции[Позиции].Цена  ;
         DeleteFrame(Позиции,Позиции);
       fi;
     fi;
  fi;
  InsertFrame(Позиции,Позиции+1);
  Позиции[Позиции].ТМЦ    =ПроводКоличПризнак(t);
  ss00=Позиции[Позиции].ТМЦ;
  Позиции[Позиции].ЕдИзм  =Unit(Позиции[Позиции].ТМЦ);
  for j=1..ii do -- расчет дополнительной аналитики
   ss=ВыделитьСлово(j,ss0,' ');
   учн_в_инвед=(ss='УЧН.');
   k=ПроводНомерПризнака(t,ss);
   if k<1:k=ПроводНомерПризнака(t,'-'+ss);fi;
   if k<1:k=ПроводНомерПризнака(t,'+'+ss);fi;
   if k>0:ss=ПроводИмяПризн(t,k);
      if pos('+',ss)=1 or pos('-',ss)=1:
         ss=delete(ss,1,1);
      fi;
      if учн_в_инвед:ss='ИНВВЕД.'+ss00+'.'+ss;fi;
      Позиции[Позиции].ТМЦ=Позиции[Позиции].ТМЦ+' '+ss;
   fi;
  od;
  Позиции[Позиции].ДебСчет=ПроводДеб(t);
  Позиции[Позиции].КреСчет=ПроводКре(t);
  Позиции[Позиции].Колич  =ПроводСумма(t,'КОЛ');
  Позиции[Позиции].ДокКол =ПроводСумма(t,'КОЛ');
  if Позиции[Позиции].Колич=0:Позиции[Позиции].Цена=ПроводСумма(t);
   | true:Позиции[Позиции].Цена=ПроводСумма(t)/Позиции[Позиции].Колич;
  fi;
  if not ll:
    --signs=ПроводАналитика(t);
    Рекв=Раб.НФА.B01.ПризнакИзСтрокиАналитикиПроводки_приоритет(t,ВыделитьСлово(1,УслМ2,','),ВыделитьСлово(2,УслМ2,','));
    ФИОК=Раб.НФА.B01.ПризнакИзСтрокиАналитикиПроводки_приоритет(t,ВыделитьСлово(1,УслМол2,','),ВыделитьСлово(2,УслМол2,','));
    ПОСТ=Name_A(Раб.НФА.B01.ПризнакИзСтрокиАналитикиПроводки_приоритет(t,ВыделитьСлово(1,УслМ1,','),ВыделитьСлово(2,УслМ1,',')));
    Мол =Раб.НФА.B01.ПризнакИзСтрокиАналитикиПроводки_приоритет(t,ВыделитьСлово(1,УслМол1,','),ВыделитьСлово(2,УслМол1,','));
--    if УслМол1<>'':nsig1=ПроводНомерПризнака(t,УслМол1);
--    if nsig1=0:signs='';
--     | true:   signs=ПроводИмяПризн(t,nsig1);
--    fi;
--    Мол =if(pos('-',signs)+pos('+',signs)>0,SubStr(signs,2,length(signs)-1),signs);fi;
--    if УслМол2<>'':nsig2=ПроводНомерПризнака(t,УслМол2);
--    if nsig2=0:signs='';
--      | true  :signs=ПроводИмяПризн(t,nsig2);
--    fi;
--    ФИОК=if(pos('-',signs)+pos('+',signs)>0,SubStr(signs,2,length(signs)-1),signs);fi;

--    if УслМ<>''   :nsig3=ПроводНомерПризнака(t,УслМ);
--    if nsig3=0:signs='';
--      | true  :signs=ПроводИмяПризн(t,nsig3);
--    fi;
--    ПОСТ=Name_A(if(pos('-',signs)+pos('+',signs)>0,SubStr(signs,2,length(signs)-1),signs));fi;
    ll=(ФИОК<>'' or Мол<>'');
  fi;
 od;
end;
Proc ШаблонПриСчитывании;
 if recCurrent<>nil:
    if recCurrent<>Current:
       recCurrent=Current(recCurrent);
    fi;
    recCurrent=nil;
 fi;

 if ТекущееСостояние=КартСостВставлена or ДНФАID=0:
    ВниманиеСТР='Данный документ сформирован не из журнала операций с НФА!'+chr(13)+
                '[Расчет] будет производится неверно';
    if ВниманиеНапоминать:
       ВниманиеНапоминать=not (Вопрос('Предупреждение',ВниманиеСТР,'Ok;Не напоминать',тсПредупреждение)=2);
    fi;
  | true:ВниманиеСТР='';
 fi;
 if ВниманиеСТР<>'':
     ВниманиеОбъект.Виден=true;
     ВниманиеОбъект.Подсказка=ВниманиеСТР;
  | true:ВниманиеОбъект.Виден=false;
 fi;
end;

Proc ПриНажатии(s:s);
var ii:i;
 if s='ВниманиеОбъект':
  ВниманиеНапоминать=(Вопрос('Предупреждение',ВниманиеСТР,'Ok;Напомнить',тсПредупреждение)=2);
 fi;
end;



func РУКУЧ_ПриОбзоре(Сек: Строка; Стр: Целое; Столб: Целое; Тек: Строка): Строка;
  var ss:s;
  ss=ВыборПризнака('МОЛ.*|Ф.*');
  if ss<>'':^Name_A(ss);fi;
  ^Тек  ;
end;

var  НБКн:s='';
func НБКн_ПриВходе(Поле: Строка; Итер: Целое): Логич;
  var ss:s;
var КАРТИМЯ:String;
var Фильтр_Таблицы:String;
var Имя_Поля_Даты:String;     -- если пусто - дата не учитывается
var Имя_Поля_Номера:String;
var Символ_:String;
var Длина_Строки:Integer;
var Y:Integer; -- если 0 то как в NextStr
var УЧЕТГОДА:l;
  УЧЕТГОДА=Раб.НФА.B01.ПолеПоПризнакуЛ('ВИДДОК.'+BlnName,'УЧЕТГОДА');
  КАРТИМЯ =Раб.НФА.B01.2ПолеПоПризнакуС0('ВИДДОК.'+BlnName,'КАРТИМЯ');
  Фильтр_Таблицы=Раб.НФА.B01.2ПолеПоПризнакуС0('ВИДДОК.'+BlnName,'КАРТУСЛ');
  if УЧЕТГОДА:Имя_Поля_Даты='Дата';Y=год(Дата);
     if y<1900:
        message('Не выбрана дата!');
        ^false;
     fi;
   | true:Имя_Поля_Даты='';Y=0;
  fi;
  Имя_Поля_Номера='НомерБум';
  Длина_Строки=4;
  Символ_='0';
  ss=Раб.НФА.B01.2NextStrY0(КАРТИМЯ,Фильтр_Таблицы,Имя_Поля_Даты,Имя_Поля_Номера,Символ_,Длина_Строки,Y);
  НомерБум=ss;
  ^false;
end;


Проц ПриОткрытии(Создать: Логич);
  BlnName=Раб.НФА.B01.БланкИмя;
end;
Проц Кнопка2_ПриНажатии(S:s);
 var rec:record;
      if ДНФАid=0:exit;fi;
      rec=IntegerToRecord(ДНФАid);
      if rec<>nil:OpenBlank('НФА.ЖУР.ОПЕРАЦИИДНФА',false,rec);
       | true:Message('Не найден операционный документ из которого сформирован текущий документ!',mtWarning);
      fi;
end;

Функ Основание_ПриОбзоре(Сек: Строка; Стр: Целое; Столб: Целое; Тек: Строка): Строка;
 var rec:record;
  if ДНФАid=0:Шаблон.скрытьредактор(false);fi;
  rec=IntegerToRecord(ДНФАid);
  Тек=GetCardFieldS('РПО_ОПЕРАЦИИДНФА',rec,'ОСНОВАНИЕ');
  Возврат Тек ;
end;


Функ РУКУЧдолж_ПриОбзоре(Сек: Строка; Стр: Целое; Столб: Целое; Тек: Строка): Строка;

  Возврат 'Утверждаю: Руководитель учреждения' ;
end;

Функ Начслкмнт_ПриОбзоре(Сек: Строка; Стр: Целое; Столб: Целое; Тек: Строка): Строка;

  Возврат 'Начальник службы' ;
end;
Функ бухкмнт_ПриОбзоре(Сек: Строка; Стр: Целое; Столб: Целое; Тек: Строка): Строка;

  Возврат 'Бухгалтер' ;
end;
Функ РУКУЧподпись_ПриОбзоре(Сек: Строка; Стр: Целое; Столб: Целое; Тек: Строка): Строка;

  Возврат 'подпись' ;
end;
Функ РУКУЧрасшподпись_ПриОбзоре(Сек: Строка; Стр: Целое; Столб: Целое; Тек: Строка): Строка;

  Возврат 'расшифровка подписи' ;
end;
Проц Кнопка3_ПриНажатии(Отправитель: Строка);
 var t,p,k:i;
 var s0,s1,s2:s;
 ОкноВыполненияПоказать(Позиции,'Поиск заводских номеров...');
 For t=1..Позиции do
   s0=' '+up(Позиции[t].ТМЦ)+' ';

   p=pos(' ИНВВЕД.',s0);
   if p>0:
      s1=SubStr(s0,p+1,255);
      s1=ВыделитьСлово(1,s1,' ');
    | true:
      p=pos(' НФА.',s0);
      if p>0:
         s1=SubStr(s0,p+1,255);
         s1=ВыделитьСлово(1,s1,' ');
         p=pos(' УЧН.',s0);
         if p>0:
            s2=SubStr(s0,p+1,255);
            s2=ВыделитьСлово(1,s2,' ');
            s1='ИНВВЕД.'+s1+'.'+s2;
          | true:s1='';
         fi;
       | true:s1='';
      fi;
   fi;
   if Name_A(s1)<>' ':
      p=pos(' ЗН.',s0);
      if p>0:
         s2=Substr(s0,1,p-1);
         s0=Substr(s0,p+1,255);
         s0=Substr(s0,pos(' ',s0)+1,255);
         s0=s2+' '+s0;
      fi;
      s2=trim(Раб.НФА.B01.ПолеПоПризнакуС(s1,'ЗАВОД_НОМ'));
      if s2<>'':
         s2=Раб.СТР.ЗаменаПодстрокиВсе(s2,' ','_');
         s0=trim(s0)+' ЗН.'+s2;
         Позиции[t].ТМЦ=s0;
      fi;
   fi;
 od;
 ОкноВыполненияЗакрыть;
end;


Конец
