// скрипт для импорта прайс-листа. используется процедурой Loader.LoadFromFileWithScript
// на вход подается открытый Dataset, который нужно заполнить в соответствии с полями:


// если вернуть закрытый датасет, то операция не будет продолжена, и предполагается, что скрипт самостоятельно разобрался с прайсом.
// для самостоятельности скрипту передается ID - идентификатор прайса, который сейчас заливается.
// но в целом задача скрипта - транспортировать данные из файла Filename в Dataset


var // предопределенные скриптом переменные
    Filename :string; // Файл импорта
    SelfLoader :TPriceLoader; // вызывающий объект

    // собственные объекты
var tmpDir :string;
    tmpfile :string;
    Mappings :string;
begin
  try
    tmpdir := includetrailingpathdelimiter(gettempdir+'tmpscriptimport-'+formatdatetime('dd-mm-yyyy-hh-nn-ss',now));
    forcedirectories(tmpdir);

    tmpfile := tmpdir + extractfilename(FileName);

    copyfile(filename,tmpfile);
    try


      selfloader.Field_Name_Goods := 'Торговое наименование';
      SelfLoader.Field_Name_Producer := 'Производитель';
      SelfLoader.Field_Name_Country := 'Страна';
      selfloader.field_price := 'Цена с НДС';
      selfloader.field_nds := 'Ставка НДС';
      selfloader.field_isliveneed := 'ЖВ';
      selfloader.field_price_registry := 'Гос_ реестр';
      selfloader.field_shelf_life := 'Срок годности';

      SElfLoader.Field_place_cap := 'Цех_ упак_';
      SElfLoader.Field_quantity := 'Остаток';


      readxls(selfloader.importcds, tmpfile,true,true,7);

      with selfloader.importcds do
      begin
        first;
        while not eof do
        begin
          edit;
          if fieldbyname('ЖВ').asstring = '+'
          then fieldbyname('ЖВ').asstring := '1'
          else fieldbyname('ЖВ').clear;
          post;
          next;
        end;
      end;

      //selfloader.importcds.savetofile('c:\temp\1.cds');

    finally
      cleardir(tmpdir);
      deletedir(tmpdir);
    end;

  finally
  end;


end.
