- •2. Одноименные показатели в различных формах документов и в отчетах никак не связаны между собой.
- •2. Чтобы не запутаться в константах, заполняйте для каждой константы в их списке поле описания (режим «Константы» группы «Операции» главного меню).
- •!Выбрать субконто вид 3 все
- •2. Условные операторы могут быть вложенными: и в условии, и в выражении1 , и в выражении2 могут использоваться условные операторы.
- •2. В несколько строк в текстовом документе можно выводить любые поля, а не только значения сумм прописью.
- •2. Исправьте в этом файле по своим требованиям наименования денежных единиц, числительные, названия месяцев и т.Д.
- •3. В документах, в которых Вы хотите выводить сумму с заданными Вами наименованиями денежных единиц, числительными и т.Д., используйте команду:
- •П1.12. Макроимена, используемые в документах и расчетах
- •3. Для получения валютного курса по валюте, выбранной в седьмом реквизите шапки документа, на дату документа, указанную во втором реквизите шапки, следует использовать макроимя вкурс{7}{2} .
- •2. При установке периода расчета на другой год следует после переключения года установить период внутри этого года.
- •1Времрасч — устанавливает режим, при котором все макроимена, выводящие итоги, будут выводить итоги временного расчета;
- •2. Команды установки периода !кв, !м и т.Д. Переключают на основной расчет (т.Е. Вы можете считать, что перед каждой из этих команд находится команда юснрасч).
- •1Следующая валюта — автоматически выбирается следующая валюта и повторяются все действия от !выбрать валюту до данной команды. Действия продолжаются до конца списка валют.
- •1. Дата проводки
- •2. Следует обратить внимание, что в тексте объекта нельзя использовать команды языка отчетов — они будут восприняты как обычный текст. Для вставки команд используются разделители секций (см. Ниже).
- •2. Поместив указатель мыши в положение (по вертикали), где должен находиться разделитель секций, щелкните левой кнопкой мыши.
- •2. Нажав левую клавишу мыши, переместите разделитель секций в новое место и отпустите левую кнопку мыши.
- •1. Выбрать объекты, которые надо переместить (для перемещения одного объекта надо его щелкнуть мышью).
- •1. Выбрать объекты, которые Вы хотите поместить на передний или на задний план.
- •2. Нажать кнопку @ для перемещения объектов на передний план, или § — на задний план.
- •Приложение 4 Многовалютный учет
Дается описание макроязыка, используемого в формах отчетов, документах и расчетах, в выходных документах типовых операций, а также в формулах типовых операций, документов и расчетов и табло «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 присваивается нулевое значение: