====== ПРРО ====== ^ n/n ^ Послідовність встановлення для локальної конфігурації ^ | 1 | На робочому місці (компьютері) провести підготовку для роботи з ключами: \\ -Скопіювати **servertest\d\Vovan\RRO\*.* -> ..\SF\RRO\*.* **; \\ -Зайти в TotalCommander з правами **адміністратора**; \\ -Скопіювати **servertest\d\Vovan\DIBD\EUInstall.exe** та **servertest\d\Vovan\DIBD\windowsdesktop-runtime-6.0.20-win-x86.exe** на локальний компютер; \\ -Запустити **EUInstall.exe** (без []Крістал-1, остальні параметри по замовчанню); \\ -Запустити **windowsdesktop-runtime-6.0.20-win-x86.exe**; \\ -Запустити **..\SF\RRO\Reg.bat**; \\ | | 2 | В приложенії "Центр сертифікації ключів" **ІІТ Користувач ЦСК** (EU.exe - на робочому столі після запуску EUInstall.exe ) підтягуемо сертифікати для ключів користувачів ПРРО (дивись **RRO\paramEU.txt**). | | 3 | В довіднику **ПРРО** - регіструємо ПРРО шляхом підтягування ключа в полі **Фіскальний номер**. | | 4 | Впевнетисть в наявності в базовій конфігурації (наразі налаштовано в **LIGHT08** та **LIGHT21**; за відсутності імпортувати з конфігурації **LIGHT08**) :\\ - модуля **_PRRO - ПРРО** ;\\ - меню **_PRRO - ПРРО** ;\\ - довідників **_PRRO - ПРРО** та **_PRROTax - ПРРО Податки** ;\\ - документу **_PRROChk - ПРРО Чек** ;\\ - константи **_PRRO - Торг: Фіскальний № ПРРО** (посилання на довідник ПРРО) та **_TorgPrnCheck - Торг: Найменування принтера чеків** (як в Win);\\ - коду в процедурі **Application.OnAfterStart()** : *---Підтримка ПРРО If !Empty(Const._PRRO.Value) Local lcMenuPrroGUI lcMenuPrroGUI = Sys.MD.GetGuiByFPName('_PRRO', 'M', 'MENUPAD') If GetGrant(lcMenuPrroGUI,'Z') BProc.Mod._PRRO.InitRRO(InOut(Const._PRRO.Value,'_FN')) If Vartype(Sys.aPRRO[1,3])='O' MW.DoMenu(lcMenuPrroGUI) EndIf EndIf EndIf | | 5 | В документі (в нашому прикладі **Realiz**), який потребує фіскалізації повинно бути поле **FCheck N(1)** додаємо метод **MenuFiscalize()** :If MessageBox('Фіскалізувати накладну?',32+4,'Фіскальний чек')#6 Return EndIf Local loDoc loDoc = CreateObject('tDoc','Realiz') loDoc.Scatter(The.MD.HF.ID) loDoc.GetTP() LProc.Doc.Realiz.Fiscalize(loDoc) Doc.Open.Realiz.Post(The.MD.HF.ID,1)та підключаємо створений метод до меню **UsePopup** як п/м **"Фіскальний чек"** - за допомогою якого буде проводитись фіскалізація та друк чеку.SkipWhen => VarType(Sys.aPRRO[1,3])#'O' Or Sys.aPRRO[1,3].ShiftDaySost#1 Or The.MD.HF.FCheck=1 Or Sys.aPRRO[1,3].ShiftDay#The.MD.HF.Date| | 6 | В документі, який потребує фіскалізації (в нашому прикладі **Realiz**) додаємо метод **Fiscalize** з оріентовним кодом :Lparameters toDoc Local llErr, loPRRO, loTmc llErr = .F. loPRRO= Sys.aPRRO[1,3] If !BProc.Mod._PRRO.OpenCheck(loPRRO,toDoc.Header.ID.Value) llErr = .T. EndIf If llErr MessageBox('Помилка фіскалізації!',32,'Фіскальний чек') Return EndIf Select D.Tmc, T.Kod As Kod, T.Descr As Descr, D.Kol, D.Cena, D.Suma, D.SumaZ From (toDoc.CrsTP) D, _Tmc T Where T.ID=D.Tmc Into Cursor crsTP Scan lnStavka = 1 BProc.Mod._PRRO.RegSale(loPRRO,Tmc,Kod, Descr, lnStavka,Cena,Kol,Suma,,SumaZ,) EndScan If !llErr If Empty(BProc.Mod._PRRO.CloseCheck(loPRRO,Iif(toDoc.Header.TypeOpl.Value=1,1,0))) llErr = .T. EndIf EndIf If Seek(toDoc.Header.ID.Value,'_TRelate','IDP') And Seek(_TRelate._IDC,'_PRROChk','ID') WriteAttrSpr(toDoc.Header.ID.Value,'FCheck',1) If MessageBox('Друкувати фіскальний чек?',32+4)=6 BProc.Doc._PRROChk.Print(_PRROChk.ID) EndIf EndIf CloseIn('CrsTP') |