Установка инвентаризации

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

Выполнить скрипт

См. вложение Файл:Скрипт для инвентаризации.txt или ниже

/******************************************************************************/
/***                Generated by IBExpert 01.12.2015 9:17:09                ***/
/******************************************************************************/

/******************************************************************************/
/***      Following SET SQL DIALECT is just for the Database Comparer       ***/
/******************************************************************************/
SET SQL DIALECT 3;



/******************************************************************************/
/***                                 Tables                                 ***/
/******************************************************************************/


CREATE GENERATOR GEN_W$INV_DETAIL_ID;

CREATE TABLE W$INV_DETAIL (
    ID          DM_ID NOT NULL /* DM_ID = BIGINT */,
    INV_ID      DM_ID /* DM_ID = BIGINT */,
    BARCODE     DM_TEXT /* DM_TEXT = VARCHAR(250) */,
    PRICE       DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */,
    QUANT       DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */,
    REALQUANT   DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */,
    PART_ID     DM_ID /* DM_ID = BIGINT */,
    TEMP_QUANT  DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */,
    INFO        DM_BLOBTEXT /* DM_BLOBTEXT = BLOB SUB_TYPE 1 SEGMENT SIZE 80 */,
    BCODE_IZG   DM_TEXT /* DM_TEXT = VARCHAR(250) */,
    BARCODE1    DM_TEXT /* DM_TEXT = VARCHAR(250) */
);




/******************************************************************************/
/***                           Unique Constraints                           ***/
/******************************************************************************/

ALTER TABLE W$INV_DETAIL ADD CONSTRAINT UNQ1_W$INV_DETAIL UNIQUE (INV_ID, PART_ID);


/******************************************************************************/
/***                              Primary Keys                              ***/
/******************************************************************************/

ALTER TABLE W$INV_DETAIL ADD CONSTRAINT PK_W$INV_DETAIL_1 PRIMARY KEY (ID);


/******************************************************************************/
/***                                Indices                                 ***/
/******************************************************************************/

CREATE INDEX W$INV_DETAIL_IDX1 ON W$INV_DETAIL (INV_ID);
CREATE INDEX W$INV_DETAIL_IDX2 ON W$INV_DETAIL (BARCODE);
CREATE INDEX W$INV_DETAIL_IDX3 ON W$INV_DETAIL (PART_ID);


/******************************************************************************/
/***                                Triggers                                ***/
/******************************************************************************/


SET TERM ^ ;



/******************************************************************************/
/***                          Triggers for tables                           ***/
/******************************************************************************/



/* Trigger: W$INV_DETAIL_BI */
CREATE OR ALTER TRIGGER W$INV_DETAIL_BI FOR W$INV_DETAIL
ACTIVE BEFORE INSERT POSITION 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gen_w$inv_detail_id,1);
  if (new.quant is null) then
    select sum(quant) from doc_detail where part_id=new.part_id into new.quant;
  if (new.price is null) then
    select price from parts where id=new.part_id into new.price;
  select p.barcode, p.barcode1 from parts p where p.id=new.part_id into new.barcode, new.barcode1;
  select w.BARCODE from parts p left join wares w on w.id=p.ware_id where p.id=new.part_id into new.bcode_izg;
end
^


/* Trigger: W$INV_DETAIL_BU0 */
CREATE OR ALTER TRIGGER W$INV_DETAIL_BU0 FOR W$INV_DETAIL
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
  if (new.part_id<>old.part_id) then
  begin
    select sum(quant) from doc_detail where part_id=new.part_id into new.quant;
    select price from vw_parts where part_id=new.part_id into new.price;
    select p.barcode, p.barcode1 from parts p where p.id=new.part_id into new.barcode, new.barcode1;
    select w.BARCODE from parts p left join wares w on w.id=p.ware_id where p.id=new.part_id into new.bcode_izg;
  end
  new.info=iif(new.info is null,'',new.info)||' Кол-во '||cast(cast(new.temp_qaunt as numeric(15,2)) as dm_text)||' введено '||cast(CURRENT_DaTE as Date)||' '||Left(CURRENT_TIME,8)||ascii_char(13)||ascii_char(10);
  new.realquant = iif(old.realquant is null,0,old.realquant)+new.temp_qaunt;
  new.temp_qaunt = 0;
end
^


SET TERM ; ^



/******************************************************************************/
/***                               Privileges                               ***/
/******************************************************************************/


