Макроязык

Приложение 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. При присвоении показателю значение одновременно запоминается, в каком формате нужно выводить это значение (в единицах или тысячах, и с каким числом знаков в дробной части). Формат вывода можно изменить командами! Т,! Е,! TN,! 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: mk — значение параметра с номером 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С: Бухгалтерия — Проф." Позволяет выводить числовые значения в единицах и в тысячах, а также задавать количество знаков в дробной части. Для задания формата вывода значений числовых макроимен используются следующие команды:

! Т — выводить следующие показатели в тысячах;

! Е — выводить следующие показатели в единицах (например, рублях);

! TN — выводить следующие показатели в тысячах из n знаками в дробной части;

! ЕN — выводит следующие показатели в единицах с n знаками в дробной части.

Для каждого показателя формат его вывода запоминается при присвоении ему значения. Таким образом, в одной строке формы документа можно использовать показатели с разным форматом вывода.

По умолчанию (до использования команд! T,, E,! Tn и! En) показатели выводятся в единицах с двумя знаками в дробной части. При использовании количественной учет и хотите выводить количество с Тремя знаками в дробной части, используйте команду! Е3.

Примеры:

! Т — выводит показатели, которым присваиваются значения ниже по тексту формы документа, в тысячах (например, в тысячах гривен);

! Е0 — выводит показатели, которым присваиваются значения ниже по тексту формы документа, в единицах без дробной части.

Указание разделитель целой и дробной частей. Если в форме документа между символами "[" и "]" указать после макроимени, которое имеет числовое значение, пробел и некоторый символ, то этот символ при вводе значения будет использоваться в качестве разделителя целой и дробной части числа. Эта возможность чаще всего используется для вывода сумм в платежных поручениях, счетах и аналогичных документах.

Пример.

Следующий фрагмент формы выведет значение показателя в виде "1234-56":

! Е2! * Выводит два знака в дробной части

! П1 = 12345.56

[П1 -]

Режим разделители разрядов целой части. Иногда удобно выводить числовые значения с разделителями разрядов целой части (единиц, тысяч, миллионов, миллиардов и т. д.). Если в форму документа вставить команду! Раздел, то суммы, которые будут выводиться между символами "[" и "]" будут изображаться с разделителями разрядов целой части (в качестве разделители используются запятой). Для отмены данного режима используйте команду! Неразделимы.

Пример:

! П01 = 1234567

! РАЗДЕЛ

[П01]! * Выводится: 1,234,567.00

[П01 =]! * Выводится: 1,234,567 = 00

! Неразделимы

[П01]! * Выводится: 1234567.00

[П01 =]! * Выводится: 1234567 = 00

[П01,]! * Выводится: 1234567,00

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

Пример.

Следующий фрагмент формы позволит вывести сумму сделки прописью в три строки:

[ХОП]

[]

[]

Замечание.

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

Вывод дат прописью. Если после макроимен, которые имеют символические значение типа даты "ЧЧ.ММ.РР", указать (без пропуска) символ "П", то значение выводится в виде даты прописью.

Указание формата для вывода прописью. Для вывода валютных сумм прописью необходимо использовать другие наименования денежных единиц, например, не рубли и копейки, а доллары и центы. Иногда нужно выводить сумму и дату на иностранном языке. В таких случаях следует поступать следующим образом.

Создайте копию с другим именем файла 1SBCONST.TXT (этот файл находится в том же каталоге, что и файлы программ "1С: Бухгалтерии — Проф."). Копию следует разместить в том же каталоге. Например, для создания копии с именем 1SBUSD.TXT следует перейти в каталог с файлами программ "1С: Бухгалтерии — Проф." И выдать команду:

copy 1sbconst.txt 1sbusd.txt

Исправьте в этом файле наименования денежных единиц, чисел, названий месяцев и т. д., которые необходимо.

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

! Прописи имя_файла

или

! Прописи символьний_вираз

Например,! Прописи 1SBCONS1.TXT или! Прописью "1SB" + П200 + ". TXT" (символьное выражение должно начинаться с кавычек).

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

