Назва реферату: Макромова
Розділ: Бухгалтерський облік, оподаткування
Макромова
Додаток 1. Макромова
В цьому додатку дається опис макромови, яка використовується в формах звітів довільної форми, в документах і розрахунках, в первинних документах типових операцій “1С:Бухгалтерії - Проф.”.
Д1.1. Форми документів і звітів
При використанні типових операцій, документів, розрахунків і звітів довільної форми в окремому файлі задається форма (шаблон) документа (звіту, розрахунку). Ця форма являється текстовим файлом, в якому квадратними дужками (“[“ і “]”) відмічені поля для підстановки значень макроімен. Між дужками вказується макроім’я, яке визначає дані, що поміщаються в це поле форми.
В формі документу можуть бути присутні також команди для розрахунку показників, задання періоду розрахунку підсумків по рахунках, вказання формату виводу значень показників, циклічної обробки і т. д., а також коментарі.
При формуванні звіту, первинного документу типової операції, документу або розрахунку “1С:Бухгалтерії - Проф.” зчитує форму документа (звіту, розрахунку), виконує команди макромови, створює у відповідності з цими командами вихідний документ (звіт, розрахунок) і поміщає його в тимчасовий файл OUT. TXT. Зформований вихідний документ, як правило, видається на екран для перегляду, а після перегляду видається запит про його роздрук.
Зауваження.
При формуванні документів і розрахунків (див. розд. 6) можуть створюватись 2 вихідних документи, вони розміщуються у файли OUT. TXT і OUTPROV. TXT.
Д1.2. Формат форм документів (звітів)
Форма (шаблон) документу (звіт, розрахунок) представляє собою текстовий файл, в якому квадратними дужками (“[“ і “]”) відмічені поля для підстановки значень макроімен. Між дужками вказується макроім’я, яке визначає дані, що поміщаються в це поле форми. За допомогою команд установки формату (!Е, !Т, !РАЗДЕЛЯТЬ, !НЕРАЗДЕЛЯТЬ) Ви можете управляти форматом представлення даних, які поміщаються в поле.
Команди. В формі документа можуть бути присутні також команди для розрахунку показників, задання періоду розрахунку підсумків по рахунках, вказання числа цифр в дробовій частині показників, які виводяться, циклічної обробки рахунків, субконто, валют і т. д. Команди починаються з знаку оклику (“!”) . Команди присвоєння і встановлення періоду можна записувати декілька в одній стрічці, в цьому випадку їх слід розділяти пробілами.
Коментарі. В формі документу можна використовувати також рядки коментарів, вони починаються з зірочки (“*”) в першій колонці. Коментарі служать тільки для запису зауважень в текст форми, в документ, що формується, вони не поміщаються. Коментарі можна також задавати з допомогою команди “! *” - весь текст від цієї команди до кінця рядки являється коментарем.
Таким чином в формі документу можуть міститися рядки 3 видів:
рядки коментарів, вони починаються або з зірочки (“*”) в першій колонці, або з символів “! *”, перед якими можуть стояти один або кілька пробілів. В документ, який формується, рядки коментарів не потрапляють, вони використовуються тільки для запису приміток в текст форми документу;
командні рядки, вони починаються з знаку оклику (“!”), перед яким можуть стояти один або кілька пробілів. В документ, який формується ці стрічки також не потрапляють, вони служать для розміщення команд;
звичайні стрічки (це або пусті стрічки, або стрічки, які не починаються з “*”, і в яких перший відмінний від пробіла символ - не “!”).
Формування вихідного документу виконується наступним чином. Програма читає по рядках текст форми документу. Рядки які починаються з “*”, пропускаються. Для інших рядків програма виконує наступне:
Якщо в рядку є в наявності команди (вони слідують за символом “!”), то спочатку виконуються ці команди.
Якщо в рядку є команди і перед першою командою немає символів, крім пробілів, то обробка рядка закінчується. В протилежному випадку частина рядка від його початку до першого символу “!” або до кінця рядка включається в документ, що формується. При цьому, якщо в цій частині рядка є квадратні дужки (“[” і “]”), то програма вираховує макроім’я, яке задане між дужками, і підставляє на це місце вирахуване значення.
Зауваження.
Те, що команди, які розміщені в кінці рядка, виконуються до здійснення підстановок значень макроімен на початку цього рядка, дозволяє використовувати в рядках форми показники (див. нижче), визначаючи формули для їх обчислення в кінці того ж рядка. Це в багатьох випадках значно підвищує наглядність форми.
Д1.3. Макроімена, показники, константи, вирази
Макроімена. Для посилань на залишки і обороти по рахунках, субрахунках і об’єктах аналітичного обліку (субконто), курси валют, характеристики субконто (ціни, найменування, параметри), в макромові використовуються макроімена. Макроімена складаються по простих і наочних правилах, які неважко запам’ятати. Наприклад, СНД76 - сальдо на початок періоду дебетове по рахунку 76, ВКУРСП - курс валюти, яка використовується в першій проводці типової операції на дату цієї проводки, ОБ20,70 - оборот за період в дебет рахунку 20 з кредиту рахунку 70 і т. д. В назвах макроімен можуть використовуватись тільки російські букви.
Для включення значення макроімені в документ, що формується, потрібно вказати це макроім’я між квадратними дужками (“[” і “]”). Наприклад, для включення в звіт або документ значення макроімені СНД76 в форму звіту або документу потрібно вставити поле:
[СНД76 ]
З допомогою команд встановлення формату (!Е, !Т, !РАЗДЕЛЯТЬ, !НЕРАЗДЕЛЯТЬ) Ви можете управляти форматом виводу значень макроімен. З допомогою команд встановлення періоду (!М, !МНГ, !МНК, !К, !КН, !Г і т. д.) Ви можете вказати за який період вираховуються залишки і обороти у відповідних макроімен.
Показники. В багатьох випадка в документ, що формується, потрібно вставити поле значення якого не співпадає ні з одним з передбачених макроімен, але може бути одержане з них по деякій формулі. Для таких полів в формах первинних документів і в звітах “1С:Бухгалтерії - Проф.” використовуються показники. Показники виконують ту ж функцію, що і змінні в стандартних мовах програмування: їм можна присвоювати значення і використовувати їх в наступних виразах.
Імена показників в “1С:Бухгалтерії - Проф.” складаються з букви “П”, за якою можуть слідувати від 1 до 20 символів - букв, цифр і знаків підкреслення. Для присвоювання показникові значення слід використовувати команду:
!Пім’я_показника = вираз
Тут вираз може бути:
алгебраїчною формулою, яка містить числа, знаки операцій, дужки, виклики функцій і макроімена (див. п.5.6);
символьним рядком, який заключений в лапки або символьним виразом, складеним з таких рядків, макроімен, строкових операцій (“+” і “$”) і строкових функцій (ВЫД, СОКРЛ, СОКРП). Вираз повинен починатися з рядка в лапках (при необхідності можна використовувати пустий рядок - “”). Детальніше про символьні вирази говориться нижче.
Після того, як показнику присвоєно значення, його можна використовувати в слідуючих формулах і в полях (між знаками “[” і “]”), розміщених в тому ж рядку або в тексті форми.
Приклади:
!П105=СНД76*0.12 - ця команда присвоює показнику П105 значення СНД76 (дебетове сальдо на початок періоду по рахунку 76), помножене на 0.12;
[П_105 ] - в це поле поміщається значення показника з іменем П_105.
!П_НДС=П_Сума/1.23*0.2 - ця команда присвоює показнику П_НДС значення показника П_Сума, розділене на 1.23 і помножене на 0.20;
[П_НДС ] - в це поле поміщається значення показника з іменем П_НДС.
!П_Назва=”Фірма”+П010 - ця команда присвоює показнику П_Назва в якості значення рядок “Фірма”, зчеплений з значенням показника П010 (детальніше див. нижче);
[П_Назва ] - в це поле поміщається значення показника з іменем П_Назва.
Зауваження.
1. Одноіменні показники в різних формах документів і звітах ніяк не зв’язані між собою.
2. При присвоєнні показнику значення одночасно запам’ятовується, в якому форматі потрібно виводити це значення (в одиницях або тисячах, і з яким числом знаків в дробовій частині). Формат виводу можна змінити командами! Т, !Е, !Тn, !En (див. нижче).
3. Не рекомендується використовувати імена показників, які закінчуються буквами “П” або “Ш”. Справа в тому, що при вводі значень показника в поле документа (тобто при вказанні імені показника між дужками “[“ і “]”) програма сприймає букви “П” або “Ш” в кінці імені як вимогу вивести макроім’я прописом або в штуках. Наприклад, зустрівши в документі поле [Палаш ], програма спробує вивести в нього значення показника Пала в штуках.
Константи. Для посилань на константи (див. п. 3.7) використовуються макроімена:
Кn - константа з номером n (n - число від 1 до 99999).
Значення констант можна використовувати в формах документів і в звітах також, як значення показників, але значення показників після закінчення формування документа “пропадають”, а констант - зберігаються. Для задання значення константи можна використовувати команду:
!Кномер_константи = вираз
Значення констант Ви можете задавати також і в режимі “Константи” групи “Операції” головного меню програми.
Приклади.
!П105=К101*0.12 - ця команда присвоює показнику П105 значення константи з номером 101, помножене на 0.12;
[К222 ] - в це поле поміщається значення константи з номером 222;
!К10=П_Сума/1.23*0.2 - ця команда присвоює константі з номером 10 значення показника П_Сума, розділене на 1.23 і помножене на 0.20;
Зауваження.
1. Присвоєння значень константам використовується для збереження даних, для їх використання в інших документах або звітах.
2. Щоб не заплутатись в константах, заповнюйте для кожної константи в їх списку поле опису (режим “Константи” групи “Операції” головного меню).
Ціни, найменування і параметри субконто можуть включатися в звіти за допомогою слідуючих макроімен:
СНn:m - найменування субконто виду n з номером m;
СЦn:m - ціна субконто виду n з номером m;
СНn:m. k - значення параметра з номером k субконто виду n з номером m.
Тут m - повной номер субконто, він перераховує через двокрапку номери кожного рівня субконто. Наприклад, 1:2:3 - субконто виду 1 з повним номером 2:3.
Приклади.
СН1:2:3.5 - значення п’ятого параметру субконто виду 1, з повним номером 2:3;
СЦ6:2 - ціна субконто виду 6 з номером 2.
Ви можете також задавати значення цін, найменувань й параметрів субконто за допомогою команди присвоєння, аналогічно тому, як це виконуєтьсядля показників і констант. В лівій частині команди вказується макроім’я параметра, ціни або найменування субконто, а в правій, після символу “=”, вираз.
Наприклад:
!СЦ6:2=П_Сума - встановити значення ціни субконто виду 6 з номером 2, рівне значенню показника П_Сума.
Зауваження.
1. Приведений приклад може здатися вельми штучним. Дійсно, частіше всього посилання на характеристики субконто в макромові використовуються в циклах. Так, забігаючи наперед, приведемо приклад, в якому першому параметру всіх субконто виду 3 присвоюється нульве значення:
!ВЫБРАТЬ СУБКОНТО ВИД 3 ВСЕ
!СН&. 1=0
!СЛЕДУЮЩИЙ СУБКОНТО
Тут символ “&” означає текуче субконто.
2. В типових операціях (див. розд. 5) можна використовувати макроімена для посилань на субконто, яке використовується в дебеті або кредиті проводки типової операції. Наприклад, СЦ1Д - ціна субконто, яке використовується в дебеті першої проводки типової операції.
Д1.4. Числові вирази
В командах присвоєння значень показникам, константам і характеристикам субконто справа від знаку присвоєння (“=”) повинен стояти вираз. Вираз може бути числовим (його результат - число), або рядковим - його результат - рядок символів.
Числові вирази складаються з слідуючих елементів:
Чисел (при цьому в чисел здробовою частиною ціла і дробова частина повинні розділятися крапкою, а не комою, наприклад, “1.5”, а не “1,5”);
Знаків арифметичних операцій (“+” - додавання, “-“ - віднімання, “*” - множення і “/” - ділення);
Круглих дужок “(“ і “)”, які визначають порядок обрахунку виразу;
Макроімен, які мають числові значення (які використовуються для посилань на суми попередніх проводок, суму операції, результат обрахунку попереднього виразу в формулі, залишки і обороти по рахунках бухгалтерського обліку і т. д.);
Викликів функцій, які мають числові значення (Ц, ОКР, ?).
Зауваження.
1. Довжина кожного виразу в формулі не може перевищувати 150 символів.
2. В відповідності з загальноприйнятою практикою при обрахунку виразів множення і ділення виконуються раніше, ніж додавання і віднімання, якщо інший порядок не встановлено дужками.
Функції. Для перетворення значень чисел і числових виразів можна використовувати функції:
Ц(вираз) - перетворює вираз в ціле число, відкидаючи від нього дробову частину (наприклад, Ц(1.8) рівне 1, Ц(-1.9) рівне -1).
ОКР(вираз\n) - заокруглення виразу до n знаків в дробовій частині (наприклад, ОКР(1.7\0) рівне 2).
Зауваження.
ОКР(1.5\0) рівне 2, ОКР(2.5\0) рівне 3, ОКР(1.05\1) рівне 1.1 і т. д. - в подібних “сумнівних” випадках округлення виконується до більшого по абсолютній величині числа.
Умовний оператор. Різновидом функції є умовний оператор, який дозволяє в залежності від виконання або невиконання деякої умови вибрати один з двох варіантів розрахунку. Формат умовного оператора:
?(умова\вираз1\вираз2)
Якщо умова істинна, результатом обрахунку умовного оператора є значення виразу1, якщо ні - значення виразу2.
Умова може конструюватися з арифметичних виразів за допомогою операторів порівняння:
< - меньше;
> - більше;
<= - меньше або рівне;
>= - більше або рівне;
= - рівне;
<> - нерівне.
Результати порівняння можуть комбінуватися за допомогою логічних операцій:
НЕ - логічне заперечення (НЕ вираз істинний тоді і тільки тоді, коли вираз - неправдивий);
И - логічне “і” (вираз1 И вираз2 істинний тоді і тільки тоді, коли і вираз1, і вираз2 істинні);
ИЛИ - логічне “або” (вираз1 ИЛИ вираз2 істинний тоді і тільки тоді, коли або вираз1, або вираз2, або обидва вирази істинні).
Зауваження.
1. При обрахуванні умови спочатку вираховуються числові вирази, які використовуються в умові. Потім (якщо інший порядок не заданий за допомогою дужок) приміняються оператори порівняння, потім приміняється логічне заперечення (оператор НЕ), потім - оператори “И”, і останніми - оператори “ИЛИ”. Якщо Ви не впевнені в порядку обрахунку, використовуйте круглі дужки.
2. Умовні оператори можуть бути вкладеними: і в умові, і в виразі1, і в виразі2 можуть використовуватись умовні оператори.
Приклади:
?(CKK46>0\CKK46\0) - якщо СКК46 (кредитове сальдо по рахунку 46 на кінець періоду, див. нижче) більше нуля, то результат обрахунку умовного оператора рівний значенню СКК46, інакше - нулю.
?(X<0\0\X*0.12) - якщо Х (значення попередньго виразу в даній формулі, див. нижче) менше нуля, то результат обрахунку умовного оператора рівний нулю, інакше - Х, помноженому на 0.12.
Д1.5. Рядкові вирази
Другим видом виразів є рядкові вирази - їх значенням є не число, а рядок символів. Такі вирази можуть бути:
рядком символів в лапках (наприклад, “Козлодоєв”);
макроіменем, яке має символьне значення (наприклад, найменування субконто, посилання на дату докумету або типової операції і т. д.);
виразом, який починається з рядка символів в лапках, який включає макроімена, рядки символів в лапках, виклики рядкових функцій, оператори “+” і “$”, круглі дужки.
Значення рядкового виразу може бути за допомогою оператора присвоєння занесене в показник, константу найменування або параметр субконто.
В рядкових виразах:
числові макроімена автоматично перетворюються в рядки символів;
оператор “+” означає зчеплення рядків символів. Наприклад: !П44=”Дебет 70: “ + СКД70 + “ Кредит 70: “ + СКК70 - тут зчеплюються чотири рядки символів;
оператор “$” використовується для перевірки входження одного рядка в інший. Наприклад, ?(“”+П01 $ П_Відповідь\ 1\ 2) - значення виразу рівне 1, якщо значення показника П_Відповідь входить в рядок, який являється значенням показника П01, в протилежному випадку він рівний 2);
щоб вказати, що вираз є рядком, інколи потрібно починати його з пустого рядка символів “” (тобто писати “”+щось ще). Так, в приведеному вище прикладі не можна було написати П01 $ П_Відповідь, так як програма видала би повідомлення про помилку, порахувавши П01 не рядковим, а числовим виразом. Правильний вираз - “”+П01 $ П_Відповідь.
Рядкові вирази можна порівнювати в умовному операторі, при цьому результат порівняння визначається алфавітним (лексикографічним) порядком. Наприклад, “Депо” < “Дерево”, так як у цих рядків перші два символи однакові, а третій “більший” (має більший код в таблиці кодування) у другого рядка символів.
Рядкові функції. Для перетворення рядкових виразів можна використовувати слідуючі рядкові функції:
СОКРЛ(рядковий_вираз) - забирає пробіли в рядку символів зліва;
СОКРП(рядковий_вираз) - забирає пробіли в рядку символів справа;
ВЫД(рядковий_вираз\x\n) - виділяє n символів рядка починаючи з символа з номером x.
Приклад:
П01= “Код “+СОКРЛ(СОКРП(“”+П_Номер)) - показнику П01 присвоюється значення, яке одержалося шляхом зчеплення рядка “Код “ і значення показника П_Номер, з відкинутими з обох сторін пробілами. Зауважимо, що тут також не можна було написати СОКРЛ(СОКРП(П_Номер)) - програма видала б повідомлення про помилку, порахувавши, що аргументом функції СОКРП є числовий вираз.
Д1.6. Задання формату виводу значень макроімен
Вирівнювання. При підстановці в документ, що формується, значень макроімен дотримуються слідуючих правил вирівнювання:
значення констант “притискається” до лівого краю відведеного для них дужками “[“ і “]” поля;
числові значення показників або інших макроімен (крім констант) “притискаються” до правого краю відведеного для них поля;
символьні значення показників та інших макроімен (крім констант) “притискаються” до лівого краю відведеного для них поля.
Зауваження.
Якщо деяка константа має числове значення, і Ви бажаєте, щоб воно було притиснуте до правого краю поля, присвойте значення константи показнику і вкажіть між квадратними дужками (“[“ і “]”) цей показник.
Задання формату виводу чисел. “1С:Бухгалтерія - Проф.” дозволяє виводити числові значення в одиницях і в тисячах, а також задавати кількість знаків в дробовій частині. Для задання формату виводу значень числових макроімен використовуються слідуючі команди:
!Т - виводити наступні показники в тисячах;
!Е - виводити наступні показники в одиницях (наприклад, рублях);
!Тn - виводити наступні показники в тисячах з n знаками в дробовій частині;
!Еn - виводить наступні показники в одиницях з n знаками в дробовій частині.
Для кожного показника формат його виводу запам’ятовується при присвоєнні йому значення. Таким чином, в одному рядку форми документу Ви можете використати показники з різним форматом виводу.
По замовчуванню (до використання команд! T, !E, !Tn і! En) показники виводяться в одиницях з двома знаками в дробовій частині. Якщо Ви використовуєте кількістний облік і бажаєте виводити кількість з трьма знаками в дробовій частині, використовуйте команду !Е3.
Приклади:
!Т - виводить показники, яким присвоюються значення нижче по тексту форми документу, в тисячах (наприклад, в тисячах гривень);
!Е0 - виводить показники, яким присвоюються значення нижче по тексту форми документу, в одиницях без дробової частини.
Вказання розділювача цілої та дробової частин. Якщо в формі документу між символами “[“ і “]” вказати після макроімені, яке має числове значення, пробіл і деякий символ, то цей символ при вводі значення буде використовуватися в якості розділювача цілої та дробової частини числа. Ця можливість частіше всього використовується для виводу сум в платіжних дорученнях, рахунках і аналогічних документах.
Приклад.
Наступний фрагмент форми виведе значення показника у вигляді “1234-56”:
!Е2 !* Виводить два знаки в дробовій частині
!П1=12345.56
[П1 - ]
Режим розділювачів розрядів цілої частини. Інколи зручно виводити числові значення з розділювачами розрядів цілої частини (одиниць, тисяч, мільйонів, мільярдів і т. д.). Якщо в форму документу вставити команду! РАЗДЕЛЯТЬ, то суми, які будуть виводитися між символами “[“ і “]” будуть зображатися з розділювачами розрядів цілої частини (в якості розділювачів використовуються коми). Для відміни даного режиму використовуйте команду! НЕРАЗДЕЛЯТЬ.
Приклад:
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 |


