Автоприсвоение групп в эл. накладных

Материал из wiki.standart-n.ru
Перейти к: навигация, поиск

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


Редактирование подпрограммы отправки накладных

Выполняем для подпрограмм "Проведение активного документа", "Отправить на почту" и "Проведение с авторасходом":

1) Строка создания dbf таблицы должна содержать поле GNVLS с типом CHAR(250) и выглядеть примерно так:

'CREATE TABLE temp (DOCNUM CHAR(250),DOCNUM1 CHAR(100),DOCDATE DATE,TOVAR CHAR(250),ORIG_TOVAR CHAR(250),SER CHAR(250),
...........
...........
DATESERT DATE,GODENDO DATE,NGTD CHAR(250),STRANA CHAR(250),PRICE NUMERIC(20,5),BARCODE CHAR(250),GNVLS CHAR(250),
ORIG_CODE CHAR(250),PART CHAR(10),SUM_NDSR NUMERIC(20,5),SKLAD_ID CHAR(250), DEP NUMERIC(1,0))';
 

Если при создании dbf таблицы подпрограмма сообщает об ошибке, возможно превышен лимит ширины таблицы в 4000 символов, попробуйте длину поля PART урезать до 10 символов.

2) Если поля mmbsh в запросе к данным документа нет, добавляем его. Пример:


3)Заполняем поле GNVLS информацией о присвоенных группах (поле mmbsh):

stringreplace(IBQuery_FieldByName_s(query1, 'mmbsh'),'''','',1)
 


Не забываем исправить в подпрограммах

Настройка менеджера групп партий

В менеджере групп партий, для требуемых групп изменить или создать процедуру CheckMembership, которая будет проверять поле GNVLS на необходимое значение. Пример см. ниже.

program GroupProgram;
procedure CheckMembership;
begin
  if pos('Сан. гиг',fieldvalue_s('GNVLS'))>0 then
    return_boolean(true);
end;
begin
end.
 

Проверка себя

Настроить исходную и целевую базы, повторно отправить накладную с требуемыми группами и принять. Группы должны присвоиться автоматически.


Теги: группы, менеджер групп, CheckMembership, накладные, перетекание групп