Всички приложения на програма CPAccounting® са изградени върху една и съща счетоводна програма с мощен генератор на отчети, интегрирани редактори на текст, форми, електронни таблици и макро команди.
Обикновено в приложенията на универсален пакет "Уни",
включващ елементите от оперативното счетоводство: склад, магазин, търговия на едро, поръчки (заявки), оферти, дилъри,
производство,
счетоводната част и мощните средства са скрити за потребителя и програмата го
води подобно на несложен Internet сайт. Обясненията надолу са за потребители на
модул счетоводство и специалистите от "СиПиЪкаунтинг" ЕООД. За различните режими, в които може да
работи програмата вж. Начало на сеанса.
Винаги, когато нещо не ни е ясно, може с натискане на клавиша F1 (а в Windows версията и с Shift+F1) да повикаме
текста, който в момента четем (така наречената "помощ"). Ако обясненията не се
събират на една страница, може да прелистим като натиснем клавиша PgDn (страница надолу).
По всяко време може да се обадим на тел. 0888-231-671 на автора на програмата
Чавдар Атанасов или на тел. 0888-570-635 на експерта по внедряване Мариан
Атанасов. Ако разглеждаме този текст през рекламния сайт на фирмата
www.po-evtino.com, той
е достъпен и след като прекъсне Internet връзката (в режим Offline).
Чрез натискане на Ctrl+F (при натиснат Ctrl леко чукваме F) може да потърсим произволна дума в "помощта". За да започнем ново търсене, излизаме от прозорчето за търсене, преместваме се до началото на текста, в който ще търсим, натискаме левия бутон на мишката върху неподчертана дума и при натиснат бутон преместваме малко мишката - така ще маркираме част от текста. Пускаме мишката и чак тогава отново започваме търсенето натискайки Ctrl+F.
Ако при натиснат Ctrl чукнем леко латинската буква P (Ctrl+P), браузерът ни предлага да изпечатаме на принтер или цялата помощ (която е над 50 страници) или маркиран текст. Менюто и картинките не се изпечатват.
Преглед на функционалните клавиши, които може да се използват при работа с програмата, може да се прочете във Функционални клавиши.
Както виждаме, последният текст от предното изречение "Функционални клавиши" е подчертан. Ако щракнем с левия бутон на мишката върху подчертан текст, ще изведем на екрана обясненията свързани с него. След като се запознаем с тези обяснения, може да се върнем отново към текста, който в момента четем като натиснем Alt+лява стрелка (или като натиснем само клавиша Backspace, или щракнем с мишката върху лявата стрелка на навигатора или върху бутона Back от браузера). Минаването напред по извървян вече път става с Alt+дясна стрелка (или дясната стрелка на навигатора или бутона Forward на браузера).
Подсказващи съобщения:
По всяко време на работа, на долната рамка на програмата (статусбара) се
появява съобщение, което ни упътва за действията, които може или трябва да
извършим в момента. Подсказващото съобщение не е в сила само при появяване на
насочващо съобщение.
Насочващи съобщения:
Насочващо съобщение наричаме прозорче с кратък текст и името на клавиш, който
може или трябва да натиснем. Има два вида насочващи съобщения:
За улеснение, вместо "насочващо съобщение" в другите раздели на "Помощта" ще използваме "съобщение".
Част от съобщенията на програмата се показват в прозорец на Internet браузер.
Програмата изчаква зареждането му изписвайки "Моля,
изчакайте да се зареди браузерът".
След като прочетем съобщението, може да затворим браузера.
Програмата поддържа мрежова и немрежова версия. Немрежовата версия се поддържа само в DOS.
В мрежовата версия програмата може да се извика в
мрежова или
локална сесия, а в
немрежовата - само в локална сесия.
В мрежова сесия могат да работят едновременно всички потребители, а в локална -
само един. В някои случаи е задължително да стартираме по един от двата начина,
за което програмата ни предупреждава.
В локална сесия програмата помни всички клавиши, които натискаме и ако спре тока
по време на работа, следващият сеанс ще проиграе целия предишен и ще спре на
мястото на прекъсването. Възстановяването на прекъсната от спиране на тока
мрежова сесия се извършва без визуализиране на действията на потребителя и
затова е доста по-бързо от възстановяването на локална сесия.
Само в локална сесия може да направим:
- запис на пред-пред-последния сеанс,
- приключване на последния системен месец,
- преномериране на папка,
- промяна на паролите,
- въвеждане НЕ през документи на начални салда.
Някои макроси трябва да се пускат само в локален режим както това е обяснено в Макроси: записване (F3).
Програмата поддържа и клиент-сървър режим, който
се използва за Internet/Intranet приложения. При
него единствено изискване е сървърът на системата да е под
Windows, останалите компютри могат да бъдат и под
UNIX или друга операционна система.
С едно и също приложение могат едновременно да
работят Windows, Internet/Intranet и DOS версиите на програмата.
Преди да стигне до въвеждане на парола, програмата извършва служебни действия, които не изискват намесата на потребителя:
Действията отбелязани със (*) се извършват само от първия за деня потребител.
Във версията за Windows, докато текат тези действия в последните две
правоъгълничета на най-долния ред на прозореца се показват сумата от дължините
на копираните файлове в KB и скоростта на копиране в MB/sec.
Ако се опитаме да прекъснем обработките по влизането в програмата (натискайки Alt+F4 или
Х-а на прозореца на програмата), тя ще ни издаде съобщение "Ако
повторите спирането на програмата, при следващо първоначално влизане ще
чакате много." и ще продължи с обработките или докато ги завърши
или до втори опит за прекъсването им.
След като стигне до въвеждане на паролата, програмата първо ни пита кой е номерът на паролата, а след това и коя е паролата. Цифрите от номера на паролата се виждат, а символите от паролата се заместват със звездички и са отделени със запетая след номера.
Ако сгрешим номера или паролата, не може да ги поправим, защото програмата позволява в паролата да участват всички клавиши - и тези за редактиране (с изключение на Enter, който е за край на въвеждането, и Ctrl+Enter, който е за промяна). При грешка, веднага натискаме Enter на номера и паролата. Ако въведем грешна парола, показва се "ГРЕШНА" и след 0.8 секунди може да опитаме отново. След третата грешна парола се появява калкулатор и трябва да излезнем от програмата за да се опитаме отново.
Ако въведем парола, с която е влезнал друг потребител, показва се "ЗАЕТА" и след 0.8 секунди може да опитаме отново.
Ако въведем паролата с Ctrl+Enter (а не само с Enter), програмата ни предлага да я променим. Това е забранено, ако е нулев параметърът от регистратурата CanChangePassword. При промяна, под паролата излиза надпис "нова". След като въведем новата парола и натиснем Enter, програмата ни предлага да я потвърдим като я въведем отново (надписът под нея става "повторение"). Паролата може да съдържа не повече от 10 клавиша. Освен букви, цифри и знаци, може да използваме и останалите клавиши (без Enter, Ctrl+Enter, Esc, Alt+F4, F3).
След въвеждане на паролата, програмата проверява в месеца, в който последно е
работено с текущата парола, дали съществуват файловете
с месечни данни за всички сметки имащи аналитичности. Ако за някоя не съществува,
издава съобщение "Не съществува: сметка ххх"
и забранява влизането в документи, начални
салда, справки 2. Сметки и 5. Сметка - сметка.
Ако сметката има подниво (задължително или незадължително), което е номенклатура
yyy, за която не съществува файла BASIC00\yyy.DBF, програмата издава съобщение
"Не съществува: BASIC00\yyy.DBF".
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни
допълнителни обяснения в CPA1.docx (вж. Dxxx).
После системата автоматично ни предлага да продължим
работа с точката от програмата, с която сме завършили предишния сеанс. Ако
желаем да работим на друго място, натискаме клавиша F10.
Тогава се появява списък от точки, една от които може да изберем.
Движението в програмата се извършва:
- напред с Enter или Ctrl+Enter (при натиснат Ctrl леко чукваме Enter),
- назад с Esc.
Програмата ни помага с извеждане на подсказващи и насочващи съобщения както това
е обяснено в Помощ (F1).
Ако влезнем в програмата със слаба парола, както обикновено
се работи в несчетоводните приложения, програмата ни води
подобно на несложен Internet сайт и болшинството от функциите й, обяснени в този
текст, остават скрити за потребителя.
В Windows версията името на прозореца на програмата започва с [п.Х], където Х е номерът на паролата на потребителя. След това се изписва името на приложението и накрая името на заредения макрос.
Ако по време на работа с програмата решим да извършим
смяна на паролата
(например: ако сме влезли с обикновена парола, а ни трябва администраторска), е
необходимо да натиснем комбинацията от клавиши
Ctrl+F10 и след това да
въведем новата парола. За да влезем в точката от програмата, с която за последен
път е работено с въведената парола, е необходимо да натиснем Shift+F10.
В Windows версията, след смяна на паролата, на екрана се изписват номерата на
паролите и имената на компютрите на другите потребители работещи в момента.
Само с администраторска парола може да изберем от главното меню
(F10) подменю "4. Сервизни функции" и от него точката "Пароли - промяна". В мрежова сесия излиза съобщението "Заключено. Пуснете програмата в локален режим.". В локална сесия,
програмата ни предлага да променим текущата парола (под нея пише "нова"). След като натиснем
Enter ни предлага да я повторим (под нея пише "повторение"). След това продължаваме с промяна
на следващата парола (после я повтаряме) и така до последната. Например, ако приложението има общо 8 пароли
и ние сме влезли с третата, програмата ни предлага да променим паролите в следния ред на номерата им: 3, 4, 5, 6, 7, 8.
Ако натиснем Esc в момента, в който трябва да започнем въвеждането на следващата парола, тя се прескача и
остава непроменена. Ако натиснем Esc в който и да е друг момент, програмата прекратява обработката.
Паролата може да съдържа не повече от 10 клавиша. В тази точка не може да въведем като част от парола някои
клавиши, които може да въведем, ако променяме паролата в началото на сеанса. Недостъпни са например клавишите
от F1 до F6, F10 и F11.
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в CPA2.docx за това как се създават пароли и как се определя нивото им на достъп. В раздел "13. Дневник на програмата" в CPA1.docx е описано как може да разберем кой, кога и с коя парола е влезнал и излезнал от програмата. Там са описани и възможните съобщения за грешки, които започват с "Грешка в дневника на програмата".
Работа през Remote Desktop Connection
В този режим скоростта на работа е много висока и може да влизаме в програмата и през Internet. Ако не достигат
лицензи, може да влизаме като в Command Prompt изпълним mstsc /admin.
За следващите обяснения считаме, че програмата се инсталира на сървър, на който е позволено да ползва Remote
Desktop Conection, и ще се ползва от няколко потребители, които не са с администраторски достъп. Може да използваме следващите
обяснения и при инсталация на отделен компютър, който не е сървър, но тогава няма да
създаваме потребители и да им даваме права, а ще изпълняваме само точките с номера оцветени така. Ето и редът на инсталиране на програмата:
Следващите обяснения са за настройка на сървъра на потребители, които ще ползват само отдалечени икони на програмата върху
десктопа на локалния си компютер чрез RemoteApp. При този режим на работа не се влиза през Remote Desktop
Connection, но потребителят трябва да е член на групата Remote Desktop Users. Обясненията надолу са тествани под Windows Server 2008.
В свойствата на потребителя (вж. по-горе точка 1ж) избираме Environment -> включваме Start the following program at logon -> попълваме в
Program file name: %systemroot%\system32\logoff.exe, а в Start in: %systemroot%\system32. Така в момента, в който се опитат да
влезнат през Remote Desktop Connection първото нещо, което ще се изпълни след влизане ще е logoff. Това се прави защото дори и само за
ползване на RemoteApp трябва да имат права за Remote Desktop Connection, т.е. да са членове на група Remote Desktop Users.
След това в Control Panel -> Administrative tools -> Remote Desktop Services -> RemoteApp Manager създаваме .rdp файлове за
всяко отделно извикване на приложение, например Fresh-C:
Location: C:\CPAccounting\Cpa\Cpa\cparunR.bat
Command-line arguments: Always use the following command-line arguments: Fresh-C 1
където, ако дискът R: е получен със субституция на c:\CPAccounting, cparunR.bat започва така:
@echo off
subst.exe r: c:\CPAccounting
защото при RemoteApp не се изпълнява Startup секцията от Start менюто на Windows.
Вж. и ключовете от регистратурата:
PrinterDOSforNT за печатане в текстов режим (DOS печат) през Remote Desktop
Connection и
CashBond\Files за печат на касови бонове през Remote Desktop Connection
- СТАР стил и вече не се използва.
Вж. и настройки на универсален пакет "Уни", Проблеми при работа.
Вж. Инсталиране на Internet/Intranet сървъра на програмата.
В изпълнение на Общият Регламент за Защита на Данните ((ЕС) 2016/679) (GDPR (General data protection regulation)) програмата криптира (кодира/шифрова):
- всички записи от личен състав (ном. 1150), МОЛ (ном. 101), Уни - лица и разчети (ном. 107), Съдружници (ном. 222),
- само доставчици (ном. 1100) и клиенти (ном. 1105) с 10 цифрен Ид. № и
- всички номенклатурни записи съдържащи @.
При изтриване на криптиран запис той се попълва с интервали за да не може да се възстанови на допълване.
При записване на документи, програмата псевдонимизира (записва служебен номер, а не име или Ид. №) всички
номенклатури (включително съдържащите лични данни).
В програмата се влиза с потребителско име и парола.
При работа с програмата, потребителите трябва да спазват изискванията свързани със защита на лични данни,
описани в раздел GDPR в CPA2.docx.
Има вариант на програмата, при който се кодират (криптират) всички данни с изключение на служебните
номенклатури с номер N отговарящ на условието
N <= 16 || ( N >= 123 && N <= 127 ) || ( N >= 150 && N <= 153 ) || ( N >= 991 && N <= 1005 && N != 1001 ) || N == 2001.
Този вариант е описан в CPA2.docx, трябва да потърсим във файла: 76.
Ако напуснем (след неколкократно натискане на клавиша Esc) точката от
програмата, с която в момента работим, или натиснем (когато и да е!) клавиша
F10, на екрана се появява списък с възможни варианти за продължаване на
работата. Този списък се нарича "главно меню". Чрез стрелките може да достигнем
до желания ред и после с Enter да го изберем. Тогава се появява списък на близки
по действие точки. Той се нарича "подменю". От него аналогично избираме желания
ред. След това менютата се скриват и се извиква избраната точка. Може да се
върнем от подменю към главното меню чрез Esc или F10.
В DOS версията от едно подменю може да минем директно към следващо или предишно с натискане на Alt+PgDn
(най-напред натискаме Alt, задържаме го натиснат и леко чукваме PgDn) или Alt+PgUp. Антетката на всяко подменю (в DOS версията)
ни показва от кой ред на главното меню е избрано.
За по-бързо избиране на ред от менюто може направо да натиснем цифрата,
отговаряща на номера на реда или ярко оцветената буква в реда.
Менютата може да разглеждаме, местим и оцветяваме както е описано в:
Прозорец: разглеждане на списък,
Прозорец: размери и местоположение (F9),
Прозорец: оцветяване (Shift+F9).
Променените размери, местоположение и цветове на менютата се запазват при
следващи сеанси със същата парола.
Вж. и
Към предходната точка (Shift+F10),
Начало на сеанса,
Край на сеанса (Alt+F4).
За връщане към точката от програмата, с която сме работили непосредствено преди тази, с която работим в момента, е достатъчно при натиснат клавиш Shift да натиснем F10. Това е равносилно на натискане на клавиша F10 за извикване на главното меню и после избор на желаната точка.
Windows версия:
Местейки мишката в различни части от екрана, тя придобива различна
функционалност и сменя изображението на показалеца си. В следващите обяснения
под "щракване" се разбира щракването (кликването) с левия бутон на мишката
върху избрана част от екрана.
Ако редактираме поле и щракнем мишката:
- над текущия ред или над текущия прозорец, това действа като Esc (тогава
показалецът на мишката е с формата на знак "забранено паркиране"),
- на реда или под него, все едно сме натиснали Enter, а ако е под някои прозорци
- Ctrl+Enter.
Ако полето е от тип номенклатура и щракнем върху номера му - все едно, че сме набрали ?? и Enter. Ако щракнем върху името - все едно, че сме набрали !! и Enter. И в двата случая показалецът на мишката е с формата на ръчичка. Вж. Номенклатури: избор на елемент.
Ако текущият прозорец е от тип Прозорец: разглеждане на списък:
- ако щракнем над него - това е Esc,
- ако щракнем под него - Ctrl+Enter,
- ако щракнем върху него - избор,
- при първо щракване вляво или вдясно от прозореца - той се максимизира, а след
това щракването отстрани действа като PgUp или PgDn.
Може да се натисне левия бутон и мишката да се влачи (появява се четворна стрелка).
Щракването на десния бутон при разглеждане на справка - предизвиква
преминаване в режим на текстов редактор.
Щракването на десния бутон по време на изпълнение на макрос
- показва докъде е стигнал макроса.
На горната и долната рамка на прозореца има бутони, които също може да се натиснат. Например: бутонът "OK" действа като Ctrl+Enter.
DOS версия:
Плъзгането на мишката без натискане на бутон предизвиква същите действия, които
предизвиква натискането на съответната стрелка от клавиатурата по посока на
движение на мишката.
Краткото натискане и след това отпускане на левия бутон на мишката е равносилно
на натискане на клавиша Enter.
По-продължителното натискане на левия бутон и отпускането му е равносилно на
натискане на клавишите Ctrl+Enter.
Едновременното натискане и отпускане на левия и десния бутон е равносилно на
натискане на клавиша Esc.
По-продължителното натискане на десния бутон и отпускането му има две възможни
значения:
- при попълване на поле е равносилно на набиране на знака удивителна ('!'), вж.
Номенклатури: избор на елемент,
- иначе е равносилно на натискане на стрелка надолу или нагоре в зависимост от
посоката на движение на мишката преди това без натиснат бутон.
Бързото натискане и отпускане два пъти на десния бутон е равносилно на
натискане на клавишите Ctrl+F9 (за максимално увеличаване на
прозореца).
Единият начин за приключване на работа е като повикаме главното
меню (F10), изберем подменю "Сервизни функции", а от него - последната точка
"Край (Alt+F4)". По-бързият начин е като натиснем клавиша Alt и без да го
отпускаме чукнем F4 (Alt+F4).
Преди да изключим компютъра е необходимо:
За Windows версията на програмата да се направи ShutDown.
За DOS версията на програмата да се изчака появяването на съобщението: "Може
вече да изключите компютъра!".
Когато в DOS версията не може да прекъснем програмата (например: зациклили сме
макрос или желаем да спрем по време на проиграване след
спиране на тока), може да използваме клавишите Ctrl+Break.
За Windows версията има точка Край сесия от подменю "Сервизни функции" на главното меню (F10), чието изпълнение предизвиква излизане от програмата и ShutDown.
Точките "Край" или "Край сесия" може да участват в макроси.
Докато върви макрос - програмата не приема издаден от друга програма ShutDown.
С настъпването на седмия час след пълно бездействие, програмата се самоизключва със съобщение в браузер:
Програмата се самоизключи поради липса на работа за повече от 6 часа.
Това не важи, ако сме с администраторска парола.
За някои пароли програмата може да се самоизключи и след една минута бездействие
(без съобщение), ако е по-голям от 2 ключът от регистратурата IdlePasswordsMaxNum.
Специалист от "СиПиЪкаунтинг" ЕООД може да спре
централно всички потребители на програмата. За него е достъпно описаното в точка
"Стопиране на системата" в
CPA1.docx. Ако
системата е спряна, на влизане в мрежова сесия, вместо
програмата се появява съобщение в браузер:
STOP
Системата е СТОПирана.
Програмата е тествана многократно в лабораторни и реални условия. Всички
приложения работят с една и съща програма. Затова, когато се
открие и поправи грешка в едно от приложенията, тя се поправя и във всички
останали.
Преди началото на всеки сеанс автоматично се проверява дали има достатъчно
оперативна памет и дисково пространство, дали конфигурацията на компютъра е
подходяща за работа. Ако има проблем извън програмата, тя въобще не се стартира.
Спирането на тока или случайно изключване на компютъра по време на работа не
поражда никакви проблеми. При следващо стартиране системата (от програма и
данни) се самовъзстановява без да използваме сервизни функции (а в
локална сесия ни довежда сама до мястото на прекъсването). Всичко това
обуславя висока надеждност на системата.
Винаги, когато програмата ни изведе в прозорец на браузер някакво съобщение,
трябва внимателно да го прочетем и да реагираме според указанията. Например, при
стартиране на мрежова сесия, получаваме следното съобщение:
Пусната е локална сесия ИЛИ:
Локална сесия не е приключила нормално. Стартирайте в локален режим.
Ако сме сигурни, че на нито един компютър от мрежата не е пусната
локална сесия, трябва да направим следното:
1) стартираме локална сесия за да се самовъзстанови системата
(след вероятно спиране на тока),
2) изчакваме докато локалната сесия приключи всички обработки и след това
излизаме от програмата,
3) вече може да стартираме мрежова сесия.
В случай, че не може да стартираме програмата, следните стъпки обикновено
довеждат до успех:
1) рестартираме сървъра на данните (това е компютърът, който трабва да се
стартира първи и да се изключва последен; ако не е пуснат, другите не може да
стартират програмата),
2) пускаме локална сесия, изчакваме докато приключи всички
обработки и след това излизаме от програмата,
3) пускаме мрежова сесия, изчакваме докато програмата приключи
всички обработки и стигне до парола,
4) рестартираме всички останали компютри в мрежата, след което започваме работа
на тях.
Ако все пак срещнем проблем при работа, най-добре е да се консултираме със
специалистите от "СиПиЪкаунтинг" ЕООД. За тях са достъпни
допълнителни обяснения в
CPA1.docx,
CPA2.docx и
CPAprg.doc.
Въпреки, че се запомня какво е правено през всички сеанси на работа с
програмата, добре би било да се запише при какви обстоятелства се е стигнало до
проблема. Това много ще улесни локализирането и отстраняването му.
Системният администратор може от време на време да преглежда файловете с екрани
на програмата, при които са възникнали грешки ERRSCRxx.txt (xx е номерът на
паролата при която е записан някакъв проблем). В тях е отбелязано името на
компютъра "PC name:" и името на Windows потребителя "User:".
Няма случай, при който вината за проблема да е у потребителите (освен ако не е
правено нещо извън програмата). Ето защо е много по-добре да не се опитваме да
поправим евентуалните грешки, защото може още повече да ги задълбочим.
Независимо дали попълваме текст, число или дата, са в сила следните правила:
ПРИДВИЖВАНЕ в полето може да се осъществи с клавишите:
В средата на най-долния ред на екрана (статусбара) се показва на кой по ред символ се намираме от началото на полето.
ИЗТРИВАНЕ в полето може да стане със:
Когато курсорът е малък, сме в режим на "ВМЪКВАНЕ". Тогава последният набран символ измества всички следващи го с един надясно. При голям курсор сме в режим на "писане върху". Тогава набраният символ се изписва върху символа, на който е курсорът. Режимът на вмъкване се сменя с натискане на клавиша Ins (или Insert).
С натискане на клавиша Ctrl+C центрираме съдържанието на полето.
С натискане на клавиша Ctrl+A писането в текущото поле става невидимо докато не се излезне от него. Това не действа в DOS.
Приключването на редактирането на полето става с натискане на Enter или Tab,
което означава, че потвърждаваме написаното. За отказ от редакциите натискаме
Esc. Има редица случаи, в които редактирането може да се приключи с някой от
клавишите: Ctrl+Enter, стрелка нагоре или надолу, PgUp, PgDn, Ctrl+лява или
дясна стрелка, Shift+Tab, както е описано в Прозорец: попълване
на полета.
Вж.:
Кошче: записване (F7),
Кошче: изпълнение (F8).
Може да въвеждаме произволни символи. За повече подробности вж. Редактиране на поле.
Ако числото е с десетична точка и искаме да попълним дробната му част, след
попълването на лявата (цялата) част трябва да натиснем точка (а не Enter или Tab).
Може да се върнем към цялата част чрез Ctrl+лява стрелка или Shift+Tab. Ако
изтрием цялата част (например с интервал и Enter), автоматично се изтрива и дробната.
Ако искаме да въведем число със знак ('+' или '-'), числото трябва да е залепено
след знака (да няма интервал помежду им). Ако числото е с десетична точка,
водещите нули и/или знак '+' се игнорират.
Пример: целите числа 1, +1, 01, +01 и 001 са различни числа за програмата при
справки, но отговарят на числото 1 при сметки.
При допускане на грешка, програмата издава звуков сигнал и ни връща в началото
на полето за новото му попълване. Важи и всичко описано в Редактиране на поле.
Програмата работи с 3 дати близки по значение: компютърна, системна и изкуствена системна. Те обикновено са равни на днешната дата.
Компютърна е датата, която показва компютърът.
Системна е датата, която програмата счита за днешна дата. Тя се използва
за попълване на полето "редактиран на" в документи (това поле може да се види в
Справки: 3. Документи).
Обикновено за системна дата програмата използва компютърната. След
завършване на сеанса системната дата се записва на твърдия диск. При следващо
стартиране на програмата се сравнява компютърната дата и записаната на
диска системна дата. Ако последната е по-нова - издава се съобщение: "Работено
е с дата по-нова от текущата компютърна" и се посочва записаната дата,
която програмата ще използва за системна.
Програмата обновява системната дата с компютърната, само ако компютърната дата стане по-нова от системната.
Системната дата не може да се промени ръчно дори чрез Промяна на системната дата (която променя само
изкуствената системна дата, обяснена по-долу).
Ако все пак се наложи да сменим системната дата на
по-стара, това може да се направи от специалистите от "СиПиЪкаунтинг" ЕООД, за които са достъпни
допълнителни обяснения в CPA2.docx
(вж. "Системна дата, на която за последно е работено с програмата"). Ако има изпратени данни с по-нова дата,
трябва да се промени и датата на последно изпращане (в номенклатура "!Параметри").
Системната дата може да получим с автоматичен стринг (Ctrl+D) "11. Дата - системна" + Ctrl+Enter.
Изкуствена системна е датата, която се получава с
автоматичен стринг (Ctrl+D) "11. Дата - системна" + Enter.
В началото на сеанса за изкуствена системна дата се взема системната дата.
Изкуствената системна дата може да се промени с Промяна на системната дата.
Ако в момента точно преди промяната на системната дата (което може да стане само вследствие промяна на
компютърната дата), изкуствената системна е еднаква със системната, промяната се отразява автоматично и върху изкуствената
(и двете дати стават равни на компютърната).
При влизане в празно поле за дата при допълване на
номенклатура или в описание на нов документ - програмата автоматично го
попълва с последно въведената, а ако е в началото на сеанса - със системната дата. Вж.
и Промяна на системната дата.
След въвеждане на деня се натиска Enter или Tab или точка и се преминава към
попълване на месеца. По същия начин се преминава към годината. Обикновено
първите две цифри на годината се попълват автоматично. Ако е необходимо те да се
променят, отиваме до полето съдържащо последните две цифри на годината и
натискаме Ctrl+лява стрелка или Shift+Tab. С тези клавиши се връщаме и към
по-предните полета от датата (месец и ден). Отляво надясно по датата може да се придвижим и с Ctrl+дясна стрелка.
Ако изтрием (например с интервал и Enter) някое от полетата на датата, автоматично се изтрива и цялата дата.
Ако въведем грешна дата, програмата издава звуков сигнал и ни връща в началото на датата за вярното й попълване.
Позволява се въвеждане на дата следваща месеца, в който работим, но ако сме в
документ или начални салда и не е пуснат макрос, се издава съобщението: "Датата
е след текущия месец!", на което отговаряме с Esc. Вж. и Редактиране на поле.
Хоризонталното меню е списък от възможности, разположени хоризонтално.
Със стрелките наляво и надясно, Home или End се придвижваме до желаната точка от
списъка и с Enter я избираме. Всичко това може да стане и чрез натискане на
цифрата, с която е номерирана. За отказ - Esc.
Част от екрана, оградена с рамка се нарича прозорец. Обясненията надолу не
важат за всички прозорци. В DOS версията важат само за прозорците оградени от
рамка, състояща се от непрекъсната единична или двойна линия (включително и ъглите).
По всяко време на работа с прозорец може да натиснем клавиша F9. Тогава на
мястото на прозореца се появява само рамката му. Оттук нататък може да
извършваме действия, редактиращи местоположението и размера на рамката:
Може да натискаме всички посочени клавиши в произволен ред докато стигнем
положение и размер на рамката на прозореца, които ни удовлетворяват. Тогава
натискаме Enter и прозорецът изпълва новата рамка. Може да се откажем от
всичките си действия с натискането на Esc или F9.
За максимално увеличаване на прозореца натискаме Ctrl+F9, което е равносилно на последователното натискане на клавишите: F9, PgUp, Ctrl+End и Enter.
Това важи само в DOS версията. Windows версията използва цветовете на
Windows като за някои двойки цветове изисква да са различни.
На много места в програмата се появяват прозорци, чиито цветове може да
променяме. Това са прозорците, оградени от рамка, състояща се от непрекъсната
единична или двойна линия (включително и ъглите).
Ако при натиснат клавиш Shift чукнем F9 (т.е. Shift+F9), започва да мига рамката на прозореца.
С клавишите "стрелка нагоре" или "стрелка надолу" може да променяме цвета на
рамката, а със стрелките "наляво" и "надясно" - фона, върху който се изобразява рамката.
След като постигнем желаната цветова комбинация може, натискайки клавишите PgUp
или PgDn, да преминем към оцветяване на вътрешността на прозореца. В нея има
части, които може да се оцветяват в различни цветове. До всяка една от тях може
да достигнем като натискаме PgUp или PgDn. Частта, която в момента оцветяваме,
се изобразява мигаща и се оцветява по начина, описан по-горе за рамката. Ако
нищо не мига, значи в момента в прозореца няма поле, оцветено в избраните
цветове. За да не ги променим без да ги виждаме, е най-добре веднага да преминем
към следващата част за оцветяване (чрез PgUp или PgDn).
След приключване на оцветяването, за да запомним избраните цветове, натискаме
Enter. Променените цветове се запомнят за бъдещите сеанси. За отказ от промените натискаме Esc или Shift+F9.
Програмата поддържа три набора от цветове в зависимост от типа на монитора:
Вж. параметър "Набор цветове" от Параметри на системата (F11).
Ако не сме в режим на цветен монитор, при промяна на цветовете, програмата ни
дава възможност да оцветяваме само в цветове, които имат смисъл за съответния
режим. Броят на различните комбинации от цветове на буквите (или рамката) и фона
в тези случаи е малък. Затова клавишите за промяна на цветовете на буквите или
фона се използват по нов начин: чрез който и да е от тях се променят
едновременно и двата цвята, така че няма значение кои клавиши ще използваме -
всеки един от тях сменя комбинациите (действието на стрелките нагоре и надолу е
еднакво с действието на стрелките наляво и надясно).
В цветен режим не се предлагат комбинации на цветове, при които буквите и фона
да са с еднакви цветове (защото няма да може да се четат). Това ограничение не
се отнася за цветовете с повишена яркост. Например, допустимо е оцветяването:
ярко синя рамка на син фон.
Ако дадена част от екрана не е част от прозорец, подлежащ на оцветяване, то за
да я оцветим е необходимо да оцветим съответния й прозорец. Няма част от екрана,
чийто цвят да не може да се оцвети отнякъде. Например, цвета на най-долния ред
(статусбара), на който се изобразяват подсказващите съобщения, се променя като
променим цветовете на Помощ (F1). Вж. и
Прозорец: размери и местоположение (F9).
Ако след попълването на поле в прозореца натиснем клавиша Enter или
Tab, минаваме към следващото поле на същия ред. Ако няма повече полета на
реда, преминаваме към първото поле на следващия ред. Ако няма следващ ред,
редактирането на полето в прозореца приключва. Ако натиснем Esc, то се
отказваме от направените до този момент редакции (всички направени промени по
полетата в прозореца се изгубват).
Ако не желаем да редактираме следващите полета, но желаем да се запомнят
направените до този момент редакции, може да натиснем Ctrl+Enter. Това е
равносилно на неколкократно натискане на Enter до достигане до последното поле в
прозореца и приключване на редактирането.
Когато редактираме номенклатури: с натискане на "Ctrl+интервал"
изтриваме всички полета в прозореца.
Бихме могли да се движим по полетата в произволна посока чрез:
Има редица случаи, в които се въвеждат последователно данни в един и същ прозорец (вж. Номенклатури: промяна). Тогава програмата запомня най-горния ред, на който е бил натиснат Enter (или Ctrl+Enter) и при следващото появяване на прозореца ни предлага да започнем въвеждането на полетата от този ред. Например: искаме да променим само групата на част от въведени преди стоки. Избираме първата стока и със стрелка надолу (но не с Enter) стигаме до полето "Група", попълваме го и натискаме Ctrl+Enter. Избираме следващата стока и тогава програмата веднага ще постави курсора в полето "Група", за да го редактираме.
Вж. и
Прозорец: размери и местоположение (F9),
Прозорец: оцветяване (Shift+F9).
Самите полета може да са от различен тип и се попълват по различни правила. Вж.
Въвеждане на текст,
Въвеждане на число,
Въвеждане на дата,
Номенклатури: избор на елемент,
Избор от хоризонтално меню.
Прозорец, в който може да пишем свободен текст на няколко реда се нарича
текстов редактор (вж. например Кошче: редактиране (Ctrl+F7) и
Справки: преглед на екран и редактиране).
С изключение на т. а) и б) важи всичко описано в раздела
Редактиране на поле.
Може да използваме и следните клавиши:
Вж. и
Прозорец: размери и местоположение (F9),
Прозорец: оцветяване (Shift+F9).
В този режим не може да се променя показаното в прозореца, а може само да се премества нагоре и надолу, за да се видят нови редове (например: ако в поле от тип номенклатура въведем ! и натиснем Enter, ще се покаже в прозорец началото на номенклатурата подредена по азбучен ред, както е описано в Номенклатури: избор на елемент).
Може да се използват:
Вж. и
Прозорец: размери и местоположение (F9),
Прозорец: оцветяване (Shift+F9),
Прозорец: търсене на текст (Ctrl+S),
Кошче: зареждане от прозорец (Alt+F7).
Търсенето на текст е възможно в редица случаи на работа с прозорци. Например
при разглеждане на:
- списък на елементите от номенклатура,
- документ,
- справка на екран и др.
За да укажем какво ще търсим, извикваме кошчето в режим на редактиране
натискайки Ctrl+F7. Вж. Кошче: редактиране (Ctrl+F7).
На първия ред в кошчето, без да оставяме интервали, въвеждаме думата, която искаме да потърсим, или част от нея.
За да потърсим текст съдържащ и интервал, ограждаме текста с двойни кавички ("). Ако в текста има повече от 2 двойни
кавички, програмата счита за затваряща кавичка последната. Текста след затварящата кавичка не участва в търсенето.
Ако няма затваряща кавичка, търси се целия първи ред на кошчето (без отварящата кавичка).
Излизаме от кошчето с натискане на Ctrl+Enter (или Enter и след това Esc).
След това натискаме Ctrl+S.
Тогава програмата започва да търси думата най-напред в реда, на който се
намираме, а ако не я намери - в следващите редове.
Когато програмата открие търсения текст в някой ред, тя спира на него и оцветява
първата буква от текста в различен от останалите символи цвят. При следващо
натискане на Ctrl+S търсенето продължава от следващия ред надолу.
При достигане на последния възможен ред:
- ако не сме в режим на програмиране/проиграване на макрос, програмата спира търсенето и изсвирва,
а при следващо натискане на Ctrl+S търсенето започва отначало,
- ако сме в режим на програмиране/проиграване на макрос и макросът не завършва
с въпросния Ctrl+S, програмата автоматично натиска Alt+0.
Може да променим текста в кошчето, който търсим и после да натиснем Ctrl+S.
Ако първият символ в кошчето е интервал или първите два символа са двойни кавички (")
и до края на реда няма друга двойна кавичка, при натискане на
Ctrl+S програмата вместо да търси ще извика отново кошчето, за да поправим грешката си.
Ако в кошчето има повече от една дума и първият символ не е двойна кавичка ("), търси се само първата дума.
Ако част от реда не се вижда в момента в прозореца (напр. при широки справки), в тази част не се търси. За търсене в широки справки е по-добре те да се изпълнят в режим: "(Alt+E) Справка в една колона" от Параметри на системата (F11).
Търсене в обратна посока (нагоре) може да осъществим чрез Shift+Ctrl+S. За този клавиш важи аналогично всичко обяснено за Ctrl+S.
"Номенклатурите" са таблици с от 2 до 199 полета (колони) като първите две са
"номер" и "име", а останалите са от следните типове:
- число (до 15 символа),
- текст (до 60 символа),
- дата,
- номер на елемент от номенклатура.
Всеки ред от таблицата се нарича "елемент"
от номенклатурата или "запис".
Всеки елемент има уникален номер и уникално име.
Пример: номенклатурата на служителите в едно предприятие може да има следните
полета: номер и име на служителя, дата на постъпване, дата на раждане, заплата,
трудов стаж, длъжност и т.н.
Има номенклатури, при които може да се случи два различни елемента да притежават
еднакви имена. Тогава се въвежда още едно поле, което заедно с името осигурява
уникалността на елементите. То се нарича "презиме".
Например: номенклатурата на стоките, които продава един магазин, може да бъде
построена със следните полета:
- номер на стоката,
- име на стоката,
- цена.
Така две стоки с еднакви имена ще се различават по цената.
Номенклатурите се намират в една папка и не зависят от месеца и годината, в които работим (вж. Счетоводство: въвеждане на
документи). Ако искаме обаче в различните месеци да виждаме различни варианти на дадена номенклатура
(например данните на лицата за заплати), това може да бъде направено от специалист от "СиПиЪкаунтинг" ЕООД. За него е достъпно описаното
в точка "9. Месечни номенклатури" в CPA1.docx.
Може номенклатурите да се различават за различните езици. Вж. точка 9а) от Работа през Remote
Desktop Connection, 68. Промяна на "Парола - език" и Пример за работа на
чужд език. Месечните номенклатури поддържат само един език.
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в
CPAprg.doc
как се променят или създават нови структури на номенклатури. В раздел "13.
Дневник на програмата" в
CPA1.docx е
описано как може да следим кой и кога е редактирал дадена номенклатура.
Всяка една номенклатура с достатъчно широк номер (например стоки, доставчици, клиенти) може да има над милиард реда.
Ако името на номенклатурата завършва с точка, програмата не проверява уникалността на имената.
При влизане в програмата със слаба парола се задействат
редица ограничения, които не позволяват на потребителя свободно да избира и
променя номенклатури. Например, елементите с имена започващи с интервал
са невидими (а ако въведе такъв, програмата автоматично му маха водещите
интервали). Предното не важи ако второто поле е не по-широко от първото поле на
номенклатурата (например 1109. Стоки във вътрешни обекти).
В раздела за бърз макрос е описано как се работи с номенклатура с име започващо с удивителна '!'.
До точката за работа с номенклатури може да стигнем както е описано в
Номенклатури: избор на елемент или от главното
меню (F10) на системата избираме подменю "1. Въвеждане данни" и от него: "4. Номенклатури".
Ако не изпълняваме макрос, на влизане в тази точка от
програмата се деактивират бутоните на заредения макрос и той става недостъпен за
изпълнение. Само ако сме с администраторска парола, може да стартираме макроса чрез натискане на
Alt+1, Alt+2, ... , Alt+9 или Alt+0. Ако сме със слаба парола, се показват допълнително бутоните "Потвърждение
(Ctrl+Enter) и Esc и се позволява ръчното използване на Ctrl+Enter.
На това място може да допълваме, променяме, изтриваме и преглеждаме
номенклатури. На влизане винаги започва с допълване на номенклатурата, като
най-често използвана функция. Ако искаме да изберем друга възможност (промяна,
изтриване или преглед), натискаме Esc и се появява хоризонтално
меню със следните възможности:
Номенклатури: допълване,
Номенклатури: промяна,
Номенклатури: изтриване,
Номенклатури: преглед.
Натискането на Esc когато сме в менюто предизвиква излизане от точката за работа с номенклатури.
Ако натиснем стрелка нагоре, може да въведем "стъпката", с която ще нарастват
автоматично номерата на елементите на номенклатурата в режим на допълване.
Обикновено стъпката е равна на 1, а ако въведем 0, се счита за 1.
Бихме могли да виждаме едновременно менюто и стъпката, ако увеличим размерите на
прозореца, както е описано в Прозорец: размери и местоположение (F9).
Необходимо е да въведем номер на елемент от номенклатурата. Вж. началото на Номенклатури: въведение.
Ако въведем номер на съществуващ в номенклатурата запис, на екрана се изписва и името му, с което въвеждането приключва.
Ако въведеният текст е цяло число, но НЕ е номер на съществуващ в
номенклатурата запис, програмата извършва следното:
1) Ако числото започва със знак минус, програмата търси такъв номер, но без
минуса. Ако не намери, минава към точка 7. Иначе показва списък на
номенклатурата подреден по номера и започващ с намерения номер. В този списък
може да потърсим числото (без минуса) и на друг ред, както е обяснено по-долу (с Ctrl+F).
2) Ако числото започва със знак плюс, програмата проверява дали има трети
индексен файл (за номенклатура "1106. Стоки, услуги, артикули, материали" той е по полето "Код на
доставчика", което трябва да е без водещи интервали) и търси по неговото поле,
но без знака плюс (за стоките - дали съществува такъв код на доставчика). Ако
намери, показва списък на номенклатурата подреден по имена и започващ с
намерения елемент. В противен случай, минава към точка 7.
3) Тази точка важи само за номенклатури "1100. Доставчици" и "1105. Клиенти".
Търси дали съществува номенклатурен елемент с такъв Ид. №, дори и да е невалиден.
Ако намери и е единствен, попълва номера на елемента все едно сме го попълнили на ръка. Иначе, продължава с точка 7.
Следващите три точки се прескачат, ако номенклатурата не е 1106 (на стоките) или числото не е 13 цифрено.
4) Ако съществува четвърти индексен файл, търси по него (той е по полето
Баркод). Ако намери, попълва номера на елемента все едно сме го попълнили на
ръка. Ако не намери, продължава с точка 7.
5) Същото като 4), но гледа третия индексен файл по "Код на доставчика"
Така всяка стока може да има до три баркода (в полетата номер, баркод и код на доставчика).
6) Проверява за теглови баркод, което е обяснено
по-долу. Ако не намери, продължава с точка 7.
7) Появява се съобщение "Номерът не
е намерен. За глобално търсене Ctrl+F". Ако натиснем Ctrl+F, започва
търсене на въведения текст както е обяснено по-долу. При натискане на друг
клавиш ни предлага да допълним номенклатурата.
Ако въведеният текст е цяло число, но НЕ е номер на съществуващ в номенклатурата
запис и изпълняваме макрос, който осчетоводява ред от
документ, въвеждането приключва, но в браузер се появява съобщение "Макросът използва
НЕсъществуващ номенклатурен номер Х от номенклатура № У" (Х и У са числа).
Ако въведеният текст не е цяло число, търси се дали той не е начало на име от
номенклатурата. Ако не е, се появява съобщение "Началото
на име не е намерено. За глобално търсене Ctrl+F". Ако натиснем
Ctrl+F започва търсене на текста навсякъде в полетата номер, име и презиме (ако
има презиме, т.е. трето поле). Ако и това търсене приключи без резултат, появява се "Достигнат
е краят на списъка".
Ако сме попълнили валиден Ид. № или валиден ДДС №,
в прозореца за търсене се появява и ДДС № (а ако не съществува - Ид. №) на контрагента.
Ако се намери търсеният текст, отваря се прозорец, в който са разположени
елементите от номенклатурата, подредени по азбучен ред на имената, започващи с намерения.
Може да продължим търсенето с натискане на Ctrl+F. Тогава текстът се търси
навсякъде в прозореца. Ако при появяването на прозореца, текстът е бил намерен
като начало на име, първото натискане на Ctrl+F предизвиква търсене от началото
на номенклатурата. Следващо натискане търси от маркирания ред надолу. Не е нужно
да се съобразяваме дали търсеният текст е въведен с големи или малки букви.
Ако искаме да потърсим друг текст, без да излизаме от прозореца, използваме
Прозорец: търсене на текст (Ctrl+S).
Ако номенклатурата е с номер по-голям от 1000 и има място за показване на четвърто поле, в прозореца се показва и то (например "1101. Банкови сметки" има структура: номер, банка, банкова сметка, банков код, ... ).
При справки в режим на табулация може да се вижда и салдото по дадена сметка както е описано тук
В ключа от регистратурата Basic са описани:
- две изключения за номенклатури с номера 1100 и 1105, при които вместо презимето (третото поле) се показва друго поле,
- начин да определим за дадена номенклатура кои полета да се показват.
Движейки се по редовете на прозореца може да изберем с Enter желания елемент. Придвижването става според Прозорец: разглеждане на списък. Ако натиснем Ctrl+PgUp, отиваме в началото на списъка, а натискайки Ctrl+PgDn - в края. Броят на редовете в прозореца зависи от ключа от регистратурата ListRows
Ако от прозореца излезнем с Esc, се появява съобщението "За
допълване на номенклатурата - Shift+Enter". Ако в отговор на
съобщението натиснем Shift+Enter, влизаме в точката за работа с номенклатури,
която е разгледана в Номенклатури: въведение. Там допълваме
или променяме номенклатурата и след две натискания на Esc се връщаме. Тогава в
полето автоматично се появява последният номер, който сме редактирали. Ако
искаме да го въведем, натискаме Enter.
Възможно е да е наложена забрана за допълване на номенклатурата. Тогава вместо
съобщението "За допълване на номенклатурата - Shift+Enter" излиза "Оттук
не може да се допълни номенклатурата". На него отговаряме с Esc.
Ако искаме да покажем в прозореца началото на номенклатурата подредена по АЗБУЧЕН ред на имената, е необходимо да въведем удивителна !.
Ако искаме да покажем в прозореца началото на номенклатурата подредена по ред на НОМЕРАТА, е необходимо да въведем въпросителна ?.
За да подредим в прозореца елементите от номенклатурата по ред на номерата започвайки от даден номер:
а) въвеждаме номера,
б) ако не е номер на сметка, изравняваме го вдясно на полето,
в) вмъкваме в началото на полето знака ?,
г) натискаме Enter.
Може да наберем две удивителни !! или две въпросителни ?? и после да натиснем Enter, за да изведем на екрана елемента от номенклатурата, с които последно сме работили (и след него елементите подредени според обясненото по-горе за '!' и '?'). Ако щракнем с мишката върху номера, все едно сме набрали ?? и Enter. Ако щракнем с мишката върху името, все едно сме набрали !! и Enter.
При влизане в програмата със слаба парола потребителят не вижда елементите от номенклатурата с имена започващи с интервал (това не важи при изпълнение на макрос).
При въвеждане на 13 цифрен номер на елемент от номенклатура "1106. Стоки,
услуги, артикули, материали"
започващ с цифрата 2, програмата счита, че това е
теглови баркод (EAN
код), който е съставен от следните три групи цифри:
- първите седем цифри от кода образуват номенклатурния номер на стоката,
- следващите пет цифри са теглото във формат хх.ххх,
- последната цифра е контролна сума.
След натискането на Enter, програмата автоматично изтрива последните шест цифри (теглото и контролната сума).
Ако следващото поле е числово, програмата автоматично го попълва с теглото посочено в баркода.
Баркодът може да започва с цифрата 2, но програмата не го счита за теглови, ако
първите му цифри съвпадат с числото записано в ключа от регистратурата
NotWeightEAN_FirstDigits.
Докато не въведем съществуващ номер на елемент от номенклатурата, може
неколкократно да извършим описаните дотук действия в произволен ред. Ако не е
задължително въвеждането, може на празно поле да натиснем Enter.
Ако въведем несъществуващ номер или начало на име и натиснем клавиш за придвижване към друго
поле, различен от Enter (например стрелка надолу) или натиснем Ctrl+Enter, програмата ни връща в началото на полето и изсвирва.
Това правило не важи, ако първият символ в полето е удивителна ! или въпросителна ? - тогава програмата изтрива полето.
Докато в полето не се появи съществуващ номер или не стане празно, на мястото на името от
номенклатурата се изписват въпросителни (?). Важи и всичко описано в Редактиране на поле.
Избирането на тази подточка от точката за работа с номенклатури става както е описано в Номенклатури: въведение.
Първо се попълва номер на елемента. Не се позволява въвеждането на знак (+ или -) пред номера. Може да въведем произволен номер или да
използваме номера, който програмата автоматично ни предлага по следния алгоритъм:
(1) най-напред търси първия изтрит запис с ненулев номер и празно име и ако има такъв, го използва заедно с номера му (такъв запис може
да се получи като се даде отказ в момента на допълване или като на промяна се изтрие името и се съгласим с предложението за изтриване)
(2) иначе, ако няма неизтрити записи, се предлага номер равен на стъпката
(3) иначе, при отрицателна стъпка се предвага първия неизтрит номер плюс стъпката
(4) иначе, (при положителна стъпка) се търси първия номер не по-малък от
първия номер + стъпката * (броя на записите - 1)
ако такъв съществува и съществува преден номер, се предлага предния номер плюс стъпката
идеята е, например при стоки, ако за някои от тях са въведени за номера баркодовете им, а за други - последователни номера започващи от 1,
да не се предлага номер по-голям от най-големия баркод, а номер последователен на започващите от 1 номера
(5) иначе се предлага последния неизтрит номер плюс стъпката.
Ако продължим да допълваме, програмата изпълнява точка (1) докато може, но веднъж изпълнила някоя от другите точки, при следващите
допълвания програмата предлага:
(6) първия номер след последния допълнен, на разстояние една или повече стъпки и несъществуващ (прескачат се и изтритите с непразни
имена).
Алгоритъмът започва отначало (от точка (1)) в следните случаи:
- ако се въведе празен номер,
- при Esc от номера,
- при Esc от прозореца с останалите полета (име и др.),
- при съвпадение на името [и презимето] със съществуващ или изтрит номер.
Ако въведем номер, който съвпада със съществуващ вече, програмата ни предупреждава "Има вече
такъв номер" и след натискане на Esc ни предлага първия празен след него (прескачат се и изтритите номера с непразни
имена). Така, ако се въведе 1 (и има 1), ще предложи първия празен номер.
Само за номенклатури "1100. Доставчици" и "1105. Клиенти", ако не изпълняваме/проиграваме
макрос, програмата предлага да се попълни "Ид. №".
Ако въведеният номер на номенклатурния елемент е X и е с поне 9 цифри, предложението е "Въведете Ид. №, ако не е Y",
където Y при доставчик е въведения номер X, а при клиент - първите 9 цифри от X.
Ако номерът е с по-малко от 9 цифри, предложението е "Въведете Ид. № (БУЛСТАТ/ЕГН/ЛНЧ) или 'X'" и
програмата няма да ни позволи въвеждане на празен Ид. №.
Ако точно преди допълването сме били на Номенклатури: промяна, Номенклатури: изтриване,
или Номенклатури: преглед на даден елемент от същата номенклатура, програмата ни предлага неговия Ид. №. Иначе,
ако последно сме търсили валиден Ид. № в Номенклатури: избор на елемент, ни предлага него.
При въвеждане на невалиден Ид. № получаваме съобщението "Невалиден Ид. №. За запис -
Shift+Enter".
Ако въведеният Ид. № не е само девятки и вторият символ не е интервал, програмата проверява дали няма друг запис със същия Ид. №. Ако има, се появява
"Вече съществува контрагент със същия Ид. №. За запис - Shift+Enter".
Само за номенклатура "1106. Стоки, услуги, артикули, материали" се правят и следните проверки:
1) ако номерът е 13 цифрен и започва с 2:
- ако е теглови баркод, изрязва последните 6 цифри и ако не изпълняваме/проиграваме
макрос, издава съобщението "Теглови баркод"
- ако НЕ е теглови баркод (началото му съвпада с ключа от регистратурата
NotWeightEAN_FirstDigits), и не изпълняваме/проиграваме макрос, издава съобщението
"Не е теглови баркод"
2) иначе, ако ключът от регистратурата MaxNonBarcode е
ненулев, номерът не е 8 или 13 цифрен (т.е. не е баркод) и е по-голям от MaxNonBarcode,
програмата ни извежда съобщение "Номерът е по-голям от MaxNonBarcode,
но не е 8 или 13 цифрен" и след натискане на Esc трябва да въведем нов номер.
3) ако номерът е 8 или 13 цифрен и е невалиден баркод, и не изпълняваме/проиграваме макрос,
издава съобщението "Невалиден EAN (баркод). За запис - Shift+Enter".
След въвеждането на подходящ номер (а при доставчик и клиент и Ид. №) се показва прозорец за попълване на
останалите полета от записа. Ако сме въвели номер на вече изтрит запис, появяват
се старите стойности на полетата. Ако преди въвеждане на нов запис сме въвели,
допълнили, изтрили или прегледали друг, съдържанието на неговите полета се предлага в новия.
Само за номенклатури "1100. Доставчици" и "1105. Клиенти", ако не изпълняваме/проиграваме
макрос, програмата търси във файла \g0000bg\Firms.dbf (получен от
Публичния бюлетин на фирмите, регистрирани по ЗДДС) лице със същия "Ид. №".
Ако намери, попълва от него името, населеното място и адреса, ако съответното поле е празно или ако полето Ид. № се
различава от въведеното (обяснено по-горе) от нас. Накрая полето Ид. № се попълва с въведеното от нас.
Може да изтрием всички полета в прозореца като натиснем "Ctrl+интервал".
Ако правилно сме попълнили полетата, продължаваме със следващия номер на елемент и т.н.
Ако обаче сме въвели име, което не е уникално, програмата ни връща да го
попълним отново (също и ако комбинацията име-презиме не е уникална - за
номенклатури, за които името може и да не е уникално) чрез съобщението "Има
вече такова име".
Ако последният символ в името на номенклатура е точка, при допълване или промяна
не се гледа за уникалност на имената на елементите й.
Ако сме въвели име, което съвпада с името на изтрит запис, програмата ни пита
дали да възстановим този запис: "За възстановяване на изтрит запис със същото
име - Shift+Enter". Ако да - натискаме Shift+Enter, иначе - кой да е клавиш.
Въвеждането на празно име предизвиква съобщение "Не
са попълнени задължителните полета". Програмата изтрива всички
полета и маркира елемента за изтрит. Той ще се използва при следващото допълване.
Преди да запише въведените полета, при номенклатури "122. Данни на фирмата", "1100. Доставчици",
"1105. Клиенти" и "1150. Заплати: личен състав", програмата маха водещите интервали от полетата с
имена ДДС №, Ид. № и ЕГН / ЛНЧ. След това, ако не изпълняваме/проиграваме макрос:
За номенклатурите на доставчици и клиенти се проверява дали вече не съществуват елементи със същите Ид. № или ДДС № (не се гледат, ако
са само девятки или вторият символ е интервал). Ако съществуват, получаваме
"Вече съществува контрагент със същия Ид. №. За запис - Shift+Enter" или
"Вече съществува контрагент със същия ДДС №. За запис - Shift+Enter".
След това за четирите номенклатури програмата проверява за валиден Ид. №, ДДС №,
ЕГН или ЛНЧ и при невалиден получаваме съобщение
"Невалиден Ид. №. За запис - Shift+Enter" или
"Невалиден ДДС №. За запис - Shift+Enter".
Преди да запише въведените полета, при номенклатура "1106. Стоки, услуги, артикули, материали", ако не изпълняваме/проиграваме макрос, програмата проверява дали полетата Код при доставчика и Баркод са с 8 или 13 цифри. Ако е така, проверява за невалиден баркод и евентуално издава съобщението "Невалиден EAN (баркод). За запис - Shift+Enter".
Програмата няма да ни пусне в тази подточка и ще изведе съобщението "Заключено" или "Месецът е заключен" в следните случаи:
Вж. ограниченията (описани в три абзаца) при работа със слаба парола.
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в
CPAprg.doc
как да се редактират номенклатури с име започващо с поне два интервала (като 0 и
2001 например) - вж. обясненията за CPAW.EXE.
Избирането на тази подточка от точката за работа с номенклатури става както е
описано в Номенклатури: въведение. За да променим елемент от
номенклатурата, трябва да въведем номера му. Това може да стане както е описано
в Номенклатури: избор на елемент. Първоначално програмата ни
предлага да редактираме елемента, с който последно сме работили (например в документ).
След въвеждане на желания номер се показва прозорец с полетата на избрания
елемент, които може да променим. Това става според Прозорец:
попълване на полета. Ако правилно сме попълнили полетата, програмата ни
предлага да продължим със следващ номер на елемент. Ако няма да променяме
повече, натискаме два пъти Esc и излизаме от точката за работа с номенклатури.
Ако обаче сме въвели име, което не е уникално, програмата ни връща да го
попълним отново (също и ако комбинацията име-презиме не е уникална - за
номенклатури, за които името може и да не е уникално) чрез съобщението "Има
вече такова име".
Ако последният символ в името на номенклатура е точка, при допълване или промяна
не се гледа за уникалност на имената на елементите й.
Ако сме въвели име, което съвпада с името на изтрит запис, програмата ни пита
дали да възстановим този запис: "За възстановяване на изтрит запис със същото
име - Shift+Enter". Ако да - натискаме Shift+Enter, иначе - кой да е клавиш.
Може да изтрием всички полета в прозореца като натиснем "Ctrl+интервал".
При въвеждане на празно име програмата ни предлага "За потвърждаване на изтриването - Shift+Enter".
Ако отговорим утвърдително (с Shift+Enter), всички полета се изтриват и елемента
се маркира за изтрит. Иначе ни връща да го променим.
Програмата няма да ни пита за изтриване и ще запомни празното име само ако
изпълняваме макрос и е включен (на 2.) параметър "(Alt+N) Забранено ИЗТРИВАНЕ в номенклатури"
от Параметри на системата (F11).
Въвеждането на празно име е много опасно! Този запис ще се
използва при следващото допълване и номерът му ще бъде изтрит без предупреждение.
Преди да запише въведените полета, при номенклатури "122. Данни на фирмата", "1100. Доставчици",
"1105. Клиенти" и "1150. Заплати: личен състав", програмата маха водещите интервали от полетата с
имена ДДС №, Ид. № и ЕГН / ЛНЧ. След това, ако не изпълняваме/проиграваме макрос:
За номенклатурите на доставчици и клиенти се проверява дали вече не съществуват елементи със същите Ид. № или ДДС № (не се гледат, ако
са само девятки или вторият символ е интервал). Ако съществуват, получаваме
"Вече съществува контрагент със същия Ид. №. За запис - Shift+Enter" или
"Вече съществува контрагент със същия ДДС №. За запис - Shift+Enter".
След това за четирите номенклатури програмата проверява за валиден Ид. №, ДДС №,
ЕГН или ЛНЧ и при невалиден получаваме съобщение
"Невалиден Ид. №. За запис - Shift+Enter" или
"Невалиден ДДС №. За запис - Shift+Enter".
Преди да запише въведените полета, при номенклатура "1106. Стоки, услуги, артикули, материали", ако не изпълняваме/проиграваме макрос, програмата проверява дали полетата Код при доставчика и Баркод са с 8 или 13 цифри. Ако е така, проверява за невалиден баркод и евентуално издава съобщението "Невалиден EAN (баркод). За запис - Shift+Enter".
Не трябва да променяме смисъла на елемента (например да заменим един контрагент с друг), ако вече има осчетоводявания по него. След промяната всички стари осчетоводявания ще сочат към променения елемент!
След завършване на промяната на един запис програмата ни предлага автоматично
следващ. Обикновено това е следващия по номер елемент. Ако обаче сме правили
преглед на номенклатурата по азбучен ред, както е обяснено в
Номенклатури: преглед, ще ни бъде предложен за промяна елемента следващ по
азбучен ред. Аналогично и ако сме правили преглед по ред на въвеждане.
В зависимост от знака на стъпката (+ или -), записите се предлагат в низходящ или възходящ ред.
Ако работим в мрежова сесия и някой друг редактира
елемента, който ние сме избрали, програмата не ни пуска в него и излиза
съобщението "Заключено".
Ако се опитваме да влезнем в заключен елемент чрез макрос,
вместо съобщението "Заключено", в браузер са появява "Програмата се опитва
да влезне в елемент заключен от друг потребител. До
10 секунди другия потребител ще бъде принуден да излезне от елемента". В този
случай програмата чака докато се освободи елементът, а при другия потребител се появява съобщение в браузер:
За да даде възможност на макрос, стартиран от друг
потребител, да влезне на същото място, програмата натисна Esc.
Възможно е да изпълним произволна справка, която обработва заключения елемент,
без да пречим на потребителя, който в момента го редактира.
Програмата няма да ни пусне в тази подточка и ще изведе съобщението "Заключено" или "Месецът е заключен" и в следните случаи:
Вж. ограниченията (описани в три абзаца) при работа със слаба парола.
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в
CPAprg.doc
как да се редактират номенклатури с име започващо с поне 2 интервала (като 0 и
2001 например) - вж. обясненията за CPAW.EXE.
Избирането на тази подточка от точката за работа с номенклатури става както е
описано в Номенклатури: въведение. Поради опасността да
изтрием елемент, който участва някъде другаде в програмата, тази точка
обикновено е забранена за използване. Разрешение може да се получи като се
промени параметър "(Alt+N) Забранено ИЗТРИВАНЕ в номенклатури"
от Параметри на системата (F11). Забраната не важи, ако сме
извикали точка "4. Номенклатури" от подменю "1. Въвеждане данни" на
главното меню (F10) на системата.
За да изтрием елемент от номенклатурата трябва да въведем номера му. Това може
да стане както е описано в Номенклатури: избор на елемент.
След това се показва прозорецът с полетата на избрания елемент, които не може да
променяме. След като натиснем Enter програмата ни пита дали потвърждаваме
изтриването: "За потвърждаване на изтриването - Shift+Enter".
Ако да - натискаме Shift+Enter.
Изтриването се състои в маркиране на записа за изтрит. Това означава, че
изтритият запис не изчезва, но не се появява при ежедневната работа. Затова след
изтриване на един запис общият брой на записите (който се изписва на екрана) не
се променя. Изтритите записи може да видим само в Номенклатури:
преглед където се отбелязват със звездичка (*) пред номера. Ако по погрешка
изтрием запис, може да го възстановим като отидем на допълване
Номенклатури: допълване и въведем номера му.
Ако искаме да изтрием запис завинаги, трябва през Номенклатури: промяна да изтрием името му (да остане само с интервали) и на въпроса "За потвърждаване на изтриването - Shift+Enter" да отговорим утвърдително (с Shift+Enter). Така, по-късно, изтритият запис ще бъде използван при Номенклатури: допълване.
Ако работим в мрежова сесия и някой друг редактира
елемента, който ние сме избрали, програмата не ни пуска в него и излиза
съобщението "Заключено".
Ако се опитваме да влезнем в заключен елемент чрез макрос,
вместо съобщението "Заключено", в браузер са появява "Програмата се опитва
да влезне в елемент заключен от друг потребител. До
10 секунди другия потребител ще бъде принуден да излезне от елемента".
В този случай програмата чака докато се освободи елементът.
Възможно е да изпълним произволна справка, която
обработва заключения елемент, без да пречим на потребителя, който в момента го редактира.
Програмата няма да ни пусне в тази подточка и ще изведе съобщението "Заключено" или "Месецът е заключен" и в следните случаи:
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в CPAprg.doc как да се редактират номенклатури с име започващо с поне 2 интервала (като 0 и 2001 например) - вж. обясненията за CPAW.EXE.
Избирането на тази подточка от точката за работа с номенклатури става както е
описано в Номенклатури: въведение.
Може да разгледаме номенклатурата подредена по различен начин. Най-напред трябва
да изберем каква част от нея ще разглеждаме:
- всички записи - включват се и маркираните като изтрити елементи,
- без изтритите - не се включват маркираните като изтрити елементи,
- само изтритите - включват се само маркираните като изтрити елементи, които се
отбелязват със звездичка (*) пред номера.
Изборът се извършва по правилата, описани в Избор от хоризонтално
меню. След това избираме начина на подреждане на номенклатурата:
- ред на въвеждане - хронологичен,
- по номер - по възходящ ред на номерата,
- по име - по азбучен ред на имената.
Появява се списък, съдържащ номерата и имената на елементите от номенклатурата
според определените критерии за преглед. Със стрелките или други клавиши може да
се придвижваме по списъка както е описано в Прозорец: разглеждане на списък.
Ако натиснем Enter върху някой елемент от номенклатурата, може подробно да го
разглеждаме. Показва се прозорец, съдържащ всички полета на избрания елемент.
Може да ги разгледаме, но не и да правим промени в тях. По полетата се
придвижваме със стрелките, PgUp, PgDn, Home и End.
За отказ от разглеждането натискаме Enter или Esc, при което се връщаме на
следващия в списъка елемент и т.н.
Програмата няма да ни пусне в тази подточка и ще изведе съобщението "Заключено" или "Месецът е заключен" в следните случаи:
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в CPAprg.doc как да се редактират номенклатури с име започващо с поне 2 интервала (като 0 и 2001 например) - вж. обясненията за CPAW.EXE.
В системата са описани всички счетоводни сметки, зададени с
необходимата аналитичност, чрез които цялостно се обхваща дейността на фирмата.
Всяка счетоводна сметка може да има от 0 до 99 аналитични (задължителни) поднива
от следните типове:
- число (до 15 символа),
- текст (до 60 символа),
- дата,
- номер на елемент от номенклатура.
За други характеристики на сметките вж. Счетоводство: въвеждане
на документи и Счетоводство: приключване на месец.
Информацията в системата е разделена по месеци и всеки документ се въвежда в
месеца, в който се осчетоводява. Възможно е да се работи на по-големи периоди
(тримесечие, шестмесечие, година). Вж. Счетоводство: приключване на месец.
В рамките на един месец може да се въведат документи с над
милиард реда (и това е така още от времето когато една таблица в MS Excel не можеше да има
повече от 65536 реда).
Всички документи, които се въвеждат в системата е необходимо да се подреждат в папки. Всяка папка притежава уникален номер, а документите в нея - поредни номера. Обикновено в една папка се класират документи от един и същи тип. Вж. Счетоводство: преномериране на папка. Препоръчително е номерът на папката да не започва с нула.
Може да работим едновременно в няколко месеца, да се връщаме за промени в стари месеци, да изтриваме или редактираме документи, а може и да забраним това чрез Заключване / отключване на месец / документ. За да станат известни промените в следващите месеци е необходимо да приключим месеца. Вж. и Счетоводство: начални салда.
ПРИМЕРЕН СМЕТКОПЛАН
на модул "Счетоводство" на програмата може да видим като щракнем с мишката
тук.
После може да се върнем с клавиша Backspace (или бутона Back). За специалистите от "СиПиЪкаунтинг" ЕООД
са достъпни допълнителни обяснения в CPAprg.doc
как се променят или създават нови структури на сметките.
Тази точка е достъпна само в локална сесия, в първия системен месец (първия месец, от който е започнало
въвеждане на данни) и с администраторска парола. До нея се стига като от главното меню (F10) изберем
подменю "1. Въвеждане данни" и от него - "3. Начални салда". Вж. Счетоводство: въведение.
За всяка сметка се помнят годишните начални салда, месечните начални салда и месечните обороти.
Началните месечни салда са некомпенсирани, за да може да се изчисляват
натрупаните обороти (които са разлика между началните месечни салда и
началните годишни салда).
Ако сметката има аналитични поднива, горните числа се помнят за всяка комбинация
на аналитичните поднива, по които е имало записване.
За количествените сметки се следят аналогични салда и обороти за количествата.
Може да започнем попълване на документи без да са попълнени началните салда. Ако работим няколко месеца без попълнени
начални салда и ги попълним по-късно, необходимо е да минем през Счетоводство: приключване на месец
от първия системен месец до последния.
Ако паролата ни не е с администраторско ниво на достъп или не сме в първия системен месец, или сме в мрежова сесия,
не е възможна промяната на началните салда и излиза съобщение "Заключено".
Препоръчва се вместо използването на точката за начални салда, те да се
въведат в един или няколко документа в първия системен месец (който обикновено е
12 месец на предходната на първата година).
До тази точка от програмата стигаме като от главното меню (F10)
изберем подменю "1. Въвеждане данни" и от него - "1. Документи". Вж.: Счетоводство: въведение.
Системата помни в кой МЕСЕЦ и
ГОДИНА сме работили
предишния път, в коя папка и номера на документа в папката. При първоначално
влизане в програмата, автоматично се въвеждат така запомнените числа. Ако решим
да ги променим, натискаме Esc докато стигнем до желаното поле. В Windows
версията месеца и годината се показват и вляво на горната рамка на програмата.
След като въведем подходящата ПАПКА и № по ред на документа в папката, следва въвеждане на описание на документа (ТИП на документа, НОМЕР, ДАТА на осчетоводяване, обяснителен ТЕКСТ). Може да прескочим полетата с натискане на Ctrl+Enter (при натиснат Ctrl леко чукваме Enter). Добре е да ги попълваме, за да може по-късно да правим справки по тях. Ако за дата на осчетоводяване не попълним дата от текущия месец (при включен параметърът от регистратурата CheckAccountingDate), програмата ни връща да я попълним.
След това се появява прозорец с всички записвания по документа (ако документът е нов, прозорецът е непопълнен). Най-долният ред от прозореца е празен. Ако на него натиснем Enter, може да ДОПЪЛВАМЕ документа. За ПРОМЯНА избираме (със стрелките и после Enter) сметка от вече въведените. Ако папката е с тип с указани фиксирани сметки, може да изберем за допълване само от фиксираните сметки.
След избирането на сметка, системата автоматично ни предлага да попълним АНАЛИТИЧНИТЕ Й ПОДНИВА (ако такива съществуват). Ако оставим някое празно (и не записваме или проиграваме макрос), се появява съобщението "Не са попълнени задължителните полета" (без да е нужно да му отговаряме) и програмата ни пуска да продължим.
Ако сметката е дефинирана като FIFO/LIFO (първа входяща - първа изходяща или
последна входяща - първа изходяща), след попълване на аналитичните поднива,
програмата ни пита за партидата (съставена от година+месец+папка+№ по ред и
евентуално други полета).
Ако не съществува партида с ненулево салдо, излиза съобщението "Достигнат
е краят на списъка", а след него програмата ни предлага: "За
първоначално въвеждане - Shift+Enter". При натискане на Shift+Enter въвеждаме
партида с данни (година+месец+папка+№ по ред) от текущия документ.
Ако съществуват партиди с ненулево салдо, те се появяват в прозорец, от който
избираме желаната.
Обикновено този метод създава редица неудобства. Затова, ако е нужно да се водят
партиди, се открива съответна аналитичност по сметката (например дата).
Ако в документа вече е въведена СЪЩАТА СМЕТКА със същите аналитични поднива,
програмата ни предлага: "За повторно записване по
избраните поднива Shift+Enter". Ако не натиснем Shift+Enter,
програмата ни праща на първия ред от документа, в който има записване по
указаните поднива.
Ако в режим на редактиране на сметка променим поднивата, програмата ни праща на
първия от следващите редове, на който има записване по тези поднива. Ако такова
записване няма - праща ни на последния ред (за допълване).
След попълване на аналитичните (задължителните) поднива трябва да изберем "ДЕБИТ" или "КРЕДИТ". Може да го направим със стрелка наляво/надясно и после Enter или направо с натискане на 1 или 2.
Ако сметката е КОЛИЧЕСТВЕНА, трябва да попълним количество и единична цена.
Количеството умножено по единичната цена ни дава сумата, която записваме по
сметката. Важно е да се знае, че системата записва само количеството и сумата.
Ако в бъдеще единичната цена е необходима, тя се изчислява. Това ни дава
възможност да не попълваме единичната цена, а направо да попълним сумата.
Ако сметката е ВАЛУТНА и мярката й не е единица, сумата предлагана от програмата
се получава като умножим количеството по единичната цена (т.е. курса) и разделим
на мярката.
Ако сметката е с ОБРАТНА ЦЕНА (напр. при счетоводство с основна валута различна
от български лев), количеството се дели на цената. Напр. количество от 100 лв.
по курс 2 (лв. за един щатски долар) дава сума от 50 долара.
Преди въвеждане на количеството автоматично се показва НАЛИЧНОТО КОЛИЧЕСТВО.
ПРЕОЦЕНКА на цялото налично количество се извършва с въвеждане на:
- нулево количество,
- новата цена,
- дебит или кредит,
- потвърждаване на сумата, която ни предлага програмата. Трябва да се знае, че
програмата НЕ помни колко е преоцененото количество. Затова е по-добре да се
изпише цялото налично количество и да се заприходи отново по новата цена. Друг
вариант е преоцененото количество да се запише в незадължително поле на
сметката.
Ако последното подниво на количествена сметка е номенклатура с цена, сметката
може да се дефинира така, че да се предлага автоматично ЦЕНАТА ОТ
НОМЕНКЛАТУРАТА.
Може количествената сметка да бъде със "СРЕДНА ЦЕНА". Тогава се предлага
средната цена на наличното количество по избраната аналитичност на сметката в
момента на попълване на документа.
Програмата ни позволява да въведем записване с ненулево количество и нулева
сума. Това означава, че изтриването на количествен ред само с интервал и
Enter на сумата не е достатъчно - трябва да се нулира и количеството (по-бързо е
изтриването с еднократно натискане на Del върху реда).
Следва попълване на СУМАТА. Ако натиснем Ctrl+S, програмата ни въвежда салдото по тази аналитичност (то се вижда в прозорче под полето за въвеждане на сумата, а ако не се вижда, значи се осчетоводява за първи път по избраната аналитичност на сметката).
След попълване на сумата по сметката програмата автоматично ни предлага да попълним НЕАНАЛИТИЧНИТЕ Й (незадължителни) ПОДНИВА (ако такива съществуват). Тяхното попълване не е задължително, но не трябва да се отказваме с Esc. Ако желаем да ги оставим празни, може да натиснем Ctrl+Enter, вместо да минаваме с Enter през всичките.
Ако сметката е АКТИВНА или ПАСИВНА и с въведената сума става "на червено", програмата ни предупреждава, но сумата се записва.
При ТРАНЗИТНА сметка след въвеждане на едно записване автоматично се извършва симетрично записване. Така в документа се въвежда една и съща сума по дебита и по кредита.
Ако по време на описаните стъпки натиснем Esc, се отказваме от току що направените записвания по избраната сметка.
Ако за текущата парола се счита, че текущият месец (или само текущият документ) е заключен
и не се изпълнява бърз макрос започващ с име
След въвеждането на контировката по една сметка, продължаваме със следващите, докато въведем целия документ.
Няма ограничения за реда, вида и броя на записванията с едно изключение:
ако допълваме по дебита количествена сметка предлагаща цена от номенклатурата
и броят на осчетоводените в документа редове е по-голям или равен на стойността
на ключа от регистратурата CashBond\Rows,
програмата ни предупреждава "Касовият бон не може да има повече редове"
и ако сме със слаба парола ни забранява да въвеждаме повече редове.
Това ограничение не важи по време на изпълнение на макрос.
ИЗТРИВАНЕТО на ред от документа става с натискане на клавиша Del (или Delete) или като въведем 0 (най-бързо с интервал и Enter) на количеството (ако съществува) и сумата. За да изтрием целия документ, изтриваме всичките му редове или просто изпълняваме макрос "Изтриване на текущия документ".
Ако веднага след изтриване на ред въведем нов, той се качва на местото на изтрития. Достатъчно е веднага след изтриването да натиснем Esc за да се откажем от това удобство. Автоматичното преместване не важи и в режим на макроси.
В прозореца със записванията в документа може натискайки дясна стрелка да се придвижим до колоната за дебит/кредит или "сума". После натискаме Enter и ПРОМЕНЯМЕ съответно д/к или сумата. За да променим аналитичните поднива или сметката, трябва да изтрием грешното записване и после да въведем вярното.
Ако осчетоводяваме в един документ много дебити срещу много кредити,
записванията трябва да са въведени в такъв ред, че да може мислено да разрежем
документа на части от по един дебит срещу много кредити или един кредит срещу
много дебити, за да получим верни кореспонденции в справка 5.
Сметка - сметка. Предното изречение е в сила и ако вместо дебит запишем
отрицателен кредит (отрицателна сума по кредита) и/или вместо кредит запишем
отрицателен дебит (отрицателна сума по дебита).
Ако излезем с Esc от равнен документ, който не е подреден по това правило,
програмата ще ни издаде съобщение "Много дебити (или отрицателни кредити) срещу
много кредити (или отрицателни дебити). Подредете редовете в документа с Ctrl+стрелка".
Това съобщение не се появява при изпълнение на макрос (но се
появява в браузер при програмиране или проиграване на макрос).
Може да РАЗМЕСТВАМЕ контировките (редовете от документа) с Ctrl + стрелка
нагоре/надолу.
Ако документът не е изравнен, е необходимо да го изравним преди да приключим
с попълването му. Невъзможно е да се излезе с Esc, за да започне попълването на
нов документ, преди текущият да се изравни счетоводно. Но е възможно да се
излезе от неизравнен документ с Alt+F10, F10,
Shift+F10, Alt+F4.
За да преминем към въвеждане на СЛЕДВАЩ ДОКУМЕНТ чрез клавиша Esc стигаме до
поле "№ по ред:". Програмата ни предлага номер с 1 по-голям от последния
номер по ред в папката. (При въвеждане на по-голям номер се появява
съобщението "Твърде голям номер!", на което
отговаряме с Esc). Ако искаме отново да работим с току що въведения № по ред,
натискаме още веднъж Esc (стигаме до папка) и после Enter.
Номерът по ред в старите версии е от 4 символа и заема стойности
от 1 до 9999. След достигане на документ с № по ред 9999 програмата ни предлага
номер A000, а след него A001. След A009 следват номерата от A00A до A00Z, след
A00Z е A010. В последната версия номерът по ред е десет цифрен.
ЗА ДА ПРОМЕНИМ ПАПКАТА ИЛИ МЕСЕЦА И ГОДИНАТА, натискаме няколко пъти Esc.
Всеки документ има и СИСТЕМЕН номер. Той може да се види на първия ред в
Справки: 5. Сметка - сметка. Ако този номер се използва при
прехвърляне на данни между две приложения на програмата, не трябва да се работи
в прехвърлени вече документи.
Системните номера на документите във всеки период започват от 1.
За всеки документ се помнят ДАТАТА и ЧАСЪТ на последната му редакция и номерът на ПАРОЛАТА, с която е бил редактиран (въведен).
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в раздел "13. Дневник на програмата" в CPA1.docx за това как може да проследим точната дата и час на редакция на документите от избрани папки, а за всеки изтрит документ да разберем кой и кога го е изтрил.
Ако желаем да прегледаме някой документ, но без да се запише след проверката
нашата парола (и текущите дата и час), не трябва да натискаме Enter (Ctrl+Enter) след
влизане в сумата на някоя контировка.
За да се запомни промяната на описание на документ е необходимо поне
веднъж да се влезе в произволна контировка и да се даде Enter (Ctrl+Enter) на сумата.
Ако работим в мрежова сесия и някой друг редактира
документа, който ние сме избрали, програмата не ни пуска в него и излиза
съобщението "Заключено".
Ако се опитваме да влезнем в заключен документ чрез макрос
или външна програма 41/42/43. Осчетоводяване от "чужди" (автоматично осчетоводяване),
вместо съобщението "Заключено", в браузер са появява "Програмата се опитва
да влезне в документ заключен от друг потребител.
До 10 секунди другия потребител ще бъде принуден да излезне от документа". В
този случай програмата чака докато се освободи документът, а при другия потребител се появява съобщение в браузер:
За да даде възможност на макрос, стартиран от друг потребител, да влезне на същото място,
програмата натисна Alt+F10.
Възможно е да изпълним произволна справка, която
обработва заключения документ, без да пречим на потребителя, който в момента го редактира.
За някои папки в номенклатура "1. Папки" може да е определено, че принадлежат към даден ТИП ПАПКА от номенклатура "2. Типове папки". В типовете папки може да укажем:
Така може да се реализират различни автоматизирани действия при въвеждането на документи.
Вж. Макроси: слаба парола
Преди да стартираме тази програма е необходимо да влезем в желаната папка и
№ по ред на документ както е описано в Счетоводство: въвеждане на
документи. След това от главното меню (F10) избираме
подменю "1. Въвеждане данни" и от него - точка "2. Преномериране". Появява се
заглавие: "Вмъкване на празен документ / преномериране на папка" и съобщението
"Изпълнение - Shift+Enter". Ако натиснем Shift+Enter,
програмата продължава работата си по един от следните три пътя:
а) ако в папката не съществува документът, чийто номер по ред сме въвели в
Счетоводство: въвеждане на документи, нищо не се извършва.
б) ако номерът по ред на документа е 1, извършва се преномериране на всички документи в
папката с последователни номера.
в) ако номерът по ред на документа е по-голям от 1, той се увеличава с единица и
следващите се преномерират с последователни номера.
В мрежова сесия при
влизане в точката за преномериране на папка излиза съобщението "Заключено".
За да преномерираме папка е необходимо да влезем в локална сесия.
До тази точка от програмата стигаме като от главното меню (F10) изберем подменю "4. Сервизни функции" и от него - "3. Прикл. на месец". За да приключим последния системен месец е необходимо да влезем в локална сесия, иначе в мрежова сесия излиза съобщението "Заключено. Пуснете програмата в локален режим.".
Тази точка от програмата служи за прехвърляне на информацията за:
- крайните салда на текущия към началните салда на следващия месец,
- началните годишни салда от текущия към следващия месец.
За целта, за всяка сметка и партидите й, във всеки отделен месец, се помнят:
- годишно начално салдо по дебита или кредита,
- месечни обороти по дебита и кредита,
- месечен начален дебит =
годишно начално салдо по дебита +
оборотите по дебита от началото на годината до предишния месец включително,
- месечен начален кредит =
годишно начално салдо по кредита +
оборотите по кредита от началото на годината до предишния месец включително.
От тези полета чрез формули се получават началните и крайните месечни салда и натрупаните обороти в справки 2. Сметки
и 4. Неаналитични сметки.
При приключване на месец не се прехвърлят сметки с номера 1,
2 и 3, ако се казват съответно "Дневник на
покупките без 401", "Дневник на продажбите без 411" и "Изчистване на дебита по 1
и 2", както и ако името на сметката завършва на ххх.
Ако сметката НЕ е изрично дефинирана с прехвърляне на нулеви салда, партидите с
нулеви салда не се прехвърлят (ненулевите се прехвърлят винаги).
Ако преди време дадена партида е била с ненулево салдо и е прехвърлена в
следващия месец, а сега е с нулево, след приключване ще се нулира началното
салдо и в следващия месец, но партидата ще продължи да се вижда в следващия
месец в справка 2. Сметки. Може да изчистим партидите с
нулеви начални салда и нулеви обороти от даден месец като го преосчетоводим
(например с макрос "900. Преосчетоводяване на текущия месец").
Ако в момента на нулирането на дадена партида тя не е била прехвърлена в следващите месеци и по-късно
се появи в следващ месец, тя ще бъде с празни начални дебити и кредити. Ако двата месеца са съседни и приключим
на ръка (не чрез макрос) първия месец, в следващия ще се прехвърли информацията от предния месец.
От средата на 2016 г. се въведоха нови индексни файлове за най-използваните сметки
(с формула SUBSTR(A0,0,1), а за BAL2.IDX формулата е SUBSTR(YEAR_DT,0,1)).
Това позволи при приключване на месеца да не се обхождат всички сметки по всичките им партиди, а само тези, които са се
променили от последното приключване досега. Този много бърз режим на приключване работи само ако:
1) в текущия месец съществува файл BAL2.IDX и
2) сме в режим на изпълнение/проиграване на макрос и
3) следващият месец не е празен (заради макроси 900 и 901 за преосчетоводяване на месец).
Дори и ако сметката не е дефинирана с "прехвърляне на нулеви салда" и всички
партиди имат нулево салдо в последния системен месец (без декемдври) и приключим този месец, в
следващия месец ще видим сметката в справка 4. Неаналитични сметки (въпреки че е на нула и не е
прехвърлена нито една партида, която да видим в справка 2. Сметки).
Само ако системният месец е декември, няма да се прехвърли сметка, която е на нула по всички партиди.
Така, ако някоя сметка се е появила епизодично в документ през годината и после
се е закрила, тя ще продължи да се появява в оборотните ведомости до края на
годината и ако остане на нула, ще изчезне от оборотката чак през януари следващата година.
При приключване на декември началните салда за януари следващата година стават и начални годишни салда. Сметката може да е дефинирана така, че партидите да не се прехвърлят при приключване на декември (началните годишни салда остават нулеви).
Ако за първи път приключваме текущия месец, след изпълнението сеансът
автоматично завършва.
Ако за първи път приключваме текущия месец, не е необходимо да променяме полето,
което ни показва края на следващия период. Ако искаме следващия
период да е съставен от няколко месеца
заедно, трябва да въведем последния месец и да натиснем Ctrl+Enter (а не само
Enter).
Ако искаме за първи път да приключим текущия месец, но последният месец на новия
период е след системната дата, трябва да натиснем Ctrl+Enter (а не
само Enter), иначе ни показва съобщението "Датата е
след текущия месец!".
Може да работим в няколко месеца едновременно или да се върнем в по-стар месец за корекция. Но за да получим вярна справка за началните и крайните салда на текущия месец е необходимо да приключим последователно месеците от първия, в който сме променяли нещо до текущия. Текущия месец сменяме както е описано в Счетоводство: въвеждане на документи. Ако е необходимо приключване на предишен месец, на екрана се появява съобщение кой е първият неприключен месец. В мрежова сесия, проверка кой е първият неприключен месец се прави само на влизане в програмата, при редактиране на документи, при приключване на месец и при извикване на автоматичен стринг (Ctrl+D) "8. Дата - първи неприключен месец".
Ако стартираме приключване на месец намирайки се в първия неприключен месец (вж.
автоматичен стринг (Ctrl+D)
"8. Дата - първи неприключен месец") или преди него или ако
програмираме или изпълняваме макрос, програмата ни предлага "За
автоматично приключване до последния месец" да натиснем Shift +
Enter. Това предложение не се появява, ако е зареден макрос
"900. Преосчетоводяване на текущия месец" или "901. Преосчетоводяване на последния месец".
При правене на макроси трябва да отчитаме, че за разлика от локална сесия,
ако в мрежова сесия отговорим утвърдително на въпроса за
автоматично приключване до последния месец, след автоматичното приключване
програмата няма да ни предложи да приключим и последния системен месец, а ще отиде на главно меню.
Ако ключът от регистратурата LockEndedPeriod е 1, при приключване на месеца
програмата автоматично го заключва.
Изпълнението на тази точка се извършва чрез външни програми 2. Заключване / отключване на месец и 132. Заключване / отключване на документ. Те се отнасят съответно за текущия месец или текущия документ и са достъпни само за паролите на администратора на системата и парола № 3 (независимо от нивото й на достъп). Външна програма 132 е достъпна за всички пароли при изпълнение на бърз макрос.
На влизане в "2. Заключване / отключване на месец" се появява меню "1. Отключен, 2. Заключен, 3. Отказ", като ако
текущият месец е отключен, автоматично е избрано
За паролите на администратора на системата и парола № 3, месецът винаги се счита за отключен (въпреки, че реално може и да е заключен). Ако работим със слаба парола различна от № 3, в месец преди предпоследния системен месец, месецът се счита за заключен (въпреки, че реално може и да е отключен). Вж. по-долу и обяснението за бърз макрос започващ с име !Продължение. Ако работим с парола № 98 или № 99, всеки месец се счита за заключен и при влизане в програмата излиза съобщение "С тази парола не може да се променя базата данни.". Ако е зареден макрос 10002, е отключено редактирането на номенклатури (за да може да се направи запис на текущото меню в номенклатура 108).
След попълване в полето за външна програма на "132. Заключване / отключване на документ",
1) ако натиснем Enter, програмата стартира слабо заключване, а
2) ако натиснем Ctrl+Enter, програмата стартира силно заключване.
И в двата случая, ако няма текущ документ, програмата изсвирва и спира макроса. Иначе отива в текущия документ и се появява меню:
1) "1. #Отключен, 2. #Заключен, 3. Отказ" или
2) "1. !Отключен, 2. !Заключен, 3. Отказ".
После:
1) ако текущият документ е отключен, автоматично е избрано
2) ако текущият документ е отключен или слабо заключен, автоматично е избрано
Ако документът е силно заключен и опитаме отключване или слабо заключване, програмата счита, че все едно сме избрали отказ - т.е. нищо не се променя.
Ако документът е слабо заключен и минем през силно отключване, той си остава слабо заключен.
След като изберем заключване/отключване или отказ, програмата ни оставя в документа.
За да се определи дали текущият документ се счита за заключен, първо се гледа дали за тази парола е заключен месецът и:
- ако е - се счита, че документът е заключен независимо дали е индивидуално заключен (чрез външна програма 132),
- ако не е - се гледа дали се счита за заключен самият документ според следващите обяснения.
Слабо заключените документи се считат за отключени за паролите на администратора на системата и парола № 3,
подобно на заключването на месец. Силното заключване важи за всички пароли (включително за администратора на
системата и парола № 3). То се използва при макроса за окончателно приключване на продажба.
В Справки: 3. Документи часът на слабо заключените документи се изписва във формат чч;мм
(с точка и запетая, вместо с двуеточие: чч:мм).
В Справки: 3. Документи часът на силно заключените документи се изписва във формат чч|мм
(с прекъсната вертикална черта, вместо с двуеточие: чч:мм). Чрез промяна на символа между чч и мм в часа на документа може да се заключват документи
и през автоматично осчетоводяване, но не може да се отключат ако за текущата парола са заключени.
Ако автоматично осчетоводяване се опита да пише в заключен за дадената парола документ, то спира и следващите автоматични
осчетоводявания не се извършват и се издава съобщение в браузер къде е записан грешният файл за осчетоводяване (за разлика от останалите грешки, при
които автоматичното осчетоводяване продължава до последния ред за осчетоводяване).
При влизане в слабо заключен документ, ако за дадената парола се счита за заключен, под номера му се появява
Заключено, иначе се появява само #.
При влизане в силно заключен документ, под номера му се появява Заключен!.
Ако слабо заключен документ се промени (от парола, за която не е заключен), той се отключва.
На излизане от заключен документ връща заключеността на "счита ли се за заключен месецът за дадената парола" (което влияе на редакция на
номенклатури или влизане в незаключен документ).
За паролите, за които месецът/документът се счита за заключен, се забранява промяната на документи и номенклатури като излиза
съобщение "Месецът е заключен" или "Заключено" и макросът
прекъсва. При изпълнение на бърз макрос НЕ започващ с име
Когато макрос спре принудително след изсвирване (вкл. и заради заключен месец/документ), цялата "десятка" макроси се подменя от един макрос
"7. Отказ, към главно меню". Това не важи:
- ако сме с администраторска парола или
- ако се случи по време на макрос, който може да стартираме ръчно (името му не започва с точка,
Ако не сме с пароли 98 и 99, независимо дали месецът/документът се счита за заключен, програмата може да работи навсякъде по време на
изпълнение на бърз макрос започващ с име
а) 10002. Начало на Уни (след като се стартира се променя името на макроса Alt+1) и 10003. Избор от меню,
б) 10758. Осчетоводяване на последни цени с ДДС (при справка продажби 13 например),
в) 19048. Продажби Изписване на група 30 (счетоводно) / сметка 31 (в Уни) - не променя заключеността на документите,
г) 19030. и 20094. Повторен печат на доставка/продажба в Уни - не променя заключеността на документите.
Програмата проверява дали текущият месец е заключен само в началото на сеанса и при смяна на месеца. Така че, ако някой работи и друг заключи същия месец, може първият да продължи да си работи без проблем до края на сеанса.
За паролите на администратора на системата и парола № 3 е достъпен макрос "103. Заключване на всички месеци без последния".
При възстановяване на данните след грешка в мрежова сесия, ако даден месец е заключен и няма файлове с вдигнат архивен флаг, файловете от месеца не се копират от CpaGoZip в Cpa директорията, което много забързва автоматичното възстановяване.
Ако ключът от регистратурата LockEndedPeriod е 1, при приключване на месеца го заключва.
За паролите, за които месецът се счита за заключен, програмата не проверява дали е правен запис на пред-пред-последния сеанс.
Ако искаме да заключим дадено приложение, но да може да правим справки в него:
1) Заключваме всичките му месеци.
2) В макрос 10002. Начало на "Уни" заменяме съдържанието на клавиши 7. Старт на "Уни" и 9. .! с Alt+0 (в редактора
на макроси ще го видим като a0).
Така заключваме приложението за всички пароли без паролите на администратора на системата и парола № 3. За специалистите от
"СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в CPA1.docx
(вж. NOTCOPY.MNT) за това как да се заключи месец включително и за администраторските пароли и парола № 3.
Програмата притежава свръхмощен генератор на отчети, с чиято помощ може да се правят произволни справки.
Често използваните или сложни справки са запомнени като макроси и може да се извикат чрез Макроси: зареждане от диск (Shift+F3):
Програмата се настройва изцяло според изискванията на потребителя. За модул "Счетоводство" това касае:
и др.
Освен споменатите в предните две точки, чрез Макроси: зареждане от диск (Shift+F3) може да заредим и после изпълним следните полезни макроси:
Ако от главното меню (F10) изберем подменю "2. Справки",
може да влезем в една от следните точки:
Справки: 1. Номенклатури,
Справки: 2. Сметки,
Справки: 3. Документи,
Справки: 4. Неаналитични сметки,
Справки: 5. Сметка - сметка,
Справки: 6. Акумулирана,
Справки: 7. Чужди данни,
Справки: 8. Последна - екран,
Макроси: зареждане от диск (Shift+F3).
Чрез последната точка може да заредим и изпълним готови справки, а чрез
останалите - да конструираме сами произволно сложна справка. Следващите
обяснения са за тези осем разклонения на мощния
ГЕНЕРАТОР НА ОТЧЕТИ
(справки). Ако все още сме неопитни и се притесняваме да не сгрешим, трябва да
знаем, че чрез справките не може да се повреди информацията в системата по
никакъв начин. Ето защо, може спокойно да експериментираме докато се научим.
Ако работим с DOS версията на програмата и в Параметри на
системата (F11) е нагласен (Alt+P) Принтер номер на 9,
програмата няма да ни пуска да правим справки (със съобщението "Заключено")
докато не променим номера на принтера от 9 на 0 (или 1).
След като изберем за какво ще правим справка, стигаме до конкретна таблица за справка, попълнена с полетата, по които ще съставим отчета. Таблицата може да редактираме както е описано в Справки: таблица за справка. За край на редакцията натискаме Ctrl+Enter.
След това в зависимост от таблицата програмата ни задава някои въпроси описани в:
Справки: от даден месец, година насам,
Справки: сортиране,
Справки: само суми,
Справки: с междинни суми.
После ни предлага да стартираме справката. Това е последната възможност да
променим някои от параметрите на справката чрез Параметри на системата (F11).
Следва:
Справки: преглед на екран и редактиране,
Справки: печат.
Построяването на всяка справка може да запомним за бъдеща употреба. Вж.
Таблици: записване на диск (Ctrl+F4) и Макроси: въведение.
Може да "залепим" няколко справки както е описано в Справка "залепени".
Може да натрупаме данните от няколко справки с еднакви по име
и тип колони според обясненията в Справки: 6. Акумулирана.
Има и редица други възможности описани във външни програми.
Ако стартирането на справка предизвиква изхвърлянето ни от програмата, проблемът
може да бъде решен от специалистите на "СиПиЪкаунтинг" ЕООД. За тях са достъпни
допълнителни обяснения в точки 1 и 3 от CPA2.docx.
До тази точка се стига като от главното меню (F10) изберем подменю "2. Справки".
Необходимо е да въведем номера на номенклатурата, за която ще правим справката.
Вж. Номенклатури: избор на елемент. След това се появява
таблицата с полетата на номенклатурата и продължаваме както е описано в Справки: въведение.
До тази точка се стига като от главното меню (F10) изберем подменю "2. Справки".
Необходимо е да въведем номера на сметката, за която ще правим справката. Вж.
Номенклатури: избор на елемент. Може да въведем само сметка с
аналитични поднива (иначе програмата изсвирва). За сметките без аналитични поднива може да
направим справка в Справки: 4. Неаналитични сметки и
Справки: 5. Сметка - сметка.
След това се появява таблицата с полетата на сметката и някои готови формули и продължаваме както е описано в
Справки: въведение.
В тази точка може да получим сума на натрупаните обороти за цялата сметка по-малка от натрупаните обороти по сметката получени в Справки: 4. Неаналитични сметки. Обяснението е, че закритите партиди по сметката не се прехвърлят с следващ месец и затова техните натрупани обороти не се отчитат в следващите месеци. Оборотите по закритите партиди от предни месеци може да видим чрез Справки: 5. Сметка - сметка, а най-пълна информация може да получим от Уни справките: Главно меню --> Справки --> Счетоводни справки --> 18. Оборотка / хронология на сметка.
За да изключим от справката партидите с нулеви салда, в реда на полето "д - к" поставяме # в колоната за условие по отношение на нулата.
До тази точка се стига като от главното меню (F10) изберем подменю "2. Справки".
След избирането й се появява таблица със следните полета:
- папка,
- <-№ (№ по ред на документа в папката) - в старите версии, ако искаме да ограничим
справката за документ с номер по-малък от 1000,
трябва да го въведем дясно изравнен,
- дебит - сумарния дебит по документа,
- кредит - сумарния кредит по документа,
- разлика - ако поставим ограничение различно от 0
на тази формула, ще получим неравнените документи
(тези със сумарен дебит различен от сумарния им кредит),
- тип на документа, номер, дата на осчетоводяване и текст - полета от описанието на документа (вж.
Счетоводство: въвеждане на документи),
- редактиран на - системна дата на последната промяна на документа.
Както за това, така и за следващите две полета, се счита, че има "промяна на
документа", ако е добавен нов ред или на някой ред е променено количество, д/к или
сума. Т.е., само промяна на описанието на документа, промяна на някое незадължително
поле или разместване на редове (с Ctrl + стрелка нагоре/надолу), не променя тези 3 полета
("редактиран на", "час" и "парола №").
- час - текущият компютърен час на последната промяна на документа,
- парола № - номер на паролата (а не самата парола) на потребителя, който последно е редактирал документа; сочи към номенклатура
"108. Параметри на пароли" (вж. автоматичен стринг (Ctrl+D) "20. Парола - номер по ред"),
- ггггмм - година и месец, в който е осчетоводен документът. В старите версии, ако се намали ширината
му, не показва първите две цифри на годината.
Продължаваме както е описано в Справки: въведение.
До тази точка се стига като от главното меню (F10) изберем
подменю "2. Справки".
След избирането й се появява таблицата за справка с обобщени данни по всички
сметки (вкл. и за тези с аналитични поднива). Продължаваме както е описано в
Справки: въведение.
Тази точка от програмата служи за получаване на оборотна ведомост, ОПР, баланс и
други обобщени справки.
Ако някоя сметка се е появила епизодично в документ през годината и после се е закрила, тя ще продължи да се появява в оборотните ведомости до края на годината (въпреки че е на нула и след приключване на месец не е прехвърлена нито една партида, която да видим в справка 2. Сметки). Ако остане на нула, сметката ще изчезне от оборотката чак през януари следващата година (след първото приключване на декември тази година).
Тази точка от програмата обработва записванията по документите. До нея може да се стигне като от главното меню (F10) изберем подменю "2. Справки". Това е най-мощното разклонение на ГЕНЕРАТОРА НА ОТЧЕТИ (справки).
Изборът на сметка, по която ще направим справката, се извършва според Номенклатури: избор на елемент. Имаме възможност да изберем една, две или нито една сметка и получаваме три различни варианта на таблицата за справка:
Във втория вариант последните две полета от таблицата
"к.с-ка" и
"д/к"
показват кореспондиращата сметка
и дали тя е по дебита или по кредита. Ако някое
от тези две полета е включено в справката или ако е
разгънато полето "к.с-ка" (без дори да е включено и едно поле от появилите
се след разгъването), програмата ще покаже за указаната в
началото на справката сметка всичките й кореспонденции. Надолу името "д/к" се
отнася до последното поле в таблицата, а не до по-горното (указващо дали
основната сметка е по дебита или по кредита).
Например, нека имаме документ със следните осчетоводявания:
дебит по с-ка 304 за 100 лв.
дебит по с-ка 304 за 200 лв.
дебит по с-ка 4531 за 60 лв.
кредит по с-ка 401 за 360 лв.
Нека пуснем справка "Сметка - сметка" с указана първа сметка 401, втора сметка
празна. Нека са включени полетата "к.с-ка" и "д/к" и да се сумира по полетата
"сума д-т" и "сума к-т". Тогава справката върху примерния документ би имала
следните редове:
сума д-т | сума к-т | к.с-ка | д/к |
100.00 | 304 | д | |
200.00 | 304 | д | |
60.00 | 4531 | д | |
360.00 |
Както виждаме, сумата от 360 лв. по сметка 401 се е разпределила по редове на
сумите, с които кореспондира с другите сметки.
При разгъване на количествена сметка, която е въведена в първото поле при старта
на справката, се появяват формули "колич.д-т", "колич.к-т" и цена.
Десетите на първите две формули са равни на десетите на
полето количество. Ако за някоя от тези формули не съществува необходимият
операнд (изтрито е например д/к), той не се попълва и формулата се изключва от справката.
Ако основната сметка, по която правим справката е количествена, полето
количество ще бъде разпределено по редовете на справката пропорционално на
разпределянето на полето сума. В такъв случай, ако се получи грешка от
закръгляване, трябва да се увеличат десетите на полето количество.
Количеството не се разпределя за сметка въведена във второто поле при старта на
справката. Ето защо и при разгъването на такава сметка не се появяват формулите
"колич.д-т", "колич.к-т" и цена.
Ако документът е неравнен, програмата попълва кореспондиращата сметка с
въпросителни. Ето защо, ако са попълнени вярно сметките на контрагента и ДДС,
дори и да не са равнени документите, готовите справки за дневниците по ДДС ще бъдат верни.
Ако дадена контировка на основната сметка е със сума 0, в полето "к.с-ка" се
попълва "сума0".
Ако основната сметка участва на няколко реда в един документ и е включено някое
от полетата "к.с-ка" и "д/к", в справката първо излизат кореспонденциите дебит
(или -кредит) срещу кредит (или -дебит) и после противоположните (кредит срещу дебит).
Ако поставим ограничения върху полето "к.с-ка", но не го включим в справката, ще
получим празна справка. За да е вярна справката, трябва да
разгънем полето "к.с-ка" (то се преименува автоматично на "к.с-ка-->") и да
поставим ограниченията върху полето под него (полученото от разгъването поле "к.с-ка").
За да се получат верни кореспонденции (вкл. за да е точна готовата справка
"Главна книга"), ако осчетоводяваме в един документ
много дебити срещу много кредити, записванията трябва да са въведени в такъв ред, че да може мислено
да разрежем документа на части от по един дебит срещу много кредити или един
кредит срещу много дебити. Предното изречение важи и ако вместо дебит запишем
отрицателен кредит (отрицателна сума по кредита) и/или вместо кредит запишем
отрицателен дебит (отрицателна сума по дебита).
Първото поле "документ" от таблицата за справка представлява
системния номер на документа.
Ако този номер се използва при прехвърляне на данни между две
приложения на програмата (както е в по-старите приложения), не трябва да се редактират прехвърлени вече документи.
Системните номера на документите във всеки период започват от 1.
Ако разгънем системния номер на документа (т.е. първото поле
"документ"), то тогава се включват и основните данни на документите, които може да видим и чрез
Справки: 3. Документи.
При разгъване на поле
"с-ка" или
"к.с-ка" се включват
всички задължителни и незадължителни аналитични поднива на сметките и полето
количество. Имената на задължителните поднива започват със
"з" и номер на поднивото, а на незадължителните - с "н".
Ако някое от поднивата е номенклатура - показват се номера, името и презимето на
номенклатурата. Например за първото задължително поле: "з1 №", "з1 -" и "з1 .".
Нека при влизане в справка "5. Сметка - сметка" оставим първото поле за
въвеждане на сметка празно, натиснем Enter и след появата на таблицата за справка натиснем
Shift+Enter. Програмата автоматично ще разгъне полетата
"документ" и "с-ка" подготвяйки таблицата за справка, която съдържа цялата информация от
документите с цел автоматичното им преосчетоводяване в друг месец, папка или друго
приложение. По-подробно за тази техника може да прочетем в описанието на външна
програма 41/42/43. Осчетоводяване от "чужди" (автоматично осчетоводяване).
Ако се разгъне полето "салда" от таблицата за справка (в случай че сме посочили поне една сметка при избора на "сметка - сметка"), се включват и натрупаните данни по сметката, които може да видим и чрез Справки: 2. Сметки. Забележете, че включените полета са със знак за средно аритметично '≡'. Ако оставим този знак, трябва да сортираме справката по всичките й аналитични поднива и на междинните сумарни редове ще се получат точно салдата на всяка партида.
Ако за някоя партида има ред в справката получена от "2. Сметки", но няма
контировка в текущия месец, за нея все пак се появява един ред в справката
("сметка - сметка" с включени "салда"), но на този ред в полетата получени от
разгъването на "документ" има въпросителни.
В същия случай, ако сме включили в справката полетата на аналитичните поднива получени от
разгъването на номера на сметката, те също ще имат въпросителни. Ето защо, при разгъване на "салда" не
би трябвало да се разгъва номера на сметката.
Ако при разгънати "салда" (дори да няма нито едно включено поле от получените при разгъването), пуснем справка от преден месец до текущия, за предните месеци излизат само контировките, в които участват партидите по сметката с ненулеви салда в текущия месец.
Пример: нека да подготвим таблица за справка на движението по незакритите фактури на с-ка 401. Доставчици (считаме, че работим с примерния сметкоплан). Отиваме на справка "5. Сметка - сметка", попълваме сметка 401 в първото поле, а второто оставяме празно. Получаваме таблица със следните полета:
√ | име на поле | т | ∑ |
---|---|---|---|
документ | ↔ | ||
401 | ↔ | ||
салда | ↔ | ||
д/к | т | ||
сума | ч | ||
√ | сума д-т | = | ∑ |
√ | сума к-т | = | ∑ |
√ | к. с-ка | ↔ | |
√ | д/к | т |
Разгъваме полетата документ и салда.
НЕ разгъваме 401 за да не получим въпросителни в параметрите (доставчик,
"№ на документа", дата и падеж) на фактурите, които нямат движение в текущия месец, но имат ненулево салдо.
След това разгъваме и полето доставчик (получено от разгъването на полето салда).
Включваме едни и изключваме други полета докато получим следната таблица:
√ | име на поле | т | ∑ |
---|---|---|---|
документ | ↕ | ||
√ | папка | ↔ | |
√ | <-№ | ч | |
. . . . . . . . . . . | |||
√ | ггггмм | ч | |
401 | ↔ | ||
салда | ↕ | ||
доставчик | ↕ | ||
√ | № / Ид. № | ч | |
√ | доставчик | т | |
. . . . . . . . . . . | |||
√ | № на документа | т | |
√ | дата | д | |
√ | падеж | д | |
. . . . . . . . . . . | |||
√ | салдо д-т | = | ≡ |
√ | салдо к-т | = | ≡ |
. . . . . . . . . . . | |||
д - к | = | ||
к - д | = | ||
. . . . . . . . . . . | |||
д/к | т | ||
сума | ч | ||
√ | сума д-т | = | ∑ |
√ | сума к-т | = | ∑ |
√ | к. с-ка | ↔ | |
√ | д/к | т |
В реда на полето "д - к" поставяме # в колоната за условие по отношение на нулата, с което ще ограничим в текущия месец да се покажат само фактурите с ненулеви салда. Ако стартираме справката от преден месец до текущия, за предните месеци дори и да не поставим условието (#) ще се покажат само тези фактури, които в настоящия месец са с ненулеви салда.
Заставаме на реда на полето "№ / Ид. №" и стартираме справката като
сортираме по 5 полета ("№ / Ид. №", доставчик, "№ на документа", дата, падеж),
с междинни суми. Ако полето доставчик не е включено, сортираме по 4 полета.
Ако искаме справката да е сортирана не по номера, а по името на доставчика, разменяме местата на
полетата "№ / Ид. №" и доставчик.
Ако не сортираме по всички аналитичности на фактурата (т.е по 5 полета, ако е
включено полето доставчик или по 4, ако "доставчик" не е включено), трябва да изключим
знака за средно аритметично '≡' на полетата "салдо д-т" и "салдо к-т".
Ако ще пускаме справката само за текущия месец (без предни месеци), може да изключим
полето ггггмм, в което се показва годината и месеца, в който е осчетоводен документа.
Не може да разгънем сметката или полето "салда" за сметка без аналитичности. Опитът да разгънем такова поле не прекъсва макрос.
При разгъване на номенклатура от таблицата се виждат и полета, които може да получим в Справки: 1. Номенклатури.
Продължаваме както е описано в Справки: въведение.
До тази точка се стига като от главното меню (F10) изберем подменю "2. Справки". Преди да стигнем дотук е необходимо чрез други справки да създадем акумулирана, което е обяснено в следващите редове.
Може да натрупаме данни от различни справки (с ЕДНАКВИ по
име и ширина
колони) на едно място и след това да ги обработим като една
акумулирана справка.
Натрупването се извършва когато по време на стартиране на дадена
справка е включен параметърът "(Alt+U) Акумулиране / Припокриване само с пълни /
Изтриване / Припокриване" (от Параметри на системата (F11)) в режим
"2.Акумулиране". Ако временно го изключим и после пак включим - продължава
натрупването към предишната акумулирана справка. За да започнем акумулиране
отначало - включваме параметъра "(Alt+A) 2. Нова акумулирана/залепена". Този параметър се самоизключва веднага
след пускането на следващата справка.
След като пуснем справките, чиито данни желаем да натрупаме, може да направим
справка върху натрупаните данни. За целта избираме точка "6. Акумулирана" от
подменю "2. Справки" от главното меню (F10) на системата.
Натрупват се само данните от видимите в справките редове. Редът с крайните суми не се натрупва. Редовете с междинни суми се натрупват САМО ако справката е пусната в режим "само суми" и "с междинни суми".
Натрупване не се извършва докато работим в точки "8. Последна - екран" или "6. Акумулирана" от подменю "2. Справки" от главното меню (F10) на системата.
Ако се получи несъответствие между акумулираните справки, излиза съобщението
"Различно име или ширина на поле №" и
вляво на долната рамка на програмата се показва номерът на първото по ред различно (по
име и/или ширина) поле.
Ако съобщението е "Различни ширини на поле №",
трябва да направим ширината на полето равна на първичната му
ширина (в базата данни), която може да проверим в полетата долна
и горна граница ("[от........." и "........до]"). Може с натискане на
Alt+- (минусът е от цифровата част на клавиатурата вдясно от Enter) да
намалим ширините на всички полета в таблицата до първичната им ширина (каквато е в базата данни).
Продължаваме както е описано в Справки: въведение.
Припокрита справка е разновидност на акумулираната. Ако при включване на параметъра "(Alt+A) 2. Нова акумулирана/залепена", параметъра "(Alt+U) Акумулиране / Припокриване само с пълни / Изтриване / Припокриване" се включи на "3. Припокриване само с пълни" или на "5. Припокриване", се създава акумулирана справка сортирана по първото поле, която наричаме припокрита.
Ако след това пуснем справка с включен параметър "3. Припокриване само с пълни" или "5. Припокриване", за
всеки ред Х от тази справка програмата търси чрез сортировката всички редове от припокритата справка, за които
първото поле е едно и също (т.е. сортировката не игнорира водещи интервали и големи и малки букви, също както ако
е "3. Да" параметър (Alt+W) ASCII сортировка) с това на реда Х
и в тези редове записва всички непразни полета от реда Х, а при "5. Припокриване" - и празните полета.
След това може да акумулираме. Следващо припокриване работи само след записите от предишното, ако по време на припокриването не е включен
параметъра "(Alt+A) 3. Припокрий отначало". Ако по време на припокриването е включен въпросният параметър,
припокриването се извършва върху всички записи.
(Alt+U) - може да е 3 или 5, само ако при стартирането на (Alt+A) 2. Нова акумулирана/залепена
Alt+U е било 3 или 5.
Получаването на съобщение "Няма стартирано припокриване"
означава, че първата акумулирана справка не е била пусната в режим на
"припокриване" (а само на "акумулиране").
Ако пуснем справка с параметър "(Alt+U) Акумулиране /
Припокриване само с пълни / Изтриване / Припокриване" включен на "4. Изтриване", от съществуващата
припокрита справка ще се изтрият всички редове, които имат точно копие в
текущата справка. Т.е. в припокритата ще останат само редове, които не се срещат в текущата справка. След това може да акумулираме.
(Alt+U) - може да е 4, само ако при стартирането на (Alt+A) 2. Нова акумулирана/залепена
Alt+U е било 3 или 5.
Справка само с редове, които отговарят на индекса.
Вж. параметрите описани в (Alt+V) Справка само с редове, които отговарят на индекса от
Параметри на системата (F11).
До тази точка се стига като от главното меню (F10) изберем подменю "2. Справки".
За да може да направим справка, трябва предварително да сме изпълнили някоя от следните външни програми:
6. От импорт към чужди данни,
7. От справка към чужди данни,
19/20/27/35. От toCpa.dbf към "чужди",
24/25. От Fixed width toCpa.txt към "чужди",
47/48. От Delimited toCpa.txt към "чужди".
Продължаваме както е описано в Справки: въведение.
Чрез външна програма "7. От справка към чужди данни" копираме базата данни на
последната изпълнена справка в базата данни на справка "Чужди данни". Преди това
може да променим формата на базата данни чрез
26. От "последна" към справка - през Alt+F8 или
51. От "последна" към справка - 1 към 1.
Аналог на "7. От справка към чужди данни" са външни програми:
70. От справка към "чужди 0", ... , 79. От справка към "чужди 9",
110. От справка към "чужди 10", ... , 119. От справка към "чужди 19".
Те създават временни копия в "чужди 0", ... , "чужди 9", които може по-късно да
използваме с извикването на съответната външна програма от групата:
80. От "чужди 0" към "чужди", ... , 89. От "чужди 9" към "чужди",
120. От "чужди 10" към "чужди", ... , 129. От "чужди 19" към "чужди".
Тази техника е много удобна при организиране на макроси от
няколко стъпки, с възможност за стъпка назад.
Ако на произволно място в таблицата за справка натиснем Shift+Enter и на въпроса "За вмъкване на формула - Shift+Enter" отговорим с Shift+Enter, програмата автоматично ще създаде всички необходими формули за 41/42/43. Осчетоводяване от "чужди" (автоматично осчетоводяване).
Вж. и външна програма 56. От "чужди" към номенклатура.
Извикването на тази точка става като от главното меню (F10)
изберем "2. Справки" и оттам "8. Последна - екран". След това излиза
хоризонтално меню с три възможности:
1. Последна
Тази точка дава резултат, ако от началото на сеанса сме направили поне една
справка. Тогава последната изпълнена справка се появява на екрана и може да я
прегледаме или редактираме. Важат обясненията от Справки: преглед
на екран и редактиране със следните изключения:
- не може да минем в режим на табулация,
- при преглед натискането на Ctrl+PgUp и Ctrl+PgDn ни завежда на първия и
последния ред от справката, а натискането на Home и End - в началото и в края на реда.
2. Записване
Може да запишем като текст
последната изпълнена справка. Ако даде "Заключено", причината може да е липсата на папка
съответна на текущия език. Вж. 68. Промяна на "Парола - език".
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в раздел "13. Дневник на програмата" в
CPA1.docx за това как може да проследим точните дата, час и кой потребител
е записал на диска даден текст.
3. Зареждане
Може да заредим текст
върху предишната последна изпълнена справка. Вж. 68. Промяна на "Парола - език".
Ако сме включили параметъра "(Alt+Z) Залепване на справки"
от Параметри на системата (F11) вместо последната изпълнена
справка в точка "1. Последна" се появява справка "залепени".
Вж.:
Справки: печат,
Справки: въведение,
Управляващ текст: зареждане (Shift+F12).
Може да заредим предварително програмирана справка (макрос) както е описано в Макроси: зареждане от диск (Shift+F3).
Вж. Справки: въведение. След избирането на точки от 1 до 7
от подменю "2. Справки" на главното меню (F10), на екрана се
появяват всички полета на съответната
таблица за справка с
техните характеристики. Може да се движим по
полетата (редовете) и
по характеристиките (колоните)
и да ги променяме по свое желание. Промяната на отделните характеристики по реда
на колоните е описана в следните раздели:
Справки: поле: включване,
Справки: поле: преместване,
Справки: поле: изтриване,
Справки: поле: име,
Справки: поле: долна/горна граница,
Справки: поле: сравнение с 0,
Справки: поле: сума,
Справки: поле: тип,
Справки: поле: формула,
Справки: поле: ширина,
Справки: поле: десети.
След като редактираме таблицата за справка минаваме нататък с натискане на
Ctrl+Enter (или бутона "OK" в Windows версията) или се отказваме с Esc.
Когато подготвим подходяща таблица за текущата справка може да я запишем на
твърдия диск за бъдеща употреба според Таблици: записване на диск
(Ctrl+F4). По-късно може да я заредим според Таблици: зареждане от диск (Ctrl+F3). За специалистите
от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в раздел "13. Дневник на програмата" в
CPA1.docx за
това как може да проследим точните дата, час и кой потребител е записал на диска дадена таблица.
Нека се преместим (най-бързо с натискане на клавиша Home) върху
първата колона (√) в таблица за справка. Ако в нея има знак
'√', това означава, че полето ще влезне в справката, а ако е празно - няма
да влезне. Може да изключим полето от
справката с натискане на клавиша Enter и пак с Enter да го
включим. Вместо Enter
може да използваме интервал. Ако се изключи поле, което се сумира,
то се изключва и сумирането.
С натискане на Ctrl+интервал:
- ако има поне едно включено поле, се изключват всички полета от таблицата за справка,
- иначе (няма нито едно включено поле) - се включват всички полета.
В Справки: поле: изтриване е описано как може да променим знака от '√' или ' ' (празно) на '#', '+', '^' или '!' за получаване на заключено поле, скрито поле, форматирано поле, формула за проверка и меню.
Нека се преместим върху втората колона (№) в таблица за справка. Там се намира номерът на полето. Ако натиснем Enter, минаваме в режим на местене на полето. Тогава със стрелките за местене надолу или нагоре, PgUp, PgDn, Ctrl+PgUp или Ctrl+PgDn го поставяме на желаното място и отново натискаме Enter. Може с мишката направо да щракнем върху желаното място. При преместване се променя и номера на полето, включително и във формулите, в които участва.
Нека се преместим върху третата колона (◄─№)
в таблица за справка. След натискане на Enter (или интервал) се появява
съобщение за изтриване на полето. Ако отговорим утвърдително, полето изчезва от
прозореца. Препоръчва се да не се изтриват полетата, които програмата сама ни е
показала (след разгъване на номенклатура или някои
вградени формули). Така ще може по-лесно да поправяме запомнените таблици за справка.
Ако се изтрие поле, от което зависят и други полета (например е от
тип номенклатура или участва във формула),
то и те автоматично се изтриват.
Може да изтрием полето, намирайки се в произволна друга колона, с натискане
на клавиша Del (Delete).
Ако полето е формула със знак ?, няма да може да го изтрием с Enter (защото тогава влизаме в режим на редакция на полето), а само с интервал или Del.
Ако натиснем Enter (интервал или Del), но не изтрием полето, знакът в първата колона (показващ дали полето е включено в справката) се променя така:
Ако справката се състои само от:
- едно заключено поле (имащо знак '#' в колоната за включване в справката) и
- едно или повече скрити полета (имащи знак '+' в колоната за включване в справката) и
- няма сумиране,
при преминаване към редакция в режим на табулация
справката се превръща в меню.
Менюто автоматично се центрира и не се страницира.
Избор на точка от менюто става с Enter или щракване на мишката върху избрания
ред или с натискане на цифра (от 1 до 9). Добре е точките от менюто да са
номерирани последователно с цели положителни числа започвайки от 1, защото при
избор с цифра програмата не гледа съдържанието на точката (т.е. с каква цифра
започва), а на кой номер ред се намира. Ако при натискането на цифра, има само
един ред от менюто, който започва с тази цифра, той се избира веднага. Ако съществува повече
от един ред започващ с натиснатата цифра, програмата ни позиционира на следващия такъв
(а след последния - на първия) и може да го изберем с Enter или с мишката.
След избора на точка от менюто програмата автоматично стартира макрос
Alt+1, който би трябвало да започне с Ctrl+Enter, Tab, Tab, за да
се покажат скритите полета от справката.
При отказ от менюто с Esc (но не по време на макрос):
- ако има макрос Alt+5 с име "Отказ -> назад", или Alt+6 с
име "Отказ -> назад", или Alt+6 с име "Стъпка назад", първия намерен се изпълнява,
- в противен случай, ако има макрос Alt+7 с име "Отказ -> главно меню", той се изпълнява,
- в противен случай, нищо не се прави.
В режим на текстов редактор може да се редактират редовете от менюто над и под
таблицата, частта от видимото поле в таблицата, а най-горната и най-долната
оградка не може да се редактират. Добре е, за по-красиво изобразяване на менюто,
да се изтрият втория и третия ред на антетката.
Нека се преместим върху четвъртата колона (име на поле) в
таблица за справка. След натискане на Enter може да променим името на полето
в антетката на справката. След промяната натискаме отново Enter или се отказваме
с Esc.
За полета включени в справката, програмата ни позволява да въведем име с
ширина не по-голяма от ширината на полето. За останалите полета, както и ако е включен
параметър "(Alt+E) Справка в една колона" от
Параметри на системата (F11), програмата ни позволява да
използваме за име на поле всичките 15 символа.
Програмата не допуска еднакви имена на полета и докато не въведем име различно
от всички останали - не ни пуска да продължим.
Примери на някои системни имена може да видим в Справки: 5.
Сметка - сметка и Справки: поле: долна/горна граница.
Ако искаме името да се използва за име на поле в dbf файла на справката:
- имената на полетата трябва да започват с главна буква на латиница,
- могат да съдържат главни латински букви, подчертавки и/или цифри,
- иначе името на полето в dbf файла се формира служебно.
Нека се преместим върху петата ("[от.........") или шестата ("........до]")
колона в таблица за справка. Тук може да определим в какви
граници да варира полето за справката. Може да определим само долна граница
("[от.........") или само горна граница ("........до]") или и двете граници.
Примери:
[100 , 200] означава: "по-голямо или равно на 100 И по-малко или равно на 200"
[200 , 100] означава: "по-голямо или равно на 200 ИЛИ по-малко или равно на
100".
При попълване на ред от справката се гледа дали полетата му отговарят на
поставените условия и ако не отговарят - този ред не се включва в справката.
Символните полета се сравняват след преобразуване в главни букви. Например
"салата", "СаЛаТа" и "Салата" за програмата е все едно е написано "САЛАТА". В
общия случай не се прави и разлика между кирилица и латиница с изключение на
следните два случая:
- долната и горната граници са еднакви,
- полето е номер по ред на документ от справка 3.
Документи или 5. Сметка - сметка (това ограничение е
заради документите с буквено цифрени номера по-големи от 9999 в старите версии).
Може да поставяме условия и върху полета, които няма да влязат в справката.
Добре е полетата, върху които са поставени условия да са най-отгоре. Това ще
ускори значително изпълнението на справката, защото програмата ги преглежда
отгоре надолу и бързо ще отхвърля записите неотговарящи на условията.
Ако полето е от тип формула, смисълът на тези две колони е
друг.
Ако полето е с име "д/к", то условие за дебит се поставя с
'д', а за кредит - с 'к'. Но ако намалим ширината на "д/к" на 1 символ,
ограниченията за дебит и кредит се поставят съответно с 0 и 1.
С натискане на клавишите "Ctrl+(" и "Ctrl+)"
може да въведем номерата на папката или документа, с които последно сме работили
(а в DOS версията: "Ctrl+[" и "Ctrl+]").
Справката е светкавично бърза, ако е зададена еднаква долна и горна граница на първото поле, което се появява на влизане в справки 1. Номенклатури, 2. Сметки, 3. Документи, 4. Неаналитични сметки, 5. Сметка - сметка, или на папката и документа в 5. Сметка - сметка.
Ако имаме повече от едно ограничение в справката (чрез долна/горна граница и/или сравнение с 0), за да е максимално бърза справката, подреждаме ограниченията като най-силното (което ще изключи най-много редове) поставяме най-отгоре, а над всяко ограничение поставяме полетата от които зависи (ако е формула или е в резултат на "разгъване" на номенклатура или др.).
Нека се преместим върху седмата колона (0) в таблица за
справка. За всяко числово поле (или формула) може да
определим в какви граници да варира за справката по отношение на нулата. След
неколкократно натискане на Enter (или ако въведем направо) се появява някой от следните знаци:
# различно от нула,
= равно на нула,
< по-малко от нула,
≤ по-малко или равно на нула,
> по-голямо от нула,
≥ по-голямо или равно на нула.
Ако натискаме вместо Enter - интервал, то знаците се появяват в обратен ред.
При построяване на ред от справката се гледа дали полетата му отговарят на
поставените условия и ако не отговарят този ред не се включва в справката.
Може да поставяме условия и върху полета, които няма да влязат в справката.
Ако полето е формула със знак '─►', условието се използва за пресмятане на формулата.
За поле от тип номенклатура може да включим знака '■'. Тогава на справката се извеждат освен номера и останалите полета от елемента на номенклатурата (до края на полето от справката). Ако няма място за цялото име, номерът не се показва. Последното не важи в режим на табулация, текстов редактор и справка последна. В режим на табулация, ако ширината на полето е повече от два пъти по-голяма от ширината на номенклатурния номер, името (и презимето) се показва на същия ред. Дори и да не се вижда номерът, при сортиране по това поле се сортира по номера, а не по името. При включване на знака '■' ширината става равна на сумата от ширините на номера, името и презимето (ако има такова) плюс интервали между тях (но не повече от 60). При изключване на знака '■' ширината става равна на ширината на номера.
Ако имаме повече от едно ограничение в справката (чрез долна/горна граница и/или сравнение с 0), за да е максимално бърза справката, подреждаме ограниченията като най-силното (което ще изключи най-много редове) поставяме най-отгоре, а над всяко ограничение поставяме полетата от които зависи (ако е формула или е в резултат на "разгъване" на номенклатура или др.).
Нека се преместим върху осмата колона (∑) в таблица за справка.
За числовите полета или формулите може да укажем сумиране или
средно аритметично на полето в края на справката, а при сортирана
справка - и междинни суми. Това става с неколкократно
натискане на Enter. Появяват се последователно знаците:
∑ ≈ ■ + ≡ ║
При първо натискане на Enter се появява символът за сума '∑'. Ако полето не е било включено в справката, то се включва автоматично. Ако първото поле на справката е формула, по която се сумира, програмата разглежда това поле като "номер по ред".
При повторно натискане на Enter се появява символът '≈'. Тогава на сумарните
редове в справката се получава средно аритметично.
Ако справката е с междинни суми, последната сума е сума от междинните суми.
Ако имаме и отделни междинни суми по първото поле, те са суми от останалите
междинни суми. Това се получава, ако справката е сортирана по
2 или повече полета, "с междинни суми" и е включен на "2. И по него" параметър
"(Alt+S) Междинни суми по първото поле" от
Параметри на системата (F11).
При трето натискане на Enter се появява символът за линейна диаграма '■'. Диаграмите се изобразяват на всеки ред, но не и в сумарните редове.
При четвърто натискане на Enter се появява символът '+'. Тогава на всеки ред
от справката се появява число равно на сумата на всички предишни редове в тази
колона + текущия ред. Използва се например при справка "касова книга".
Ако даденото поле участва във формула, взема се стойността му от текущия ред, а
не тази, която се показва на справката (сумата на всички редове от текущия нагоре).
Ако полето е от тип номенклатура, значението на знака '+' е
друго. Тогава в режим на табулация може да се влиза в
редактиране на номенклатурата, включително и със слаба парола.
При пето натискане на Enter се появява символът '≡'. Разликата между него и '≈', е че не се изобразяват числата от които се пресмятат средните аритметични. Приложение може да видим в Справки: 5. Сметка - сметка.
При шесто натискане на Enter се появява символът '║'. Разликата между него и '≈', е че не се изобразяват числата на сумарните редове, но се появяват на "само суми и с междинни суми" редовете (без последния сумарен). Това може да се използва за колони от справката, по които не се сумира и които не участват в сортировката.
При следващо натискане на Enter сумирането се изключва. Ако натискаме вместо Enter - интервал, знаците се появяват в обратен ред.
В сумарните редове обикновено се попълват само колоните, по които се сумира.
Ако справката е пусната в режим "само суми" и "с
междинни суми", в междинните сумарни редове се показват и полетата, по които се сортира.
Ако се сумира по формула от тип НИЗ или дата, при "само
суми" и "с междинни суми" се взема последната непразна
стойност на формулата. В останалите случаи в сумарните редове полето се оставя празно.
В сумарните редове се изчисляват и колоните, които са формули
от полета, по които се сумира или константи, но не са от тип НИЗ или дата.
Нека се преместим (най-бързо с натискане на клавиша End) върху
деветата колона (т) в таблица за справка. Там се показва
типът на полето:
ч - число,
т - текст,
д - дата,
↔,↕ - таблица (например на номенклатура),
= - формула.
Ако натиснем Enter и типът не е таблица, програмата ни предлага да вмъкне под
текущия ред формула. Вж. Справки: поле: формула.
Ако натиснем Enter и типът е таблица със знак '↔', програмата "разгъва"
таблицата като вмъква след текущия ред всички полета от таблицата. Тогава типът
на текущия ред се сменя от '↔' на '↕' и неговият номер се записва в третата
колона на всички вмъкнати полета. Примери на "ръзгъване" може да видим в
Справки: 5. Сметка - сметка.
Ако "разгъването" на таблицата ще предизвика увеличаване на общия брой на
полетата в таблицата за справка над 999, програмата изсвирва и "разгъването" не се извършва.
Ако натиснем Enter и типът е таблица със знак '↕', то се извършва обратният
процес: таблицата се "сгъва"
и всички полета, които са се вмъкнали при "разгъването" изчезват, а типът става '↔'.
За поле от тип номенклатура може в Справки: поле: сравнение с 0 да включим знака '■'. Тогава на справката се извеждат освен номера и останалите полета от елемента на номенклатурата (до края на полето от справката).
За поле от тип номенклатура може в Справки: поле: сума да включим знака '+'. Тогава в режим на табулация може да се влиза в редактиране на номенклатурата, включително и със слаба парола.
За да може да въведем формула, трябва типът на полето,
върху което се намираме, да НЕ е таблица (номенклатура), т.е. да не е ↔ или ↕.
Нека се преместим (най-бързо с натискане на клавиша End) върху деветата
колона (т) в таблица за справка. Натискаме Enter и програмата
ни предлага: "За вмъкване на формула - Shift+Enter". След потвърждение
с Shift+Enter, се вмъква нов ред и курсорът се премества в колоната "име
на поле". Там е попълнено името на горното поле, което трябва да променим и потвърждаваме с Enter.
Натискаме стрелка надясно за да се преместим в колоната долна
граница ("[от........."). Натискаме Enter и въвеждаме номера
на първото поле участващо във формулата. При повторно натискане на Enter на
мястото на номера се изписва името на полето. Ако въведем номер на поле нула
(или го оставим празно), програмата ни предлага да въведем КОНСТАНТА, която ще
участва във формулата. Ако въведем номер на поле -1, програмата ни предлага да въведем дата.
След въвеждане на първия операнд на формулата, със стрелка надясно се
преместваме върху знака, който може да променяме с Enter или направо да въведем.
Със стрелка надясно се преместваме от знака върху колоната горна
граница ("........до]"). Тук натискаме Enter и въвеждаме
номера на второто поле участващо във формулата. При повторно натискане на
Enter на мястото на номера се изписва името на полето. Ако въведем номер на поле
нула (или го оставим празно), програмата ни предлага да въведем КОНСТАНТА, която
ще участва във формулата. Ако въведем номер на поле -1, програмата ни предлага да въведем дата.
Ако горното поле е формула, текущото поле наследява неговите ширина
и десети.
Може да съставим и формула от формули. Формулата може да има и само един операнд.
Програмата прилага ширината и десетите като последна обработка върху полето. Вж. примера в ширина.
Формула превръщаща своите операнди и резултата в НИЗ от символи
(стринг) е обяснена по-долу.
За обработка на дата вж. по-долу.
Между двата операнда на формулата може да се постави след неколкократно натискане на Enter (или направо да въведем) някой от следните знаци:
Вторият операнд започва с: |
Валидни резултати: |
Алгоритъм за проверка: (ЦX е X-тата по ред цифра. Последната цифра е контролна. "операнд1 % операнд2" означава "остатъка от делението на операнд1 на операнд2") |
ЕГН | 1. ЕГН | (1) Ако не е вярно, че започва с 10 цифри и продължава само с интервали, е невалиден.
(2) Проверка за валиден месец: ако ( Ц3 * 10 + Ц4 ) % 20 е < 1 или > 12, номерът е невалиден.
(3) Проверка за валиден ден: ако Ц5 * 10 + Ц6 е < 1 или > 31, номерът е невалиден.
(4) Пресмятане на контролната цифра КЦ: КЦ = ( Ц1*2 + Ц2*4 + Ц3*8 + Ц4*5 + Ц5*10 + Ц6*9 + Ц7*7 + Ц8*3 + Ц9*6 ) % 11. Ако КЦ е 10, КЦ = 0. Ако КЦ е равна на Ц10, е валиден, иначе - невалиден. |
ЛНЧ | 2. ЛНЧ | (1) Ако не е вярно, че започва с 10 цифри и продължава само с интервали, е невалиден.
(2) Ако е 10 нули, е невалиден.
(3) Пресмятане на контролната цифра КЦ: КЦ = ( Ц1*21 + Ц2*19 + Ц3*17 + Ц4*13 + Ц5*11 + Ц6*9 + Ц7*7 + Ц8*3 + Ц9*1 ) % 10. Ако КЦ е равна на Ц10, е валиден, иначе - невалиден. |
БУЛСТАТ | 3. БУЛСТАТ 9 3. БУЛСТАТ 13 |
(1) Ако не е вярно, че започва с 9 или 13 цифри и продължава само с интервали, е невалиден.
(2) Пресмятане на контролната цифра КЦ: КЦ = ( Ц1*1 + Ц2*2 + Ц3*3 + Ц4*4 + Ц5*5 + Ц6*6 + Ц7*7 + Ц8*8 ) % 11. (3) Ако КЦ е 10: КЦ = ( Ц1*3 + Ц2*4 + Ц3*5 + Ц4*6 + Ц5*7 + Ц6*8 + Ц7*9 + Ц8*10 ) % 11. Ако КЦ е 10, КЦ = 0; (4) Ако КЦ е различно от Ц9, е невалиден. (5) Ако е 9 цифрен, е валиден. (6) Иначе (ако е 13 цифрен, т.е. е клон на фирмата с БУЛСТАТ първите 9 цифри): КЦ = ( Ц9*2 + Ц10*7 + Ц11*3 + Ц12*5 ) % 11. (7) Ако КЦ е 10: КЦ = ( Ц9*4 + Ц10*9 + Ц11*5 + Ц12*7 ) % 11. Ако КЦ е 10, КЦ = 0. (8) Ако КЦ е равна на Ц13, е валиден, иначе - невалиден. |
Ид. № | 4. Ид. № X 4. ЕГН 4. ЛНЧ 4. БУЛСТАТ 9 4. БУЛСТАТ 13 |
(1) Ако не е вярно, че започва с цифри и продължава само с интервали, е невалиден. (2) Ако започва с 'X' или 'x' и до края е само интервали, е валиден. (3) Ако е валиден ЕГН, ЛНЧ или БУЛСТАТ, е валиден, иначе е невалиден. |
ДДС № | 5. ДДС № X 5. ДДС № 15x'9' 5. BG+ЕГН 5. BG+ЛНЧ 5. BG+БУЛСТАТ9 5. BG+БУЛСТАТ13 5. ДДС № EU |
(1) Ако не е вярно, че от четвъртия символ са цифри, след които продължава само с интервали, е невалиден.
(Има чужди ДДС номера започващи с 4 букви.) (2) Ако започва с 'X' или 'x' и до края е само интервали, е валиден. (3) Ако е 15 девятки, е валиден. (4) Ако започва с BG: Ако продъжава с валиден ЕГН, ЛНЧ или БУЛСТАТ, е валиден, иначе е невалиден. (5) Ако започва с две главни латински букви и има още поне един символ, то е валиден, иначе - невалиден (за чуждите ДДС номера Европейската комисия не може да разкрие алгоритмите за проверка на контролната цифра). |
EAN | 6. EAN 13 6. EAN 8 |
(1) Ако не е вярно, че започва с 8 или 13 цифри и продължава само с интервали, е невалиден.
(2) Ако е 13 цифрен: КЦ = ( Ц1*1 + Ц2*3 + Ц3*1 + Ц4*3 + Ц5*1 + Ц6*3 + Ц7*1 + Ц8*3 + Ц9*1 + Ц10*3 + Ц11*1 + Ц12*3 ) % 10. КЦ = 10 - КЦ. Ако КЦ е 10, КЦ = 0. Ако КЦ е равна на Ц13, е валиден, иначе - невалиден. (3) Иначе (ако е 8 цифрен): КЦ = ( Ц1*3 + Ц2*1 + Ц3*3 + Ц4*1 + Ц5*3 + Ц6*1 + Ц7*3 ) % 10. КЦ = 10 - КЦ. Ако КЦ е 10, КЦ = 0. Ако КЦ е равен на Ц8, е валиден, иначе - невалиден. |
Ако натискаме вместо Enter - интервал, то знаците се появяват в обратен ред.
Ако в колоната "десети" въведем отрицателно число, формулата превръща своите операнди и резултата в НИЗ от символи (стринг). Тогава значенията на знаците на формулата са други, както е обяснено по-долу.
Ако във формула използваме поле с име "д/к", то при дебит се счита, че това поле има стойност 0, а при кредит - стойност 1.
Ако първото поле на справката е формула, по която се сумира, програмата разглежда това поле като "номер по ред".
Ако вмъкването на формула предизвиква увеличаване на общия брой на полетата в таблицата за справка над 999, програмата изсвирва и не ни позволява да вмъкнем формула.
Когато се опитаме да стартираме справка използваща формула сочеща към себе си (напр. "количество = количество + 1"), излиза съобщение "Формула без начало" и долу на прозореца вляво се показва номера на първата такава формула.
Във формулите може да участват и полета от тип дата. Ако в колоната "десети" въведем число по-голямо от 0, датата се превръща в число равно на броя на дните изминали от началото на новата ера до деня на датата. Ако в колоната "десети" въведем 0, датата се превръща в броя на месеците от началото на новата ера до месеца на датата. Ако полето е от тип дата, но е по-късо от 8 символа, програмата го разглежда като число и описаните преобразувания не се извършват. Вж. по-горе формула със знак д.
Ако в колоната "десети" въведем отрицателно число,
формулата превръща своите операнди и резултата в НИЗ от символи
(стринг).
Ако използваме някой от операндите като константа, тя е НИЗ с ширина от 12 символа.
Ето действието на формулата върху двата операнда според знака:
Цифрата в отрицателното число на "десетите" показва от кой символ надясно ще се
вземе резултата на формулата. Например:
- формулата събира полетата "кален" и " макове",
- в "десети" е записано -2, а в "ширина" е записано 8,
- тогава резултатът е "ален мак".
Ако се сумира по формула от тип НИЗ, при "само
суми" и "с междинни суми" се взема последната непразна
стойност на формулата. В останалите случаи в сумарните редове полето се оставя празно.
Формула от тип НИЗ, която е включена в справка, се появява
като текстово поле в съответната акумулирана справка.
Може да поставим знака ^ в поле от тип номенклатура в следните случаи:
1. Ако желаем в режим на табулация да се
показват в прозореца за избор САМО тези
елементи от номенклатурата, за които предното видимо поле
в справката (ако е номенклатура) е еднакво по стойност с първото аналогично поле
от елемента (ако предното поле е празно - показва се цялата номенклатура). За да
се постави знака ^ трябва да се мине през формула от друг ред.
Тази точка има аналог във "форматирано поле" в Справки: поле: изтриване.
Ако желаем ограничението на видимите елементи да зависи от друга номенклатура
(такава е например 1109. Стоки във вътрешни обекти; вж. в Уни "Производство" и Уни "Прехвърляне между вътрешни обекти"
таблици 20008 и 20026 за избор на стока), която е:
а) с номер по-голям от 1000,
б) с второ поле - номенклатурата от предното видимо поле в справката (в примера с 1109 това поле е в.обект),
в) второто поле е не по-широко от първото поле на номенклатурата (иначе няма да се вижда със слаба парола) и
г) с трето поле - номенклатурата от текущото поле в таблицата (в примера с 1109 това поле е стока)
трябва в някое от следващите 2 полета от таблицата да има формула със знак ^ и отрицателни
десети, а в първия операнд на формулата да е попълнен знака ^
и веднага след него номера на въпросната номенклатура (в примера ^1109).
2. Ако желаем в режим на табулация да се показват в прозореца за избор САЛДАТА на номенклатурата по дадена сметка. Програмата проверява в кой от три варианта се намираме в следната последователност:
а) Номенклатурата е второ задължително подниво на сметката и искаме да виждаме обобщените салда по нея при фиксирано първо подниво. Следващото поле от таблицата за справка трябва да е формула със знак ^ и отрицателни десети, в първия операнд на формулата да е попълнена сметката, а във втория - първото задължително подниво. Първото фиксирано подниво не може да е по-дълго от 12 символа.
б) Номенклатурата е първо задължително подниво на сметката и искаме да виждаме обобщените салда по нея без да ни интересуват останалите поднива. Следващото поле от таблицата за справка трябва да е формула със знак ^ и отрицателни десети, в първия операнд на формулата да е попълнена сметката, а вторият е без значение.
в) Сметката е xxx и притежава индексиран по номенклатурата файл Bxxx2.idx
(или следващ номер). За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в
CPAprg.doc
за това как се създава индексен файл Bxxx2.idx. В този случай номенклатурата не е първо задължително
подниво, но искаме да виждаме:
обобщените салда по нея при фиксирано първо подниво или
обобщените салда по нея без да ни интересуват останалите поднива.
Ако номенклатурата участва в няколко поднива, гледа се само
първото. Следващото поле от таблицата за справка трябва да е формула със знак ^
и отрицателни десети, в първия операнд на формулата да е
попълнена сметката, а във втория - първото задължително подниво или празно.
Първото фиксирано подниво не може да е по-дълго от 12 символа.
Ако сметката е количествена и номенклатурата е с номер 1106 ("Стоки, услуги,
артикули, материали"), се показват КОЛИЧЕСТВЕНИТЕ салда (наличността), иначе - стойностните.
Салдото се изобразява във формат 10.3. Ако за даден елемент от номенклатурата
няма записвания по сметката или салдото е нулево - полето за салдо е празно. Ако
салдото е отрицателно (кредитно) - то се оцветява в друг цвят. Ако няма място в
прозореца, колоната "презиме" от номенклатурата няма да се изобрази.
Ако искаме в режим на табулация
след избор на стока автоматично да се набере количество 1, трябва:
- полето на стоката да е от номенклатурата с номер 1106 ("Стоки, услуги, артикули, материали"),
- първото видимо в справката поле след стоката да е количеството, което да има и дробна част (най-добре е 12.3),
- първото поле от таблицата за справка след стоката да е формула със знак ^, отрицателни
десети и на 14-та позиция в името си да има знак ^.
Ако формулата има на 15-та позиция в името си число, то показва колко пъти пограмата
ще натисне Enter след автоматичното попълване на количеството. Но ако от стоката към количеството е преминато
вместо с Enter (или Tab) с Ctrl+стрелка надясно (а
също и ако е избран празен номер на стока), програмата няма да натисне автоматично Enter.
Ако при влизане в полето на стоката то е било попълнено, след преминаване към
количеството, последното няма да се попълни автоматично с 1.
Ако искаме да се попълни количество различно от 1, докато се намираме в
полето на стоката набираме другото количество с десетична точка и
натискаме Enter. В този момент полето възстановява съдържанието си от преди
набирането на количеството. Избираме стоката и пак натискаме Enter.
Каквото и количество да наберем, ако изберем празен номер на стока, количеството няма да се попълни в следващото поле.
Ако искаме в режим на табулация
след ръчна промяна на дадено поле автоматично да се набере макрос, трябва:
- първото поле от таблицата за справка след даденото да е формула със знак ^, отрицателни
десети и в началото на първия операнд на формулата да е попълнено alt+X където X е цифра
Ако на последния ред от таблица за справка има формула без операнди с име [xxx] или [xxx (само започва с [, но не завършва с ] ), след стартиране на справката:
Пълни обяснения може да намерим в раздела Текстови формули.
Нека се преместим върху десетата колона (ши) в таблица за
справка. След натискане на Enter може да променим ширината на полето в
справката и после пак с Enter потвърждаваме.
Позволените ширини са:
- за числови полета и формули - от 1 до 15 символа,
- за текст и формули от тип низ от символи (стринг) - от 1 до 60 символа,
- за дата - само ако е 10 ще се покаже във формат дд.мм.гггг, иначе ще е във
формат ггггммдд.
Ако ширината на включено поле стане много малка, е възможно да се изреже част от
името на полето (но не и ако е включен параметър "(Alt+E)
Справка в една колона" от Параметри на системата (F11)).
Ако след изрязване на името, то стане еднакво с това на друго поле, програмата
не ни пуска да продължим докато не въведем име различно от всички останали.
Ако за формула въведем ширина повече от 15, формулата става
от тип низ от символи (стринг) - с отрицателни десети.
Програмата прилага ширината и десетите като последна
обработка върху полето. Нека например полето да е:
- формула, която умножава две други полета със стойности 2 и 0.02,
- ширината е 1, а десетите 0,
- поставено е условие по отношение на нулата "различно от нула".
В този пример програмата приема, че полето е различно от нула защото:
- първо умножава 2 по 0.02 и получава 0.04,
- след това сравнява резултата с нулата и вижда, че е различен от 0,
- накрая прилага ширината и десетите и получава 0.
Ако по време на акумулиране получим съобщението "Различни ширини на поле №", вляво на долната рамка на програмата се показва номера на първото по ред различно поле. Тогава трябва да направим ширината на полето равна на първичната му ширина (в базата данни), която може да проверим в полетата долна и горна граница ("[от........." и "........до]"). Може с натискане на Alt+- (минусът е от цифровата част на клавиатурата вдясно от Enter) да намалим ширините на всички полета в таблицата до първичната им ширина (каквато е в базата данни).
Нека се преместим върху единайстата колона (де) в таблица за справка. За числови полета или формули може да променяме броя на знаците след десетичната точка. За започване и завършване на промяната натискаме Enter. Числото се съобразява със стойността на ширината.
Програмата прилага ширината и десетите като последна обработка върху полето. Вж. примера в ширина.
Ако пред цифрата на десетите се пише +, закръглението е нагоре.
Например: ако десетите са +0, а стойността е 8.1, резултатът е 9.
Ако за формула, в която участва дата, въведем в тази колона
0, формулата ще се изчисли вместо в дни - в месеци.
Ако за формула, в колоната "десети" въведем отрицателно число, формулата превръща своите операнди и резултата в НИЗ от символи (стринг).
Може да запомним таблица за бъдеща употреба както е описано в Таблици: записване на диск (Ctrl+F4) и да заредим записана преди таблица както е описано в Таблици: зареждане от диск (Ctrl+F3).
След като редактираме таблицата за справка минаваме нататък с натискане на Ctrl+Enter (или бутона "OK" в Windows версията) или се отказваме от справката с Esc.
За Справки: 3. Документи и Справки: 5. Сметка - сметка веднага след края на редакцията на таблицата програмата ни пита за какъв период (от няколко последователни месеца) ще се прегледат документите за съставяне на отчета. Винаги крайният месец е текущият. Необходимо е да въведем съществуващ по-преден месец или да потвърдим текущия.
След края на редакцията на таблицата програма проверява дали полето, на което се намираме е включено в справката. Ако това е така, тя ни предлага да сортираме: "За сортиране по посоченото поле - Shift+Enter". Ако натиснем Shift+Enter, следва да въведем по колко полета ще се извърши подреждането. Ако въведем например 6, сортировката се извършва освен по полето на което сме били, натискайки Ctrl+Enter, и по следващите пет. Ако няма толкова следващи полета или ако сумата от дължините им надвишава 100 символа, програмата свирва и ни връща да намалим броя им.
Сортирането не разграничава големи и малки букви. Ако имаме няколко записа започващи с думите "бамя", "Банан", "ДИНЯ", те ще се подредят в същия ред (а не както е общоприето първо да са главните букви: "Банан", "ДИНЯ, "бамя").
Програмата не прави разлика и между латиница и кирилица, ако
изображението на буквите е едно и също. По тази причина сортировката на латиница
не е много точна.
Изключение от това правило е сортирането по папка и № по ред на документ или
само по № по ред на документ в старите версии. Тогава, ако номерата на документите са преминали 9999 и са
станали буквено цифрени (на латиница), сортирането им е правилно.
Има и още едно изключение: не се разваля сортирането на латиницата и за полета
от тип таблица (на номенклатура, сметка и др.), ако се
сортира само по това поле. Това има смисъл за огромни бази данни с брой на
записите над 99999, при които номерата се изписват със знака = следван от
вътрешното представяне на 4 байтов integer. В този случай все пак сортировката
се разваля за полетата съдържащи знака │, който се заменя с прекъсната
вертикална черта (както това става с всички полета от справката, които съдържат
този символ, за да не се развали последователността на прехвърляне на полетата с
Alt+F8). Разбира се, такива сортировки в общия случай са
безмислени и служат само за системни справки.
Ако първото поле, по което сортираме е по-дълго от 15 символа, при сортиране
се игнорират водещите интервали. Например, ако първото поле е:
" персонален компютър", програмата счита, че то е:
"персонален компютър".
Сортировката се извършва по възходящ или низходящ ред в зависимост от
стойността на параметъра "(Alt+O) Сортировка низходящ ред" в
Параметри на системата (F11).
Приложение може да видим в Справки: 5. Сметка - сметка.
Ако има полета, по които сумираме, след
края на редакцията на таблицата програмата ни предлага да изведе само сумите
(и междинните суми, ако има такива) без редовете, от които са получени тези суми.
Приложение може да видим в Справки: 6. Акумулирана.
Ако сме сортирали справката и има полета, по които сумираме, програмата ни предлага да извежда междинни суми за всяка нова стойност на сортираните полета.
Това обаче може да доведе до следното неудобство, ако не е "3. Да" параметър (Alt+W) ASCII сортировка (НЕ по
азбучен ред, НЕ игнорира интервали, големи и малки букви). Нека например полето, по което сортираме да има следните стойности
(в четири последователни записа):
надежда
НАДЕЖДА
надежда
НАДЕЖДА
Това ще доведе до четири различни междинни суми защото при сортиране на записите
не се прави разлика между големи и малки букви и техният ред ще си остане същия,
но стойността на сортираното поле се сменя преминавайки от дума с малки към дума
с големи букви и обратно, а това води до създаване на ред за междинна сума.
Ето защо, ако в режим на записване/редактиране/проиграване на макроси пуснем справка с междинни суми по полета включващи
текстово поле, се появява в браузер съобщението:
Имаме междинни суми по ключ включващ символно поле
и параметър "ASCII сортировка" (Alt+W) не е 2 или 3.
А ако сме с парола 1, макросът спира.
Не винаги е необходимо да превключим на "3. Да" параметър (Alt+W) ASCII сортировка. Например:
- ако сортираме с междинни суми по текстова формула от нетекстови полета, например формула = папка + <-№ (№ на документа в папката),
- ако сме на последната справка, визуализираща резултата от работата на изпълнения от потребителя макрос (вж. макрос
10683. СправкиКрай КакСеПускаТаблицата).
В подобни случаи може да оставим параметъра на "1. Не", но за да не ни извежда горното съобщение (и да ни спира, ако сме с парола 1) при
записване/редактиране/проиграване на макроси, включваме параметъра на "2. Не, без предупреждение при междинни суми ..."
Може да превключим на "3. Да" параметър (Alt+W) ASCII сортировка в последната справка, ако сортираме имена изписани на латиница.
Вж. параметри "(Alt+S) Междинни суми по първото поле"
и (Alt+D) Без излишни сумарни редове от Параметри на системата (F11).
Приложение може да видим в Справки: 5. Сметка - сметка и
Справки: 6. Акумулирана.
След като отговорим на възможните въпроси след края на
редакцията на таблицата, програмата ни пита дали да изпълни справката. Това
е последният момент, в който може да променим някои
параметри на справката
чрез Параметри на системата (F11).
При отговор на въпроса за изпълнение с "да" (Shift+Enter) се извършва
стартиране на справката
и се появява брояч, който ни ориентира докъде е стигнала обработката на данните
за справката. След завършване на работата, готовата справка се появява на
екрана, за да я разгледаме или допълнително редактираме.
Програмата автоматично предлага стандартно заглавие на справката, текущата дата и час. Освен това,
ако сме поставили условия за някои от полетата чрез Справки:
поле: долна/горна граница или Справки: поле: сравнение с 0
тези условия се изписват автоматично след заглавието.
Справката може да
РАЗГЛЕЖДАМЕ като се движим със стрелките, PgUp, PgDn, Home или End. В
началото на долната рамка на прозореца се показва на коя печатна страница се
намираме в момента и след наклонена черта - общия брой печатни страници.
Ако справката е много широка и не се събира на екрана, може с End да се движим
надясно колона по колона (т.е. поле по поле).
С Ctrl+End отиваме до десния край на справката, а с Ctrl+Home - до левия край.
Ако натиснем Ctrl+PgUp, антетката на справката не е изтрита и програмираме или
изпълняваме макрос, отиваме на първия ред след антетката. Иначe - на първия ред на справката
Ако натиснем Ctrl+PgDn, антетката на справката не е изтрита и програмираме или
изпълняваме макрос, отиваме на реда преди последния
ред-оградка на справката. Иначе - на последния ред на справката.
Може да потърсим текст в справката както това е описано в
Прозорец: търсене на текст (Ctrl+S).
При натискане на Shift+Tab на долната рамка
на прозореца се показва съобщението "Минимални ширини" и всички
колони на справката се стесняват максимално като може да се загубят само интервали, а ако е число с дробна част -
и нули в края. Нулите след десетичната точка не се губят, ако числото е с точност 2 след
десетичната точка (затова, ако искаме да изчезнат нулевите стотинки, увеличаваме точността след десетичната точка,
например на 3). Полетата от антетката се центрират. Числовите полета се изрязват отпред и ако са с дробна част
и тя е различна от 2 знака - и отзад. Останалите полета се изрязват първо отзад и ако не достига
- и отпред. Символните полета пълни само с въпросителни (?) не влияят на стесняването (счита се, че са пълни само с
интервали). Полетата от тип дата с ширина 10 не се стесняват. Полетата от
тип номенклатура може да се свият максимум до ширината на номенклатурния номер.
Редовете преди и след таблицата с данните се показват така:
- ако редът е центриран и има място да се покаже целия (без начални и крайни интервали), показва се центриран,
- иначе започвайки от началото на реда се махат толкова интервали с колкото трябва да намалее реда
за да не се изгубят последните символи,
но така че 2 и повече последователни интервала се заменят с поне 2.
Ако минем през такъв ред в режим на текстов редактор, той се запомня както е
показан и при следващи натискания на Shift+Tab не се връща в първоначалния си вид.
При следващ Shift+Tab се появява съобщението "Минимални
ширини, без празни колони", при което, освен максималното стесняване на
колоните, от справката се изключват колоните:
- съдържащи само празни полета (без да гледаме антетката),
- за които са поставени еднакви ограничения в долна
и горна граница ("[от........." и "........до]"),
- които са номер или име от разгъната номенклатура, на която са поставени еднакви ограничения
в долна и горна граница ("[от........." и "........до]").
При следващ Shift+Tab се появява съобщението "Без празни колони", при
което от справката се изключват колоните описани в предното изречение, а останалите колони не се стесняват.
При следващ Shift+Tab справката се показва в първоначалния си вид.
Натискането на Shift+Tab влияе само на изобразяването на справката и нейния
печат, но самият файл на справката не се променя (което може да видим като отидем
на Справки: 8. Последна - екран).
При празна справка не се стесняват и не се изключват първите няколко полета до
получаване на справка с ширина 78 символа на ред.
В следните случаи, натискането на Shift+Tab не дава резултат:
- работим в Справки: 8. Последна - екран,
- включен е параметър "(Alt+E) Справка в една колона" от
Параметри на системата (F11),
- работим със слаба парола и не изпълняваме макрос,
- върнали сме се от печат при липса на подходяща за печат антетка.
Може от режим на преглед да преминем в режим на
ТЕКСТОВ РЕДАКТОР като
натиснем Enter и обратно да се върнем в режим на преглед с Ctrl+Enter (или Esc).
Важи описаното в Прозорец: текстов редактор с изключение на
клавишите "Ctrl+интервал", "Alt+N" и "Ctrl+P".
При движението ни в текста, на най-долния ред на прозореца, се показва на кой
ред и символ от началото на реда се намираме.
При натискане на клавиша Shift+Enter се срязва реда и текста от курсора надясно се пренася на следващ ред.
Ако накрая на текущия ред няма място, но продължаваме да пишем на реда, последните думи се пренасят на следващия ред.
Натискането на клавиша Backspace в началото на реда - качва началото на текущия
ред след последната дума на предишния ред.
За да стигнем до последната колона на справката (края на реда) трябва да
натиснем един или два пъти Ctrl+End. Също така, за да стигнем първата колона
(началото на реда) - трябва да натиснем един или два пъти Ctrl+ Home. Препоръчва
се при правене на макроси, ако справката е по-широка от 78
символа, преместването до края или началото на реда да става с двукратно
натискане на Ctrl+End или Ctrl+Home. При различните моди на дисплея една и съща
справка може да се събира по ширина на екрана (и тогава едно натискане на тези
клавиши е достатъчно), но може и да не се събира (а макросът не знае това).
До последния ред на справката стигаме с натискане на Ctrl+PgDn, а до първия - с
Ctrl+ PgUp. Забележете разликата с режима на разглеждане (обяснен по-горе).
След последния ред на справката може да се добавят до 99 празни реда, които може да попълним по свое желание. Например, може да превърнем крайната сума от справката в "словом" като прехвърлим сумата в "кошчето". Вж. Кошче: записване (F7) и Кошче: изпълнение (F8). Броят на празните редове в края на справката или между редовете се променя чрез (Alt+M) Празни редове в края на справката и (Alt+M) Между редовете от Параметри на системата (F11).
Може от режим на преглед да преминем в
РЕЖИМ НА ТАБУЛАЦИЯ като
натиснем Tab. Може да се местим с End, Home, Ctrl+лява/дясна стрелка, Ctrl+End, Ctrl+Home, стрелки.
След Tab може да натиснем Enter. Така минаваме в режим на редакция на отделните
полета от справката. Типът (число, текст, дата, номенклатура)
и ширината на полетата се вземат от базата данни.
Ако вместо Enter натиснем Ctrl+Enter - влиза се в полето в цялата видима ширина
(между двете вертикални черти на справката), а типът е текст.
В режим на редакция може да преминем към следващото поле с Enter, Tab или
Ctrl+дясна стрелка. Към предното поле може да минем с Shift+Tab или Ctrl+лява
стрелка. Нагоре и надолу се движим със стрелките, PgUp и PgDn.
Излизането от режима на редакция (независимо как е влезнато в него) става с Esc или Ctrl+Enter.
В режим на табулация, ако не програмираме или изпълняваме макрос, не може да се мине извън таблицата с данните.
Вж. и ключа от регистратурата Find1106inReportTab.
В Справки: поле: изтриване е обяснето как се използват заключено поле, скрито поле, форматирано поле, формула за проверка и меню
За поле от тип номенклатура може в Справки: поле: сума да включим знака '+'. Тогава в режим на табулация може да се влиза в редактиране на номенклатурата, включително и със слаба парола.
Вж. различни варианти на изобразяване описани в Справки: поле: формула.
В следните случаи, не може да преминем в режим на табулация:
- работим в Справки: 8. Последна - екран,
- включен е параметър "(Alt+E) Справка в една колона" от
Параметри на системата (F11),
- работим със слаба парола и не изпълняваме макрос,
- върнали сме се от печат при липса на подходяща за печат антетка.
За излизане от справката натискаме Esc. Към "преглед на екран и редактиране" може да се върнем по-късно (след работа с други точки от програмата) чрез Справки: 8. Последна - екран.
Ако излезем от справка не по време на макрос, програмата сменя знака ! в началото на името на бърз макрос с точка и така ни предпазва от стартирането му в неподходящо място.
Ако след стартиране на справката с Shift+Enter, броячът върви много бавно и желаем да прекъснем изпълнението, може да натиснем Alt+F4 (а в DOS версията: Ctrl+Break).
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в раздел "13. Дневник на програмата" в CPA1.docx как може да проследим при кой потребител и кога програмата е спряла (но не в режим на табулация или меню) на преглед на справка (а не е минала през преглед чрез макрос) и да видим справката. Тази възможност по премълчаване е изключена.
Вж. Справки: въведение.
След като приключим работа в Справки: преглед на екран и редактиране програмата изписва на екрана:
В Windows версията на програмата излизат картинки, които показват кой шрифт е избран и дали ще се печата в стил портрет (Portrait) или пейзаж (Landscape). Ако са изобразени два листа един върху друг - това означава, че справката не се събира по ширина и ще се печата разрязана на вертикални ивици.
След това програмата ни предлага да изпечатаме справката:
"Начало на печат от стр.: 1".
Ако веднага натиснем Esc, отиваме в Справки: таблица за справка.
За стартиране на печата натискаме Enter. Ако се появи съобщение "Зключено - ESC"
или друг проблем, трябва да проверим настройките на принера.
Може да започнем печата и от следваща страница. Ако по време на печат принтерът смачка хартията (в DOS версията натискаме Esc, за да спрем печата), нагласяваме хартията и започваме печат след последната изпечатана страница.
Може да зададем поредица от страници с едно тире или интервал между първата и
последната страница от поредицата.
Например: "Начало на печат от стр.: 10-15" ще изпечата страниците с номера от 10 до 15 вкл.
Ако справката е с повече от 99 страници, още в началото ни се предлага
поредицата от първата до последната страница от справката.
Вж. и (Alt+X) Максимален брой страници на копие.
Ако променим параметрите на системата (F11) и искаме да се преизчислят параметрите за печат (редове на страница, страници, изглед), за "Начало на печат от стр.:" въвеждаме 0 (в първа позиция).
Ако след печат, намирайки се в полето след "Начало на печат от стр.:", натиснем Esc, отиваме в Справки: преглед на екран и редактиране.
При Windows печат, ако даден ред от първата страница на справката е центриран, не започва от първа позиция на реда, преди и след него има празен ред и справката се събира по ширина на една страница, този ред се счита за заглавие и се печата с удебелен шрифт с размер увеличен с 2. Може да има повече от един такъв ред.
В DOS версията, ако по време на печат, принтерът остане изключен за по-дълго време, програмата ни подсеща "Включете принтера !". След включване, съобщението автоматично изчезва и следва предложението "За кирилизация - Shift+Enter", на което е добре да отговорим утвърдително.
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в раздел "13. Дневник на програмата" в CPA1.docx как може да проследим кой потребител и кога е стартирал ръчно (не през макрос) печат на справка и да видим справката. Тази възможност по премълчаване е изключена.
Настройката за DOS или Windows печат става с параметъра (Alt+P) Принтер номер. Вж. по долу и обясненията за DOS печат.
Обикновено програмата печата на принтера, който е по премълчаване в Windows. За да сменим принтера по премълчаване, отиваме в папката с принтерите, която се намира в Control Panel, щракаме с десния бутон на мишката върху желания принтер, след това щракаме с левия бутон на мишката върху Set as Default Printer. В настройките на принтера трябва да е указан правилния размер на хартията, който обикновено е А4.
Ако имаме проблем с печата, проверяваме следното:
Програмата използва шрифта указан в ключа Printer\Font от Параметри от регистратурата на Windows.
Големината на шрифта е в два варианта - за нормален и кондензиран печат и се определя в (Alt+K) Големина на шрифта при Windows печат или максимален брой символи на ред при DOS печат от Параметри на системата (F11). В зависимост от ширината на справката, която ще се отпечата, програмата избира дали да печата с нормален или кондензиран шрифт.
Ако справката не се събира по ширина на принтера, тя се изпечатва на вертикални ивици, които след това се монтират една до друга. Това може да се забрани с ключа Printer77.
В зависимост от ширината на справката и от стойностите на параметрите (Alt+K) Големина на шрифта при Windows печат или максимален брой символи на ред при DOS печат и (Alt+R) Брой редове на печатна страница програмата избира дали да печата в режим на портрет (Portrait) или пейзаж (Landscape).
Може да определим големината на празните полета около изпечатвания текст чрез подключовете MarginBottom, MarginLeft, MarginRight и MarginTop на ключа Printer\.
Вж. и:
(Alt+L) Печат на отделни листа,
(Alt+I) Извеждане на последния лист от принтера,
(Alt+Y) Печат на копия,
(Alt+X) Максимален брой страници на копие,
Ако разполагаме с матричен принтер, кирилизиран за DOS печат, може да го
използваме за бърз печат в текстов режим след настройка на параметъра (Alt+P) Принтер номер
или ключа PrinterDOSforNT (в който се обяснява и използването на CpaDOSpf.exe при работа
през Remote Desktop Connection).
Може да забързаме още повече този режим след включване на параметъра (Alt+B) Бърз печат (без псевдографика).
Windows не рисува буквите при DOS печат, а се използват изображенията им от
паметта на принтера. Различните принтери са кирилизирани по различни стандарти -
т.е. буквите са подредени по различен начин. Ето защо е възможно да има
несъответствие между заложената в програмата ASCII таблица и тази, която използва
принтера. За да я променим в съответствие с кирилизацията на принтера
използваме ключа European.
Ако принтерът е хардуерно кирилизиран, но не печата на кирилица, е необходимо да се настрои. Това става или чрез програма, която е от комплектацията на принтера или чрез меню на принтера, което се включва като при изключен принтер държим натиснат някой от бутоните му и го включим (ако с един бутон не става, пробваме с друг или с комбинация от бутони).
Ако принтерът не е хардуерно кирилизиран, може да го кирилизираме софтуерно като:
- преименуваме на CYRIL някой от файловете CYRIL-9 (за 9 иглен принтер) или
CYRIL-24.DFT (за draft печат на 24 иглен принтер), намиращи се в SYSTEM директорията на приложението или
- изпълним външна програма "11. Кирилизиране на принтер (само
за DOS)", която изпълнява CYRIL.BAT (този файл трябва да се създаде от квалифициран специалист).
Ако използваме DOS програма, която не кондензира автоматично шрифта при печат, може да използваме PRNCOND.BAT и обратно за минаване в нормален шрифт - PRNNORM.BAT. Това не е необходимо за програма CPAccounting®.
Може да "залепим" няколко справки с ЕДНАКВА ширина и после да ги разгледаме,
редактираме и отпечатаме като една справка в Справки: 8. Последна
- екран. Минималната ширина на справките е 78 символа на ред.
За да "залепваме" справки е необходимо да включим параметъра "(Alt+Z)
Залепване на справки" от Параметри на системата (F11).
Ако временно го изключим и после пак включим - продължава "залепването" към
предишната справка "залепени". За да започнем "залепване" отначало - включваме
параметъра "(Alt+A) 2. Нова акумулирана/залепена". Този
параметър се самоизключва веднага след пускането на следващата справка.
За да може да прехвърляме полета от справката в текущото поле чрез Кошче: поле от справка (Alt+F8) трябва да е включен параметърът (Alt+F) Alt+F8 чете от справка "залепени" от Параметри на системата (F11).
Когато не желаем да разглеждаме справка "залепени" (например подготвяме HTML
файл), може да "залепваме" справки с различна ширина чрез външни
програми "9. Копиране на "последна" в "залепени"" и "33. Добавяне на
"последна" към "залепени"". Може да използваме външни програми
"8. Изтриване на "залепени"" и "34. Копиране на "залепени" в "последна"".
Вж. 38. От "последна" + <table> към "залепени" и
39. От "залепени" към CpaW.htm.
В Windows версията изхода към браузер, MS Excel или MS Word може да се стартира от всяко място в програмата чрез клавишните комбинации Ctrl+E, Ctrl+X и Ctrl+W или като щракнем върху иконите им на долната рамка на програмата. Може да намерим допълнителни обяснения в 44/45/46. От справка към браузер, Excel или Word.
Вж Изход към Cpa*.* файл и Вход от чужд toCpa.* файл.
Клавишите F1, F2, ... , F12 се наричат функционални.
Тук НЕ се разглеждат свойствата на функционалните клавиши при работа с универсален пакет "Уни".
Калкулатор (F2)
Число от/към калкулатора (Shift+F2)
Макроси: записване (F3)
Макроси: изпълнение (F4)
Макроси: Alt+F3
Макроси: забавяне
Макроси: зареждане от диск (Shift+F3)
Макроси: записване на диск (Shift+F4)
Таблици: зареждане от диск (Ctrl+F3)
Таблици: записване на диск (Ctrl+F4)
Телефонен указател (F5)
Набиране на телефонен № по модем (Shift+F5)
Календар с бележник (F6)
Будилник (Shift+F6)
Кошче: записване (F7)
Кошче: редактиране (Ctrl+F7)
Кошче: зареждане от прозорец (Alt+F7)
Кошче: зареждане от диск (Shift+F7)
Кошче: изпълнение (F8)
Кошче: записване на диск (Shift+F8)
Кошче: поле от справка (Alt+F8)
Прозорец: размери и местоположение (F9)
Прозорец: максимално увеличаване (Ctrl+F9)
Прозорец: оцветяване (Shift+F9)
Избор на точка от главното меню (F10)
Към предходната точка (Shift+F10)
Начало на макрос (Alt+F10)
Смяна на паролата (Ctrl+F10)
Управляващ текст: зареждане (Shift+F12),
Управляващ текст: поле от текст (Alt+F12),
Управляващ текст: прескачане на поле от текст (Ctrl+F12).
Някои общи свойства на повечето функционални клавиши:
- могат да се изпълняват навсякъде в програмата.
- повторното натискане на вече активиран функционален клавиш е равносилно на
натискането на Esc (същото действие има и натискането на функционален клавиш с подобна
функция; например: след активирането на F4, натискането на F4, Shitf+F4, F3 или
Shift+F3 е равносилно на Esc).
Зареждането на калкулатора става с натискане на F2 или като от главното меню (F10)
изберем подменю "3. Екстри" и от него - "2. Калкулатор (F2)".
При повторно натискане на F2 или на Esc калкулаторът се скрива.
Въвеждаме число без знак и след това натискаме съответния му знак (+ или -).
После въвеждаме следващото число с неговия знак и т.н. Всяко действие се
изобразява в лентата над полето за въвеждане. След всяко въвеждане в полето се
появяво резултатът от досегашните действия. Този резултат може да се изобрази в
лентата над полето и след това да се започне наново пресмятането чрез натискане
на Ctrl+Enter (или =). Изчистване на калкулатора става чрез натискане на
интервал. Когато резултатът не се събира в полето, то се изпълва с въпросителни
и трябва да го изчистим с интервал, за да започнем ново пресмятане.
Ако натискаме Enter или точка вместо знак, се счита че сме натиснали знака, с
който е въведено предишното число.
Например за пресмятане на:
3 + 14 - 2 - 5
изпълняваме:
3+
14+
2-
5-
Ако искаме резултатът да се запише в лентата над полето, трябва накрая да
натиснем и Ctrl+Enter
Може да се умножава (*) и дели (/) по следната схема. За пресмятане на:
2 * 3 - 12 / 6, което е едно и също с:
(2 * 3) - (12 / 6)
изпълняваме:
интервал за изчистване на предишния резултат
2*
3+
12/
6-
Ctrl+Enter
За пресмятане на:
( 4 + 3 - 2 ) * 6
изпълняваме:
интервал
4+
3+
2-
Ctrl+Enter
*
6+
Ctrl+Enter
Може да променяме точността на пресмятането чрез промяна на параметъра
(Alt+C) ширина на дробната част на калкулатора в
Параметри на системата (F11).
Може да запомним междинни резултати заедно с коментари за тях чрез натискане на
F7 и по-късно да ги използваме чрез F8.
Вж. и Число от/към калкулатора (Shift+F2).
По желание може да променим местоположението и размерите на прозореца на
калкулатора според Прозорец: размери и местоположение (F9).
Вж. и Въвеждане на число.
Ако се намираме в калкулатора и натиснем Shift+F2,
прехвърляме сумата от калкулатора към полето, от което сме го извикали.
Ако не сме в калкулатора, а в числово поле в някоя точка от програмата,
натискайки Shift+F2 прехвърляме числото в калкулатора със знак какъвто е бил
използван при последната сметка в калкулатора. За прехвърлянето се използва
20-тия ред от кошчето. Вж. Кошче: записване (F7).
Често се случва да правим едни и същи справки или да се повтарят някои други
наши действия при работа с програмата. Не е нужно всеки път да натискаме едни и
същи клавиши - може просто да ги запомним в някои от десетте специални клавиша:
Alt+1 (натискаме Alt и без да го отпускаме леко чукваме 1 от клавишите над
буквите), Alt+2, ... , Alt+9 и Alt+0. В бъдеще можем, натискайки еднократно
някой от тези клавиши, да възпроизведем действията записани в него.
Тези специални клавиши се наричат "макроси". Във всеки един от тях може да
запишем до 50 натискания на произволни клавиши. Една "десятка" макроси може да
запишем на диска за бъдещата им употреба. Eдин макрос може да извика друг, една десятка - друга.
Зареждането на макросите е описано в Макроси: зареждане от диск (Shift+F3).
В Windows версията на програмата имената на заредените макроси се появяват в
горната рамка на програмата и може да се стартират и с мишката. Името на
заредената "десятка" се показва след името на приложението на програмата (което
е име на Windows прозореца).
Как да създаваме и използваме макросите, може да научим в разделите:
Начало на макрос (Alt+F10),
Макроси: записване (F3),
Макроси: слаба парола,
Макроси: Internet/Intranet,
Правила за писане на HTML приложения,
Макроси: изпълнение (F4),
Макроси: забавяне,
Макроси: зареждане от диск (Shift+F3),
Макроси: записване на диск (Shift+F4),
Примери на сложни макроси.
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в раздел "13. Дневник на програмата" в CPA1.docx как може да проследим кой и кога е стартирал ръчно даден макрос и да видим справката, с която е завършил, а също да проследим записването на макроси на твърдия диск.
Как се правят макроси е обяснено в Макроси: записване (F3).
Тук ще отбележим само, че в болшинството случаи първият клавиш от всеки един макрос трябва да е Alt+F10.
При натискане на този клавиш, излизаме от точката от програмата, в която работим
и на екрана остава само главното меню. Освен това всички
временни параметри възвръщат стойностите си от началото на сеанса (вж.
Параметри на системата (F11)).
Записването (програмирането) на макрос започва след
натискане на F3, при което се появява прозорец със списък от всички макроси от
заредената "десятка" и имената на всеки от тях. Със стрелките се придвижваме до
желания макрос и натискаме Enter (или може да се откажем от записването с Esc или F3).
След това прозорецът изчезва. Появява се поле, в което записваме име на макроса
и натискаме Enter. После започваме да натискаме един след друг клавишите, които
искаме да запишем. При всяко натискане се чува леко свирване, което ни подсеща,
че сме в този режим на работа. В същото време в десния долен ъгъл на екрана
(където обикновено е часовникът) се появява името на макроса и номера по ред на
следващия клавиш (най-много 50). Например, ако записваме Alt+1 и сме записали 20
клавиша, то се изобразява "A1:21".
Записването може да завършим след повторно натискане на F3, при което се появява
съответното съобщение за край на записването.
Например, ако желаем да програмираме Alt+7: най-напред натискаме F3 за начало на
записването; появява се прозореца с макросите; със стрелките стигаме до Alt+7 и
го избираме с Enter; появява се поле за името на Alt+7; попълваме го и натискаме
Enter; после натискаме желаните клавиши (при което чуваме леки свирвания);
приключваме записването с F3; появява се съобщение за край на записването, на което отговаряме с Esc.
Ако по време на записване на макрос се чуе изсвирване от грешка, по-нататъшното му записване се прекратява.
Ако по време на изпълнение на макрос се чуе изсвирване от грешка, по-нататъшното му изпълнение се прекратява.
След това, цялата "десятка" макроси се подменя от един макрос "7. Отказ, към главно меню",
което не важи:
- ако сме с администраторска парола или
- ако се случи по време на макрос, който може да стартираме ръчно (името му не започва с точка,
Ако по време на изпълнение на макрос в документ се случи, че се натисне Esc в
празно поле "Папка" - макросът прекъсва.
Това не важи, ако е зареден макрос "900. Преосчетоводяване на текущия месец" или "901.
Преосчетоводяване на последния месец". При изпълнението на тези два макроса,
преди влизане в полето за попълване на папка, то се изтрива автоматично. Това е
направено с цел заобикаляне на евентуален проблем при повреден индексен файл на документите.
При изпълнение на макроси програмата пропуска да направи редица предупреждаващи съобщения. Например, не съобщава: "Сметката е на червено", "Твърде голям номер!", "Датата е след текущия месец!", "За възстановяване на изтрит запис със същото име", "За повторно записване по избраните поднива", "Не са попълнени задължителните полета" (в документ).
Във всеки макрос може да запишем най-много 50 клавиша. След записването на 45 клавиша, програмата започва да свири по-силно (а в Windows версията екранът примигва), за да ни предупреди да приключваме. След петдесетия клавиш автоматично се показва съобщението за край на записването (както при натискане на F3).
В Windows версията, за да чуваме навреме свирванията по време на програмиране на макрос, е необходимо да е пусната програма, която възпроизвежда звук (например Windows Media Player) - така звукът се синхронизира с програмата. Ако ни дразни несинхронизирания звук от макросите, може да го изключим с ключа от регистратурата Macros\Sound. Броя на премигванията на екрана след натискане на 45-тия клавиш от макрос както и точно преди натискане на 50-тия може да променим с ключовете от регистратурата Macros\Flash45 и Macros\Flash49.
Ако 50 клавиша не са ни достатъчно, може като последен клавиш в макроса да
запишем друг макрос и после в него да продължим записването на останалите клавиши.
Ако желаем в макрос да запишем друг макрос, то това може да стане чрез директно
набиране на кода на клавиша (Alt+1, ... , Alt+9, Alt+0), а не чрез избор от
прозореца с макроси. Ако следващият макрос е празен и с празно име, програмата
автоматично попълва точка за име, но ако не е празен и е с празно име, издава
съобщение Стартирането на макрос с празно име (подобно на такъв с име незапочващо
с точка,
В Windows версията на програмата макросите, които може да се стартират ръчно (името им не
започва с точка,
В началото на записване или изпълнение на макрос (Alt+X) с име, което не започва с точка,
Ако по време на записване на клавиши натиснем F4 или Shift+F4, програмата реагира така както ако
натиснем F3, т.е. прекратява се записването и се появява съобщението за край на записването.
За да изтрием даден макрос, е необходимо да запишем в него празен списък така: натискаме F3 и избираме макроса, изтриваме името му, натискаме Enter и веднага след това приключваме записването с F3.
Ако зациклим макроси, може да прекъснем програмата с натискане на Alt+F4 (а в DOS версията: Ctrl+Break).
При записването на клавиши в макрос трябва много да се внимава откъде се стартира. Ако искаме даден макрос да ни доведе отвсякъде до едно и също място в конкретна точка от програмата, е необходимо ПЪРВИЯТ клавиш, който записваме в макроса да е Alt+F10. После избираме желаната точка с натискане на съответните БУКВИ в менютата. Ако ползваме параметър (F11), до него отиваме с Alt+БУКВАТА, която е в квадратчето пред него. Не трябва да потвърждаваме с Enter запомнените от програмата номера на сметки, номенклатури, таблици и т.н., а да ги въвеждаме наново. Вж. и съветите в Кошче: поле от справка (Alt+F8).
Когато макросът изисква въвеждане на параметри, добре е това да става от справка в режим на табулация. Тогава се извършва автоматичен контрол за валидност на въведените полета.
По време на записване на макрос може да натиснем
Alt+F3. Тогава се появява меню, от което ако изберем:
1. Клавиш - появява се "Изпълни Alt+" и трябва да попълним номера на
клавиша Alt+X, с който да продължи макросът. Може да използваме например кошчето или Alt+F8,
2. Към cF11 - следва избор на клавиш Alt+X, чието съдържание ще се копира в
клавиша Ctrl+F11. Може по-късно директно да изпълним Ctrl+F11.
3. От cF11 - следва избор на клавиш Alt+X, в който ще се копира съдържанието на
клавиша Ctrl+F11. Често това се използва за да се смени действието на клавиша Alt+0.
4. Име - следва избор на клавиш Alt+X, чието име да променим. Често това се
използва за да направим видим или невидим даден клавиш като махнем или сложим точка в първа позиция на името му.
Съвсем друго е значението на Alt+f3 в режим на редактиране / проиграване на
макроси (влизането в този режим е обяснено в CPA1.docx).
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в CPA1.docx за това как може макрос от текущата "десятка" да продължи изпълнението с макрос от друга "десятка" (вж. "10. Извикване на следваща десятка макроси"). В същия файл има обяснения за това как може да се редактират/проиграят макроси (вж. "11. Редактиране и проиграване на макроси"). Вж. и "12. Стартиране на макроси в пакетен режим".
Когато макросът е на две стъпки (първо предлага да се въведат параметри, а после продължава), добре е в началото да се вижда само клавиша за начало на макроса, а след първата стъпка да се вижда само клавиша за продължение на втората стъпка. Така няма да може да се викне продължението преди да са попълнени параметрите. Освен това хубаво е, след като завърши продължението, то да зареди отново първата "десятка", за да може макроса да се стартира повторно без да е нужно да се зарежда на ръка.
Ако след изпълнението на макроса не е необходимо той да остава зареден в паметта, може накрая в макроса да заредим празен набор макроси, който в номенклатурата на макросите е обикновено с № 0 (в по-старите версии 1).
Добър стил е в макросите да се използват предварително подготвени таблици:
Таблици: зареждане от диск (Ctrl+F3). Движението по таблиците
(а и на други места) НЕ трябва да става с PgUp или PgDn, защото е възможно
програмата да бъде пусната в мода на дисплея, където прозорецът да има повече
или по-малко редове. Тогава изпълнението на PgDn ще ни заведе на друг ред.
Затова е добре всички полета от таблицата, по които имаме работа, да са на първите редове.
При движение надолу или нагоре по справки трябва да се използват Ctrl+PgDn или
Ctrl+PgUp. Вж. Справки: преглед на екран и редактиране.
Препоръчва се всички таблици, кошчета, текстове и следващи "десятки" макроси да носят имена близки до името на първата "десятка" макроси.
Добре е при въвеждане на номерата на макроси, таблици, кошчета и текстове да се работи с петцифрени числа (в старите версии - трицифрени). Например, ако зареждаме таблица с номер 23, в полето за въвеждане на този номер записваме " 23" (три интервала и после 23). Така някой ден може да заменим таблица 23 с таблица 12115 (петцифрен номер), без да се налага да преправяме остатъка от макроса.
Ако по време на макрос се влезне в случаен документ (напр. № 1 при смяна на месеца за някаква справка) и в същото време друг потребител е там, в браузер се появява "Програмата се опитва да влезне в документ заключен от друг потребител. До 10 секунди другия потребител ще бъде принуден да излезне от документа". В този случай програмата чака докато се освободи документът.
По време на макрос не трябва да се влиза на промяна на номенклатура освен чрез бърз макрос. Ако макросът трябва да вземе име или друго поле от елемент на номенклатура, по-добре е да е през справка. Иначе е възможно някой друг да е на промяна в този елемент. Тогава в браузер се появява "Програмата се опитва да влезне в елемент заключен от друг потребител. До 10 секунди другия потребител ще бъде принуден да излезне от елемента". В този случай програмата чака докато се освободи елементът.
Ако ще обработваме последователно записите от някоя НОМЕНКЛАТУРА В
МРЕЖОВА СЕСИЯ трябва да предвидим, че е възможно в същия
момент някой друг да е заключил записа до който сме стигнали. Тогава в браузер
ще се появи "Програмата се опитва да влезне в елемент заключен от друг потребител. До
10 секунди другия потребител ще бъде принуден да излезне от елемента". В
този случай програмата чака докато се освободи елементът.
Затова такива макроси се пускат само в локална сесия. За да сме сигурни, че в мрежова
сесия макросът няма да стартира, е необходимо той да започне с извикване
на външна програма 1. Запис на пред-пред-последния сеанс и на въпроса
за изпълнение да отговорим с Enter (защото това е точка от програмата, която в
мрежова сесия ще даде съобщение "Заключено").
Горната забележка важи и при масова обработка на ДОКУМЕНТИ.
Ако правим макрос за промяна на номенклатура, добре е цикълът да започва с натискане на цифрата 2 намирайки се на менюто "1.Допълване 2.Промяна 3.Изтриване 4.Преглед". После натискаме Alt+F8 и т.н., а завършваме цикъла с Ctrl+Enter на прозореца с данните и Esc. Това се прави защото след последния запис се появява съобщение "Достигнат е краят на списъка", на което трябва да отговорим с Esc (а не с Alt+F8).
Следват:
Макроси: бърз макрос,
Макроси: слаба парола,
Макроси: Internet/Intranet.
Поредица от макроси извикващи се един друг, от които ръчно стартираният е с име започващо с '!' (удивителна) ще наричаме
Само макрос, който е част от ръчно стартиран
В локална сесия след стартирането си
В мрежова сесия след стартирането си
Ако
Макросът отново преминава в бърз, ако:
а)
б)
Имената на макроси започващи с ; или ? не се показват и не може да се стартират ръчно, подобно на имената започващи с точка.
По-долу има примери.
Ако в режим на проиграване на макрос ръчно проиграваме (а не сме стартирали)
По време на работа на бърз макрос всички останали обработки в мрежата спират. На другите потребители се появява съобщение
"STOPt" (стопиране заради транзакция). Затова такъв макрос не трябва да се бави с обработката.
Много да се внимава с използването на ; за да не се накъса на повече от един бърз
макрос някоя цялостна обработка. Пример на лошо използване на ';':
(1) бърз макрос отива в първия празен номер на дадена папка документи и запомня номера на документа в кошчето за да го използва по-късно за
автоматично осчетоводяване,
(2) по време на подготовката на данните за автоматично осчетоводяване чрез различни справки,
(3)
Програмата не може да се прекъсне (напр. с Alt+F4) по време на изпълнение на бърз макрос.
Ако се прекъсне насила програмата (чрез End Task или Log off) когато сме в мрежова сесия
и работи бърз макрос - при следващо проиграване на сеанса няма да се изпълни наново нито едно от действията на
бързия макрос, но всички останали действия преди последния бърз макрос ще се проиграят.
Ако се прекъсне насила програмата (чрез End Task или Log off) когато сме в локална сесия
и работи бърз макрос - при следващо пускане тя ще иска да влезне в локална
сесия и ще проиграе целия сеанс, включително и бързия макрос. Тази техника се
използва за обработки, които не бива да се прекъсват (трябва да свършат на всяка
цена). Това, че може да не се изпълнят бързо, не е проблем в локална сесия.
Ако бърз макрос спре поради изсвирване на програмата прекъсващо макрос и вече е редактиран документ или номенклатура,
програмата дава грешка Fast macro is not complete. Ако това стане при
изпълнение в режим на проиграване на макрос, само се издава в браузер съобщението
Прекъснато е изпълнението на бърз макрос. Изтрийте на ръка недовършените осчетоводявания.
Ако в режим на проиграване на макрос ръчно проиграваме (а не сме стартирали), нищо не се случва (както
отбелязахме по-горе, тогава програмата не преминава в режим на бърз макрос за да не спира другите потребители).
Ако излезем от справка не по време на макрос, програмата сменя знака ! в началото на името на
При изпълнение на
Когато макрос спре принудително след изсвирване (вкл. и заради заключен месец/документ), цялата "десятка" макроси се подменя от един макрос
"7. Отказ, към главно меню". Това не важи:
- ако сме с администраторска парола или
- ако се случи по време на макрос, който може да стартираме ръчно (името му не започва с точка,
Ако не сме с пароли 98 и 99, независимо дали месецът/документът се счита за заключен, програмата може да работи навсякъде по време на
изпълнение на
а) 10002. Начало на Уни (след като се стартира се променя името на макроса Alt+1) и 10003. Избор от меню,
б) 10758. Осчетоводяване на последни цени с ДДС (при справка продажби 13 например),
в) 19048. Продажби Изписване на група 30 (счетоводно) / сметка 31 (в Уни),
г) 19030. и 20094. Повторен печат на доставка/продажба в Уни.
Промените в данните (документи, номенклатури, таблици, текстове, кошчета)
трябва да се извършват ПОСЛЕДНИ, НАВЕДНЪЖ, с бърз макрос. Накрая
макросът подготвя началото на нова обработка и
предлага на потребителя прозорец за попълване на параметри или меню за избор.
Така ако по време на интерактивността на потребителя (докато се движи по
менютата или попълва форми) той напусне програмата или спре за известно време
активна работа - това няма да повлияе на пълнотата на данните.
Ако се очаква дадена номенклатура да се обработва масирано от макрос, името на номенклатурата трябва да започва с '!'. Тогава влизането в номенклатурата в локална сесия може да се извършва само чрез макрос, а в мрежова сесия - само чрез бърз макрос, иначе ще даде съобщението "Заключено".
Примери на
a) при приемане на данни от чужда програма - след всеки отделен документ бързият макрос става обикновен за да даде възможност на други чакащи
потребители да изпълнят бързите си макроси,
б) при повторен печат на продажба бързият макрос става обикновен точно преди извикване на браузер за показване на фактурата (т.е. избягва се
изчакването от зареждането на браузера да пречи на останалите потребители).
Следват:
Макроси: слаба парола,
Макроси: Internet/Intranet.
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в CPA2.docx за това как се създават пароли и как се определя нивото им на достъп.
При влизане в програмата със слаба парола се задействат редица ограничения, които не позволяват на потребителя
свободно да променя номенклатури и документи и да изпълнява произволни справки.
Това не важи при изпълнение на макрос.
Ако работим със слаба парола различна от № 3, в месец преди предпоследния
системен месец, месецът се счита за заключен (въпреки, че реално може и да е отключен).
При слаби пароли обикновено не се появяват съобщения, на които да се отговаря с
ESC или Shift+Enter, не съществуват икони, не са достъпни месец, година, папка, номер и описание на
документа, не може да се излезе от режим на табулация в
справка, запис на пред-пред-последния сеанс (когато е задължителен) започва без въпроси.
Функционалните клавиши Fx нямат обичайното действие. Те се използват за по-удобно стартиране на макрос: така освен с Alt+x може да се стартира и с Fx. Помощта се избира с Shift+F1. Останалите функционални клавиши са недостъпни.
За да се контролират действията на потребител със слаба парола, към всички папки, в които работи, се прикрепят макроси (чрез типа на папката).
Програмата запомня папката, с която е влезнато в началото на сеанса и на излизане не я променя. Така може макрос да сменя папките и да се излезне от програмата по всяко време - при следващото влизане в програмата пак ще се влезне в зададената папка. Ако на влизане в програмата папката е била празна, програмата счита, че е въведена папка с номер 1.
При първоначално влизане в програмата със слаба парола, към която е
прикрепена папка от тип СЪС сметки, автоматично се отива в последния системен
месец в "Документи", в същата папка, в поредния нов документ.
Обикновено една от сметките в такъв случай е сметка с цена от номенклатурата. За
такава сметка (при работа със слаба парола) в полето за номер на номенклатурата (стоката):
- ако се въведе число с десетична точка - то се запомня като количество, а на
всички останали полета се удря автоматично Ctrl+Enter. Ако не се въведе количество - счита се за 1,
- при промяна на ред - може да се въведе първо количество (с десетична точка) и
после да се потвърди номенклатурния номер. Ако на промяна се удари два пъти
Enter - изтрива се (също и при въвеждане на нулево или отрицателно количество).
- ако има ограничение за максимален брой редове в касов бон (указан в ключа от регистратурата CashBond\Rows), в
един документ не може да се въвежда от количествена сметка по кредита повече редове от максимума (в общия
брой влизат и другите сметки) - това ограничение за нормална парола е само като
предупреждение. То не важи при пускане на макрос, ако сметката не е типова по кредита, ако не е на допълване.
Този стил на работа (въвеждане в самия документ, с показване на сметките) е остарял.
При първоначално влизане в програмата със слаба парола, към която е прикрепена папка от
тип БЕЗ сметки, най-напред автоматично се отива в последния системен месец в
"Документи", в същата папка, в поредния нов документ. След това автоматично се отива в кошчето. Накрая,
ако към папката има прикрепена "десятка" макроси, в която има макрос с име започващо с
Потребителят със слаба парола не вижда номенклатурни елементи с имена започващи с интервал (а ако въведе такъв, програмата автоматично му маха водещите интервали). Това дава възможност елементите от една номенклатура, които се използват за служебни цели, да станат невидими. По същия начин може да са недостъпни някои папки и сметки, ако ще позволим на потребителя ръчно да осчетоводява (а не чрез макроси), което става с парола с ниво на достъп 03 описан в достъпния за специалистите от "СиПиЪкаунтинг" ЕООД файл CPA2.docx.
За поле от тип номенклатура може в Справки: поле: сума да включим знака '+'. Тогава в режим на табулация може да се влиза в редактиране на номенклатурата. Ако сме със слаба парола, веднага след като допълним или променим един елемент, програмата ни връща в справката.
За да можем, със слаба парола, свободно да редактираме множество елементи от номенклатура, трябва макрос да ни доведе до менюто за работа с номенклатури: "1. Допълване, 2. Промяна, 3. Изтриване, 4. Преглед". За да не може да излезем от номенклатурата, ако първо натиснем Esc, трябва макросът да завърши в момента, в който се появи менюто. В този режим може свободно да допълваме, променяме и преглеждаме номенклатурата, но не може да излезем от нея освен чрез макрос.
При слабите пароли смяната на месеца в "документи" не изтрива папката! Трябва да се има предвид, при правене на макроси, че с администраторска парола програмата не се държи така - ето защо след смяна на месеца в макроса трябва да се влезе в текущата папка въпреки, че за слаба парола това е излишно. Влиза се в текущата папка, а не в определен номер папка, за да може макроса да се закрепи за различни папки (а оттам и различни пароли). Зареждането на различни макроси за различните пароли според папката им е вече остаряла техника (сега нивата на достъп се определят в номенклатура "108. !Параметри на пароли").
Ако по време на изпълнение на макрос със слаба парола, макросът прекъсне на
месец/година в "документи" - каквито месец/година да се въведат после -
програмата отива винаги само в последния системен месец.
Ако макросът прекъсне на друго неподходящо място, възможно е да излезе
съобщението "!!! Грешка. Моля, запишете как сте
стигнали дотук. !!!"
Няма проблем за външна програма 1. Запис на пред-пред-последния сеанс при работа само със слаби пароли. Вече всички слаби пароли имат достъп до макрос за изпълнение на приключване на месец. Ако някой макрос ги спре да въведат новия месец, там няма да може да се даде Ctrl+Enter (за да се прескочат няколко месеца).
Ако по време на работа с нормална парола, се смени паролата към слаба и се излезе от програмата - запомнят се всички параметри на нормалната парола в слабата.
Следва Макроси: Internet/Intranet.
В режим на Internet/Intranet потребителят на програмата работи в средата на Internet браузер. При завършване
на работата му в една HTML страница Internet браузерът извиква програмката
CPAccounting.exe, която изпраща към програмата сървър
CpaS.exe попълнените полета от страницата (не всички са видими) за да изпълни
макрос, чийто номер е кодиран в страницата така:
<input type="hidden" name="mXXXXXXaY">, където XXXXXX е номерът на макроса, а Y е номерът на клавиша.
Ако name="m100000a0", се извиква макроса обслужващ попълването на прозорец за избор от номенклатура.
Не се изпълняват макроси с номер по-малък от 80000 (а за вариант на документите преди 2007 г.,
не се изпълняват макроси от нулевата ("0. Празен набор") и първата десятки).
Сървърът (CpaS.exe):
1. Получава от CPAccounting.exe изпратените му от браузера полета във вид на справка с две колони (име и стойност)
REPRT1.
2. Изпълнява "на тъмно" макроса. Макросът трябва да изпълни поне веднъж външна
програма 31. От справка към HTML (Windows) или
32. Изпълнение на справка в HTML (Windows) (обикновено с
това макросът завършва).
3. Записва като cookie (вж. Правила за писане на HTML приложения)
при потребителя всеки от първите 22 реда на кошчето, който е във формат
"име=стойност".
4. Зарежда в браузера на потребителя получената от външна програма
31. От справка към HTML (Windows) или 32.
Изпълнение на справка в HTML (Windows) HTML страница.
В следващите редове са обяснени инсталирането, а от точка 13 работата с програмата сървър
CpaS.exe, стопирането й и проиграването на макроси.
Вж. и Правила за писане на HTML приложения.
Инсталиране на Internet/Intranet сървъра на програмата
Това се прави след като сме инсталирали Windows версията на програмата както е описано в Remote Desktop Connection.
Надолу считаме, че:
- папка CpaFlash се намира на служебния компютър (или на диск с архив на програмата),
- Windows версията на програмата е инсталирана на R:,
- влезли сме в Windows с администраторска парола.
.
Ето редът на инсталиране Internet/Intranet сървъра на програмата:
Точки от 5) до 14) се изпълняват за всяка администраторска парола, която бихме използвали да стартираме Apache Tomcat.
1) Инсталираме Java и Java SE Development Kit. За целта изпълняваме jdk-8-windows-i586.exe, който може да вземем от
служебния компютър в папка CpaFlash\Archives\Apache. Стартираме, но не намирайки се в субституирания път, а в реалния, като с десния клавиш
на мишката кликваме Изпълни като администратор (Run as administrator).
2) Добавяме с десен клавиш на My Computer -> Properties -> Advanced -> Environment variables -> System variables променливата:
JAVA_HOME да е например C:\Program Files\Java\jdk1.8.0 (според реалната папка).
3) Деархивираме на произволно място файла apache-tomcat-8.5.6-CPAccounting.zip намиращ се в папка
CpaFlash\Archives\Apache на служебния компютър. Настройките на Apache Tomcat са според записаните в
"CpaFlash\CpaWeb\apache-tomcat-8.5.6 - настройки за CPAccounting.zip".
4) Деархивираме в R:\Cpa\Cpa файла CpaS.zip намиращ се в папка CpaFlash\CpaLast на служебния компютър.
Полученото CpaS.exe е сървърът на програмата.
5) Стартираме CpaS.exe, но не намирайки се в субституирания път, а в реалния. Програмата ще изведе
в браузер съобщението:
Моля, съобщете на администратора:
В папката не съществува файл network.
cat
6) Стартираме CPAccounting.exe от apache-tomcat-8.5.6-CPAccounting\webapps\ROOT\WEB-INF\cgi,
но не намирайки се в субституирания път, а в реалния. Ако това предизвика автоматичното изпълнение на предната точка, продължаваме с точка 11).
Иначе,ще получим съобщението:
HRCHECK:
'Create(intfObj)': Class not registered
или 'Create(intfObj)': The system cannot find the file specified.
или 'Create(intfObj)': Error loading type library/DLL.
или 'Create(intfObj)': ....нещо друго...
@ c:\program files\borland\cbuilder6\include\vcl\utilcls.h/3250
Press [Y]es to terminate, [N]o to continue and [C]ancel to Debug
на което отговаряме с натискане на Y.
7) С десен клавиш на мишката върху CpaS.exe и после върху CPAccounting.exe избираме Свойства (Properties),
Съвместимост (Compatibility), включваме Стартирай тази програма в режим на съвместимост с: (Run this program in compatibility mode for:) и избираме
под него Windows XP (Service Pack 2).
8) Стартираме CpaS.exe и после CPAccounting.exe и
ако получим следното съобщение:
Do you want to allow the following program from an unknown
publisher to make changes to this computer?
или
Do you want to allow this app from an
unknown publisher to make changes to your device?
отговаряме с Yes.
Ако след това ни пита дали програмата работи правилно, отговаряме с Да (Yes).
Ако при изпълнението на CPAccounting.exe даде следното съобщение въпреки, че има път към R:\Cpa\Cpa, не му обръщаме внимание:
The program can't start because rtl60.bpl is missing from your
computer. Try reinstalling the program to fix this problem.
9) Както в точка 7), променяме съвместимостта от Windows XP (Service Pack 2) на Windows 7, а ако Windows е по-стара
версия и не предлага в списъка Windows 7, избираме най-високата версия, която се предлага.
10) Стартираме CpaS.exe и после CPAccounting.exe.
Ако отново имаме проблем, рестартираме компютъра и пак пробваме. Трябва вече изпълнението на CPAccounting.exe да предизвика автоматичното изпълнение
на точка 5) или поне да извика браузера, или ако е изпълнено в Command Prompt да изпечата текста на малка html страница започващ с:
Content-type: text/html
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251">.
11) Променяме в регустратурата всички ключове CPAccountingServer/1.00/Application с името на съществуващото приложение,
което ще се достъпва през Интернет сървъра (например Uni). Ако е различен диска на приложението, променяме и всички ключове
CPAccountingServer/1.00/Path. Най-бързо ще ги намерим като в regedit търсим
printerdosfornt - CPAccountingServer ще е малко над него.
12) Стартираме CPAccounting.exe и то би трябвало да извика CpaS.exe и да го
зареди без никакви съобщения за грешка.
13) Създаваме икона за стартиране на Apache Tomcat, която е пряк път към файла
startup.bat от папката apache-tomcat-8.5.6-CPAccounting\bin като я преименуваме на
Tomcat.
Стартираме иконата. Ако, при стартиране на Tomcat, Windows ни каже:
Windows Firewall has blocked some features of Java(TM) Platform SE
binary on all public and private networks.
натискаме клавиша Allow access. За да работи Интернет сайтът, не трябва да спираме Apache Tomcat, но може да излезем от отдалечената връзка с
Disconnect.
Apache Tomcat се спира или като се затвори прозореца му, или като се изпълни shutdown.bat от същата папка.
14) Стартираме сайта локално (Intranet) като заредим в браузер http://localhost:8080/.
15) Изпращаме следното
Здравей,
Инсталирах Интернет версията на програмата, включително и програмата за работа със сайтове Tomcat. Тя трябва да е постоянно пусната за да работи
сайтът на програмата. В момента съм пуснал Tomcat-а от моя юзер (чрез иконката на десктопа Tomcat) и съм се дисконектнал. Може да достъпвате сайта от
вътрешната мрежа като въведете в браузера:
http://localhost:8080/
За вас следва:
(1) Поръчвате на системния програмист да направи сайта видим в Internet. Понеже ще ползваме функциите за
геолокация (и/или Google Maps), сайтът трябва да е шифрован: https. Ако
сертификатът за защита, представен от този уеб сайт, не е издаден от надежден сертифициращ орган, при зареждане на
сайта през Интернет (но не и през http://localhost:8080/) ще има предупреждения, които би трябвало спокойно да игнорираме.
(2) За да ползваме Google Maps, трябва да си вземете ключ от:
https://developers.google.com/maps/documentation/javascript/get-api-key
и да ми го пратите, за да го запиша в програмата.
(3) Трябва да ми пратите номерата (и имената) на лицата от програмата, които ще работят през Интернет, за да им направя пароли.
Успех!
16) След като клиентът ни прати ключа по точка (2) от писмото, записваме го навсякъде (в страниците и текстовете от програмата) вместо ключа записан
след https://maps.googleapis.com/maps/api/js?key=
17) След като клиентът ни прати лицата по точка (3) от писмото, въвеждаме паролите на потребителите на Интернет
приложението на програмата според обясненията в номенклатура 108 и таблица "90000. Влизане (име и парола) - проверкаI(н108)".
Може да видим пример от инсталация Palomita като гледаме само тези без попълнено гл.меню, но с попълнено лице.
18) Във файла с обясненията R:\g0000bg\Tablet.doc попълваме с реалните адреси XXX.XXX.XXX.XXX:YYYY и XXX.XXX.XXX.XXX
и пращаме този файл и паролите по точка 17) с
19) Сървърът на програмата CpaS.exe се самоизключва, ако в продължение на 6 часа няма обръщение към него (от
CPAccounting.exe). Ако желаем през деня той да е включен постоянно, задаваме в Task Scheduler
стартирането на CPAccounting.exe (а не CpaS.exe), например на всеки пет часа. Стартирането на CPAccounting.exe без
параметри предизвиква обръщение към CpaS.exe, което ще го накара да не се самоизключи през следващите шест часа.
Би трябвало през нощта CpaS.exe да се изключи и на сутринта преди включването му да се стартира Windows версията на програмата
CPAW.EXE, която да обнови Zip файловете на програмата. За целта, задаваме в Task Scheduler рано всяка сутрин след изключването
на CpaS.exe да се стартира R:\Cpa\Cpa\CPARUN.BAT Xyz 1 ESC, където Xyz е името на приложението. Може половин час
по-късно да се зададе стартирането на CPAccounting.exe.
Трябва да се знае, че Apache Tomcat търси файла с точно въведените букви (големи или
малки). Например: ако наберем Index.Htm, но реално файлът е с малки букви index.htm, ще даде грешка 404 (че не е
намерена страницата).
В apache-tomcat-7.0.52 имаше грешка по отношение на външни CSS файлове - те не се намираха, ако са с големи букви (в папка g0000bg и в HTM
файловете) и сайтът е HTML5. При версия apache-tomcat-8.5.6 грешката е оправена.
Основната папка за сайта (където се намира INDEX.HTM) e
apache-tomcat-8.5.6-CPAccounting\webapps\ROOT,
за папка \cgi-bin се счита папката
apache-tomcat-8.5.6-CPAccounting\webapps\ROOT\WEB-INF\cgi,
останалите папки са подпапки на
apache-tomcat-8.5.6-CPAccounting\webapps, например \g0000bg е
apache-tomcat-8.5.6-CPAccounting\webapps\g0000bg.
Тези обяснения са допълнение към Макроси: Internet/Intranet.
Програмата поддържа параметри, които се записват при клиента. Те се наричат
cookie ("бисквитка") и са не повече от 20 на брой. Такива параметри може да
бъдат например "брой артикула в кошницата" или "сума на покупките в кошницата".
Това позволява:
- използването на статични страници (файлове, които не се променят от сървъра),
които получават параметрите си при клиента,
- идентификация на клиента по неговия идентификатор на сесия (това cookie е с
име "SessionId").
Всяка страница трябва така да е програмирана, че веднага след зареждането си
при клиента да изпълни функцията CheckCookie() от файла Cookie.js,
която извършва следните действия:
- ако не успее да създаде cookie с име "CPAccounting", в отделен прозорец излиза
страницата NOCOOKIE.HTM обясняваща необходимостта от включване на
поддръжката на cookie,
- ако съществува cookie с име "OldSession", в отделен прозорец излиза
страницата OLDSESS.HTM обясняваща, че сесията е била закрита и кошницата
изпразнена, - изтрива "OldSession".
(Някои от обясненията не важат за вариант на документите преди 2007 г.)
Всяка страница, която вика динамична страница (динамичната страница се
създава от сървъра при всяко повикване), автоматично предава наличните cookie
към сървъра. Той АВТОМАТИЧНО извършва:
Преди изпълнението на макрос 999, 998 или макроса за следващата страница (3), програмата автоматично:
- ако е макросът за следващата страница, записва времето на обръщение
- преминава в последния системен месец
- попълва "последно въведените папка/№ по ред на документ":
- папката - с "99999",
- № по ред на документа - с номера на сесията
- приравнява на 999 (най-големия възможен номер на парола):
- автоматичен стринг (Ctrl+D) "20. Парола - номер по ред" и
- автоматичен стринг (Ctrl+D) "33. Парола - приоритет"
- приравнява на 'bg' автоматичен стринг (Ctrl+D) "34. Парола - език"
- ако съществува въведеният по-горе документ и в началото на текста му има (гледат се само двуеточията):
парола:ХХХ,приоритет:YYY,език:ZZ
- ако 1 <= XXX <= 999, променя на XXX автоматичен стринг (Ctrl+D) "20. Парола - номер по ред"
- ако 1 <= YYY <= 999, променя на YYY автоматичен стринг (Ctrl+D) "33. Парола - приоритет"
- променя на ZZ автоматичен стринг (Ctrl+D) "34. Парола - език"
- изтрива кошчето,
- нулира Alt+F8,
- задава брой редове на печатна страница равен на 9999 (ето защо в
макрос преди печат трябва да се променя на 0 (или 60 или каквото трябва), а
после може и да не се връща на 9999).
Когато след създаването на следващата страница трябва да се променят и cookie
(например прибавен е продукт в кошницата и трябва да се увеличи cookie "sum"),
макросът за нейното изпълнение се състои от следните части:
1. Подготовка на страницата завършваща с изпълнение на външна програма
31. От справка към HTML (Windows) или 32.
Изпълнение на справка в HTML (Windows) (която автоматично изтрива кошчето).
2. Ако не е необходимо да се променят основните cookie, минава към т.4.
Иначе - на ред 22 в кошчето се записва номер на макрос, който ще се изпълни в т.4.
3. Пуска се макрос 998 Alt+1 обяснен по-горе след (4), който завършва като
извиква макроса, записан на ред 22 в кошчето и натиска Alt+1.
4. Изчислява останалите необходими cookie и ги записва в кошчето
по едно на ред във формат "име=стойност" (без да припокрива редовете попълнени в т.3).
Програмата поддържа не повече от 9999 отворени сесии едновременно. Когато
няма свободно място за нова сесия:
- избира се първата в списъка сесия, за която времето изтекло от последното
обръщение към сървъра е повече от ключа от регистратурата CloseIdleSessionAfter и минава към (а),
- ако няма такава остаряла сесия, избира се първата, за която параметър
"CanClose" е равен на 1 и минава към (а),
- ако няма и такава временна сесия, издава се съобщение, че сървърът е претоварен, (край),
(а)
- сесията се закрива и мястото й се използва за новата.
Вж. и автоматични стрингове (Ctrl+D) "41. Потребител на операционната система: от име към номер" и "42. Компютър: от име към номер".
Изпълнението на макрос може да се извърши чрез директно набиране на клавиша:
Alt+1, ... , Alt+9 или Alt+0, а със слаба парола и чрез F1, ... , F10. Ако не
сме сигурни кой клавиш точно трябва да натиснем, може да натиснем F4. Тогава се
появява прозорец със списък от всички макроси и имената на всеки от тях. Със
стрелките се придвижваме до желания клавиш и натискаме Enter (или може да се откажем с Esc).
В Windows версията на програмата макросите, които може да се стартират ръчно (името им не
започва с точка,
След като завърши изпълнението на макроса на долната рамка на прозореца, където
обикновено се показва точният час, се изписва продължителността на изпълнението
в секунди. Ако то е по-малко от 1 секунда, водещата нула не се показва.
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в CPA1.docx за това как може да се редактират/проиграят макроси (вж. "11. Редактиране и проиграване на макроси"). Вж. и "12. Стартиране на макроси в пакетен режим".
За забавяне на следващия макрос при включен режим на редактиране/проиграване на макрос натискаме Alt+F3 и после 4. Всяко натискане добавя забавяне от по 1/10 от секундата на клавиш от макроса. Но след изпълнението му забавянето е отново 0.
Зареждането на макросите от диска
става чрез натискане на Shift+F3. Появява се поле, в което трябва да попълним
номера, под който е записана желаната "десятка" макроси. Това става според
Номенклатури: избор на елемент. Вж. 68. Промяна на "Парола - език".
След зареждането, в Windows версията, името на "десятката" макроси се показва в квадратни скоби в заглавието на програмата
(ако името завършва с нула, тя не се показва).
Зареждането може да стане и от подменю "2. Справки" на главното
меню (F10) или като щракнем върху съответната икона на горната рамка на програмата (в Windows версията).
Ако паролата ни не е администраторска, няма да видим в списъка с макросите тези, чиито имена завършват с цифра.
В Windows версията на програмата заредените макроси се появяват като бутони в горната рамка на програмата и може да се стартират с мишката. Чрез клавиатурата може да стартираме макрос като при натиснат Alt леко чукнем тази цифра от клавишите над буквите, която стои като номер пред името на макроса (например Alt+1).
Записването на "десятка" макроси
за бъдеща употреба става чрез натискане на Shift+F4. Появява се поле, в което
трябва да попълним номера, под който ще се запише текущия набор макроси. Това
става според Номенклатури: избор на елемент. След въвеждане
на номера следва предупреждаващо изсвирване и съобщение "За
запис на твърдия диск - Shift+Enter". Тогава натискаме Shift+Enter.
Ако не сме с администраторска парола, тази функция е забранена. Тогава натискането на
Shift+F4 е равносилно на натискане на Shift+F3.
Ако даде "Заключено", причината може да е липсата на папка съответна на текущия език.
Вж. 68. Промяна на "Парола - език".
Ако някой от макросите е непразен, но с празно име, вместо запис на диска излиза
съобщението Трябва да се попълнят празните имена на пълните макроси (например с точка).
Стартирането на макрос с празно име (подобно на такъв с име незапочващо с точка,
Вж. Таблици: записване на диск (Ctrl+F4). Когато сме в
таблица за справка и натиснем Ctrl+F3, може да заредим от диска записана по-рано
таблица за текущата справка. Появява се поле, в което трябва да попълним номера,
под който е била записана таблицата. Това става според Номенклатури: избор на елемент.
Програмата проверява дали зарежданата таблица съответства на текущата и ако не - изсвирва и не я зарежда. Например:
ако работим в справка "3. Документи", не може да заредим таблица записана
при работа в справка "1. Номенклатури".
Ако не сме в таблица за справка и изпълним Ctrl+F3, първо програмата сама отива в подходящата справка и после
зарежда таблицата. Това се използва в макрос "902. Търсене с Ctrl+S във всички таблици".
Вж. 68. Промяна на "Парола - език".
След това програмата проверява дали са еднакви ширините на съответните
първични полета от зарежданата и текущата таблица. Под първични полета разбираме
оригиналните полета от базата данни, без допълнително разгънатите и без формулите.
При различие или ако няма съответно първично поле
и ако е по време на макрос или паролата ни не е администраторска:
Ако не е по време на макрос, паролата ни е администраторска и не сме заредили вече грешна таблица:
Ако вече е заредена грешна таблица, горните проверки не се извършват и се показва съобщението "Заключено".
Съобщения за грешки не се показват при изпълнение на макрос "902. Търсене с Ctrl+S във всички таблици" и затова при зареждането му излиза съобщението "Докато е зареден макрос 902 не се издават съобщения за грешни таблици.".
Когато подготвим подходяща таблица за текущата справка според
Справки: таблица за справка може да я запишем на твърдия диск за бъдеща
употреба с натискане на Ctrl+F4. Появява се поле, в което трябва да попълним
номера, под който ще се запише текущата таблица. Това става според
Номенклатури: избор на елемент. След въвеждане на номера
следва предупреждаващо изсвирване и съобщение "За запис на
твърдия диск - Shift+Enter". Тогава натискаме Shift+Enter.
Ако даде "Заключено", причината може да е липсата на папка съответна на текущия език.
Вж. 68. Промяна на "Парола - език".
Вж. Таблици: зареждане от диск (Ctrl+F3). Тъй като не може да
заредим таблица, която е за друг тип справка (например в справка "3. Документи"
не може да заредим таблица запомнена в справка "1. Номенклатури"), добре е на
края на името на всяка таблица да е указано в скоби от къде е запомнена. Например:
- (ном.1106) - номенклатура № 1106,
- (xxx-xxx) - сметка - сметка с празни полета,
- (акум.) - акумулирана и т.н.
Всички телефонни абонати, записани в телефонния указател, имат име, телефон,
адрес и код, под който са записани в указателя.
След натискане на клавиша F5 се появява поле, в което трябва да попълним кода на
желания телефонен абонат. Ако не знаем кода наизуст, може да попълним началните
букви от името му и после както е описано в Номенклатури:
въвеждане на номер да го намерим. След въвеждането на желания код, на екрана
се появяват и останалите данни за абоната: телефон и адрес. Може да променяме и
допълваме телефонния указател.
Всички Ваши въпроси може да получат отговор на телефоните на "СиПиЪкаунтинг" ЕООД: 0888-231-671 и 0888-570-635.
Важи само в DOS версията на програмата.
За да наберем телефонен номер записан в кошчето, натискаме
Shift+F5. Показва се кошчето, със стрелките избираме желания ред и натискаме
Enter.
Ако модемът не е пуснат или не е настроен правилно се появява съобщението "Модемът
не отговаря", на което отговаряме с Esc.
Ако всичко е наред, се появява съобщение "Затворете телефона и натиснете ESC". След като затворим телефона, натискаме Esc. Започва набирането на телефонния номер. Може да го прекъснем с натискане на клавиш.
След набиране на номера следва съобщение "Вдигнете
слушалката и натиснете ESC". Натискането на Esc преди да вдигнем
слушалката е равносилно на затваряне на телефона след набиране на номера.
Понякога, след автоматичното набиране на телефонния номер, не може да се улови
сигнала OK от модема и вместо да ни предложи да двигнем слушалката, програмата
показва съобщението "Модемът не отговаря". Въпреки
това бихме могли да вдигнем слушалката и да натиснем Esc - връзката може и да се
осъществи.
След вдигане на слушалката и натискане на Esc се появява съобщението "За
повторно избиране Shift+Enter". Ако телефонът не дава свободен сигнал
може да наберем повторно чрез натискане на Shift+Enter.
Вж. Кошче: въведение.
След натискането на F6 на екрана се показват две ивици - вартикална за
посочване на месец и хоризонтална за посочване на година. Автоматично са избрани
месеца и годината, на които е настроен компютърния часовник.
По месеците се придвижваме със стрелките за движение нагоре и надолу, а по
годините - чрез стрелките наляво и надясно. Може да изберем произволна година от
началото на новата ера досега и в бъдеще. Ако сме на януари и натиснем стрелка
нагоре ще преминем в декември предишната година. Ако сме на най-дясната година и
натиснем стрелка надясно, ще преминем в следващата година, която ще се появи на
мястото на най-лявата година, а след нея следващите.
След като сме уточнили месеца и годината натискаме Enter (за отказ натискаме
Esc). На екрана се появява календар за месеца. По него може да се движим със
стрелките. След като изберем подходящия ден натискаме Enter и влизаме в прозорец
за бележки към този ден. Там попълваме желания от нас текст според
Прозорец: текстов редактор или просто преглеждаме задачите за
деня.
От бележника с Esc може да се върнем към календара за месеца, а оттам ако
натиснем Esc се връщаме към избора на годината и месеца.
След натискането на Shift+F6 може да попълним час и минута за звънене на
будилника. Ако часът е преди текущия компютърен час (който е изобразен на
долната рамка на програмата, вдясно), будилникът звънва веднага.
Може да се откажем от звъненето на вече нагласен будилник като изтрием с
интервал часа. При следващото извикване на настройката на будилника ще видим, че
първият символ на полето за попълване на часа е '^', което означава или че
будилникът вече е звънял, или че сме се отказали от звънене, или че в рамките на
сеанса за първи път натискаме Shift+F6.
След като настъпи указаният час се чува иззвъняване и след това се появява
съобщение "Будилникът звънна", на което е
необходимо да отговорим с Esc.
Докато не отговорим на съобщението, иззвъняването се повтаря на всяка минута.
Кошчето се състои от 60 реда, от които в началото са видими само двадесет и два. В Кошче: редактиране (Ctrl+F7)
е описано как може да увеличим броя на видимите редове. На всеки ред може чрез
Кошче: записване (F7) да се запише съдържанието на произволно
поле от произволно място в програмата, а по-късно чрез Кошче:
изпълнение (F8) да направим обратното - да препишем съдържанието (или част
от него) от кой да е ред на кошчето в произволно поле на произволно място в програмата. Вж. и:
Кошче: зареждане от прозорец (Alt+F7),
Кошче: поле от справка (Alt+F8),
Кошче: зареждане от диск (Shift+F7),
Кошче: записване на диск (Shift+F8).
Може временно да запишем кошчето в някой от десетте буфера "кошче 0", ... ,
"кошче 9" с външни програми:
90. От кошче към "кошче 0", ... , 99. От кошче към "кошче 9",
а по-късно да възстановим предишното съдържание на кошчето с външни програми:
100. От "кошче 0" към кошче, ... , 109. От "кошче 9" към кошче.
Може да организираме извикване на подпрограма чрез външни програми "53. От кошче към стек", "54. От стек към кошче" и "55. Нулиране на стека". Стекът има десет нива. При първо извикване на външна 53 кошчето се записва в първото ниво на стека, при следващо във второто и т.н. При извикване на външна 54 в кошчето се записва последното записано ниво на стека и за последно ниво вече се счита предишното. При препълване или изпразване на стека програмата издава съобщения Пълни са всичките 10 нива на стек "Кошчета" или Стек "Кошчета" е празен. След изпълнение на външна 55 стекът се счита, че е празен.
Описаните външни програми може да се изберат и на произволно място в програмата с натискане на Shift+F11. Тогава при опита за избор на външна програма, която не се отнася до работа с кошчето, излиза "Заключено".
Вж. и работата със стек в Управляващ текст: зареждане (Shift+F12).
Вж. Кошче: въведение. Ако се намираме в поле за попълване
на текст, число или дата и натиснем F7, се появява прозорец с 20 реда, от който трябва да
изберем някой ред (например чрез стрелките и/или PgUp/PgDn) и да натиснем Enter. При това в началото на
съответния ред се преписва съдържанието на полето, в което се намираме, без да
се изтрива останалата част от реда. Ако полето е за попълване на текст, то се
преписва само частта от курсора надясно. Независимо от това къде се намираме в
дадено числово поле или поле за попълване на дата, числото или датата се
преписват на посочения ред от кошчето.
След това кошчето се предоставя за промяна, като може да променяме всичките му
редове според Кошче: редактиране (Ctrl+F7). Може да се откажем с Esc или F7.
Вж. Кошче: въведение. След като сме записали нещо в
кошчето, може по-късно да го пренесем в произволно поле.
Винаги когато сме в поле за попълване на текст, число или дата, може да натиснем
F8. Тогава се появява прозорец с 20 от редовете на кошчето. Придвижваме се до желания ред
(например чрез стрелките и/или PgUp/PgDn) и с Enter го избираме. Съдържанието на този ред се преписва в полето.
Ако полето, в което се намираме, е за попълване на текст, съдържанието на реда
от кошчето се преписва от мястото на курсора надясно.
Ако полето е за попълване на число, редът от кошчето се преглежда отначало и се спира на
първия символ, различен от интервал. След това се прави опит да се прочетат
следващите символи като число. Първото прочетено число се преписва в полето. Ако
веднага след водещите интервали няма число, се записват интервали.
Ако полето е числово с ширина 2 или 4 символа, без десетична част и редът от кошчето започва с
валидна или празна дата (вкл. 10 интервала), в полето се преписва съответно месеца или годината.
Ако полето е за попълване на дата, редът от кошчето се преглежда отначало и спира на
първия символ, различен от интервал. След това се прави опит да се прочетат следващите
10 символа като дата. Само ако прочетеното е валидна дата във формат дд.мм.гггг или празна дата
(или празно поле), тя се преписва. Датата 31.01.1991 е валидна, но не и датата 31.01.91.
Ако при въвеждане на документи или работа с
номенклатури прехвърлим символ с ASCII код по-малък от този на интервала и различен от ↔, той се заменя с
@ и програмата изсвирва (което би спряло програмирането или изпълнението на макрос).
Вж. Кошче: въведение. Ако не работим в момента с кошчето и
натиснем Ctrl+F7, минаваме в режим на редакция. Тогава може да променяме
всичките редове на кошчето според Прозорец: текстов редактор.
Може да се откажем от редакциите на текущия ред и да излезем от кошчето с Esc или Ctrl+F7.
За да излезем от кошчето запомняйки и редакциите на текущия ред, натискаме Ctrl+Enter.
Натискането на Alt++ (за дублиране на текущия ред) или Alt+- (за изтриване на
текущия ред) влияе на всичките 60 реда от кошчето, въпреки че някои може да са
невидими. Тези клавиши не дублират/изтриват ред, ако ги натиснем на последния видим ред. Тогава, ако сме натиснали:
Броят видими редове става 22 и след изтриване на кошчето с Ctrl+интервал, а също и в началото на програмиране
или изпълнение на макрос с име, което не започва с точка,
Вж. Кошче: въведение. Когато се намираме в някои прозорци
на програмата може натискайки Alt+F7, да копираме в кошчето съдържанието на
целия прозорец (но не повече от 60 реда). Ако в този момент не сме в режим на програмиране или
изпълнение на макрос и видимите редове в кошчето са по-малко
от редовете в прозореца, преди копирането програмата ги увеличава на 40 (ако
редовете в прозореца са не повече от 40) или 60 (в противен случай). Във всички
случаи старото съдържание на кошчето се измества след редовете копирани от
прозореца (при изместването участват всичките 60 реда на кошчето, дори и част от
тях да са невидими). В DOS версията на програмата това важи само за прозорците
оградени от рамка, състояща се от непрекъсната единична или двойна линия (включително и ъглите).
След това кошчето се предоставя за промяна, като може да променяме всичките му
видими редове според Кошче: редактиране (Ctrl+F7) или да го отпечатаме
с Ctrl+P. Може да се откажем с Esc.
Вж. Кошче: въведение. Зареждането на първите десет реда на
кошчето от диска става чрез натискане на Shift+F7. Появява се поле, в което
трябва да попълним номера, под който е било записано предишно съдържание на
кошчето. Това става според Номенклатури: избор на елемент.
Вж. 68. Промяна на "Парола - език".
Ако кошчето не е било празно, преди зареждането от диска съдържанието му се
измества с 10 реда надолу (като последните 10 реда се губят). При изместването
участват всичките 60 реда на кошчето, въпреки че може не всички да са видими.
Вж. Кошче: въведение. Записването върху диска на първите
десет реда от кошчето с цел бъдеща употреба става чрез натискане на Shift+F8.
Появява се поле, в което трябва да попълним номера, под който ще се запише
текущото съдържание на кошчето. Това става според Номенклатури:
избор на елемент. След въвеждане на номера следва предупреждаващо изсвирване
и съобщение: "За запис на твърдия диск - Shift+Enter".
Тогава натискаме Shift+Enter.
Ако даде "Заключено", причината може да е липсата на папка съответна на текущия език.
Вж. 68. Промяна на "Парола - език".
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в раздел "13. Дневник на програмата" в CPA1.docx за това как може да проследим точните дата, час и кой потребител е записал на диска дадено кошче.
Тази функция обработва последната изпълнена справка или справка
"залепени" в зависимост от параметъра "(Alt+F) Alt+F8 чете от справка
"залепени"" от Параметри на системата (F11).
При натискане на Alt+F8 програмата чете поредното поле от справката
(това което се намира между две оградки │) и през 20-ия ред на
кошчето ни го прехвърля в полето, в което в момента работим. Може да прескочим следващото поле от
справката с натискане на Ctrl+F8.
Не се прехвърлят началото на справката ("шапката"), антетката и края й, а също и
редове пълни само с интервали. Ако реда прочетен с Alt+F8 започва с празно поле
- прескача се целия ред (направено е с цел да се прескачат сумарните редове).
Ако справката е по-тясна от 78 символа на ред, полето вдясно от справката (до
78-ия символ) също се прехвърля.
Когато се стигне до края на справката програмата автоматично ни натиска Alt+0 и
леко изсвирва. Следващо натискане на Alt+F8 започва четенето от началото на справката.
Програмата започва да чете от началото на справката (справка "залепени") и
във всеки от следните случаи:
а) в параметрите е указано Alt+F8 да чете от справка и сме направили нова
справка или сме прегледали справка в Справки: 8. Последна - екран,
б) в параметрите е указано Alt+F8 да чете от справка "залепени" и сме включили
параметър "(Alt+A) 2. Нова акумулирана/залепена".
След промяна в параметър "(Alt+F) Alt+F8 чете от справка
"залепени"" от Параметри на системата (F11) не се забравя
докъде сме стигнали и при следващо превключване на параметъра се продължава от
същото място.
Не се обработват справките получени в "една колона", вж.: "(Alt+E) Справка в една колона" от Параметри на системата (F11).
Ако поле от базата данни съдържа знака │, в справката той се заменя с прекъсната вертикална черта. Това се прави с цел да не се развали последователността на прехвърляне на полетата с Alt+F8 в цикъл по редовете на справката.
Ако прехвърлим знака за край на ред (или друг символ с ASCII код по-малък от този на интервала и различен от ↔), той се заменя с @ и програмата изсвирва (което би спряло програмирането или изпълнението на макрос).
По време на макрос, ако попълним с Alt+F8 поле от тип дата, не трябва да минаваме към следващото поле с Enter, защото ако прехвърлим от справката празна дата, ще е необходим само един, а при пълна дата - 3 пъти Enter.
Важат и правилата описани в Кошче: изпълнение (F8).
Може да използваме Alt+F8 при осчетоводяване за избор на дебит или кредит,
ако полето от справката има стойност "д " (д и два интервала) или "
к" (два интервала и к).
Когато използваме Alt+F8 за попълване на документи, това обикновено става с
няколко цикъла по различните сметки. В този случай много по-бързо и по-надеждно
работи един друг начин за автоматично осчетоводяване - чрез външна програма 41/42/43.
Осчетоводяване от "чужди" (автоматично осчетоводяване).
Вж. и Макроси: Internet/Intranet.
Ако от главното меню (F10) на системата изберем подменю
"Сервизни функции" и оттам "Параметри", влизаме в точката за промяна на
параметрите на системата. Това може да направим и ако натиснем клавиша F11
(а в DOS версията: Shift+F1) на произволно място в програмата.
Промяната на параметрите става според правилата, описани в
Прозорец: попълване на полета. В началото на реда на някои от параметрите е
изписана главна латинска буква, оградена в квадратче. Ако при натиснат Alt
чукнем съответната буква, може бързо да се придвижим до този ред.
Препоръчва се при правене на макроси така да се стига до
желания параметър, а след това да се избере с цифра (а не със стрелка и Enter).
Ето и обясненията за всеки параметър:
ПОСТОЯННИ ПАРАМЕТРИ
Техните стойности се помнят и след завършване на сеанса:
(Alt+P) Принтер номер:
- 0 и 1 са за DOS печат (съответно за LPT1 и LPT2),
- 8 и 9 са за Windows печат (ако е 8, не важи ключът от регистратурата PrinterDOSforNT\LPT).
В DOS версията на програмата не може да се избере Windows печат. Ако обаче през
Windows версията е бил избран номер на принтера 9, а е пусната DOS версията, програмата
няма да ни пуска да правим справки (със съобщението "Заключено")
докато не променим номера на принтера от 9 на 0 (или 1).
В Windows версията на програмата може да се избере DOS печат, ако принтерът по
премълчаване съдържа в името си "Generic / Text Only" (или "Generic -
Text Only"). При несъответствие между параметъра и принтера по премълчаване
- не може да се печата (излиза съобщение "Заключено"
и в долната рамка на програмата излиза името на принтера).
Ако сме под Windows 95/98/Millennium и в Windows версията на програмата е избран
номер на принтера 0 (за принтер "Generic / Text Only") и "Брой
редове на печатна страница" е 9999, в параметрите на принтера трябва да е
избрано "Paper source" = "Continuous - No Page Break".
Ако номерът на принтера не е 8 и ключът от регистратурата PrinterDOSforNT\LPT
не е празен (например е попълнен с пълния път и име на мрежов принтер или "LPT1:"),
програмата печата директно в указания принтер. Ако освен това е избран номер на
принтера 9, се използват параметрите указани в
PrinterDOSforNT (а не тези от
Параметри на системата (F11)).
Ако принтерът не печата правилно, е необходимо да се нагласи от квалифициран
специалист.
(Alt+K) Големина на шрифта при Windows печат или максимален
брой символи на ред при DOS печат:
Когато заработи програмата за печат, тя решава дали да печата с 1) нормален
или 2) сгъстен шрифт по следния алгоритъм:
- ако броят на символите, които трябва да се печатат на един ред е по-малък или
равен на по-малкото от двете числа определени в точки 1) и 2), то се избира
режимът (шрифтът) с по-малкото число,
- а ако броят на символите, които трябва да се печатат на един ред е по-голям от
по-малкото от двете числа определени в точки 1) и 2), то се избира режимът (шрифтът) с по-голямото число.
Ако справката е по-широка от ширината на хартията определена по посочения начин,
тя се изпечатва на отделни вертикални ивици с ширина колкото позволява принтера.
Ако е ненулев някой от ключовете от регистратурата
Printer77\MaxNormalCols или
Printer77\MaxCondensedCols, се счита, че принтерът
печата с по-малко от 78 символа на ред. Ако страницата не се събира по ширина,
тя не се разрязва на вертикални ивици, а от нея се печатат само толкова символа
колкото е стойността на съответния ключ: за нормален шрифт - MaxNormalCols, за
кондензиран - MaxCondensedCols. Ако единият ключ е ненулев, а другият е равен на
0 - нулевият приема стойността на ненулевия.
В Windows версията на програмата излизат картинки, които показват кой шрифт е
избран и дали ще се печата в стил портрет (Portrait)
или пейзаж (Landscape). Ако са изобразени два
листа един върху друг - това означава, че справката не се събира по ширина и ще
се печата разрязана на вертикални ивици.
(Alt+R) Брой редове на печатна страница: - при печат всяка
нова страница в справката (освен първата, която започва със заглавието) започва
с антетка и дава сигнал на принтера да мине на нова страница;
- ако се въведе число по-малко от 20, при следващото влизане в същата точка от
програмата, на това място ще е записано числото 60.
- ако е 9999, не се разделя на страници (по-точно - счита, че страницата е от 9999 реда),
- ако е 0 и Windows печат, при нужда автоматично се завърта печата от
портрет (Portrait) към пейзаж (Landscape),
- ако не е 0 и не е 9999 и е Windows печат - програмата
работи с по-малкото от "числото посочено в това поле" и "максималния брой
редове, които може да се отпечатат на една страница на принтера". Ето защо, ако
сме в режим на Windows печат, не желаем печатът да минава
автоматично в режим на пейзаж, но не знаем точния брой редове на печатна
страница, може да укажем достатъчно голямо число (например 100) и програмата
сама ще определи точния брой редове на печатна страница,
- ако няма инсталиран принтер, програмата страницира така, че една страница от
справка да е с дължина точно колкото да се вижда цялата на екрана,
- в режим на Internet/Intranet в началото на всеки макрос за
нова страница автоматично се променя този параметър на 9999. Ето защо в макрос
преди печат трябва да се променя на 0 (или 60 или каквото трябва), а после може
и да не се връща на 9999.
(Alt+B) Бърз печат (без псевдографика) (само за
DOS печат):
Обикновено справките се печатат на принтер така както се виждат на екрана, което
включва и псевдографичните символи, с които се очертават рамките на таблиците.
Когато се нуждаем от чернови печат, подходящо е да включим режим "без
псевдографика", при който рамките се чертаят със знаците '-' и '|'. Тогава
скоростта на печат се увеличава двойно.
(Alt+L) Печат на отделни листа:
- ако параметърът е включен, преди печата на всяка страница програмата ни
изчаква да вмъкнем следващия лист хартия.
(Alt+I) Извеждане на последния лист от принтера:
- ако този параметър е включен, след приключване на печата последният лист
хартия излиза автоматично от принтера. Ако е изключен, възможно e при печат на
справка от няколко страници да се получи разминаване с перфорацията на хартията.
В Windows версията изключването на този параметър се игнорира освен в случаите:
1) Печата се чрез драйвър "Generic / Text Only" под Windows
'95/'98/Millennium, в който е указано, че хартията е безконечна ("Paper source"
= "Continuous - No Page Break").
2) Ключът от регистратурата PrinterDOSforNT\LPT
е със зададена стойност (не е празен).
По-долу има обяснения и за други постоянни параметри.
В Windows версията допълнителни постоянни параметри може да се въведат и в
Параметри от регистратурата.
ВРЕМЕННИ ПАРАМЕТРИ
Тези параметри приемат стойности по подразбиране в началото на всеки сеанс. Ако
ги променим, те ще бъдат в сила за следващата справка. С изключение на параметър
"(Alt+A) 2. Нова акумулирана/залепена" те са в сила и за
повече от една справка - до първото излизане от точка за справка, когато ще
възвърнат автоматично първоначалните си стойности. Това става и след изпълнение
на Начало на макрос (Alt+F10).
(Alt+M) Празни редове в края на справката:
- при 0 - в края на справката не се добавят празни редове.
(Alt+M) Между редовете:
- брой празни редове, които се вмъкват между редовете на справката.
(Alt+Y) Печат на копия:
- определя в колко екземпляра ще се изпечатват справките.
(Alt+X) Максимален брой страници на копие:
Стойността по премълчаване, както и максималната стойност, е 99.
Ако стойността на този параметър е 5, а справката е дълга 20 страници и
започнем печат от 2-ра страница, изпечатват се страниците с номера от 2 до 6.
Този параметър не се гледа, ако зададем поредица от страници в полето след
"Начало на печат от стр.: ".
(Alt+S) Междинни суми по първото поле:
Ако сортираме справката по повече от едно поле и искаме междинни суми и този
параметър е '2. И по него' - ще получим междинни суми и по първото поле, по което сортираме.
Ако параметърът е "3. Само по него" - междинните суми са все едно сме сортирали само по 1 поле.
(Alt+D) Без излишни сумарни редове:
От справките се изключват сумарните редове получени от сумирането само на един
ред. Използва се при показване на справка пожелана от потребителя.
(Alt+O) Сортировка по низходящ ред:
- справките се сортират по низходящ ред на символите: яюьъ...жедгвба9876543210
(Alt+W) ASCII сортировка (НЕ по азбучен ред, НЕ игнорира интервали, големи и малки букви):
- ако е "3. Да", справките се сортират по вътрешното представяне на символите (според подредбата им в ASCII таблицата), а именно:
първо големите латински букви (тук влизат и буквите на кирилица, които изглеждат като латински букви): | ABCDEFGHIJKLMNOPQRSTUVWXYZ |
следват малките латински букви (тук влизат и буквите на кирилица, които изглеждат като латински букви): | abcdefghijklmnopqrstuvwxyz |
следват големите кирилски букви, които не изглеждат като никоя латинска буква: | БГДЖЗИЙЛПУФЦЧШЩЪЫЬЭЮЯ |
следват малките кирилски букви, които не изглеждат като никоя латинска буква: | бвгджзийклмнптуфцчшщъыьэюя |
(Alt+A) 2. Нова акумулирана/залепена / 3. Припокрий отначало:
- ако е "2. Нова акумулирана/залепена" и е указано в някой от следващите два параметъра да се акумулират / припокриват или
"залепват" справки, съществуващата акумулирана /
припокрита и/или справка "залепени" се изтрива.
- ако е "3. Припокрий отначало" в момент на припокриване, припокриването започва отначало (а не
след записите от предишното).
След изпълнение на справка този параметър приема стойност "1. Не".
(Alt+U) Акумулиране / Припокриване само с пълни / Изтриване / Припокриване
Вж. Справки: 6. Акумулирана.
(Alt+Z) Залепване на справки
Вж. Справка "залепени".
(Alt+F) Alt+F8 чете от справка "залепени":
- ако е 'Не' - Alt+F8 чете от последната изпълнена справка,
- ако е 'Да' - Alt+F8 чете от справка "залепени".
Вж. Кошче: поле от справка (Alt+F8).
(Alt+V) Справка само с редове, които отговарят на индекса:
(Alt+H) Хоризонтална / вертикална справка
Този параметър служи за преобразуване на вертикална справка в хоризонтална и
обратно. Пример на вертикална справка:
име на реда | име на колона | стойност |
Станка | години | 40 |
Станка | деца | 2 |
Станка | трудов стаж | 18 |
Цветомир | години | 48 |
Цветомир | деца | 1 |
Цветомир | трудов стаж | 22 |
Пример на хоризонтална справка, получена от горната вертикална:
име на реда | години | деца | трудов стаж |
Станка | 40 | 2 | 18 |
Цветомир | 48 | 1 | 22 |
Може да преобразуваме "вертикална" справка с полета (имената им може и да са други):
в "хоризонтална" справка със следната структура:
по следния начин:
Обратното на горното - ако натиснем F11 и включим разглеждания в момента параметър на "3. Вертикална", намирайки се в таблицата за справка на хоризонтална справка, а после стартираме справката - хоризонталната справка се преобразува във вертикална със следните полета:
В следващия пример ще дадем идея как описаната техника се използва в програмата за заплати. Основният проблем там е да не се преработват макросите и таблиците за справка след всяка промяна на законодателството. Ето защо параметрите на заплатите са номенклатура, а формулите по които се изчисляват са записани като текстови формули в управляващ текст във формат параметър=формула. За всяко лице по всеки параметър на заплатите се извършва записване по сметка "Заплати" със структура "лице, параметър, стойност". За параметрите, които не са формули (например брой присъствени дни, дни отпуска, дни болнични), записванията се извършват ръчно. За останалите, които се изчисляват с формули, е записана произволна стойност (само и само да съществуват в обяснената по-долу справка). Изчислението им става с макрос извършващ следните действия:
Така при промяна в законодателството касаещо заплатите е необходимо само редактиране на номенклатурата на параметрите и управляващия текст с формулите им.
(Alt+E) Справка в една колона:
- да - отделните непразни полета от един ред на справка се показват едно под
друго (в една колона), следващия ред се отделя с черта,
- с имена на полетата - както горното, но в началото на всеки ред се изписват
имената на полетата,
- с празни - като варианта "да", но се показват и празните полета.
Ако печатаме справка в една колона и сме указали в параметрите на
(Alt+K) Големина на шрифта при Windows печат или максимален брой
символи на ред при DOS печат числа, при които справката би трябвало да се изпечата
на няколко вертикални ивици, печата се само първата ивица.
(Alt+J) Максимум редове като в касовия бон:
- при включен този параметър (и стойност на следващия 9999), в следващата справка ще се покажат само първите Х
реда. Числото Х е максималният брой редове, които може да се отпечатат в касов
бон и се указва в ключа от регистратурата CashBond\Rows. Ако
справката има по-малко от Х реда, ще се покажат толкова колкото има.
(Alt+Q) Максимум редове:
- ако стойността Y на този параметър е различна от 9999, в следващата справка ще се покажат само първите Y реда.
Ако справката има по-малко от Y реда, ще се покажат толкова колкото има.
ДРУГИ ПОСТОЯННИ ПАРАМЕТРИ
(Alt+T) Разширени таблици:
В този режим при влизане в справки 2. Сметки,
4. Неаналитични сметки и 5. Сметка - сметка се появяват
други таблици за справка. Използва се при съставяне на универсални отчети (ОПР,
главна книга и др.). Трябва винаги след края на справката да се връща в "Не".
(Alt+C) ширина на дробната част на калкулатора:
- въвеждаме число, което ще определя точността на пресмятанията с калкулатора.
Вж. Калкулатор (F2).
Проверка за снежинки по екрана (само за DOS):
- автоматично - програмата ще изобразява символи на екрана по начин, съобразен с
типа на монитора, така че да не се получават смущения (снежинки).
- не - програмата ще изобразява символите на екрана по най-бързия начин; при
някои монитори това може да доведе до смущения (поява на "снежинки").
- да - програмата ще изобразява символите на екрана така, както би ги
изобразявала на монитори, които правят "снежинки"; от това следва известно
забавяне на програмата.
Набор цветове (само за DOS):
- автоматично - според монитора (цветен, черно-бял или монохромен) програмата
работи с определен набор цветове. Вж. Прозорец: оцветяване
(Shift+F9).
- цветно, черно/бяло, монохром. - програмата използва набора цветове, който би
използвала ако съответния монитор е цветен, черно-бял или монохромен, независимо
от типа на монитора, с който в момента работим.
Сянка (само за DOS):
- определя типа на сянката (или да няма), която ще хвърлят прозорците върху
текста, който е под тях; ако изберем "автоматично", се избира сянка, която е
най-подходяща за избрания режим "набор цветове".
Експлодиране на екрана (само за DOS):
- появяването на някои прозорци при работа с програмата наподобява
"експлодиране".
(Alt+N) Забранено ИЗТРИВАНЕ в номенклатури:
- забранява се изтриване в точката за работа с номенклатури (извикана например
при попълване на документи),
- при 'Не' - разрешава горното. Забраната не важи, ако сме извикали точка "4.
Номенклатури" от подменю "1. Въвеждане данни" на главното меню
(F10) на системата. Вж. Номенклатури: изтриване. В
началото на всеки сеанс този параметър е включен на 'Да'.
В Windows версията програмата поддържа параметри и в ключове от
регистратурата. Ключовете на програмата в регистратурата се създават след стартиране на програмата
от Windows потребител с администраторски права. За да редактираме ключовете, след като натиснем Start бутона на
Windows, щракаме върху Run и в прозорчето за команда написваме regedit. След това отиваме на секцията
CPAccounting, която в различните версии на Windows се намира на различни места. За да я открием, вместо
да търсим ключа CPAccounting, което ще открие много излишни ключове, търсим подключа PrinterDOSforNT (може
да търсим и само с малки или големи букви). За да редактираме ключовете на текущия Windows потребител, гледаме само
ключовете от секциите Computer\HKEY_CURRENT_USER или Computer\HKEY_LOCAL_MACHINE.
Ако на влизане в програмата ни даде съобщение "Грешка в
РЕГИСТРАТУРАТА", това най-вероятно означава, че нямаме права за
писане върху ключа CPAccounting и неговите подключове. В такъв случай
е нужно да влезнем в Windows с администраторска парола и чрез regedit да дадем
пълни права на всички върху споменатия ключ.
В някои случаи Windows не позволява ползването на основния ключ (създаден през администраторски потребител) и
не позволява създаването на отделни ключове за неадминистраторски потребители. В такъв случай е нужно временно
потребителите да се направят администратори, да влезнат еднократно в програмата и после да се възстановят на
неадминистратори.
Надолу са изброени ключовете, а в квадратни скоби [ ] след тях са стойностите им по премълчаване.
Вж. по-долу CPAccountingServer.
CPAccounting\CPAW\x.xx :
European
ReportPath
UseWindowsColors
Basic
CashBond- СТАР стил и вече не се използва
CpawHtm
FromTxt
Macros
OldVersions
Printer
Printer77
PrinterDOSforNT
Security
Test
ToTxt
European [SYSTEM\EUROPEAN.WIN] - служебно
За някои DOS принтери е необходимо да се промени файла SYSTEM\EUROPEAN.WIN чрез
командата european.bat. Ако обаче сме в мрежа и това не важи за всички компютри,
е добре този файл да се взема от локалната машина например
C:\CPABACK\EUROPEAN.WIN. Стандартно той е създаден намирайки се в директорията
SYSTEM и изпълнявайки
european 2
Другите варианти са:
european 1
или
european 3
За DOS версията на програмата има и варианти с 4, 5 и 6. При DOS версията се
влияе не само принтера, но и видеото и клавиатурата. Да не се забрави свалянето
на архивните флагове на EUROPEAN.* файловете!
ReportPath [C:\CpaRep] - директория, която програмата използва за временните си файлове (справки например). За значително повишаване скоростта при мрежова работа, е добре тя да е на текущия компютър. Ако е празна, е на сървъра. Трябва всички потребители на програмата да имат пълни права върху тази директория (подобно на c:\CpaBack).
UseWindowsColors [0] - ако е 0, програмата използва вградените в нея цветове, иначе използва цветовете, с които работи Windows.
Basic
Find1106inReportTab [1] -
ако не е 0 и в режим на табулация, в празно поле, изберем
елемент от номенклатура "1106. Стоки, услуги, артикули, материали", програмата
проверява дали на някой от по-горните редове (в същата колона) вече не е въведен
същия елемент. Ако е въведен, програмата ни пита дали да го въведем повторно
чрез съобщението "Към същия елемент по-нагоре, натиснете Esc.
Иначе, натиснете Shift+Enter". Ако натиснем Esc,
програмата ни придвижва до най-близкия по-горен ред, на който е въведен елемента.
Ако натиснем клавиш различен от Esc или Shift+Enter програмата изсвирва и
повтаря съобщението. Забраната за използване на други клавиши е породена от
възможността за грешка, ако не забележим съобщението и продължим с въвеждане на количеството.
Всичко това не се изпълнява, ако сме в непразно поле или сме в последната колона
на справката или сме в режим на програмиране/проиграване на макрос.
ListRows [16] - брой редове при
избор на номенклатурен елемент от списък.
MaxNonBarcode [99999] -
максимално допустимият номер на елемент от номенклатура "1106. Стоки, услуги,
артикули, материали", който не е 8 или 13 цифрен (т.е. не е баркод). Ако е 0,
при допълване на номенклатура 1106, не се проверява. Тази проверка не се прави за
теглови баркод (който носи седемцифрен номенклатурен номер).
NotWeightEAN_FirstDigits [0] -
начало на баркод (EAN код), който започва с цифрата 2, но не е теглови баркод. Ако такъв не се
използва, полето се попълва с 0, иначе са разрешени стойности започващи с цифрата 2, с не повече от седем цифри.
ShowFields
[B1106=+++XXXXXXXXXXXXXXXXXXXXXX+XXXXXX+X;B1105=+++XXXXXXXXXXXXXXXXXXXX++;] -
(важи за едноцифрените пароли, а за останалите важи ключът ShowFieldsXX)
описва изключенията от общото правило при Номенклатури: избор на елемент,
според което при показване на списъка с номенклатурните елементи се показват
номера, името и, ако съществуват и има място на екрана, третото поле (презимето) и четвъртото на всеки елемент.
Изключенията от това правило се описват във формат:
Bnnn=sssss;
където nnn е номера на номенклатурата, а sssss са поредица от символите + и X. Символът +
показва, че съответното по ред поле от номенклатурата ще се покаже, а X (или
всеки друг), че няма; Например B1106=+++X; означава, че първите три полета ще се
покажат, а четвъртото не (в случая, след последния + може да не се попълват
X-ове за останалите полета, понеже след плюса няма други полета, които ще се
включат). След поредицата от символите + и X задължително се попълва ; и след
нея може да се продължи с друго изключение. За да виждаме при избор на стока номера, името, ценово ниво 0, опаковката и
доставчика й, а при избор на клиент - номера, името [на обекта], адреса на доставка, телефоните и e-mail-а му, попълваме:
B1106=+++XXXXXXXXXXXXXXXXXXXXXX+XXXXXX+X;B1105=+++XXXXXXXXXXXXXXXXXXXX++;
Ако се укажат повече от 6 полета за включване, тези след шестото се игнорират.
Ако четвъртото/петото/шестото поле е номенклатура, показва се името на номенклатурния елемент (а ако няма такъв елемент - номерът му).
ShowFieldsXX
[B1106=+++XXXXXXXXXXXXXXXXXXXXXX+XXXXXX+X;B1105=+++XXXXXXXXXXXXXXXXXXXX++;] -
същото като ключа ShowFields, но важи за паролите с номера по-големи или равни на 10.
ShowVATnumberFor1100 [1] - ако е
ненулев, счита че номенклатура 1100 е Доставчици и показва ДДС номера (а ако
няма, идентификационния номер) вместо третото поле (презиме) при Номенклатури: избор на елемент
ShowVATnumberFor1105 [1] - ако е
ненулев, счита че номенклатура 1105 е Клиенти и показва ДДС номера (а ако няма,
идентификационния номер) вместо третото поле (презиме) при Номенклатури: избор на елемент
CashBond\ - СТАР стил и вече не се използва -
параметри за касов апарат (или фискален принтер) управляван през драйвер от компютъра,
получаващ команди от външна програма "15. >> >> >> >> Касов бон << << << <<":
Считаме, че касовият апарат на Дейзи е подобен на Датекс.
BaudRate [9600] - за касов апарат на Датекс
/ Посифлекс (Driver = 2) трябва да е еднаква със скоростта въведена в FPrintWIN или подобния на него софтуер
CashBoxName [1] - този ключ показва името на касата, в която
се събират пари и при работа със слаба парола чрез
автоматичен стринг (Ctrl+D) 23 се използва за осчетоводяване
на операции в оперативната каса (това позволява с една и съща парола да се
работи на различни каси без да се пита оператора на коя каса е в момента)
COM [COM1] - за касов апарат на Датекс / Посифлекс
(Driver = 2) трябва да е COM1
Delete [0] - вече не се използва, но драйверът на Датекс трябва да
се настрои автоматично да изтрива касовия бон след отпечатване. Преди беше:
- този ключ е без значение за касов апарат на Елтрейд (Driver = 1), защото техният
драйвер изтрива автоматично бона,
- понеже самата програма на Датекс (Driver = 2) не изтрива бона, за тестови цели
трябва този ключ да е 0 и да се укаже на техния драйвър да връща отговор във
файл с разширение различно от това на бона
- за Посифлекс (Driver = 2) трябва ръчно да се промени на 0, иначе ще дава
съобщения за грешка (при стойност на ключа 1 програмата ще се опита да изтрие
бона, но той вече ще е изтрит от драйвера на Посифлекс).
Driver [0] - за касов апарат
на Елтрейд трябва да е 1, за касов апарат на Датекс / Посифлекс трябва да е 2, за касов апарат на Дейзи трябва да е 3. Считаме,
че касовият апарат на Дейзи е подобен на Датекс. При Датекс / Посифлекс програмата автоматично маха последните интервали от реда
на касовия бон. Единствената разлика между Датекс и Посифлекс преди беше в ключа Delete (вече няма разлика).
Стойността на този ключ (Driver) е достъпна чрез автоматичен стринг (Ctrl+D)
"22. Касов бон - CashBond\Driver" и може да се използва за да се разклони
макрос създаващ касови бонове според изискванията на съответния касов апарат.
Exe [] - за касов апарат на Датекс / Посифлекс
(Driver = 2) се попълва пълния път на exe-то, което се изпълнява - не е нужно да е в кавички, дори да има интервали
(...\Program Files\Datecs\...); ако е празно, се счита, че програмата е резидентна
Files [C:\TEMP\TEST.BON] - файл касов бон - в него се копира
последната справка след изпълнение на външна програма "15. >> >> >> >> Касов бон << << << <<";
при работа през Remote Desktop Connection:
- драйверът трябва да е резидентен на локалния компютър,
- на влизане в сървъра (с включен локален диск, например Y:) трябва да се изпълнява subst X: \\tsclient\Y
(X: може да е произволен несъществуващ на сървъра драйв),
- ключа се попълва с X:\TEMP\TEST.BON,
Rows [20] - максимален брой редове, които може да се отпечатат в касов бон
CpawHtm\ -
първият и третият ключ се отнасят за изпълнението на външна
програма 38. От "последна" + <table> към "залепени",
а вторият и четвъртият - за 39. От "залепени" към CpaW.htm:
DecimalSymbol [.] - вж. 44/45/46. От
справка към браузер, Excel или Word
Extension [htm]
Nowrap [0] - не позволява или позволява пренасяне на дълги
полета на повече от един ред за Cpaw.Htm - 0 или 1
Path [] - директория за Cpaw.Htm
FromTxt\ - вж. Вход на данни
от чужд текстов файл
PossibleDelimiters [,;t|=] -
възможни разделители между полетата, където под t се разбира табулация. Ако този ключ не съдържа =, програмата го добавя в паметта си (но
не го записва в регистратурата). Символът = се използва за четене на параметри във формат X=Y.
TextQualifier ["] - символ за ограждане на
поле
Macros\
Flash45 [1] - брой премигвания на екрана по време на
програмиране на макрос след натискане на клавиш с номер от 45 до 48
Flash49 [100] - като горното, но за клавиша с номер 49
ShowBigCPAafter [1500] - след колко милисекунди от стартирането на
макрос да се покаже на екрана картинката с логото на програмата. Ако изпълнението на макрос продължи повече от
ShowBigCPAafter * 2 милисекунди, програмата изсвирва (продължителността на изпълнението в секунди се изписва на долната
рамка на прозореца, където обикновено се показва точният час). Ако много често се показва логото (при бавни компютри), е
добре този параметър да се увеличи. Ако е по-малък от 700 или по-голям от 5000, счита се за равен на 1500.
Sound [0] - да се чува ли звук по време на програмиране на макрос
OldVersions\
CheckAccountingDate [1] - да проверява
ли датата от полето "дата на осчетоводяване" в описанието на документа, дали е от текущия месец (при 0 не проверява)
Printer\
Colored... [] - параметрите започващи с тази дума не са реализирани в програмата
Driver [] - не се използва - с фиксиран драйвер
Font - CourierCyr или [Courier New]
FontDos [Roman 10cpi]
FontDosCondensed [Roman 17cpi]
InternalTableLineThickness [1] -
дебелина на линиите от таблиците при печат. Допустимите значения са в интервала [0,50].
Полета на страницата при печат:
MarginBottom [0] - долно
MarginLeft [0] - ляво
MarginRight [0] - дясно
MarginTop [0] - горно
Printer77\
MaxCondensedCols [0]
MaxNormalCols [0]
Ако тези ключове са ненулеви, се счита, че принтерът печата с по-малко от 78
символа на ред. Ако страницата не се събира по ширина, тя не се разрязва на
вертикални ивици, а от нея се печатат само толкова символа колкото е стойността
на съответния ключ: за нормален шрифт - MaxNormalCols, за кондензиран -
MaxCondensedCols. Ако единият ключ е ненулев, а другият е равен на 0 - нулевият
приема стойността на ненулевия.
PrinterDOSforNT\
LPT [\\tsclient\C\CpaRep\DOSPrintFile] - ако този ключ не е празен (например е попълнен с
пълния път и име на мрежов принтер или "LPT1:") и (Alt+P) Принтер номер
не е 8, програмата печата директно в указания принтер. Не е нужно името на принтера (или порта) да се огражда в кавички. Ако съществува
файл System\Cyril, всеки път преди началото на печата, този файл се копира на принтера (за да го кирилизира софтуерно). Ако ключът
е празен, следващите четири ключа не важат.
Ако желаем да печатаме в текстов режим (DOS печат) от компютър, на който сме влезли през
Remote Desktop Connection с включено локално устройство
диска C:, върху принтер на локалния компютър:
1) попълваме на сървъра този ключ с \\tsclient\C\CpaRep\DOSPrintFile,
2) създаваме на локалния компютър папка C:\CpaRep,
3) копираме на локалния компютър в \CpaRep файловете CpaDOSpf.exe, RTL60.BPL и VCL60.BPL,
4) в Startup секцията на локалния компютър (%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup) добавяме пряк път към програмата CpaDOSpf.exe.
При същите настройки, направени на сървъра, ще може да печатаме и ако работим на самия него. Това е така защото, ако
ключът е \\tsclient\X\YYY (където X е произволен символ, а YYY е произволна по дължина поредица от символи), програмата се опитва да печата
във файл с името от ключа и ако не успее, се опитва да печата във файл с име X:\YYY (което по премълчаване е C:\CpaRep\DOSPrintFile). Това
е направено заради случаите, в които не може за всеки потребител да се нагласи различен ключ.
Нека PCname е името на компютъра, на който сме нагласили, според горното обяснение, да печатаме в текстов режим
(DOS печат) през Remote Desktop Connection върху локалния принтер. За да позволим и от други компютри да се печата на
същия принтер:
1) за всички потребители, които ще го ползват (включително и работещи на въпросния компютър PCname), попълваме на сървъра този ключ вместо с
\\tsclient\C\CpaRep\DOSPrintFile, с \\PCname\CpaRep\DOSPrintFile, където PCname е името на компютъра,
2) споделяме (share) с всички папката C:\CpaRep, под името CpaRep,
3) ако потребителят, от името на който сме влезли в PCname (на локалния компютър, а не на сървъра), няма парола, създаваме я,
4) от името на всеки потребител, който ще работи с дадения принтер, влизаме в сървъра и в Windows Explorer отваряме \\PCname. Като ни попита от
името на кой потребител влизаме, попълваме този от точка 3) като указваме да се запомни паролата му.
EndJobLinesFeed [12] - брой празни редове след края на печата
- удобен е при печат на безконечна хартия за придвижване края на последната
страница до режещия ръб на принтера.
Следващите три параметъра се използват вместо тези от Параметри
на системата (F11), само ако ключът PrinterDOSforNT\LPT не е празен и в (Alt+P) Принтер номер е
избран принтер 9. Ето защо, заключените приложения трябва да са настроени на
принтер 9, за да може да се донастройват от системния администратор през регистратурата.
MaxCharactersPerRow [80] - използва се вместо параметъра
"нормален шрифт" от (Alt+K) Големина на шрифта при Windows печат
или максимален брой символи на ред при DOS печат.
MaxCharactersPerRowCondensed [137] - използва се вместо
параметъра "СГЪСТЕН шрифт" от (Alt+K) Големина на шрифта при
Windows печат или максимален брой символи на ред при DOS печат.
RowsPerPage [9999] - използва се вместо параметъра
(Alt+R) Брой редове на печатна страница.
Security\
CanChangePassword [1] - не се използва - ако е
ненулев, може да сменим паролата, с която влизаме в програмата, след въвеждането й с Ctrl+Enter,
CanUpdateCpaBack [1] - не се използва - ако е ненулев
и програмата работи на текущия компютър, при смяна на датата автоматично се обновяват
zip файловете в CpaBack директорията на сървъра и от нея се копират на текущия
компютър; обновяването не се извършва, ако вече е било направено от друг потребител (тогава само се копират);
тези файлове се обновяват и копират безусловно на влизане от потребителя стартирал пръв програмата,
а се копират безусловно на влизане от всички следващи потребители
CanUpdateCpaGoZip [1] - не се използва - ако е
ненулев и програмата работи на текущия компютър, при смяна на часа (т.е. на всеки кръгъл час) автоматично се обновява
резервното копие на данните на програмата в CpaGoZip директорията на сървъра; обновяването
не се извършва, ако вече е било направено от друг потребител;
обновяването се извършва безусловно на влизане от потребителя стартирал пръв програмата
IdlePasswordsMaxNum
[0] - ако (1) не сме с администраторска парола, (2) номерът на паролата, с която сме влезнали в програмата, е
не по-голям от IdlePasswordsMaxNum и (3) следващият ключ
IdlePasswordsTime е положителен, след IdlePasswordsTime минути на бездействие програмата се самоизключва
IdlePasswordsTime
[1] - вж. горния ключ IdlePasswordsMaxNum
LockEndedPeriod [0]
- ако е 1, при приключване на месеца го заключва
Test\ - дали да
прави тестове програмата - в окончателната версия трябва да са нули:
MaxTestIdx [0] - например, може да е 1000
TestBasicIdx [0] - например, може да е 1
ToTxt\
Delimiter [,] - разделител между полетата, а ако е t, се счита, че е табулация
ReplaceTextQualifierWith [""]
- с какво да заменим символа за ограждане на поле, ако участва в поле
SetEndOfFileSign [0] - ако не е
0, записва в края на файла символа за край на текстов файл CTRL+Z (с шестнайсетично представяне 0x1a)
TextQualifier ["] - символ за ограждане на поле
TextQualifierForInternalSpaces [1] -
ако не е 0 и полето съдържа вътрешни интервали, го огражда със символа за ограждане
Стойностите на ключа ToTxt може да се получат в поле от програмата чрез автоматичен стринг (Ctrl+D)
"28.Регистратура ToTxt" и да се променят чрез външна програма
60. Промяна на "Регистратура ToTxt", но промените се забравят след излизане от
програмата. Вж. 49/50. От справка към fixed width/delimited CpaW.txt.
CPAccounting\CPAccountingServer\x.xx :
Application [cat] - име на приложение
CloseIdleSessionAfter [30] - в минути (ако е
по-малко от 1 се счита за 1, а ако е по-голямо от 90 се счита за 90)
Network [1] - мрежова сесия [1] или
локална сесия [2]
Path [r:\cpa] - основна директория
За горните параметри вж. Правила за писане на HTML приложения.
В Windows NT, ако се работи с парола без администраторски права, е необходимо да се дадат пълни права на всички върху ключа. Това става с програмата regedt32 (в по-новите версии с regedit).
Управляващият текст се използва за параметризиране на макроси и за текстови формули. Той се записва като обикновен текст според обясненията в Справки: 8. Последна - екран.
Управляващият текст е разделен на секции от редове, които започват с текст ограден сМежду редовете в секцията може да има произволни коментарни редове. Написаното след "име на секцията" в ред "начало на секция" се разглежда също като коментар. Коментарен е и всеки ред с първи символ ; (точка със запетая). Всички коментари се игнорират.
Зареждането на управляващ текст се извършва с Shift+F12. След това може да се преписват стойности на ключове от текста в текущото поле чрез Управляващ текст: поле от текст (Alt+F12). Програмата избира ключовете от секцията принадлежаща на текущия макрос. Това е идеалният начин за параметризиране на конкретно приложение на програмата. Така две отделни инсталации на едно и също приложение се различават само по един или няколко управляващи текста.
Ако при зареждането на управляващ текст (с Shift+F12) след въвеждане на
номера натиснем Ctrl+Enter, предишният номер влиза в стек "Номера на управляващи текстове".
Номерата в стека са подредени едно над друго като последният влязъл е най-отгоре.
Ако се опитаме да заредим празен номер с Enter, най-горният номер в стека излиза
от стека и се появява в полето. Ако стекът е вече празен, програмата изсвирва.
При опит за зареждане на празен номер с Ctrl+Enter се нулира стека.
Ако стекът се препълни, програмата изсвирва и излиза съобщение
Пълни са всичките 20 нива на стек "Номера на управляващи текстове".
Вж. и запомнянето в стек на кошчето.
С цел намаляване на дисковите операции, зареждането на ключовете от една секция се кешира, т.е. запомнят се от програмата и при следващо извикване не се четат от управляващия текст. Само на всеки кръгъл десети час (в 0, 10 и 20 часа) и при записване или проиграване на макрос. програмата проверява дали са се сменили датата и часа на последната промяна на файла на управляващия текст и само ако са се сменили, чете ключовете наново.
След зареждане на управляващ текст (Shift+F12) може да
се преписват стойности на ключове от текста в текущото поле по следната схема:
Натискането на Ctrl+F12 служи за прескачане на поредния
ключ от управляващ текст.
Поредният ключ се избира според описанието в
Управляващ текст: поле от текст (Alt+F12).
Ако на последния ред от таблица за справка има формула без операнди с име [xxx] или [xxx (само започва с [, но не завършва с ] ), след стартиране на справката:
Максималната дължина на текстова формула е 400 символа. Тя може да съдържа:
Функция: | Програмата създава в таблицата за справка формула със знак: |
IF( логически_израз ; [стойност_ако_е_истина] [; [стойност_ако_е_лъжа] ] ) логически_израз не може да е число ако един от последните два операнда е нула, функцията се заменя вместо с ? със ─► |
? или ─► |
MIN( числов_израз1 ; [числов_израз2] [; числов_израз3] ... ) | n |
MAX( числов_израз1 ; [числов_израз2] [; числов_израз3] ... ) | x |
AND( логически_израз1 ; [логически_израз2] [; логически_израз3] ... ) | & |
OR( логически_израз1 ; [логически_израз2] [; логически_израз3] ... ) | | |
NOT( логически_израз ) | ! |
DATE( гггг, мм, дд ) година, месец и ден трябва да са числа с дължина съответно 4, 2, 2 |
заменя формулата със стринга ггггммдд |
DATE_( израз ) Не се поддържа от MS Excel. Програмата създава формула само с първи операнд "израз". |
д |
MOD( числов_израз1 ; числов_израз2 ) | m |
VALIDATE( израз1 ; израз2 ) | V |
SIN( израз ) | s |
COS( израз ) | c |
ACOS( израз ) | a |
ROUND( израз ; [ширина ;] десети ) в MS Excel не се поддържа "ширина", "ширина" и "десети" трябва да са цели числа, допустими за ширина и десети на формули, "израз" не може да е число |
променя [ширината и] десетите на "израз" |
ROUNDUP( израз ; [ширина ;] десети ) | също като ROUND, но поставя пред цифрата на десетите + |
Следващите функции не се поддържат от MS Excel:
ON(), ON_LOCKED(), ON_HIDDEN(), ON_FORMATED(), OFF() съответстват на знаците '√', '#', '+', '^' или ' ' (празно) определящи дали и как е включено полето в таблицата за справка |
SUM(), SUM_AVERAGE(), SUM_CHART(), SUM_PLUS(), SUM_HOR(), SUM_VERT() съответстват на знаците в колоната за сумиране от таблица за справка |
NotEQUAL0(), EQUAL0(), LESS0(), LESSorEQUAL0(), GREATER0(), GREATERorEQUAL0() съответстват на знаците в колоната за поставяне на условия спрямо нулата, не може да се поставят върху формула, в която този знак вече е попълнен |
Във функция, ако след кръгла отваряща скоба '(' или разделител (';' или ',') следва пак
разделител или кръгла затваряща скоба ')', програмата счита, че между двата знака
има 0 (нула). Специално за IF може дори да се изпусне втория разделител.
Например, следните изрази дават един и същи резултат:
IF( sum; 10; 0 )
IF( sum; 10; )
IF( sum; 10 )
За разлика от MS Excel, за разделител между операндите във функция, може да се използва, освен точка със запетая (;) и запетая (,).
Имената на функциите може да се пишат и с малки букви.
Имената на формулите:
- може, но не е препоръчително да съвпадат с име на функция,
- не може да съдържат интервали, знаци или разделители, да започват с цифра, да са по-дълги от 15 символа, да са оградени от
квадратни скоби [ и ],
- заради номерацията на помощните формули, не може на 14-та и 15-та позиция да съдържат дясно изравнено цяло число без знак,
- може да са на кирилица (за разлика от MS Excel).
Ред на действията (според MS Excel), предимството намалява отгоре надолу:
() - с най-високо предимство
-(отрицание)
тук е оригиналното място на % според MS Excel, но в програмата е по-долу тъй като % не се използва с общоприетото си значение
^
*, /, %
+(събиране), -(изваждане)
=, <, >, <=, >=, <> - с най-ниско предимство
Основните формули (а не помощните):
- запазват отметката за това дали са включени в таблицата за
справка (освен, ако в текстовата формула не е указано друго),
- ако е указан, запазват знака за сумиране (освен, ако в текстовата формула не е указано друго),
- независимо от оригиналния си тип, стават от тип формула,
- ако последното действие е ROUND, ширината (ако е указана) и десетите се преписват
от него, иначе - ширината остава непроменена, а десетите стават равни на 2. НЕ се прави проверка дали получените ширина и
десети са валидни (например при положителни десети ширината не би трябвало да е повече от 15 символа)
Помощните формули са с точност 15.6, освен ако чрез ROUND() не е указано друго. Примери:
Ширината на помощна формула за изчисление на a + b в израза 10 + ROUND( a + b,
3 ) е 15, а десетите са 3, а
ширината на помощна формула за изчисление на a + b в израза 10 + ROUND( a + b, 9, 3 ) е 9, а десетите са 3.
Функцията ROUND не създава помощна формула, а просто променя ширината
и десетите на първия си операнд. От това следва:
- ВНИМАНИЕ, ако някое поле от таблицата за справка участва на няколко
места в една или повече текстови формули като първи операнд на ROUND, в крайна
сметка ще приеме стойностите на последния обработен от програмата ROUND, което
може да доведе до несъответствие с преди това обработените,
- ако не желаем ROUND да променя точността на своя първи операнд, може след първия операнд да напишем +0.
Например, в израза
ROUND( ROUND( x; 12; 2 ); 9; 0 )
след като се изпълни вътрешният ROUND, той ще се замести с x и после ще се
изпълни ROUND( x; 9; 0 ). Ако искаме x да си остане с точността 12.2, трябва да напишем израза така:
ROUND( ROUND( x; 12; 2 ) + 0; 9; 0 )
При създаване на помощна формула първо се гледа дали вече няма такава (макар и по
друга основна формула или от самата таблица за справка). Затова, ВНИМАНИЕ, следният пример на формула,
която дава истина ако Число се дели на 4 и лъжа в противен случай, е ГРЕШЕН:
ДелиСеНа4 = (Число/4) = ROUND( Число/4; 15; 0 )
Обяснение:
- първо програмата ще направи помощна формула за Число/4 от частта (Число/4),
- след това ще направи помощна формула за Число/4 от частта ROUND( Число/4; 15; 0 ),
но ще види, че такава помощна формула вече има и ще използва нея за ROUND
- накрая формулата за сравнение (Число/4) = ROUND( Число/4; 15; 0 ) ще има два
еднакви операнда и винаги ще е истина - ГРЕШКА!
Ето как формулата ще стане ВЯРНА:
ДелиСеНа4 = (Число/4.0) = ROUND( Число/4; 15; 0 )
Последователност на заместване на поле от таблицата за справка с текстова формула:
- проверката, дали поле от таблицата за справка има съответна текстова формула,
се извършва в реда, в който полетата са подредени в таблицата за справка,
- ако в текстова формула (съответна на поле от таблицата за справка) участва име на поле,
което първоначално не е в таблицата за справка, то също се включва точно преди
полето с името на секцията (независимо дали го има в секцията). Програмата му
присвоява точност 15.2 (която би могла да се промени по-късно от някой ROUND).
- ако след заместването на всички полета от таблицата за справка (включително и
допълнително включените според предната подточка), в секцията остане текстова формула,
която няма съответно поле от таблицата за справка, тази формула не се обработва
- при обработката на формулите се използва обратен полски запис (известен още като
преобразуване от infix към postfix)
- ако преобразуването на таблицата е успешно, програмата предлага да се продължи:
"За изпълнение - Shift+Enter", иначе дава
"Заключено" и подходящо обяснение за проблема.
Пример за използване на текстови формули при изчисление на заплати може да намерим в параметъра (Alt+H) Хоризонтална / вертикална справка от Параметри на системата (F11).
При натискане на Ctrl+D може да изберем автоматичен стринг (низ от символи),
който ще се вмъкне в текущото поле след курсора. Ако няма място от текущата
позиция надясно, той се вмъква в началото на полето. Автоматичните стрингове са
два вида: програмни и текстови.
Текстовите стрингове прехвърлят стринга, който е записан в третото поле ("стринг") на
номенклатура "1002. Автоматични стрингове". Не се прехвърлят последните интервали.
Текстови са стринговете с номера от 15 до 19 вкл. и 21.
Пълен списък на автоматичните стрингове (вж. по-долу разликите между ДАТА и Дата):
1. ДАТА - предишна година,
2. ДАТА - предишен месец,
3. Дата - текущ месец (дата) - дава дата с 15-то число на текущия месец,
4. ДАТА - следващ месец,
5. ДАТА - следваща година,
6. Дата - първи системен месец,
7. ДАТА - последен системен месец
- с Ctrl+Enter дава реалния последен системен месец, в който са въвеждани документи,
- с Enter, ако изкуствената системна дата е между
първия и реалния последен системен месец, то дава нейния месец за последен
системен, иначе дава реалния последен системен месец,
8. Дата - първи неприключен месец - вж. приключване на месец,
9. Дата - на последния архив,
10. Дата - последна въведена - дава последно въведената непразна дата,
11. ДАТА - системна
- с Enter дава изкуствената системна дата (вж. и Промяна на системната дата),
- с Ctrl+Enter дава системната дата,
12. Час - текущ компютърен
- с Enter дава часа във формат чч:мм,
- с Ctrl+Enter дава часа във формат чч:мм:сс,
13. ДАТА - първи месец в годината,
14. ДАТА - последен месец в годината,
15/16/17/18. Принтер - начало на заглавие / край на заглавие / начало на
надебеляване / край на надебеляване - това са символи за управление на принтера
при DOS печат, които може да се вмъкнат в справка преди да се изпечата,
19. ДДС - процент - показва текущия % ДДС (в момента е 20),
20. Парола - номер по ред. Използва се, освен като автоматичен стринг, и при осчетоводяване за автоматично попълване на полето
"парола №" на документа. На влизане в програмата или при смяна на паролата автоматично става равен на номера на
въведената парола. Може да се промени, само в рамките на сеанса, чрез външна програма 66. Промяна на "Парола -
номер по ред".
Ако го въведем с Ctrl+Enter, дава оригиналния номер на паролата, с която в момента сме влезнали в програмата.
Ако се различава от оригиналния номер на паролата, с която в момента сме влезнали в програмата, се появява в горния ляв край на рамката на
прозореца на програмата след оригиналния номер и стрелка надясно.
21. Номер на обект - показва номера на обекта, в който работи приложението.
Използва се при автоматични осчетоводявания и прехвърляне на данни между обекти.
Номерът се взема от полето "стринг" на 21-вия елемент на номенклатура "1002.
Автоматични стрингове". Номерът на обекта от тази номенклатура може да се
промени само с администраторска парола. С произволна парола може да го променим
само в рамките на сеанса чрез външна програма "52. Промяна на
"Номер на обект"". Тя гледа дали първите пет символа в кошчето може да се
превърнат в цяло положително число и ако може, го взема за номер на обект.
22. Касов бон - CashBond\Driver - СТАР стил и вече не се използва - дава стойността на ключа от регистратурата CashBond\Driver
с цел да се разклони макрос създаващ касови бонове според изискванията на съответния касов
апарат. Важи само за Windows версията.
23. Каса - CashBond\CashBoxName - СТАР стил и вече не се използва - дава стойността на ключа от регистратурата CashBond\CashBoxName
показващ името на касата, в която се събират пари и при работа със слаба парола се
използва за осчетоводяване на операции в оперативната каса (това позволява с
една и съща парола да се работи на различни каси без да се пита оператора на коя каса е в момента),
24. Дата - текущ месец (ггггмм) - дава текущия месец във формат ггггмм (година и месец).
25. Текущо приложение - диск - устройството, на което се намират данните на текущото приложение (обикновено е R:).
26. Текущо приложение - директория - име на директорията на текущото приложение (например Uni).
27. Текущо приложение - име - името на текущото приложение, което се появява в
заглавието на прозореца му и в справките (например Универсален пакет "Уни" на
програма "СиПиЪкаунтинг"). Може да се промени само с първа парола
чрез външна програма "59. Промяна на "Текущо приложение - име"".
Тя гледа първия ред на кошчето и ако името е празно или по-дълго от 60 символа (или не сме с първа парола), дава "Заключено".
За да видим промяната на името на приложението в заглавието на прозореца му, трябва да излезем от програмата и пак да влезем.
28. Регистратура ToTxt - стойностите на ключа от регистратурата ToTxt
в последователността: Delimiter, TextQualifierForInternalSpaces, SetEndOfFileSign, TextQualifier, ReplaceTextQualifierWith.
Може да се промени от външна програма 60. Промяна на "Регистратура ToTxt", но промяната
се забравя след излизане от програмата.
29, 30, 31, 32. Специални знаци - служат за набиране на символи, които не може да се наберат от клавиатурата.
33. Парола - приоритет. На влизане в програмата или при смяна на паролата автоматично се взема от номенклатура "108.
Параметри на пароли", а ако там е нулев, става равен на номера на въведената парола. Може да се промени, само в рамките на сеанса,
чрез външна програма 67. Промяна на "Парола - приоритет".
34. Парола - език. На влизане в програмата или при смяна на паролата автоматично се взема от номенклатура "108.
Параметри на пароли", а ако там има интервал или превърнато в главни букви е 'EP', езикът се счита за 'bg'. Ако превърнат в
главни букви е 'BG', езикът се счита за 'bg'. Може да се промени, само в рамките на сеанса, чрез външна програма
68. Промяна на "Парола - език". Вж. Правила за писане на HTML приложения.
35. Време текущо ггггммддччммсс
36. Време запомнено ггггммддччммсс - дава запомненото от външна програма 130. Време - запомни текущото ггггммддччммсс.
Ако няма такова или е било забравено от външна програма 131. Време - забрави запомненото, дава текущото време.
37. Касов бон - има ли неотпечатан - СТАР стил и вече не се използва
38. Номер на фирма - показва параметъра "номер на фирмата от номенклатура 122", с който е пусната програмата. Този параметър е пети по ред.
Ако не е зададен, се счита за 0.
39. Потребител на операционната система - за текущия потребител дава номера му в номенклатура 91. Дневник: потребители
40. Компютър - за текущия компютър дава номера му в номенклатура 92. Дневник: компютри. Ако се работи през Remote Desktop
Connection, взема environment променливата CLIENTNAME, иначе COMPUTERNAME.
"41. Потребител на операционната система: от име към номер" и "42. Компютър: от име към номер"
- тези две точки се изпълняват само от макрос, иначе програмата изсвирва,
- очаква се изпълнението да е в поле със съответното име на потребителя или компютъра,
- ако полето започва с интервал или е по-късо от 30 символа - нищо не се прави,
- ако името не съществува съответно в номенклатура 91. Дневник: потребители или 92. Дневник: компютри, програмата го добавя,
- накрая вмъква пред името номера му в съответната номенклатура и един интервал.
Може да се използват при Internet/Intranet приложения за сваляне през html страница на имената на потребителя и компютъра,
както е показано в следващия пример:
<!DOCTYPE html><html><head>
...
<script>
function nextPage( yyyymm, papka, number ) {
try {
var network = new ActiveXObject("WScript.Network");
var computerName = network.ComputerName;
var userName = network.UserName;
}
catch (e) {
document.write( 'Oт тeкcт 80024:\nГpeшкa ComputerName, UserName' + '<br />' );
}
...
window.top.location.href = "/cgi-bin/CPAccounting.exe?m80018a1=&1UprText=" +
"80026" + "&2FDnumber="+ FDnumber + "&3Computer=" + computerName +
"&4User=" + userName + "&5Yyyymm=" + yyyymm + "&6Papka=" + papka +
"&7Number=" + number;
}
</script>
</head>
<body onload="...">
...
Ако името на стринга започва с "ДАТА" (но не "Дата"), след избора му от списъка на стринговете може да го въведем с Enter или Ctrl+Enter. Така може да получим различен резултат. При Ctrl+Enter програмата търси първия/последния съществуващ в данните на системата месец. Примери:
първи системен месец | текущ месец | последен системен месец | автоматичен стринг | резултат след Enter | резултат след Ctrl+Enter |
200306 | 200310 | 1. Предишна година | 200210 | 200213 | |
200306 | 200306 | 2. Предишен месец | 200305 | 200300 | |
200409 | 200409 | 4. Следващ месец | 200410 | 200413 | |
200405 | 200409 | 5. Следваща година | 200505 | 200500 | |
200306 | 200310 | 13. Първи мес.в год. | 200301 | 200306 | |
200405 | 200409 | 14. Посл.мес.в год. | 200412 | 200409 |
До тази точка от програмата може да стигнем, ако от главното
меню (F10) изберем подменю "4. Сервизни функции" и от него точка "2. Външни
програми"
Появява се първият номер от номенклатурата на външните програми: "Запис на пред-пред-последния сеанс".
Може да изберем друга външна програма според Номенклатури: избор на елемент. Ако текущата парола няма
правото на изпълнение на избраната външна програма, се появява съобщението "Заключено",
на което отговаряме с натискане на Esc.
Външните програми, за които на справка 1. Номенклатури за
номенклатура "7. Външни програми" първият символ в полето "команда" е интервал -
не може да се пускат в DOS. Ако полето "достъп" е 1, командата може да се пусне
само с администраторска парола (а външна 2 - и от парола № 3).
Външните програми са:
1. Запис на пред-пред-последния сеанс,
2. Заключване / отключване на месец и 132. Заключване / отключване на документ - може да се пуснат и от парола № 3,
3. Текстов редактор (само за DOS) - изпълнява OUT-PRG.BAT (този файл трябва да
се създаде от квалифициран специалист),
11. Кирилизиране на принтер (само за DOS) - изпълнява CYRIL.BAT
(този файл трябва да се създаде от квалифициран специалист),
15. >> >> >> >> Касов бон << << << << - СТАР стил и вече не се използва - праща последната справка като касов бон към каса
свързана към компютъра според ключа от регистратурата
CashBond. Може да се изпълни само през макрос. С цел да се разклони
макрос, създаващ касови бонове според изискванията на съответния касов апарат, може да се използва
автоматичен стринг (Ctrl+D) "22. Касов бон - CashBond\Driver".
Ако предишният бон още не е обработен от касата (т.е. още не е изтрит), ще
получим съобщението "Още не е отпечатан предишният бон". Ако касата не може
да изтрие предишния бон, изтриваме го на ръка. Неговото пълно име е записано в
ключа от регистратурата CashBond\Files.
37. Промяна на системната дата,
52. Промяна на "Номер на обект" - вж. автоматичен стринг (Ctrl+D) "21. Номер на обект",
66/67/68. Промяна на "Парола - номер по ред/приоритет/език",
59. Промяна на "Текущо приложение - име" - вж. как се променя Името на текущото приложение, което се появява в заглавието на прозореца му и в справките (например Универсален пакет "Уни" на програма "СиПиЪкаунтинг").
8. Изтриване на "залепени",
9. Копиране на "последна" в "залепени",
33. Добавяне на "последна" към "залепени",
34. Копиране на "залепени" в "последна",
12. Експортиране на справка,
13/21. Записване на експорт на диска/дискета,
14/22. Четене на импорт от диска/дискета,
6. От импорт към чужди данни,
23. Изтриване на импорт (вж. 14/22. Четене на импорт от диска/дискета),
16. Копиране на справка в POKUPKI.DBF - преди се използваше за дневника на покупките по ДДС,
17. Копиране на справка в PRODAGBI.DBF - преди се използваше за дневника на продажбите по ДДС,
Вече се използват:
"61. От справка към fixed width POKUPKI.TXT",
"62. От справка към fixed width PRODAGBI.TXT" и
"65. От справка към fixed width DEKLAR.TXT". Вж. 49/50. От справка към fixed width/delimited CpaW.txt.
26. От "последна" към справка - през Alt+F8,
51. От "последна" към справка - 1 към 1,
7. От справка към чужди данни,
70. От справка към "чужди 0", ... , 79. От справка към "чужди 9",
110. От справка към "чужди 10", ... , 119. От справка към "чужди 19",
80. От "чужди 0" към "чужди", ... ,
89. От "чужди 9" към "чужди",
120. От "чужди 10" към "чужди", ... ,
129. От "чужди 19" към "чужди".
"130. Време - запомни текущото ггггммддччммсс" - може да се избере на произволно място в програмата с натискане на Shift+F11.
Запомненото време може да се прочете с автоматичен стринг (Ctrl+D) "36. Време запомнено ггггммддччммсс".
Текущото време може да се прочете с автоматичен стринг (Ctrl+D) "35. Време текущо ггггммддччммсс".
"131. Време - забрави запомненото" - забравя запоменото от предното "130. Време - запомни текущото ггггммддччммсс"
Може да се избере на произволно място в програмата с натискане на Shift+F11.
Ако времето е забравено, автоматичен стринг (Ctrl+D) "36. Време запомнено ггггммддччммсс" дава текущото.
30. Изпълнение на външна програма,
Външни програми за вход (import) от чужд
toCpa*.* файл:
Ако външната програма е избрана с:
- Enter, файловете се намират в C:\CpaBack,
- Ctrl+Enter, файловете се намират в C:\CpaRep\XXX и са с имена toCpa?YYY.*, където XXX е името на приложението, а YYY - номерът
на текущата парола.
19/20/27/35. От toCpa.DBF
към "чужди",
28. Изтриване на toCpa.dbf,
Вход на данни от чужд текстов файл:
24/25. От Fixed width toCpa.TXT
към "чужди",
47/48. От Delimited toCpa.txt към "чужди",
29. Изтриване на toCpa.txt.
58. От toCpaU.txt (UTF-16) към toCpa.txt - прехвърля Unicode UTF-16 файла
C:\CpaBack\toCpaU.txt (а ако е избрана с Ctrl+Enter - C:\CpaRep\XXX\toCpaUYYY.txt, XXX е името на приложението, а YYY - номерът
на текущата парола) (в "Запиши като" на Notepad се показва с кодиране Unicode, което е кодиране на знаци за Уникод с една или две
16-битови кодови единици) към обикновения текстов файл на кирилица за Windows (code page 1251) C:\CpaBack\toCpa.txt (а ако е избрана с
Ctrl+Enter - C:\CpaRep\XXX\toCpa-YYY.txt) (в "Запиши като" на Notepad се показва с кодиране ANSI). Символите, които нямат съответствие,
се заменят с '@'.
64. От toCpa8.txt (UTF-8) към toCpa.txt - прехвърля Unicode UTF-8 файла
C:\CpaBack\toCpa8.txt (а ако е избрана с Ctrl+Enter - C:\CpaRep\XXX\toCpa8YYY.txt, XXX е името на приложението, а YYY - номерът
на текущата парола) (в "Запиши като" на Notepad се показва с кодиране UTF-8, което е кодиране на знаци за Уникод с един до четири
8-битови байта) към обикновения текстов файл на кирилица за Windows (code page 1251) C:\CpaBack\toCpa.txt (а ако е избрана с
Ctrl+Enter - C:\CpaRep\XXX\toCpa-YYY.txt) (в "Запиши като" на Notepad се показва с кодиране ANSI). Символите, които нямат съответствие,
се заменят с '@'.
Вж. и примерите за "Вход от друго приложение / друга програма".
Външни програми за изход (export) към Cpa*.* файл:
4/10/36. От справка към CpaW.DBF,
5. От "залепени" към Cpa.TXT,
18. От справка към Cpa.txt,
49. От справка към fixed width CpaW.txt
50. От справка към delimited CpaW.txt
57. От CpaW.txt към CpaU.txt (UTF-16) - прехвърля обикновения текстов файл на кирилица за Windows (code page 1251) C:\CpaBack\CpaW.txt
(в "Запиши като" на Notepad се показва с кодиране ANSI) към Unicode UTF-16 файла
C:\CpaBack\CpaU.txt (в "Запиши като" на Notepad се показва с кодиране Unicode, което е кодиране на знаци за Уникод с една или две
16-битови кодови единици).
63. От CpaW.txt към Cpa8.txt (UTF-8) - прехвърля обикновения текстов файл на кирилица за Windows (code page 1251) C:\CpaBack\CpaW.txt
(в "Запиши като" на Notepad се показва с кодиране ANSI) към Unicode UTF-8 файла
C:\CpaBack\Cpa8.txt (в "Запиши като" на Notepad се показва с кодиране UTF-8, което е кодиране на знаци за Уникод с един до четири
8-битови байта).
60. Промяна на "Регистратура ToTxt" - променя ключа от регистратурата ToTxt според
стойностите записани на първия ред на кошчето в последователността: Delimiter, TextQualifierForInternalSpaces,
SetEndOfFileSign, TextQualifier, ReplaceTextQualifierWith. Промените се забравят след излизане от програмата.
Стойностите на ключа ToTxt може да се получат в поле от програмата чрез автоматичен стринг (Ctrl+D)
"28.Регистратура ToTxt".
31. От справка към HTML (Windows),
32. Изпълнение на справка в HTML (Windows),
38. От "последна" + <table> към "залепени",
39. От "залепени" към CpaW.htm,
40. От "последна" към CpawHtm\Path,
44/45/46. От справка към браузер, Excel или
Word,
69. От Save\KBDxxx към C:\CpaBack\KBDxxx.txt
41/42/43. Осчетоводяване от "чужди" (автоматично осчетоводяване),
56. От "чужди" към номенклатура.
Външните програми за работа с кошче са описани в Кошче: въведение. Те са:
53. От кошче към стек, 54. От стек към кошче и 55. Нулиране на стека,
90. От кошче към "кошче 0", ... , 99. От кошче към "кошче 9",
100. От "кошче 0" към кошче, ... , 109. От "кошче 9" към кошче.
Те може да се изберат и на произволно място в програмата с натискане на Shift+F11.
Тогава при опита за избор на външна програма, която не се отнася до работа с кошчето, излиза "Заключено".
Вж. и програмите описани в:
Справки: 7. Чужди данни,
Справка "залепени".
В DOS версията повечето външни програми се извикват с BAT файлове, които може да видим в полето "команда", ако пуснем справка на номенклатура "7. Външни програми". Ако това поле е празно, тази външна програма не може да се стартира под DOS.
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни допълнителни обяснения в раздел "13. Дневник на програмата" в CPA1.docx за това как може да проследим точните дата, час и кой потребител е изпълнил ръчно (не през макрос) дадена външна програма.
Чрез тази външна програма (№ 1) се извършва записване на
външен носител (дискета, презаписваемо CD,
USB Flash или друга медия) на всички данни
за всички месеци, в които някога е работено в текущото приложение на програмата. Записва се
състоянието на данните ПРЕДИ НАЧАЛОТО на предишния сеанс (за Windows или
мрежова версия) или преди началото на текущия сеанс (за
немрежова DOS версия). Препоръчително е всяка седмица да се
извършва запис на данните, но не на една и съща флашка. Една седмица след
последния запис на екрана ще започне да излиза съобщение за датата на последния
архив ("Не е правен запис от ...").
Записът се извършва само в локална сесия. Преди да започне
записът програмата проверява дали са наред компресираните файлове (на външния носител
се записва компресирано копие на данните). Ако не са наред е необходимо да се
рестартира програмата.
Ако системната дата се различава по МЕСЕЦА от датата, на която за последен път
сме правили запис и влезем в "1. Документи" или "4. Номенклатури" от подменю "1.
Въвеждане данни" на главното меню (F10), програмата ни
задължава да направим запис на пред-пред-последния сеанс. Записът не е задължителен, ако сме в
заключен месец с парола, която не е администраторска и не е с № 3.
Проверката за задължителен запис на пред-пред-последния сеанс се прави еднократно. Ето защо при
смяна на месеца, за да се направят нови архиви, трябва всички потребители да
излезнат и пак да влезнат в програмата, иначе тя няма да ги задължи да направят
запис. Ако не сме със слаба парола, може да се откажем от записа, но
при всяко ново влизане програмата ще ни предлага запис.
Ако се мине през тази външна програма, дори и да не се изпълни, повече проверка
за запис на пред-пред-последния сеанс не се прави - това е направено за да може да се изпълни
макрос "900. Преосчетоводяване на текущия месец" или "901. Преосчетоводяване на
последния месец" дори и ако не е правен запис на пред-пред-последния сеанс.
Вж. и Промяна на системната дата.
За специалистите от "СиПиЪкаунтинг" ЕООД са достъпни в
CPA1.docx
обяснения как да се пренасочи записването към презаписваемо CD,
USB Flash или друга медия, как да
възстановим данни от архив
и как автоматично на направим запис на последния сеанс чрез toFlash.bat.
Тази външна програма прави изкуствената системна дата равна на указаната на първия ред в кошчето. Ако там няма вярна дата или датата в кошчето е по-нова от системната дата, или годината й не започва с 2, излиза съобщение "Заключено".
Външна програма 66. Промяна на "Парола - номер по ред" взема първите три символа от кошчето и, ако може да ги превърне в число от 1 до 999 (вкл.), променя, само в рамките на сеанса, стойността на автоматичен стринг (Ctrl+D) "20. Парола - номер по ред" (който се използва и при осчетоводяване за автоматично попълване на полето "парола №" на документа). Ако се различава от оригиналния номер на паролата, с която в момента сме влезнали в програмата, се появява в горния ляв край на рамката на прозореца на програмата след оригиналния номер и стрелка надясно. На влизане в програмата или при смяна на паролата стрингът автоматично става равен на номера на въведената парола.
Външна програма 67. Промяна на "Парола - приоритет" взема първите три символа от кошчето и, ако може да ги превърне в число от 1 до 999 (вкл.), променя, само в рамките на сеанса, стойността на автоматичен стринг (Ctrl+D) "33. Парола - приоритет". На влизане в програмата или при смяна на паролата стрингът автоматично се взема от номенклатура "108. Параметри на пароли", а ако там е нулев, става равен на номера на въведената парола.
Външна програма 68. Промяна на "Парола - език" взема първите два символа от
кошчето и променя, само в рамките на сеанса, стойността на автоматичен стринг (Ctrl+D)
"34. Парола - език".
Не се променя и дава "Заключено", ако някой от символите е интервал или ако превърнат в главни
букви е "EP" (защото папката с макроси, таблици, кошчета и текстове за езика 'bg' е System.Rep, а за езика 'XX' е System.RXX и така
за език 'ep' би се получило System.Rep, което е папката за езика 'bg').
Ако превърнат в главни букви е 'BG', езикът се счита за 'bg'.
Следващото обяснение не важи за месечни номенклатури обяснени в Номенклатури: въведение:
Програмата не проверява дали реално съществуват папките за въведения език и ако не съществуват, при запис на макрос, таблица, кошче или текст
ще даде "Заключено", а при четене - ще ги прочете от System.Rep. При работа с номенклатури това
няма значение: ако не се намери номенклатурата в съответната папка BasicXX, тя се взема от Basic00 (за езика 'bg').
На влизане в програмата или при смяна на паролата стрингът автоматично се взема от номенклатура
"108. Параметри на пароли", а ако там има интервал или превърнато в главни букви е 'EP', езикът се счита за 'bg'.
Ако превърнат в главни букви е 'BG', езикът се счита за 'bg'.
Функцията (Alt+N) - записване на число СЛОВОМ в Прозорец: текстов редактор е реализирана освен
на български и на английски и румънски езици.
Вж. точка 9а) от Работа през Remote Desktop Connection и Пример за работа на чужд език.
Вж. Правила за писане на HTML приложения.
Чрез тази външна програма (№ 12) се извършва копиране на
базата данни от последната справка във файла C:\CpaBack\Export.Dbf. Вж.
Записване на експорт на диска/дискета,
Четене на импорт от диска/дискета,
От импорт към чужди данни.
Файла C:\CpaBack\Export.Dbf създаден чрез Експортиране на справка може да запишем на дискета или диска и по-късно от друго приложение на програмата да прочетем както е описано в Четене на импорт от диска/дискета и От импорт към чужди данни.
Записването на C:\CpaBack\Export.Dbf на ДИСКЕТА става чрез външна
програма "13. Записване на експорт на дискета", която извършва:
copy c:\CpaBack\export.dbf c:\CpaBack\cpa.dbf /y
pkzip25 -add -nofix a:\cpa c:\CpaBack\cpa.dbf
Записването на C:\CpaBack\Export.Dbf на ДИСКА става чрез външна
програма "21. Записване на експорт на диска", която извършва:
copy c:\CpaBack\export.dbf c:\CpaBack\CpaD.dbf /y
Както се вижда, при записване на експорт на диска, се припокрива (ако
съществува) експорт създаден от друго приложение на програмата.
След като сме записали експорт чрез Записване на експорт на
диска/дискета може да го прочетем като импорт по схемата:
c:\CpaBack\export.dbf ─► cpa.dbf ─► c:\CpaBack\import.dbf
Както се вижда, при четенето на импорт, се припокрива (ако съществува) предишен
импорт създаден от друго приложение на програмата.
Четенето на импорт от ДИСКЕТА става чрез външна програма
"14. Четене на импорт от дискета", която извършва:
copy a:\cpa.zip c:\CpaBack\cpa.zip /y
del c:\CpaBack\import.dbf
del c:\CpaBack\cpa.dbf
pkunzip c:\CpaBack\cpa c:\CpaBack
copy c:\CpaBack\cpa.dbf c:\CpaBack\import.dbf /y
del c:\CpaBack\cpa.dbf
Четенето на импорт от ДИСКА става чрез външна програма
"22. Четене на импорт от диска", която извършва:
copy c:\CpaBack\CpaD.dbf c:\CpaBack\import.dbf /y
След прочитането на импорт обикновено се изпълнява външна програма 6. От импорт към чужди данни. По време на макрос след обработка на данните от последния импорт е добре той да се изтрие с външна програма "23. Изтриване на импорт". Така, в случай че няма нов импорт, се предпазваме от използване на стари данни.
Импорт е DBF файл получен от текущото или друго приложение на програмата.
Получава се по следната схема:
c:\CpaBack\export.dbf ─► cpa.dbf ─► c:\CpaBack\import.dbf
Това става както е описано в:
Експортиране на справка,
Записване на експорт на диска/дискета,
Четене на импорт от диска/дискета.
След като сме прочели импорта, може да изпълним външна програма "6. От импорт към чужди данни". След това може да използваме данните от импорта в Справки: 7. Чужди данни. По време на макрос след обработка на данните от последния импорт е добре той да се изтрие с външна програма "23. Изтриване на импорт". Така, в случай че няма нов импорт, се предпазваме от използване на стари данни.
Чрез външни програми:
"4. От справка към CpaW.dbf (1)",
"10. От справка към CpaW.dbf (2)" или
"36. От справка към CpaW.dbf (3)"
може да прехвърлим базата данни на последната справка във файл C:\CpaBack\CpaW.dbf,
който по-късно да отворим с друга програма (например Microsoft
Excel). Трите варианта отговарят на стандартите за кирилица в "Windows DOS",
"DOS" и "Windows".
Например, изпълняваме външна програма 4, пускаме Excel и зареждаме в него
C:\CpaBack\CpaW.dbf. В този момент виждаме, че не може да прочетем на кирилица
съдържанието му. Затваряме файла. Преместваме се (с Alt+Tab) в програмата
("СиПиЪкаунтинг") и изпълняваме външна програма "10". Преместваме се в Excel и
отново зареждаме C:\CpaBack\CpaW.dbf.
Преди изпълнението на външни програми 4, 10 и 36 е необходимо да затворим файла
C:\CpaBack\CpaW.dbf, ако е бил отворен от друга програма.
Ако искаме имената на полетата от справката да са говорящи, може да ги въведем
по правилата:
- имената на полетата трябва да започват с главна буква на латиница,
- могат да съдържат главни латински букви, подчертавки и/или цифри, както е
описано в Справки: поле: име.
Ако желаем да прехвърлим по-точно копие на справката (вкл. заглавието, антетката на кирилица, сумарните редове) в Windows версията може да щракнем с мишката върху иконите на долната рамка на програмата за пращане на справката в браузер, MS Excel или MS Word. Може да намерим допълнителни обяснения в 44/45/46. От справка към браузер, Excel или Word.
Вж Изход към Cpa*.* файл и Вход от чужд toCpa.* файл.
Чрез външни програми 5 и 18 се прехвърля текста на справката (точно както се вижда на екран или печат) във файл C:\CpaBack\Cpa.txt. Този файл е на кирилица за Windows.
Вж. 49/50. От справка към fixed width/delimited CpaW.txt,
Изход към Cpa*.* файл и Вход от чужд toCpa.* файл.
Чрез външни програми 49 и 50 данните от последната справка
се прехвърлят в текстов файл на кирилица за Windows. За разлика от външни
програми 5/18. От "залепени"/справка към Cpa.txt,
тук не се прехвърлят останалите части от справката (връх, дъно, антетки, оградки).
Всеки ред на текстовия файл завършва с двата символа за край на ред <carriage
return> и <line feed> или съкратено CR и LF (на езика C се пишат \r и \n и
означават символите с шестнайсетично представяне 0x0d и 0x0a).
При ненулева стойност на ключа от регистратурата
ToTxt\SetEndOfFileSign се записва в края на файла символа за край на текстов
файл CTRL+Z (с шестнайсетично представяне 0x1a).
Външна програма "49. От справка към fixed width CpaW.txt" създава файл C:\CpaBack\CpaW.txt с фиксирана ширина (fixed width) на полетата като всички полета от един ред са залепени едно за друго без разделители и са широки колкото и в справката.
Външни програми "61. От справка към fixed width POKUPKI.TXT", "62. От справка към fixed width PRODAGBI.TXT" и "65. От справка към fixed width DEKLAR.TXT" се различават от външна програма 49 само по имената и местоположението на файловете, които създават в папката на текущото приложение (например в R:\Cpa\Uni\Cpa). При първо влизане в програмата, тя изтрива файловете POKUPKI.*, PRODAGBI.* и DEKLAR.*.
Външна програма "50. От справка към delimited CpaW.txt" обработва полетата така:
Вж. Вход от чужд toCpa.* файл и Изход към Cpa*.* файл.
Чрез тези външни програми може да прехвърлим данни
получени от друга програма от файла C:\CpaBack\toCpa.dbf (а ако външната програма е избрана с Ctrl+Enter - C:\CpaRep\XXX\toCpa-YYY.dbf,
където XXX е името на приложението, а YYY - номерът на текущата парола) в Справки: 7. Чужди данни.
Четирите програми се различават по кирилицата на toCpa*.dbf:
(1) програма 19 - кирилица за DOS,
(2) програма 20 - кирилица за Windows,
(3) програма 27 - кирилица за DOS под Windows,
(4) програма 35 - кирилица за DOS под Windows (стар вариант).
По време на макрос след обработка на данните от файла toCpa*.dbf, ако няма повече да го използваме, е добре той да се изтрие с външна програма "28. Изтриване на toCpa.dbf".
Ако желаем да прехвърлим таблица от Microsoft
Excel в
Справки: 7. Чужди данни:
- зареждаме я в Excel,
- на първия ред записваме на латиница имена на колоните (те ще се появят като
имена на полетата в таблицата за справка в CPAccounting),
- запомняме я (Save As...) във файл от тип DBF 3 (dBASE III) (*.dbf) под името C:\CpaBack\toCpa.dbf, при което:
- ако файлът съществува, отговаряме с да на въпроса за подмяната му,
- ако не ни позволи да го запомним, вероятно е нужно първо да маркираме
клетките, които ни трябват,
- на въпроса за записване само на активната таблица отговаряме с да,
- на следващия въпрос също отговаряме с да,
- след това затваряме файла (за да може да се отвори в CPAccounting), а на
въпроса за записване на промените отговаряме с НЕ,
- накрая прехвърляме файла с 19/20/27/35. От toCpa.dbf към "чужди",
- ако не са се прехвърлили всички редове, е нужно преди да изберем "запомняне
(Save As...)" да маркираме клетките, които ни трябват.
В Windows версията изхода на справка към браузер, MS Excel или MS Word може да се стартира от всяко място в програмата чрез клавишните комбинации Ctrl+E, Ctrl+X и Ctrl+W или като щракнем върху иконите им на долната рамка на програмата. Може да намерим допълнителни обяснения в 44/45/46. От справка към браузер, Excel или Word.
Ако число от справката се вижда като дата в Excel, трябва в Control Panel на Windows да променим на
точка полето Decimal symbol (което вероятно е запетая). За различните версии на Windows, до Decimal symbol стигаме по различен начин:
- за Windows 98: натискаме Start бутона, после Settings и оттам Control Panel. Влизаме в Regional Settings и щракаме
отгоре на прозореца върху Number.
- за Windows XP: натискаме Start бутона и после Control Panel. Влизаме в Regional and Language Options и щракаме върху Customize.
Ако това не помогне (както е при OpenOffice), се променя на запетая ключа от регистратурата CpawHtm\DecimalSymbol.
Друг вариант за пращане на справка към Excel е описан в 4/10/36. От справка към CpaW.dbf.
Вж. Вход от чужд toCpa.* файл и Изход към Cpa*.* файл.
Външни програми
24/25. От Fixed width toCpa.txt към "чужди" и
47/48. От Delimited toCpa.txt към "чужди"
служат за вход на данни от текстов файл. Те не са реализирани в DOS версията.
Външни програми 24 и 47 първо прехвърлят данните от файла C:\CpaBack\toCpa.txt (а ако външната програма е избрана с Ctrl+Enter -
C:\CpaRep\XXX\toCpa-YYY.txt, където XXX е името на приложението, а YYY - номерът на текущата парола) (който се
счита, че е на кирилица за DOS по едно времешния стандарт 2) във файла
C:\CpaBack\toCpa.dbf (а ако е избрана с Ctrl+Enter - C:\CpaRep\XXX\toCpa-YYY.dbf) (който би трябвало да е празен файл с полета като на
текстовия) и после изпълняват външна програма 19. От toCpa.dbf към "чужди"
(1), която го прехвърля към Справки: 7. Чужди данни.
Външни програми 25 и 48 първо прехвърлят данните от файла C:\CpaBack\toCpa.txt (а ако външната програма е избрана с Ctrl+Enter -
C:\CpaRep\XXX\toCpa-YYY.txt, където XXX е името на приложението, а YYY - номерът на текущата парола) (който се
счита, че е на кирилица за Windows) във файла C:\CpaBack\toCpa.dbf
(а ако е избрана с Ctrl+Enter - C:\CpaRep\XXX\toCpa-YYY.dbf) (който би трябвало да е празен файл с полета като на текстовия) и после
изпълняват външна програма 20. От toCpa.dbf към "чужди" (2), която го прехвърля към
Справки: 7. Чужди данни.
Ако не съществува dbf файлът toCpa*.dbf, той автоматично се копира от празния файл
Txt.dbf (с 20 текстови полета, всяко с дължина
60 символа) намиращ се в System директорията на инсталацията.
Може да подготвим празния dbf файл с полета като на txt файла като се пусне
произволна справка, която да има същите полета като на текстовия файл и която е
празна (с поставяне на невъзможни условия в таблицата за справка). Полученият
файл ReprtXX.dbf (където XX е номерът на паролата, с която е влезнато в
програмата) се копира настрани за бъдеща употреба. Но това едва ли е добър стил
като се има предвид, че входните данни може да претърпят промяна (например да се
появи ново поле). Ето защо е най-добре да се използва System\Txt.dbf (ако
ширините и броят на полетата му е достатъчен, което е вярно в общия случай).
Преди началото на обработката dbf файла НЕ се нулира. Ето защо:
- ако е необходимо повторно да се обработят същите данни, би трябвало преди това
да се замени dbf файла с празен или направо да се изпълни външна програма
19/20. От toCpa.dbf към "чужди",
- добре е след обработката да се изтрият входните файлове с външни програми:
"28. Изтриване на toCpa.dbf" и
"29. Изтриване на toCpa.txt".
Ако не може да се отвори txt или dbf файла, се издава съобщение "Грешка при копиране"
Външни програми 24 и 25 обработват текстови (TXT) файлове с фиксирана ширина
(fixed width) на полетата (залепени без разделители), а външни програми 47 и 48
- текстови файлове с разделители между полетата (delimited), включително Tab
delimited и Comma delimited. Последният тип е известен като CSV (comma separated
values).
Редовете може да завършват с някой от двата или и двата символа за край на ред
<carriage return> и <line feed> или съкратено CR и LF (на езика C се пишат \r и
\n и означават символите с шестнайсетично представяне 0x0d и 0x0a).
Празните редове не се обработват.
Преди записване на записа в dbf файла, символите по-малки по шестнайсетично
представяне от интервал ' ' (така наречените непечатаеми символи) (с изключение на ↔) се заменят с
@.
Ако txt файлът е с фиксирана ширина (fixed width) на полетата:
Ако txt файлът е с разделители (delimited):
Вж. примерите за "Вход от друго приложение / друга програма",
Вход от чужд toCpa.* файл и Изход към Cpa*.* файл.
Чрез външни програми 26 и 51 се извършва създаване на база данни от справка.
Типовете на полетата се определят от антетката на
справката. Ако в антетката полето започва с вертикална черта - полето в
базата данни ще е Character с цялата дължина на полето от справката, иначе може
да бъде Nx[x][.x] (число), D (дата), Bxxxx (номенклатура с номер xxxx).
Програмата ще даде съобщение "Заключено" ако според антетката:
- някое поле е по-широко от 60 символа,
- общият брой на полетата е над 999,
- не съществува номер на номенклатура за поле Bxxxx.
Външна програма "26. От "последна" към справка - през Alt+F8" не прехвърля
редове, които започват с празно поле (например сумарните редове), подобно на
Кошче: поле от справка (Alt+F8).
За разлика от 26, външна програма "51. От "последна" към справка - 1 към 1"
прехвърля всички редове.
Обикновено след външни програми 26 или 51 се изпълнява външна програма: "7. От справка към чужди данни".
Чрез тази външна програма се извикват различни други програми. Тя е в два различни варианта за DOS и Windows. Параметрите се попълват на различни редове в кошчето. Надолу, ограденото в [...] не е задължително, а от изброеното в {...|...|...} се взема само едно.
Редове в кошчето за DOS версия (вертикалната черта е прекъснатата вертикална черта над \):
1. |
2. |команден ред (вкл. параметрите)
- ако съдържа интервали, трябва да завърши с |, ако на 3. и 4. ред има '|' - не
се изпълнява (счита, че е за Windows версия)
Windows версия:
Изпълнението на командата е асинхронно - НЕ може да се разчита, че програмата ще
чака да завърши тази външна програма и ЧАК след това ще продължи изпълнението
си. Изчаква се изпълнението само на програми с име завършващо на .bat и
описаните по-долу програми >copyfile, >xcopy, >delfile и >copymedia.
Буквите от използваните редове в кошчето, които нямат изображение на латиница се превеждат в Windows кирилица.
Редове в кошчето (вертикалната черта е прекъснатата вертикална черта над \):
1. |x
където x = { | , Open , Print , Explore , ... }
за следващите три реда, ако | не е попълнено, се избира NULL,
а ако стрингът съдържа интервали, трябва да завърши с |
2. |файл (за изпълнение, отваряне, печат ИЛИ папка за отваряне / Explore)
3. |параметри (при изпълним файл на ред 2.)
4. |директория по премълчаване
5. |брой секунди, след изтичането на които програмата счита, че е възникнала грешка, ако името на
изпълнимия файл на ред 2 завършва с .bat и още не е приключил работата си
Ако на ред 1 е попълнено || и от останалите редове е попълнен само ред 2, в името на файла от ред 2 се заменят непозволените символи както е описано по-долу за copyfile.
Ако името на изпълнимия файл на ред 2 завършва с .bat:
- програмата добавя пред параметрите (от ред 3 на кошчето) следните пет параметъра отделени с интервали:
- непечатаемия символ с шестнайсетичен код 1 (за да не може да се стартира ръчно bat файла),
- диска на текущото приложение (обикновено е r:),
- името на текущото приложение (например uni),
- номера на паролата на потребителя XX,
- пореден номер YYY на преминаване през тази обработка (извикване
на bat файл) от потребителя през текущия сеанс
- преди извикването на изпълнимия файл създава в Cpa директорията на текущото
приложение файл с име outXXon.YYY (XX и YYY са обяснени в предишното изречение)
- след извикването на изпълнимия файл програмата започва да чака докато той изтрие файла outXXon.YYY
- след изтриването на файла outXXon.YYY програмата продължава работата си
- програмата счита, че има грешка в следните два случая:
1) ако файлът outXXon.YYY не е изтрит ZZ секунди след старта на изпълнимия файл, където ZZ е
числото записано от втора позиция на 5-ия ред в кошчето, а ако не е записано (или е
по-малко или равно на 0), счита ZZ за 60. В този случай програмата издава
съобщението Поради голямото му закъснение, програмата
не изчака изпълнението на: ааа.bat, където ааа.bat е името на bat файла.
2) ако файлът outXXon.YYY не е изтрит и се появи файл с име outXXerr.YYY
(тогава програмата изтрива outXXon.YYY)
- в случай на грешка:
- ако на първия ред в кошчето има три знака |, програмата изпълнява Alt+0,
- иначе - издава съобщение Заключено
Други варианти на Windows версията:
- copyfile sourceFilename targetFilename:
||[| - при грешка изпълнява Alt+0]
|>copyfile
|sourceFilename
|targetFilename
ако sourceFilename или targetFilename съдържат някой от непозволените за имена на файлове символи
:*?"<>|
те се заменят съответно с
;x!'{}!
символът : не се заменя само, ако е втори по ред символ,
ако sourceFilename или targetFilename съдържат интервали, трябва да завършват с |
- xcopy sourceDir targetDir се вика така:
||[| - при грешка изпълнява Alt+0]
|>xcopy
|sourceDir - може да съдържа и ? и * в името на файла
|targetDir - може и да не съществува. Ако е попълнен следващият ред, targetDir е файл, иначе е директория.
[|file] - ако редът започва с |file, targetDir е файл, а не директория.
Тогава всички файлове в sourceDir, но не и в поддиректориите й, се копират един
след друг във файла targetDir. Дава грешка, ако няма нито един файл за копиране.
- delfile ! = targetDir\ files се вика:
||
|>delfile
|targetDir\
|files
- copymedia sourceFilename targetFilename: копира съответните файлове с
всички медия окончания (xx.gif, xx.jpg, xx.wav, xx.avi, xx.htm), за голямата
картинка xxB.gif, xxB.jpg и за пълното описание xxB.htm; xx - е празно или число
от 1 до 99
||
|>copymedia
|sourceFilename
|targetFilename
Тази външна програма прехвърля последната изпълнена справка в Html формат:
- за заглавие (между таговете <title>) използва заглавието на справката
(ако няма центрирано и оградено с два празни реда заглавие или има ред от
справката по-дълъг от 118 символа, използва първия непразен ред),
- ако редовете на справката са по-къси от 119 символа, огражда с тагове <big>
и <b> заглавието на справката (ако няма центрирано и оградено с два празни реда,
взема за заглавие първия ред, който може и да е празен). Ако справката е
получена от залепване на няколко справки, удебелява се заглавието само на първата справка.
- запазват се всички интервали (чрез ) на редовете по-къси от 119
символа, които не започват с интервал и не са от таблицата на справката (и не са удебелено заглавие),
- преработва таблицата на справката в Html таблица (с тагове <table>),
- ако полето е не по-дълго от 15 знака и представлява дясно изравнено число с
точност не по-голяма от 5 знака след десетичната точка, го форматира за МS Excel
(например, ако е с точност 2 знака след десетичната точка:
mso-number-format:"0\.00";text-align:right)
и променя десетичния му знак (който идва от програмата точка) на CpawHtm\DecimalSymbol
- иначе, ако съдържа само цифри, точка и/или минус и не завършва с интервал, го подравнява вдясно:
mso-number-format:"\@";text-align:right (ако завършва с интервал: mso-number-format:"\@")
- ако в полето има знак =, за да не се разтълкува като формула в МS Excel, го форматира:
mso-number-format:"\@" (така, все едно в Excel сме го форматирали чрез Format Cells на Text)
- ако е ненулев ключът от регистратурата CpawHtm\Nowrap,
дългите полета не се пренасят на повече от един ред като се гледат в браузер (чрез добавяне на nowrap в <td>)
- запазва сумарните редове за разлика от 4/10/36. От справка към CpaW.dbf,
- огражда справката с тагове <div> за центриране,
- така преработената справка се долепва към справка "залепени".
Така получената справка "залепени" може да се разгледа след изпълнение на
39. От "залепени" към CpaW.htm. Вж.:
Изпълнение на справка в HTML (Windows),
Макроси: Internet/Intranet.
Тази външна програма прехвърля справка "залепени" в Html файл както прави външна програма 31. От справка към HTML (Windows).
Ако е стартирана от 40. От "последна" към CpawHtm\Path и е попълнен ключа от регистратурата CpawHtm\Path с пълното име на съществуваща директория, освен в C:\CpaBack\CpaW.htm справката се прехвърля и в указаната директория като името на файла се формира от заглавието на справката, а разширението му се взема от ключа от регистратурата CpawHtm\Extension.
Вж Изход към Cpa*.* файл и Вход от чужд toCpa.* файл.
Тази външна програма изпълнява една след друга външни програми:
- преименува текущата справка "залепени" като й слага разширение TMP,
- 38. От "последна" + <table> към "залепени",
- 39. От "залепени" към CpaW.htm,
- възстановява предишната справка "залепени" като й маха разширението TMP.
Вж Изход към Cpa*.* файл и Вход от чужд toCpa.* файл.
Разгледаните надолу външни програми може да се стартират и от всяко място в програмата чрез клавишните комбинации Ctrl+E, Ctrl+X и Ctrl+W или като щракнем върху иконите им на долната рамка на програмата.
Външни програми "44. От справка към Internet Browser",
"45. От справка към MS Excel" и "46. От справка към MS Word":
1. също като 40. От "последна" към CpawHtm\Path изпълняват една
след друга външни програми:
- преименува текущата справка "залепени" като й слага разширение TMP,
- 38. От "последна" + <table> към "залепени",
- 39. От "залепени" към CpaW.htm,
- възстановява предишната справка "залепени" като й маха разширението TMP
2. копират CpaW.htm в c:\CpaBack\Pxx_yy.zzz, където:
- хх е номерът на паролата,
- yy е номер по ред на файла, като в рамките на един сеанс с една парола започва от 1 и се увеличава с 1 при всеки следващ такъв файл,
- zzz е разширение и за различните външни програми 44, 45 и 46 е съответно htm, xls или doc,
3. изпълняват получения файл.
Нека сме влезли в програмата с парола хх и след справка изпълним външна
програма "45. От справка към MS Excel" (или просто щракнем върху иконата на
Excel на долната рамка на програмата). В този момент в Excel ще се зареди файлът Pxx_1.xls.
Нека сега да излезем от програмата (но не и от Excel) и да повторим същата
процедура (влизаме с парола хх, изпълняваме справка и извикваме Excel). В този
момент ще получим съобщението "Грешка при копиране".
Причината е, че Excel държи отворен стария файл Pxx_1.xls и не позволява да се създаде
нов със същото име. Решението е да затворим стария Pxx_1.xls преди да щракнем върху иконата на Excel в програмата.
Ако число от справката се вижда като дата в Excel, трябва в Control Panel на Windows да променим на
точка полето
Decimal symbol (което
вероятно е запетая). За различните версии на Windows, до Decimal symbol стигаме по различен начин:
- за Windows 98: натискаме Start бутона, после Settings и оттам Control Panel. Влизаме в Regional Settings и щракаме
отгоре на прозореца върху Number.
- за Windows XP: натискаме Start бутона и после Control Panel. Влизаме в Regional and Language Options и щракаме върху Customize.
Ако това не помогне (както е при OpenOffice), се променя на запетая ключа от регистратурата CpawHtm\DecimalSymbol.
Тази външна програма копира последната справка в Html файл с име съставено от името на справката и разширение HTM (REPRTxx.HTM - където "xx" е номер на паролата), като:
След това, ако е в режим на Internet/Intranet и във файла има символи за дясна ─► и лява ◄─
стрелки, те се разглеждат така:
─►име на файл
─►начален таг
─►краен таг
─►втори начален таг
─►втори краен таг
......
◄─
Пример 1:
─►g0000bg\-1-.txt◄─
Срещането на този текст ще предизвика замяната му със съдържанието на файла с
име:
g0000bg\-1-.txt
Пример 2:
─►g0000bg\-1-.htm─►<body>─►</body>◄─
Срещането на този текст ще предизвика замяната му с частта от файла с име:
g0000bg\-1-.htm
заградена между таговете <body> и </body>
Пример 3:
─►g0000bg\-1-b.htm─►<a id="c1">─►</a> ─►<li>─►</li>◄─
Срещането на този текст ще предизвика замяната му с текст формиран така:
от файла с име:
g0000bg\-1-b.htm
се взема частта намираща се между таговете
<a id="c1"> и </a>
и от нея се взема частта заградена между
<li> и </li>
Ако няма завършваща лява стрелка, замяна не се извършва.
Ако съответният файл не съществува или не може да се намери в него някой начален
таг, замяната се извършва с празен текст.
Позволено е последният краен таг да липсва:
─►g0000bg\-1-.htm─►<body>─►</body>─►<hr> ◄─
Позволени са празни тагове. Следните два примера дават еднакъв резултат:
─►g0000bg\-1-.htm─►<body>─►─►─►</h3>◄─
─►g0000bg\-1-.htm─►<body>─►</h3>◄─
Ако е в режим на Internet/Intranet, изтрива кошчето, за да не се обърка сървърът да запише грешно cookie (вж. Правила за писане на HTML приложения).
Вж.:
Изпълнение на справка в HTML (Windows),
Макроси: Internet/Intranet,
38. От "последна" + <table> към "залепени",
Изход към Cpa*.* файл,
Вход от чужд toCpa.* файл.
Тази външна програма прехвърля последната справка в Html файл както прави външна програма 31. От справка към HTML (Windows).
Ако не е в режим на Internet/Intranet:
При всяко пускане се създава REPRyxx.HTM - където "xx" е номер на паролата, а
"y" се променя от 0 до 9 и пак отначало - и извиква този файл в текущия Internet
браузер максимизиран (имената се сменят защото браузерът не прави refresh и, за
да има back на последните 10).
Ако е в режим на Internet/Intranet, изтрива кошчето, за да
не се обърка сървърът да запише грешно cookie (вж. Правила за
писане на HTML приложения).
Вж. Макроси: Internet/Intranet и 38. От
"последна" + <table> към "залепени".
Вж Изход към Cpa*.* файл и Вход от чужд toCpa.* файл.
Тук ще разгледаме външните програми:
"41. Осчетоводяване от "чужди" - тест",
"42. Осчетоводяване от "чужди" - 1 към 1" и
"43. Осчетоводяване от "чужди" в текущия месец".
Тези външни програми са за предпочитане пред Кошче: поле от справка (Alt+F8) при автоматично попълване на документи или редактиране на номенклатури с данни от справка поради следните причини:
За бързо въведение ще разгледаме пример как автоматично да копираме документите от папка Х от месец А в месец Б:
Преместваме се в месец А.
Влизаме в справка 5. Сметка - сметка като оставяме първото поле за
въвеждане на сметка празно. След появата на таблицата за справка натискаме
Shift+Enter. Програмата автоматично ще натисне клавишите
Shift+F10, Shift+F10, Enter, после ще разгъне полетата
"документ" и "с-ка", ще подготви таблица за справка, която съдържа цялата информация от
документите. Накрая ще натисне Alt+-, с което ще намали ширините на всички
полета в таблицата до първичната им ширина (каквато е в базата данни). Всичко
това става незабележимо за нас - веднага след натискането на Shift+Enter се появява нагласената таблица. Поставяме
ограничения върху полето "папка" за да получим в справката само документите от папка Х.
Не променяме ширините и кои полета са включени. Стартираме справката.
Изпълняваме външни програми 51. От "последна" към справка
- 1 към 1 и "7. От справка към чужди данни".
Преместваме се в месец Б.
Накрая изпълняваме външна програма "43. Осчетоводяване от "чужди" в тек. месец".
По подобен начин може не само автоматично да копираме въведени вече документи
в друг месец, друга папка или друго приложение, но и да създадем документи без
те да имат друго копие (редактирането на номенклатури е обяснено по-долу).
За целта е необходимо да получим справка "чужди" с полета по
смисъл и ширина като тези, които биха се включили в таблицата за справка ако при
влизане в справка 5. Сметка - сметка оставим празно първото поле за въвеждане на сметка, натиснем
Enter и след появата на таблицата за справка натиснем Shift+Enter.
Създаването на формули с такива характеристики може да стане като в таблица за справка (но
не и справка 5. Сметка - сметка с оставено празно първото
поле за въвеждане на сметка) натиснем Shift+Enter
и на въпроса "За вмъкване на формула - Shift+Enter" отговорим с Shift+Enter.
Какво се случва като натиснем Shift+Enter в таблица на справка: 1. Номенклатури
е обяснено по-долу.
След създаването на описаната справка "чужди" изпълняваме подходящата външна програма "41. Осчетоводяване от "чужди" - тест", "42. Осчетоводяване от "чужди" - 1 към 1" или "43. Осчетоводяване от "чужди" в текущия месец". Първата от тях само тества данните без реално да осчетоводява. Останалите разлики са обяснени по-долу.
Изпълнението на тези външни програми се подчинява на следните правила:
- ако няма справка "чужди" - дава съобщение "Няма
създадена справка",
- ако общият брой на полетата в справката "чужди" не е равен на 13 плюс броя на всички полета
получени от разгъната "с-ка" в обяснената по-горе таблица за справка
(от справка 5. Сметка - сметка) - дава съобщение "Заключено",
а в браузера - "Общият брой на полетата не е точен".
- ако някое от първите 14 полета (до "с-ка" включително) не е еднакво по ширина
със съответстващото му включено поле от обяснената по-горе
таблица за справка (от справка 5. Сметка - сметка) - дава съобщение "Различни ширини
на поле №". Полетата разгънати
от "с-ка" не се гледат дали са точни по ширина - това е за да може да се получават данни и от
приложение с друг сметкоплан. Последното изречение не важи при редактиране на номенклатури (вж. по-долу).
При липса на горните грешки програмата започва цикъл по записите (редовете) от справката "чужди":
обработва само тези записи, за които първият символ на информационното поле (в гореописаната таблица от справка 5. Сметка - сметка то е без име, а в справката "чужди" е A12) не е интервал | |
изтрива съдържанието на информационното поле, а след това, ако е външна програма 41 - записва А като първи символ | |
проверява за грешки и при първата грешка: - записва съобщение за нея от първия символ на информационното поле нататък, - спира обработката на текущия запис и продължава със следващия, възможни съобщения за грешка: | |
"А0 няма такъв № папка" - ако не съществува папка с този номер (трябва да е дясно изравнен) | |
"А1 невъзможен документ" - не е нужно да е дясно изравнен | |
"А0+А1заключен документ" - ако за текущата парола се счита, че текущият документ е заключен
и не се изпълнява бърз макрос започващ с име | |
"А2 няма такъв № тип" - ако не е празно и не съществува тип (за описанието на документа) с този номер (трябва да е дясно изравнен) | |
"А4 невалидна дата" - ако полето А4 (дата на осчетоводяване) е празно и правим първо осчетоводяване в нов документ или А4 не е празно и не съдържа валидна дата от текущия месец (при зареден макрос "900. Преосчетоводяване на текущия месец" или "901. Преосчетоводяване на последния месец", дава грешката, само ако полето А4 не е празно и съдържа невалидна дата). Проверката за дата от текущия месец не се прави ако е изключен параметърът от регистратурата CheckAccountingDate. | |
"А6 невалидна дата" - полето А6 не е празно и съдържа невалидна дата | |
"А9 заключен месец" - ако за текущата парола се счита, че текущият месец е заключен
и не се изпълнява бърз макрос започващ с име | |
"А9 няма такъв ггггмм" - няма такъв месец в системата (гггг - година, мм - месец) | |
"А10 не е 0/1 за д/к" - валидни са само стойностите 0 за дебит и 1 за кредит | |
"А11 грешна сума" - ако сумата не е число във формат 12.2 | |
"А11 нулева сума" - ако сумата е 0.00 (а при количествена сметка - и количеството е 0.00) | |
"А13 няма такава сметка" | |
"Ахх много широко число" - полето Ахх съдържа число, което е по-широко от съответното по сметката | |
"Ахх невалидна дата" - полето Ахх не е празно и съдържа невалидна дата | |
В браузер излиза съобщението "Програмата се опитва да
влезне в документ заключен от друг потребител. До
10 секунди другия потребител ще бъде принуден да излезне от документа". Програмата чака докато се освободи документът. За да сме сигурни, че няма да ни се случи, трябва или да сме в локална сесия или всички влизания в документите да стават с бърз макрос (както това е в заключените приложения). В браузер излиза съобщението "Програмата се опитва да влезне в елемент заключен от друг потребител. До 10 секунди другия потребител ще бъде принуден да излезне от елемента". Програмата чака докато се освободи елементът. | |
"А1 обща сума > 15.2" - ако се получи твърде голяма сума по дебита/кредита на целия документ - тази грешка НЕ се отчита от външна 41 | |
осчетоводяването се извършва или в месеца записан в полето ггггмм (гггг е годината, а мм - месецът) или в текущия месец по следните правила: | |
при външна 41, ако полето ггггмм е празно, работи в текущия месец (но не променя ггггмм в справка "чужди"), иначе работи в указания ггггмм | |
при външна 42 работи в указания ггггмм | |
при външна 43 променя (в справка "чужди") ггггмм на тези от текущия месец и работи в него | |
осчетоводява сметката (ако е външна 41 - само прави проверки) и може да запише (ако вече не е записано друго) в информационното поле от втория символ нататък предупреждение (което не е грешка): | |
"Ахх празно число" - ако полето Ахх е задължително, празно и е от тип число | |
"Аxx празно поле" - ако полето Ахх е задължително, празно и е от тип текст | |
"Ахх празна дата" - ако полето Ахх е задължително, празно и е от тип дата | |
"Ахх празен номер" - ако полето Ахх е задължително, празно и е от тип номенклатурен номер. Номенклатурният номер се превръща в число независимо дали е валидно число и се оставя непопълнен само, ако е празен. Например номер 01234абв, се счита за 01234. | |
не обръща внимание на подравняването на номер на номенклатура, а го подравнява вдясно, преписва му и водещите нули | |
ако името на номенклатурата е празно, записва предупреждение: "Аxx празно име" (това не е съобщение за грешка за разлика от същото описано по-долу), иначе, само ако е външна 42: - допълва (ако не съществува) или променя в записа на номенклатурата само полетата номер, име и презиме (ако презиме съществува и не е празно), - останалите полета на допълване ги оставя празни, а на промяна не ги променя | |
ако е външна 41 - ако не съществува запис за справка "2.
Сметки" по задължителните поднива на сметката, записва предупреждение (не е грешка): "А13 нов запис сметка", а ако сметката няма задължителни поднива и няма запис в справка "4. Неаналитични сметки" - записва предупреждение (не е грешка): "А13 нова неаналитична" | ако не е външна 41, сменя тези полета от описанието на документа, които в справката не са празни. Ако "редактиран на", "час" и "парола №" се оставят празни, за техни стойности се вземат актуалните към момента на осчетоводяването (вж. автоматичен стринг (Ctrl+D) "20. Парола - номер по ред"). |
След завършване на цикъла по записите - остава в месеца, папката и документа
от последния ред на справката "чужди", а ако справката е била празна, не променя нищо.
При външни 42/43, ако е имало поне една грешка, извежда съобщението "Има
грешни редове, които не може да се осчетоводят автоматично. Грешният файл "чужди" е копиран в
C:\CpaBack\ERRx{y.dbf". Където x е пореден номер на грешен файл (започващ от 1 в рамките на 1 сеанс),
а y е номер на паролата. За да се провери грешката трябва да преименуваме файла на Import.dbf и да
стартираме външна програма 6. От импорт към чужди данни
След изпълнението може да проверим за грешки и предупреждения като пуснем справка "чужди" по следните начини:
Основните прилики между външни програми 41, 42 и 43 са следните:
Основните разлики между външни програми 41, 42 и 43 са следните:
За да редактираме
номенклатура изпълняваме следните стъпки. Отиваме в таблица на справка 1. Номенклатури
и натискаме Shift+Enter. Програмата автоматично натиска клавишите
Shift+F10, Shift+F10, !!, Enter, Enter, Enter, Alt+- (с което намалява ширините на
всички полета в таблицата до първичната им ширина - каквато е в базата данни), Ctrl+интервал
(изключва всички полета), Ctrl+PgDn. След това
създава формули като за автоматично осчетоводяване и после натиска PgDn и PgUp. В полето "папка" записва "ном.",
в полето "ггггмм" - текущия ггггмм (година и месец), а в полето "сметка" -
номера на номенклатурата. Чрез следващите формули се опитва да препише полетата от
номенклатурата като, ако не стига мястото, прескача формула, а ако има място за
две полета в една формула, прави формула със знак * (залепва полетата). Накрая
стартираме справката, прехвърляме я в чужди и изпълняваме
подходящата външна програма 41/42/43. Тези външни програми
успешно обработват и справка чужди, в която има както редове
от документи, така и редове от номенклатури, което дава възможност с един файл
да се прехвърлят всички необходими данни от едно приложение в друго.
Празните полета се прехвърлят (освен номер и име).
Ако искаме дадени полета от номенклатурата да не се прехвърлят, те трябва да
започват с '√' (знака за включване на поле).
При редактиране на номенклатури чрез външни 41/42/43 може да получим и следните
съобщения за грешка:
"А13 няма такава ном." - не съществува номенклатура с такъв номер | |
"А13 системна номенкл." - номенклатура с име започващо с два интервала (с изключение на "90. Дневник: транзакции" докато е зареден макрос "901. Преосчетоводяване на последния месец") не може да се редактира с външни програми 41/42/43 | |
"Ахх различна ширина" - полето не е еднакво по ширина със съответстващото му включено поле от обяснената по-горе таблица за справка (от справка "5. Сметка - сметка"). Това може да се случи, ако импортираме данни от приложение с друг сметкоплан. | |
"Аxx невалиден номер" - първите y символа от Аxx (y е
дължината на номенклатурния номер) не представляват валиден номенклатурен номер. "Аxx празно име" - второто поле (име) от номенклатурния елемент е празно (това е съобщение за грешка за разлика от същото описано по-горе, което е само предупреждение). Това съобщение излиза и ако името започва с '√' (знака за включване на поле) и елементът не съществува в номенклатурата. Останалите полета от номенклатурата не се проверяват за валидност. Не се проверява и за уникалност на имената. |
Изпълнението на тази външна програма:
1) проверява дали съществува справка чужди и, ако не съществува,
прекъсва със съобщението "Няма създадена справка".
2) проверява дали първите 7 символа от първия ред на кошчето
представляват дясно изравнен номер на номенклатура, която може да се редактира с обикновена
парола. Ако не е така, прекъсва със съобщението "Заключено".
3) проверява дали базата данни на справка 7. Чужди данни има същите по брой и ширина полета
като номенклатурата (типът им може да се различава). Ако не е така, прекъсва със съобщението
"Различни ширини на поле №". Ако се различават по брой, в браузера
излиза съобщението "Общият брой на полетата не е точен".
4) от този момент програмата временно счита, че съдържанието на номенклатурата е еднакво с това на справката
"чужди" (копира го в отделен файл и му създава индексни файлове). Това важи до първото случило се от:
- следващо изпълнение на външна програма 56,
- редактиране на номенклатурата, като е достатъчно само да се влезне на допълване и без нищо да се променя по
номенклатурата да се излезне от тази точка на програмата. Това не важи за автоматичното
осчетоводяване, чрез което може да се променя временната номенклатура без да се променя оригиналната.
- края на текущия сеанс.
Тази външна програма се използва в универсалния пакет "Уни" за създаване на различни варианти на номенклатури според нивата на достъп на различните пароли.
Изпълнението на тази външна програма превръща файл с транзакции в текстов файл. Файловете с транзакции се намират
в папка Save на приложението и са с имена KBDxxx, където xxx е пореден номер на файла. Текстовият файл се създава в C:\CpaBack с име KBDxxx.txt.
Обработват се само файлове получени в мрежова сесия. Ако се зададе за обработка файл от локална сесия, резултатът в текстовия файл е само
Local session.
За номер на файла xxx се взема числото записано в първите 15 символа на кошчето.
В текстовия файл отделните транзакции се отделят с ========== (десет символа равно).
Всеки ред от транзакцията отговаря на един запис в базата данни и се състои от 3 части отделени с -- (два
минуса):
1) име на файла - например M201709\B31 е файлът, който се използва за справка Сметка на с-ка 31 в месец 09 на
2017 г..
Файловете завършващи на \DOC1 се отнасят до справка Документи.
Файловете завършващи на \DOC2 се отнасят до справка Сметка - сметка.
Файловете завършващи на \Dyyy, където yyy е число, се отнасят до справка Сметка - сметка на с-ка yyy.
Файловете завършващи на \Byyy, където yyy е число, се отнасят до справка Сметка на с-ка yyy.
Файловете завършващи на \BAL се отнасят до справка Неаналит. сметки.
Файловете завършващи на \yyy, където yyy е число, се отнасят до справка на номенклатура yyy.
Файловете завършващи на \INI се отнасят до параметрите на конкретна парола.
2) номер по ред на записа във файла. Ако е нов запис, се попълва append.
3) самият запис. Ако записът започва със * (звезда), значи е изтрит.
В текстовия файл, всички символи, които са по-малки от интервал, се заменят с @.
Файлът с транзакциите се чете до записаната дължина в хедъра на файла (header.filelength от BEGINPAR.C).