Запросы на создание новых элементов справочников

Данная функциональность используется, когда отдельной точке-складу, находящейся в выделенной базе, обменивающейся с основной базой пакетами данных, требуется разрешить приходовать накладные самостоятельно, при этом запрещено плодить собственные элементы справочников. В этом случае оператор должен запрашивать создание элементов справочников в офисе. Обычно операторы это делают или с помощью электронной почты, или элементарно звонком. А оператор в центральной базе создает необходимые элементы справочников и производит стандартные процедуры обмена с другими торговыми базами.

Логика работы, интерфейс

Организация обмена данными

Первым шагом в автоматизации этого процесса является система запросов кодов товаров. Логика работы такая:

Организация обмена

Предлагаемый обмен данными строится на встроенных функциях скриптера ExportGoodsDemand, ImportGoodsDemand, ExportGoodsDemandAnswer. С помощью данных функций определяются скрипты формирования запросов, приема запросов, формирования ответов на запросы и приема ответов на запросы. Данные функции генерируют или получают файлы-пакеты goodsdemand.zip, которые должны быть переданы каким-либо способом на принимающий компьютер (например с помощью встроенной почты Solex). Вот примеры таких скриптов:

Файл ExportGoodsDemand.pas (устанавливается в программе склада-точки, прописывается созданном для этих целей в пользовательском меню "Передача запросов на создание новых элементов справочников") :

{
скрипт формирует пакет запросов на создание новых элементов справочников в центральную базу
После того, как файл будет сформирован в указанном каталоге, он будет подхвачен системой Solex и передан в центральную базу
}

const ExportPath = 'c:\mail\out'; // Каталог экспорта
begin
  ExportGoodsDemand(ExportPath);
  createHintI('Данные сформированы');

end.



Файл ImportGoodsDemand.pas (устанавливается в программе центрального склада как скрипт на сканирование каталога, указанного в нем, и срабатывает, таким образом, автоматически при появлении файла в указанном каталоге).

{
 скрипт принимает в центральную базу пакет запросов на создание новых элементов справочников.
 Предполагается, что файл прислан системой Solex и выложен в указанном каталоге (в любом его подкаталоге).
}

const ImportPath = 'c:\mail\in'; // Каталог импорта

var RecCount :integer;
begin

  RecCount := ImportGoodsDemand(ImportPath,false);
  createHintI('Поступило  '+inttostr(RecCount)+' записей','Запросы на создание кодов товаров',iif(reccount=0,30,0));

end.

Файл ExportGoodsDemandAnswer.pas (устанавливается в центральной базе в пользовательском меню "передача ответов на запросы кодов"). В данном случае прописывается ответ для одного из пунктов

{
    скрипт формирует пакет ответов на запросы на создание новых элементов справочников
}
const ExportPath = 'c:\mail\out'; // Каталог экспорта
ExportStorage = 1; // номер склада, для которого эта информация
LastDAys = 3; // послать отчет по последним LastDays дням
begin ExportGoodsDemandAnswer(ExportPath,ExportStorage,date-lastdays); createHintI('Данные сформированы'); end.

Файл ImportGoodsDemandAnswer.pas (устанавливается в базе склада-точки. Прописывает как скрипт на сканирование каталогов. Поэтому отрабатывает автоматически).

{
   скрипт принимает отчеты по запросам на создание новых элементов справочников
}
const ImportPath = 'c:\mail\in'; // Каталог импорта
var RecCount :integer; begin RecCount := ImportGoodsDemand(ImportPath,true); createHintI('Поступило '+inttostr(RecCount)+' записей','Запросы на создание кодов товаров',iif(reccount=0,30,0)); end.