Вывод количества в штуках. Если после макроимен, которые имеют числовые значения, указать (без пропуска) символ "Ш", то значение выводится в виде суммы прописью без указания денежных единиц. Если полученный строка может быть длинный, его следует разбить на несколько полей (одно под другим). Для этого нужно задать несколько полей одинаковой длины одно под другим, не указывая в вторых и последующих полях никакого имени внутри квадратных скобок.

Пример.

Следующий фрагмент формы позволит вывести значение показателя П105 прописью в три строки без указания денежных единиц:

[П105Ш]

[]

[]

Д1.7. Макроимена для итогов и оборотов по счетам

Макроимена для итогов по счетам. С помощью макроимен в формулах для расчета сумм проводок можно ссылаться на итоги и обороты по счетам бухгалтерского учета. Такие макроимена чаще используются в документах, расчетах и отчетах, но при желании их можно применять в формулах для расчета сумм проводок и в формах документов, которые печатаются при выводе типовых операций.

Для получения сальдо и оборотов по синтетическому учета используются следующие макроимена:

СНДn — дебетовое сальдо на начало периода по счету n;

СНКn — кредитовое сальдо на начало периода по счету n;

СКДn — дебетовое сальдо на конец периода по счету n;

СККn — кредитовое сальдо на конец периода по счету n;

ДОn — оборот за период по дебету счета n;

КОn — оборот за период по кредиту счета n;

ОБn, m — оборот за период в дебет счета n с кредита счета m.

Здесь n и m — номер счета или номер счета с субсчетом (разделенные точкой), а период — рабочий период, установленный в пункте "Расчет итогов" группы "Отчетность" главного меню (см. п. 7.1), если ранее не был задан другой период с помощью команд установление периода (см. ниже).

Примеры:

СНД51 — дебетовое сальдо на начало периода по счету 51;

СКК46.03 — кредитовое сальдо на конец периода по счету 46.03;

ДО51 — оборот за период по дебету счета 51;

КО68.02 — оборот за период по кредиту счета 68.02;

ОБ47, 26 — оборот за период в дебет счета 47 с кредита счета 26.

Макроимена для итогов по субконто. Для получения остатков и оборотов по конкретным объектам аналитического учета (субконто) следует указывать макроимена:

СНДn: m — дебетовое сальдо на начало периода по счету n по субконто m;

СНКn: m — кредитовое сальдо на начало периода по счету n по субконто m;

СКДn: m — дебетовое сальдо на конец периода по счету n по субконто m;

СККn: m — кредитовое сальдо на конец периода по счету n по субконто m;

ДОn: m — оборот за период по дебету счета n по субконто m;

КОn: m — оборот за период по кредиту счета n по субконто m;

ОБn: m, l — оборот за период в дебет счета n по субконто m с кредита счета l;

ОБn, l: m — оборот за период в дебет счета n с кредита счета l по субконто m.

Здесь:

n, l — номер счета или номер счета с субсчетом (разделенные точкой), например: "10", "68.02" и т. д.;

m — полный номер субконто (он состоит из номеров каждого уровня данного субконто, перечисленных через двоеточие, например "3" или "3:5") или номер проводки с последующей буквой "D" или "К", которая указывает, по дебету или по кредиту проводки задан данное субконто (например: 2К, 3Д и т. д.);

период — рабочий период, установленный в пункте "Расчет итогов" группы "Отчетность" главного меню, если ранее не был задан другой период с помощью команд установление периода (см. ниже).

Примеры:

СНД01: 2К — дебетовое сальдо на начало периода по счету 01 по субконто, которое используется в кредите проводки с номером 2 типовой операции;

СКК10: 2:5 — кредитовое сальдо на конец периода по счету 10 по субконто с полным номером 2:5;

ДО01: 2Д — оборот за период по дебету счета 01 по субконто, которое используется в дебете проводки с номером 2 типовой операции;

КО76.2: 3:5 — оборот за период по кредиту счета 76.2 по субконто с полным номером 3:5;

ОБ20, 70:1 К — оборот за период в дебет счета 20 с кредита счета 70 по субконто, выбранном в кредите первой проводки типовой операции.

Замечание.

1. При расчете оборотов между счетами по субконто ссылка на субконто нужно ставить после того счета, к которому "привязан" данный вид субконто. К примеру, если по счету 70 ведется аналитический учет по субконто "Персонал", то для получения оборотов в дебет счета 20 с кредита счета 70 по сотруднику, который выбран в кредите первой проводки типовой операции, нужно использовать макроимья ОБ20, 70:1 К, а не ОБ20: 1К, 70.

2. Для того, чтобы в формулах, документах и расчетах можно было ссылаться на узда счетов по субконто, следует при настройке планов счетов поставить символ "+" в графе "Анализ оборотов" напротив тех счетов по которым Вы хотите использовать обороты по субконто с другими счетами. Данное ограничение связано с тем, что подсчет и сохранение оборотов по субконто требует определенных затрат времени и места на диске, поэтому это лучше делать только при необходимости.

Макроимена для итогов в натуральном выражении. Для тех счетов, по которым ведется количественный учет, программа вычисляет остаток и обороты по конкретным субконто не только в стоимостном, но и в натуральном выражении. Для ссылок на остатки и обороты по субконто в натуральном выражении следует использовать такие же макроимена, как для остатков и оборотов по субконто в вартистному выражении (см. выше), но после кода субконто нужно указать символ "Н" (на русском языке).

Примеры:

СНД01: 2КН — дебетовое сальдо в натуральном выражении на начало периода по счету 01 по субконто, которое используется в кредите проводки с номером 2 типовой операции;

СКК10: 2:5 Н — кредитовое сальдо в натуральном выражении на начало периода по счету 01 по субконто с полным номером 2:5;

ДО01: 2ДН — оборот за период в натуральном выражении по дебету счета 01 по субконто, которое используется в дебете проводки с номером 2 типовой операции;

КО76.2: 3:5 Н — оборот за период в натуральном выражении по кредиту счета 76.2 по субконто с полным номером 3:5.

Макроимена для итогов в валюте. Для тех счетов и субсчетов, по которым ведется учет в валюте, Вы можете в документах и в отчетах использовать остатки и обороты в валюте и в гривневом эквиваленте. Для ссылки на гривневый эквивалент по конкретной валюте следует после соответствующего макроимени поставить символ "~" и затем номер валюты, которая используется. Для получения суммы в валюте следует, кроме того, поставить в конце макроимени символ "В".

Примеры:

СНД52 — общий остаток на начало периода по 52 счета в гривнах;

СНД52 ~ 1 — остаток на начало периода по 52 счету в гривнах по первой валюте;

СНД52 ~ 2 — остаток на начало периода по 52 счету в гривнах по второй валюте;

СНД52 ~ 1В — остаток на начало периода по 52 счету по первому валюте в валюте.

Замечание.

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

Например:

СНД52 ~ П2В — остаток в валюте на начало периода по счету 52 по валюте, используемой во второй проводке типовой операции.

Д1.8. Макроимена для развернутого сальдо

Для активно-пассивных счетов, то есть счетов для которых остатки по конкретным объектам учета могут быть как дебетовыми, так и кредитными (например, счет 71 "Расчеты с подотчетными лицами", 76 "Расчеты с разными дебеторамы и кредиторами" и т. д ), обычное сальдо может не отражать фактических обязательств или средств предприятий. Например, если за одним контрагентом по 76 счету числится задолженность в 1 млн. грн, а второе предприятие задолжало 1 млн грн, то дебетовое и кредитовое сальдо по счету 76 будут равны, что не отражает задолженности предприятия и задолженности перед предприятием. В бухгалтерском учете такие счета называются счетами с развернутым сальдо.

Развернутое сальдо по субконто. Для возможности правильного расчета развернутого сальдо в "1С: Бухгалтерии — Проф." Для таких счетов рекомендуется вести аналитический учет. Если это сделано, то для расчета развернутого сальдо в документах, расчетах и отчетах можно использовать следующие макроимена:

СНДn:: — сумма дебетовых остатков на начало периода по всем "конечных" (т.е. тех, которые не имеют подчиненных) субконто для счета n;

СНКn:: — сумма кредитовых остатков на начало периода по всем "конечных" субконто для счета n;

СКДn:: — сумма дебетовых остатков на конец периода по всем "конечных" субконто для счета n;

СККn:: — сумма кредитовых остатков на конец периода по всем "конечных" субконто для счета n.

В отдельных случаях необходимо грустить остатки не по всем "конечных" (тех, которые не имеют подчиненных) субконто, а только по субконто первого уровня вложенности (т.е. без учета подчиненных субконто). Например, при ведении на первом уровне субконто списка организаций, а на второй — сведения о договорах с этими организациями, сальдо можно рассчитывать по организациям, а не по отдельным договорам. Для вычисления таких сальдо используются следующие макроимена:

СНДn: — сумма дебетовых остатков на начало периода по всем субконто первого уровня для счета n;

СНКn: — сумма кредитовых остатков на начало периода по всем субконто первого уровня для счета n;

СКДn: — сумма дебетовых остатков на конец периода по всем субконто первого уровня для счета n;

СККn: — сумма кредитовых остатков на конец периода по всем субконто первого уровня для счета n;

Развернутое сальдо по субсчетам. Иногда отдельные дебиторы и кредиторы учитываются по разным субсчетам одного счета (например — счета 68, 69, 67). Для вычисления развернутого сальдо по таким счетам следует использовать розвернуте сальдо по субсчетам. Оно может быть получено с помощью макроимен:

СНДn. — Сумма дебетовых остатков на начало периода по всем субсчетам счета n;

СНКn. — Сумма кредитовых остатков на начало периода по всем субсчетам счета n;

СКДn. — Сумма дебетовых остатков на конец периода по всем субсчетам счета n;

СККn. — Сумма кредитовых остатков на конец периода по всем субсчетам счета n.

Примеры:

СКД76.2:: — сумма дебетовых остатков на конец периода по всем "конечных" субконто для счета 76.2;

СНК01: — сумма кредитовых остатков на начало периода по всем субконто первого уровня для счета 01;

СКД68. — Сумма дебетовых остатков на конец периода по всем субсчетах счета 68.

Д1.9. Макроимена для валют

Макроимья для курса валюты. Для ссылки на курс валюты используется макроимья вкурсе:

ВКУРСn — курс валюты n на текучую дату;

ВКУРСnd — курс валюты n на дату d.

Здесь дата d может быть либо строкой символов в кавычках (например, "22.09.96"), или имени показателя, или ссылкой на реквизит документа или расчета (см. разд. 6), а номер валюты n — либо числом, либо ссылкой на реквизит документа или расчета.

Примеры:

ВКУРС2 — курс валюты с номером 2 на текучую дату;

ВКУРС1 "22.09.96" — курс валюты с номером 1 на 22 сентября 1996 года.

Наименование валют. Для ссылок на наименование валют используются макроимена:

ВНn — наименование валюты номер n;

ВКn — код валюты номер n.

Д1.10. Команды задания периода

В формах документов и отчетов можно задавать период, за который вычитаются остатки и обороты по счетам при использовании макроимен. Если период не указан, то подразумевается рабочий период, установленный в пункте "Расчет итогов" группы "Отчетность" главного меню (см. п. 7.1).

Если периодом расчета должен быть квартал, используйте команды:

! К — расчет за текущий квартал;

! КН — за текущий квартал нарастающим итогом с начала года;

! Кk — за квартал с номером k (k — число от 1 до 4);

! КНk — за квартал с номером k нарастающим итогом с начала года (k — число от 1 до 4).

Чтобы периодом расчета был месяц, используйте команды:

! Мm — за месяц с номером m (m — число от 1 до 12);

! МНКm — за месяц с номером m нарастающим итогом с начала квартала (m — число от 1 до 12);

! МНГm — за месяц с номером m нарастающим итогом с начала года (m — число от 1 до 12).

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

! МmК — расчет за месяц с номером m в текучем квартале (m — число от 1 до 3);

! МНКmК — за месяц с номером m в текучем квартале нарастающим итогом с начала квартала (m — число от 1 до 3);

! МНГmК — за месяц с номером m в текучем квартале нарастающим итогом с начала квартала (m — число от 1 до 3).

Чтобы установить год, за который рассчитываются показатели, используйте команду! Гnn (nn — две последние цифры номера года).

Замечание.

1. При использовании команд задания периода в формуле вычисления суммы типовой операции установленный период действителен для всех макроимен к следующему переустановки или до конца формулы. При использовании в форме первичного документа или в отчете установленный период действителен для всех макроимен к следующему первстановлення или до конца формы или отчета.

2. При установлении периода расчета на второй год следует после переключения года установить период в середине данного года.

Примеры:

! Г93;! КН4 — расчет за четвертый квартал 1993 года;

! К — расчет за текущий квартал;

! КН3 — расчет за текущий квартал нарастающим итогом с начала года;

! М — расчет за текущий месяц;

! МНК9 — расчет за сентябрь нарастающим итогом с начала квартала;

! М2К — расчет за второй месяц текучего квартала.

Макроимья для рабочего периода. Для вставки в документ рабочего периода (периода, за который рассчитаны итоги), можно воспользоваться макроименем РПЕР:

РПЕР — текущий рабочий период.

Макроимья для рабочей даты. Для вставки в документы рабочей даты можно воспользоваться РДАТА:

РДАТА — рабочая дата.

Задание периода с помощью выражений. Для команд установки текучего периода! М,! МНГ,! МНК,! Г,! К и! КН вместо номера квартала, месяца года можно указывать выражение. Если значение этого выражения является числом, то это число используется вместо соответствующего номера.

Пример:

! П01 = 2! П02 = 94

! ГП02! МП01

[РПЕР]! * Выводится: февраль 1994

Если значение выражения является строкой символов (в этом случае выражение должно начинаться с кавычек), то оно должно представлять собой дату в формате "ДД.ММ.РР", и тогда команда устанавливает период, соответствующий дате.

Пример:

! П01 = "21.04.94"

! М "" + П01

[РПЕР]! * Выводится: Апрель 1994

! М "" + Д0

[РПЕР]! * Выводится: Апрель 1994

! * (Если дата типовой операции

! * Соответствует апрелю 1994 г.)

Заметим, что команда МД0 (а не М "" + Д0) недопустима — программа при формировании документа сообщит об ошибке.

Д1.11. Команды запроса значений показателей

Значение показателя можно задать в процессе формирования документа или отчета. Для этого в форме документа (отчета) следует использовать команды:

! ВВЕСТИ имья_показника подсказка

! ВВЕСТИ ТЕКСТ имья_показника подсказка

Здесь имья_показника — задает показатель, которому будет присвоено введенное значение, подсказка выводится в запросе на ввод параметра.

С помощью команды! ВВЕСТИ осуществляется ввод числового значения, с помощью команды! ВВЕСТИ ТЕКСТ — ввод строки символов. Эти команды должны начинаться только с первой позиции формы документа (отчета).

Пример.

Ввод ставки налога и наименование платежа:

! ВВЕСТИ П021 Ставка налога

! ВВЕСТИ ТЕКСТ П130 Основание платежа

Д1.12. Циклическая обработка счетов

Для обработки нескольких (по выбору) или всех отчетов или субсчетов "1С: Бухгалтерия — Проф." Позволяет использовать следующие команды:

! ВЫБРАТЬ СЧЕТ — выбор счета из плана счетов, который выводится на экран;

! ВЫБРАТЬ СЧЕТ ВСЕ — автоматический выбор первого счета из плана счетов (эта форма команды удобна для выполнения полного перебора плана счетов);

! ПОВТОР СЧЕТ — выполняется повторный выбор счета из плана счетов, который выводится на экран и повторяются все действия от команды! ВЫБРАТЬ СЧЕТ (или! ВЫБРАТЬ СЧЕТ ВСЕ) к данной команды;

! СЛЕДУЮЩИЙ СЧЕТ — автоматически выбирает следующий по порядку счет из плана счетов и повторяются все действия от команды! ВЫБРАТЬ к данной команды. Действия продолжаются до конца списка счетов;

! СЛЕДУЮЩИЙ СУБСЧЕТ — автоматически выбирается следующий по порядку субсчет из плана счетов и повторяются все действия от команды! ВЫБРАТЬ к данной команды. Действия продолжаются до конца списка субсчетов данного счета.

Если при выборе счета из списка счетов (при выполнении команды! ВЫБРАТЬ СЧЕТ без параметра ВСЕ, или команды! ПОВТОР СЧЕТ) нажать клавишу Esc, то формирование документа или отчета будет прервана.

Замечание.

Если в настройках программы установлен режим "Вывод итогов без субсчетов", то выполнение данных команд имеет следующие особенности:

если при выполнении команд! ВЫБРАТЬ СЧЕТ и! ПОВТОР СЧЕТ Вы укажете не на основной счет, а субсчет, то программа выберет следующий по порядку основной счет;

команда! СЛЕДУЮЩИЙ СЧЕТ будет выбирать только основные счета, пропуская субсчета;

команда! СЛЕДУЮЩИЙ СУБСЧЕТ не выполняет никаких действий.

Циклическая обработка субсчетов. Для обработки субсчетов одного счета могут использоваться команды:

! ВЫБРАТЬ СУБСЧЕТ СЧЕТА n — выбор субсчета указанного счета из плана счетов, который выводится на екран;

! ВЫБРАТЬ СУБСЧЕТ СЧЕТА n ВСЕ — автоматический выбор первого субсчета указанного счета (эта форма команды удобна для выполнения полного перебора субсчетов счетов);

! ПОВТОР СУБСЧЕТ — выполняется повторный выбор субсчете из плана счетов, который выводится на экран и повторяются все действия от команды! ВЫБРАТЬ СУБСЧЕТ (или! ВЫБРАТЬ СУБСЧЕТ ВСЕ) к данной команды;

! СЛЕДУЮЩИЙ СУБСЧЕТ — автоматически выбирается следующий по порядку субсчет из плана счетов и повторяются все ДИИ от команды! ВЫБРАТЬ к данной команды. Действия продолжаются до последнего субсчета указанного счета.

Итоги по выбранному счету. Для получения итогов по выбранному счету Вы можете использовать все макроимена, описанные в пп. Д1.7. -Д1.8, указывая в них вместо кода счета и субсчета символ "&".

Примеры:

СНГ & — дебетовое сальдо на начало периода по выбранному счета или субсчета;

КО & — оборот за период по кредиту выбранного счета или субсчета;

ОБ &, 20 — оборот за период в дебет выбранного счета по кредиту счета 20;

СКД &:: — сумма дебетовых остатков на конец периода по всем "конечных" субконто выбранного счета или субсчета.

Коды и наименования счетов и субсчетов. Для использования в документах и отчетах кодов и наименований выбранных счетов и субсчетов следует использовать следующие макроимена:

СССЧ & — код счета и субсчета выбранного счета или субсчета (при наличии кода субсчета он отделяется от кода счета точкой, например, "01.04");

СЧ & — код счета в выбранного счета или субсчета (без кода субсчета);

ССЧ & — код субсчета в избранное счета или субсчета (без кода счета);

НСЧ & — наименование основного счета для выбранного счета или субсчета (если выбранный субсчет, то значение макроимени — название основного счета, например, для счета 01.04 значение макроимени — "Основные средства");

НССЧ & — наименование субсчета для выбранного счета или субсчета (если выбран основной счет, то значение макроимени — пусто).

Пример.

Для вывода кодов и наименований всех счетов и субсчетов можно использовать следующий отчет:

! ВЫБРАТЬ СЧЕТ ВСЕ

[СССЧ &] [НСЧ &] [НССЧ &]

! СЛЕДУЮЩИЙ СЧЕТ

Для каждого счета или субсчета выводится его номер, наименование счета или субсчета и наименование субсчета.

Пример.

Выведем для каждого счета и субсчета его код и оборот по дебету за каждый месяц текучего квартала.

Счет обор. 1 мес. Обор. 2 мес. Обор. 3 мес.

! ВЫБРАТЬ СЧЕТ ВСЕ

! М1К! П01 = К &! М2К! П02 = К &! М3К! П03 = К &

[СССЧ &] [П01] [П02] [П03]

! СЛЕДУЮЩИЙ СЧЕТ

Д1.13. Циклическая обработка субконто

Для обработки нескольких (по выбору) или всех субконто некоторого вида "1С: Бухгалтерия — Проф." Позволяет использовать следующие команды:

! ВЫБРАТЬ субконто — по запросам, выводимые на экран, выполняется выбор вида субконто и конкретного субконто;

! ВЫБРАТЬ Субконто ВИД n — из запроса, выводится на экран, выполняется выбор вида субконто указанного вида (n — номер вида субконто);

! ВЫБРАТЬ Субконто ВИД n ВСЕ — автоматический выбор первого субконто указанного вида (n — номер вида субконто);

! ПОВТОР Субконто — выполняется повторный выбор субконто того же вида и повторяются все действия от команды! ВЫБРАТЬ субконто к данной команды;

! СЛЕДУЮЩИЙ Субконто — автоматически выбирается следующее субконто того же вида и повторяются все действия от команды! ВЫБРАТЬ субконто к данной команды. Действия продолжаются до конца списка субконто.

Если при выборе субконто из списка нажать клавишу Esc, то формирование документа (отчета) будет прервано. На экран будет выведена та часть документа (отчета), которая была сформирована до нажатия Esc.

Замечание.

1. Если в настройках программы установлен режим "Включать подчиненные субконто", то команда! СЛЕДУЮЩИЙ субконто будет выбирать также и подчиненные субконто.

2. Номер уровня выбранного субконто можно узнать с помощью макроимени СУ (см. ниже). Это позволяет задать различную обработку для субконто разного уровня.

Итоги по выбранному субконто. Для получения итогов по выбранному субконто Вы можете использовать все макроимена опсани в п. Д1.7, указывая в них вместо кода субконто символ "&".

Например:

СНД01: & — дебетовое сальдо на начало периода по счету 01 по выбранному субконто;

До20: & — оборот за период по дебету счета 20 по выбранному субконто;

СНК01: & Н — кредитовое сальдо в натуральном выражении на начало периода по счету 01 по выбранному субконто;

СНД60: & ~ 1В — остаток на начало периода по 60 счету по текучем субконто по первому валюте в валюте.

Характеристики субконто. Для использования в отчетах кодов, наименований и цен выбранных субконто и их параметров можно использовать следующие макроимена:

СК & — код выбранного субконто (для вложенных субконто перечисляются через двоеточие ":" номера каждого уровня субконто, например "3:5");

СВК & — код вида и номера выбранного субконто (т.е. код вида субконто, вслед за которым перечисляются через двоеточие ":" номера каждого уровня субконто);

СН & — наименование выбранного субконто;

СЦ & — цена выбранного субконто;

СУ & — номер уровня выбранного субконто;

СН &. M — значение параметра с номером m выбранного субконто.

Пример.

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

Код Наименование субконто Цена субконто 1-й параметр

! ВЫБРАТЬ Субконто

[СК &] [СН &] [СЦ &] [СН & .1]

! СЛЕДУЮЩИЙ Субконто

Здесь для каждого субконто выводится его код, наименование, цена и параметр с номером 1.

Характеристики субконто вищестоячого уровня.

! ВЫБРАТЬ Субконто ВИД 1 ВСЕ

! ЕСЛИ СКД01: & Н> 0

! П01 = СКД01: &-СКК02: &

[СН &] [СКД01: & N] [СЦ &] [СКД01: &] [П01]

! КонецЕсли

! СЛЕДУЮЩИЙ Субконто

Пример.

Создадим отчет, который выводит для каждого счета, по дебету которого были обороты за текущий квартал, обороты по дебету за каждый месяц этого квартала.

Счет обор. 1 мес. Обор. 2 мес. Обор. 3 мес.

! ВЫБРАТЬ СЧЕТ ВСЕ

! М1К! П01 = К &! М2К! П02 = К &! М3К! П03 = К &

! ЕСЛИ П01 <> 0 ИЛИ П02 <> 0 ИЛИ П03 <> 0

[СССЧ &] [П01] [П02] [П03]

! КонецЕсли

! СЛЕДУЮЩИЙ СЧЕТ

Д1.16. Команды организации цикла

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

! ЦИКЛ условие

послидовнисть_рядкив

! ВОЗВРАТ

В команде! ЦИКЛ указывается условие продолжения цикла. Правила ее создания — такие же, как для условия условного оператора (см. пп. Д1.4-Д1.5). Все строки формы от команды! ЦИКЛ в команду! ВОЗВРАТ выполняются пока условие истинно. Например, следующий отчет выдаст остатки на конец каждого месяца по 51 счету.

! П01 = 1

! ЦИКЛ П01 <13

! МП01

На конец [РПЕР] [СКД51]

! П01 = П01 +1

! ВОЗВРАТ

Д1.17. Команда остановки формирования документа

Для остановки формирование выходного документа (отчета) Вы можете использовать команду! СТОП. Формат команды:

! СТОП

При выполнении этой команды формирование выходного документа (отчета) завершается.