/******************************************************************************/
/***                Generated by IBExpert 01.12.2015 9:17:25                ***/
/******************************************************************************/

/******************************************************************************/
/***      Following SET SQL DIALECT is just for the Database Comparer       ***/
/******************************************************************************/
SET SQL DIALECT 3;



/******************************************************************************/
/***                                 Tables                                 ***/
/******************************************************************************/


CREATE GENERATOR GEN_INV_ID;

CREATE TABLE W$INV (
    ID          DM_ID NOT NULL /* DM_ID = BIGINT */,
    COMMITDATE  DM_DATETIME /* DM_DATETIME = TIMESTAMP */,
    USER_ID     DM_ID /* DM_ID = BIGINT */,
    SESSION_ID  DM_ID /* DM_ID = BIGINT */,
    CAPTION     DM_TEXT /* DM_TEXT = VARCHAR(250) */
);




/******************************************************************************/
/***                              Primary Keys                              ***/
/******************************************************************************/

ALTER TABLE W$INV ADD CONSTRAINT PK_W$INV_1 PRIMARY KEY (ID);


/******************************************************************************/
/***                                Triggers                                ***/
/******************************************************************************/


SET TERM ^ ;



/******************************************************************************/
/***                          Triggers for tables                           ***/
/******************************************************************************/



/* Trigger: W$INV_BI */
CREATE OR ALTER TRIGGER W$INV_BI FOR W$INV
ACTIVE BEFORE INSERT POSITION 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gen_inv_id,1);
end
^


SET TERM ; ^



/******************************************************************************/
/***                               Privileges                               ***/
/******************************************************************************/


/******************************************************************************/

/******************************************************************************/
/***      Following SET SQL DIALECT is just for the Database Comparer       ***/
/******************************************************************************/
SET SQL DIALECT 3;



/******************************************************************************/
/***                                 Views                                  ***/
/******************************************************************************/


/* View: VW_W$INV_DETAIL */
CREATE OR ALTER VIEW VW_W$INV_DETAIL(
    ID,
    INV_ID,
    BARCODE,
    PRICE,
    QUANT,
    REALQUANT,
    PART_ID,
    SNAME,
    INFO,
    TEMP_QAUNT,
    BARCODE1,
    BCODE_IZG)
AS
select
    id,
    inv_id,
    barcode,
    price,
    quant,
    realquant,
    part_id,
    (select v.svalue from parts p left join wares w on p.ware_id=w.id left join vals v on v.id=w.name_id where p.id=part_id),
    info,
    TEMP_QAUNT,
    barcode1,
    bcode_izg
from w$inv_detail
;




/******************************************************************************/
/***                               Privileges                               ***/
/******************************************************************************/

/******************************************************************************/

/******************************************************************************/
/***      Following SET SQL DIALECT is just for the Database Comparer       ***/
/******************************************************************************/
SET SQL DIALECT 3;



/******************************************************************************/
/***                                 Views                                  ***/
/******************************************************************************/


/* View: VW_PARTSINV */
CREATE OR ALTER VIEW VW_PARTSINV(
    PART_ID,
    WARE_ID,
    NAME_ID,
    SNAME,
    IZG_ID,
    SIZG,
    COUNTRY_ID,
    SCOUNTRY,
    ORIG_CODE,
    SORIG_NAME,
    SORIG_IZG,
    SORIG_COUNTRY,
    BCODE_IZG,
    PRICE,
    PRICE_O,
    PRICE_Z,
    PRICE_R,
    QUANT,
    BARCODE,
    BARCODE1,
    DEP,
    GODENDO,
    SERIA,
    SUM_NDSO,
    SERT,
    DATESERT,
    KEMVSERT,
    SDSERT,
    REGN,
    NGTD,
    EDIZM,
    DOC_ID,
    INSERTDT,
    NDS,
    BASE_AGENT_ID,
    SBASE_AGENT_ID,
    QUANT2)
