Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Бухгалтерский Метод (Мет пособие).doc
Скачиваний:
27
Добавлен:
15.06.2014
Размер:
406.53 Кб
Скачать

Дается описание макроязыка, используемого в формах отчетов, документах и расчетах, в выходных документах типо­вых операций, а также в формулах типовых операций, документов и расчетов и табло «1С:Бухгалтерии».

Формы документов и отчетов

При использовании типовых операций, документов и расчетов, от­четов произвольной формы в отдельных файлах, называемых соответственно текстовой и произ­вольной формой ,задается форма (шаблон) документа (отчета, расчета).

Текстовая форма представляет собой текстовый файл, в котором квадратными скобками («[» и «]») отмечены поля для подстановки значений макроимен. Между скобками указывается макроимя, опреде­ляющее данные, помещаемые в это поле формы. С помощью команд установки формата (!Е, !Т, !РАЗДЕЛЯТЬ, !НЕРАЗДЕЛЯТЬ), а также посредством указания формата вывода непосредственно в поле, можно управлять форматом представления данных, помещаемых в поле.

В текстовой форме могут содержаться строки трех видов:

• строки комментариев, начинающиеся либо со звездочки («*») в первой колонке, либо с символов «!*», перед которыми могут стоять один или несколько пробелов. В создаваемый документ строки комментариев не попадают, они используются только для записи замечаний в текст формы;

• командные строки, они начинаются с восклицательного знака («!»), перед которым могут стоять один или несколько пробелов. В формируемый документ эти строки также не попадают, они служат для размещения команд;

• обычные строки (это либо пустые строки, либо строки, которые не начинаются с «*», и в которых первый отличный от пробела символ — не «!»).

Формирование выходного документа выполняется следующим образом. Программа читает построчно текст формы документа. Стро­ки, начинающиеся с «*», пропускаются. Для остальных строк програм­ма поступает так:

1. Если в строке имеются команды (они следуют за символом «!»), то сначала выполняются эти команды.

  1. Если в строке есть команды и перед первой командой нет сим­волов, кроме пробелов, то обработка строки заканчивается. В противном случае часть строки от ее начала первого символа «!» или до конца строки включается в формируемый документ. При этом, если в этой части строки имеются квадратные скобки («[» и «]»), то программа вычисляет макроимя, заданное между скобками, и подставляет вычисленное значение. Если длина значения меньше отведенного для поля числа сим­волов (числа символов между квадратными скобками «[» и «]», включая сами эти скобки), то значение дополняется справа про­белами, так что выравнивание колонок в сформированном доку­менте не нарушается. Если длина значения больше отведенного для значения числа символов, то значение обрезается справа.

Произвольные формы «1С:Бухгалтерии» состоят из:

объектов прямоугольной формы;

разделителей секций.

Каждый объект может содержать либо текст, либо внедренный 0LЕ-объект (чаще всего — картинку). Если объект со­держит текст, то заключенные в квадратные скобки «[» и «]» фрагмен­ты этого текста рассматриваются при формировании выходного доку­мента как макроимена (возможно, с указанием формата их вывода, например, ЕО, П и т.д.). Вместо этих фрагментов и окаймляющих их квадратных скобок в выходной документ помещаются значения этих макроимен. Остальной текст остается неизменным.

Заметьте, что число пробелов внутри скобок «[» и «]» в данном случае (в отличие от текстовых форм) несущественно — эти пробелы не влияют на подставляемое значение макроимени. В частности, это значение не дополняется справа пробелами, сколько бы пробелов не было поставлено перед закрывающей квадратной скобкой.

Разделители секций. Кроме объектов, произвольные формы могут включать в себя разделители секций. Они выводятся в документе как горизонтальные линии, проходящие через весь экран. Разделители по­зволяют логически разбить документ на части (секции) и вставить между ними необходимые промежуточные расчеты.

Разделитель может содержать текст, редактирование которого осуществляется через поле ввода, находящееся на панели инструмен­тов (или, при нажатии на палитре инструментов кнопки , в отдель­ном окне). При формировании выходного документа (т.е. при расчете формы) текст разделителя рассматривается как алгоритм расчета, ко­торый выполняется перед обработкой следующей за ним секции доку­мента. Текст может включать в себя различные команды макроязыка — комментарии, расчет показателей, переключение периодов и режимов расчета и т.д. Все рассчитанные показатели и переключения ре­жимов, сделанные в тексте разделителя, действительны во всех сле­дующих за ним объектах и разделителях. Разделители не выводятся на печать и не переносятся в генерируемые документы.

Формирование выходного документа выполняется следующим образом. Программа читает форму документа, и:

в разделителях секций — выполняет содержащиеся в них ко­манды. Эти команды воздействуют на все следующие за разде­лителем объекты и разделители;

в объектах — подставляет вместо заключенных в квадратные скобки «[» и «]» фрагментов этого текста их значения (эти фрагменты должны быть макроименами или макроименами с указанием формата вывода). При этом число пробелов внутри скобок «[» и «]» несущественно, так как подставляемое значение макроимени не дополняется пробелами.

Таким образом, в произвольных формах команды и подстановки макроимен отделены друг от друга; подстановки макроимен могут встречаться только в тексте объектов, а команды макроязыка и ком­ментарии — только в тексте разделителей.

Подключение текстовой формы В режимах «Документы и расчеты» и «Типовые операции» формы выходных документов могут быть только произвольными формами. А в DOS–версиях программы эти формы были текстовыми. Чтобы при переходе в «1С:Бухгалтерию–Проф.» для Windows эти формы можно было использовать с минимальными изменениями, в макроязык «1С:Бухгалтерии–Проф.» для Windows введена специальная команда:

!ТЕКСТОВАЯ ФОРМА "имя-файла"

Данная команда предназначена для задания текстовой формы в ре­жимах «Документы и расчеты» и «Типовые операции». Она должна быть размещена в документе произвольного формата в тексте первого разделителя секций в первой строке с первой позиции.

При наличии в данной позиции команды !ТЕКСТОВАЯ ФОРМА содер­жимое произвольной формы игнорируется, и для формирования вы­ходного документа используется текстовая форма, содержащаяся в указанном файле. Саму текстовую форму можно создать и корректи­ровать в режиме «Архив документов».

П1.4. Макроимена, показатели, константы, выражения

Макроимена. Для ссылок на остатки и обороты по счетам, субсче­там и объектам аналитического учета (субконто), курсы валют, харак­теристики субконто (цены, наименования, параметры), в макроязыке используются макроимена. Макроимена составляются по простым и наглядным правилам, которые весьма несложно запомнить. Например, СНД76 — сальдо на начало периода дебетовое по счету 76, ВКУРС{1}{1} — курс валюты, используемой в первой проводке типовой операции на дату этой проводки, ОБ20,70 оборот за период в дебет счета 20 с кредита счета 70 и т.д. В названиях макроимен могут использоваться только русские буквы.

Для включения значения макроимени в формируемый документ на­до указать это макроимя между квадратными скобками («[» и «]»). На­пример, для включения в отчет или документ значения макроимени СНД76 в форму отчета или документа надо вставить поле:

[СНД76 ]

С помощью команд установки формата (!Е, !Т, !РАЗДЕЛЯТЬ, ! НЕРАЗДЕЛЯТЬ), а также посредством указания формата вывода не­посредственно в поле, Вы можете управлять форматом представления данных, помещаемых в поле. Вы можете управлять форматом вывода значений макроимен. С помощью команд установки периода (!М, !МНГ, !МНК, !КВ, !КН, !Г и т.д.) Вы можете указать, за какой период вычисляются остатки и обороты у соответствующих макроимен.

Показатели. Во многих случаях в формируемый документ надо вставить поле, значение которого не совпадает ни с одним из пред­усмотренных макроимен, но может быть получено из них по некоторой формуле. Для таких полей в формах первичных документов и в отче­тах «1С:Бухгалтерии» используются показатели. Показатели выпол­няют ту же функцию, что и переменные в стандартных языках про­граммирования: им можно присваивать значения и использовать эти значения в последующих выражениях.

Имена показателей в «1С:Бухгалтерии» состоят из буквы «П», за которой могут следовать от 1 до 50 символов — букв, цифр и знаков подчеркивания. Для присваивания показателю значения следует ис­пользовать команду:

имя-показателя = выражение Здесь выражение может быть:

алгебраической формулой, содержащей числа, знаки операций, скобки, вызовы функций и макроимена (см. п. 6.6, с. 112);

символьной строкой, заключенной в кавычки, или символьным выражением, составленным из таких строк, макроимен, сим­вольных операций («+» и «$») и символьных функций (ВЫД, СОКРЛ, СОКРП). Выражение должно начинаться со строки в кавычках (при необходимости можно испол.ьзовать пустую стро­ку — ""). Подробнее о символьных выражениях говорится ниже.

После того, как показателю присвоено значение, его можно ис­пользовать в последующих формулах и в полях (между знаками «[» и «]»), расположенных в той же строке или ниже по тексту формы.

Примеры:

! П105=СНД76*0.12 — эта команда присваивает показателю П105 значение СНД76 (дебетовое сальдо на начало периода по счету 76), умноженное на 0.12;

[П105 ] — в это поле помещается значение показателя с именем П105.

! П_НДС=П_Сумма/1. 23*0.2 — эта команда присваивает показателю П_НДС значение показателя П_Сумма, разделенное на 1.23 и умноженное на 0.20;

[П_НДС ] — в это поле помещается значение показателя с именем П_НДС.

!П_Название = "Фирма " + П010 — эта команда присваивает показателю П_Название в качестве значения строку «Фирма », сцепленную со значением показателя П010 (подробнее см. ниже);

[П_Название ] — в это поле помещается значение показателя с именем П_Название.

Замечания. 1. Тип выражения определяется по типу первого значения в выражении. Так, например, если первым значением в выражении является текстовый показатель, то выражение будет иметь текстовый вид, и все остальные значения будут приводиться к текстовому виду. Если первым зна­чением в выражении является константа (из списка констант) или параметр субконто, то выражение считается числовым. В любом случае, если Вы хоти­те, чтобы выражение имело конкретный тип, можно в качестве первого значе­ния указать пустое значение данного типа. Например, для числового выраже­ния: 0+..., для символьного выражения ""+...

2. Одноименные показатели в различных формах документов и в отчетах никак не связаны между собой.

3. При присваивании показателю значения одновременно запоминается, в каком формате надо выводить это значение (в единицах или тысячах, и с ка­ким числом знаков в дробной части). Формат вывода можно изменить коман­дами !Т, !ТТ, !Е, !Тn !ТТn, !Еn (см. ниже).

Константы. Для ссылок на константы (см. п. 4.7, с. 79) ис­пользуются макроимена:

Кn — константа с номером п (п — число от 1 до 99999).

Значения констант можно использовать в формах так же, как зна­чения показателей, но значения показателей после окончания форми­рования документа «пропадают», а констант — сохраняются. Для за­дания значения константы можно использовать команду:

!Kномер-константы = выражение

Значения констант Вы можете задавать также и в режиме «Константы» группы «Операции» главного меню программы.

Примеры:

\ П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;

СПn:m.k - значение параметра с номером k субконто вида n с но­мером m.

Здесь m — полный номер субконто, он перечисляет через дво­еточие номера каждого уровня субконто. Например, 1:2:3 — субконто вида 1 с полным номером 2:3.

Примеры:

СН1:2:3.5 - значение пятого параметра субконто вида 1 с полным номе­ром 2:3; СЦ6:2 - цена субконто вида 6 с номером 2.

В типовых операциях для обозначения субконто вместо п:т (как написано выше) в макроименах может использоваться обозначение {kД} — субконто, выбранного в дебете проводки с номером k, и {kK} — субконто, выбранного в кредите проводки с номером k:

СН{kД} - наименование субконто, выбранного в дебете про­водки с номером k;

СН{kK} - наименование субконто, выбранного в кредите про­водки с номером k;

СЦ{kД} - цена субконто, выбранного в дебете проводки с но­мером k;

СЦ{kК} - цена субконто, выбранного в кредите проводки с но­мером k;

СН{kД}.m - значение параметра с номером т субконто, выбран­ного в дебете проводки с номером k;

СП{kД}.m - значение параметра с номером т субконто, выбран­ного в дебете проводки с номером k;

СН{kK}.m - значение параметра с номером т субконто, выбран­ного в кредите проводки с номером k;

СП{kK}.m - значение параметра с номером т субконто, выбран­ного в кредите проводки с номером k;

Примеры:

СЦ{2К} — цена субконто, использованного по кредиту проводки с номером 2;

СН{2К}. 1 — значение первого параметра субконто, использованного по кре­диту проводки с номером 2;

СН{1Д}.2 — значение второго параметра субконто, использованного по де­бету проводки с номером 1.

Вы можете также задавать значения цен, наименований и пара­метров субконто с помощью команды присваивания, аналогично тому, как это делается для показателей и констант. В левой части команды указывается макроимя параметра, цены или наименования субконто, а в правой, после символа «=»,выражение. Например:

!СЦ6:2 = П_Сумма - установить значение цены субконто вида 6 с номером 2, равное значению показателя П_Сумма.

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