AS
select
p.ID,
p.WARE_ID,
w.name_id,
vname.svalue, --SNAME,
w.izg_id,
vizg.svalue, --SIZG,
w.country_id,
vcountry.svalue, --SCOUNTRY,
ORIG_CODE,
vorig_name.svalue, --Sorig_NAME,
vorig_izg.svalue, --Sorig_IZG,
vorig_country.svalue, --Sorig_COUNTRY,
w.barcode,-- BCODE_IZG,
p.PRICE,
p.PRICE_O,
p.PRICE_Z,
p.PRICE_R,
p.QUANT,
p.BARCODE,
p.BARCODE1,
p.DEP,
--p.KRITK,
p.GODENDO,
p.SERIA,
p.SUM_NDSO,
p.SERT,
p.DATESERT,
p.KEMVSERT,
p.SDSERT,
p.REGN,
p.NGTD,
p.EDIZM,
p.DOC_ID,
p.INSERTDT,
p.NDS,
p.BASE_AGENT_ID,
--(select caption from agents a1 where a1.id=p.BASE_AGENT_ID)
a1.caption,
(select w.quant from warebase w where w.part_id=p.id)
from parts p left join WARES w on p.ware_id=w.id
  left join vals vname on w.name_id=vname.id
  left join vals vizg on w.izg_id=vizg.id
  left join vals vcountry on w.country_id=vcountry.id

  left join vals vorig_name on w.orig_name_id=vorig_name.id
  left join vals vorig_izg on w.orig_izg_id=vorig_izg.id
  left join vals vorig_country on w.orig_country_id=vorig_country.id

  left join agents a1 on p.base_agent_id=a1.id
;




/******************************************************************************/
/***                               Privileges                               ***/
/******************************************************************************/




INSERT INTO SP$WDICTS (ID, PARENT_ID, CAPTION, DESCRIPTION, SID, STATUS, INSERTDT, INI, BMP, SORTING, FRAMECLASS) VALUES (111, 0, 'Инвентаризация', 'Инвентаризация', 'INV_DETAIL', 1, NULL,
'[insertsql]
insert into w$inv_detail(part_id,inv_id,id) values (:part_id,:tek_id,:id)

[deletesql_selected]

[deletesql]

[refreshsql]
select * from vw_w$inv_detail where id=:ID

[selectsqlwithdeleted]

[selectsql]
select * from vw_w$inv_detail where inv_id=:tek_id order by id

[form_show]
position=1
left=0
Top=0
Width=0
Height=0
MaxWidth=0
MaxHeight=0
MinWidth=0
MinHeight=0

[form_get]
position=1
left=0
Top=0
Width=0
Height=0
MaxWidth=0
MaxHeight=0
MinWidth=0
MinHeight=0

[main]
sourcetablename=W$INV_DETAIL
returnfieldname=ID
captionfieldname=CAPTION
keyfieldname=ID
ViewID=INV_DETAIL
RootGroupTableName=
ShowCaption=Инвентаризация № :tek_id:
GetCaption=Инвентаризация № :tek_id:
GroupSelect=0
foldergroup=
initfolder_id=
dataset=0
InitTMSGroup_id=802
folders_visible=0
Canfloating=0
hidetoppanel=0
ActivateDictAction=0

[cfSelect]
selectfieldexpression=Iif(sname is null,'''',sname)||'' ''||iif(barcode is null,'''',barcode)||'' ''||iif(bcode_izg is null,'''',bcode_izg)
AllwaysPartial=1

[childs]
bottomdock_units=0
bottomdock_size=0
rightdock_units=0
rightdock_size=0

[TMS_0]
group_id=820
caption=Загрузить с терминала

[TMS_1]
group_id=71
caption=Создать корректировку

[TMS_2]
group_id=797
caption=Заполнить факт кол-во учетным

[TMS_3]
group_id=823
caption=Выгрузить в терминал

[editfields]
PART_ID=WDICTS.PARTS
SNAME=PART_ID
REALQUANT=TEMP_QAUNT
TEMP_QAUNT=Default

[addfields]
PART_ID=WDICTS.PARTS
ID=select gen_id(gen_w$inv_detail_id,1) from rdb$database',
NULL, NULL, NULL);



INSERT INTO SP$WDICTS (ID, PARENT_ID, CAPTION, DESCRIPTION, SID, STATUS, INSERTDT, INI, BMP, SORTING, FRAMECLASS) VALUES (9, 0, 'Журнал инвентаризаций', 'Журнал инвентаризаций', 'INV', 0, NULL,
'[insertsql]
insert into W$INV(id,caption,commitdate,session_id) values (:id,:caption,current_date,:SESSION_ID:)

[deletesql_selected]

[deletesql]

[refreshsql]
select * from W$INV where id=:ID order by id desc

[selectsqlwithdeleted]

[selectsql]
select * from W$INV order by id desc

[form_show]
position=8
left=0
Top=0
Width=600
Height=500
MaxWidth=0
MaxHeight=0
MinWidth=0
MinHeight=0

[form_get]
position=8
left=0
Top=0
Width=600
Height=500
MaxWidth=0
MaxHeight=0
MinWidth=0
MinHeight=0

[main]
sourcetablename=W$INV
returnfieldname=ID
captionfieldname=CAPTION
keyfieldname=ID
ViewID=INV
RootGroupTableName=
ShowCaption=Журнал инвентаризации
GetCaption=Журнал инвентаризации
GroupSelect=0
foldergroup=
initfolder_id=
dataset=1
InitTMSGroup_id=0
folders_visible=0
Canfloating=0
hidetoppanel=0
ActivateDictAction=0

[cfSelect]
selectfieldexpression=caption
AllwaysPartial=1

[childs]
bottomdock_units=0
bottomdock_size=0
rightdock_units=0
rightdock_size=0

[TMS_0]
group_id=70
caption=Загрузить с терминала

[TMS_1]
group_id=71
caption=Создать корректировку

[TMS_2]
group_id=797
caption=Заполнить факт кол-во учетным

[TMS_3]
group_id=810
caption=Выгрузить в терминал

[editfields]
CAPTION=WDICTS.INV_DETAIL(tek_id=id,mode=show)
ID=CAPTION
COMMITDATE=CAPTION

[addfields]
CAPTION=DEfault
ID=select gen_id(gen_w$inv_detail_id,1) from rdb$database'
, NULL, 1, NULL);



INSERT INTO SP$WDICTS (ID, PARENT_ID, CAPTION, DESCRIPTION, SID, STATUS, INSERTDT, INI, BMP, SORTING, FRAMECLASS) VALUES (10, 0, 'Партии', 'Партии', 'PARTS', 1, NULL,
'[insertsql]

[deletesql_selected]

[deletesql]

[refreshsql]
select p.*  from vw_partsinv p where part_id=:part_ID

[selectsqlwithdeleted]

[selectsql]
select p.*  from vw_partsinv p
order by sname,part_id

[form_show]
position=8
left=0
Top=0
Width=400
Height=500
MaxWidth=0
MaxHeight=0
MinWidth=0
MinHeight=0

[form_get]
position=8
left=0
Top=0
Width=400
Height=500
MaxWidth=0
MaxHeight=0
MinWidth=0
MinHeight=0

[main]
sourcetablename=PARTS
returnfieldname=PART_ID
captionfieldname=PART_ID
keyfieldname=PART_ID
ViewID=PARTS
RootGroupTableName=
ShowCaption=Партии
GetCaption=Партии
GroupSelect=0
foldergroup=
initfolder_id=
dataset=0

[cfSelect]
selectfieldexpression=sname||'' ''||iif(barcode is null,'''',barcode)
AllwaysPartial=1

[childs]
bottomdock_units=0
bottomdock_size=0
rightdock_units=0
rightdock_size=0',
NULL, NULL, NULL);


INSERT INTO PARAMS (ID, PARENT_ID, PARAM_ID, PARAM_CAPTION, PARAM_TYPE, PARAM_VALUE, AUDIT_ID, IMAGEINDEX, STATUS, INSERTDT, SORTING, PARAM_TYPE_DATA) VALUES (60, 63, 'TERMINAL_DATA_LOAD', 'Работа с теминалом', 14, '0', 643, 0, 0, '13-AUG-2015 12:52:10.024', 17, 'FIXEDITEMS SHOWONLYVALUES RETURNNAME
0=Напрямую через драйвер
1=Через текстовый файл');

INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID) VALUES (69, -400, 'Создать инвентаризацию', 'TMS', 0, '17-OCT-2013 14:15:09', 0, NULL, -1, NULL, NULL, NULL, 0, NULL);
INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID) VALUES (820, -400, 'Загрузить с теминала (с режимом работы)', 'TMS', 1, '13-AUG-2015 12:57:54', 0, NULL, -1, NULL, NULL, NULL, 0, NULL);
INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID) VALUES (812, -400, 'Загрузить с терминала (напрямую)', 'TMS', 1, '24-JUL-2015 11:35:17', 0, NULL, -1, NULL, NULL, NULL, 0, NULL);
INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID) VALUES (822, -400, 'Загрузить с терминала (через файл)', 'TMS', 1, '13-AUG-2015 13:40:43', 0, NULL, -1, NULL, NULL, NULL, 0, NULL);
INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID) VALUES (71, -430, 'Создать корректировку по инвентаризации', 'TMS', 0, '17-OCT-2013 14:15:09', 0, NULL, -1, NULL, NULL, NULL, 0, NULL);
INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID) VALUES (797, -430, 'Заполнить фактическое кол-во учетным', 'TMS', 0, '25-AUG-2014 09:38:13', 0, NULL, -1, NULL, NULL, NULL, 0, NULL);
INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID) VALUES (823, -400, 'Выгрузить в теминал (с режимом работы)', 'TMS', 1, '13-AUG-2015 13:43:19', 0, NULL, -1, NULL, NULL, NULL, 0, NULL);
INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID) VALUES (811, -430, 'Выгрузить в терминал', 'TMS', 1, '24-JUL-2015 09:30:16', 0, NULL, -1, NULL, NULL, NULL, 0, NULL);
INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID) VALUES (824, -400, 'Выгрузить в терминал (через файл)', 'TMS', 1, '13-AUG-2015 13:45:53', 0, NULL, -1, NULL, NULL, NULL, 0, NULL);
INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID) VALUES (802, 61, 'Инит баркоде', 'TMS', 0, '7-OCT-2014 11:16:32', 0, NULL, -1, NULL, NULL, NULL, 0, NULL);

INSERT INTO REPORTS (ID, PARENT_ID, STATUS, REPORTTYPE, SORTING, CAPTION, PARAMS, WDICT_ID, DATA) VALUES (38, 0, 0, 10, 100, 'Печать инвентаризации', NULL, 11, NULL);

ALTER TABLE W$INV ADD SQLTXT DM_TEXT_BIG;
 

Подготовка ТСД

Подготовка ТСД

Обновить подпрограммы ТМС(Группы)

Прикрепленный файл Файл:Инвентаризация группы(ТМС).zip

Для ТСД Атол ОС WinCE на Mobile Logistics

Прикрепленный файл Файл:Инвентаризация группы(ТМС) WinCE Атол.zip

Инвентаризация с помощью смартфона на базе Android 4.0 и выше

  • для инвентаризации нужно на смартфоне иметь камеру и карту памяти
  • добавить две ТМС - выгрузки и загрузки на андроид аппарат

INSERT INTO GROUPS ( PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID) VALUES ( -400, 'Выгрузка на Андроид', 'TMS', 1, '29-AUG-2016 09:55:14.685', 0, NULL, -1, NULL, NULL, NULL, 0, NULL);

INSERT INTO GROUPS ( PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID) VALUES ( -400, 'Загрузка с Андроида', 'TMS', 1, '29-AUG-2016 10:42:34.357', 0, NULL, -1, NULL, NULL, NULL, 0, NULL);

  • Добавить в параметры путь для выгрузки/загрузки
INSERT INTO PARAMS (PARENT_ID, PARAM_ID, PARAM_CAPTION, PARAM_TYPE, PARAM_VALUE, AUDIT_ID, IMAGEINDEX, STATUS, INSERTDT, SORTING, PARAM_TYPE_DATA, PACKET) VALUES ( -30, 'EXPORT_DIR_ANDROID', 'папка для выгрузки (Андроид)', 10, 'C:\Standart-N\ftp_server\', 958, -1, 0, '29-AUG-2016 10:00:32.317', 3, 'InitialDir=
Filter=*.txt
Title=папка для выгрузки
ofFileMustExist=0', 34664);
  • в таблице GROUPS тмски для загрузки выгрузки - взять по пути \\ALECSANDR\projects\Ревизия на Андроид
  • если будет использоватся возможность работы с андроид аппаратом по Wi-Fi - по пути указанному в параметрах положить файл FTPServer.exe из \\ALECSANDR\projects\Ревизия на Андроид
  • в менеджере в окне инвентаризации - правой кнопкой мыши - Администратор - Редактировать справочник - как INI файл

добавляем тмски работы с выгрузкой, не забыть поменять group_id на id которые будут присвоены ТМСкам всунутым выше

[TMS_4]
group_id=10111
caption=выгрузка на Андроид

[TMS_5]
group_id=10112
caption=загрузка с Андроида
  • в выгруженных данных, в штрихкодах не должно быть символов перевода строки, иначе в этих строках ничего не находит

Обновить печатную форму

Прикрепленный файл Файл:Отчет печать инвентаризации.zip

Обновить сетки

Прикрепленный файл Файл:Инвентаризация сетки.zip

Проведение инвентаризации Без ТСД

Ручная Инвентаризация

Теги: Инвентаризация, Ревизия, Установка инвентаризации, Установка ревизии