|
С введением двойного аналитического
учёта (версия 1.7) изменились функции, связанные с аналитикой. Функция
“ДляВсех(Лиц)” не вилась исключением. К сожалению, до сих пор эти
изменения не были описаны. Пора исправить ситуацию – лучше поздно...
Cинтаксис
ДляВсех(Лиц(НомерСчета[[,Лицо],ПорядокПеребора]) { ... }
Действие
Последовательно перебирает все объекты аналитического
учета (Лица), имеющие сальдо или обороты по указанному счету за
определенный период.
Параметры
НомерСчета (строка) – номер счета, по
которому перебираются “лица”.
Лицо (объект) – основное “лицо” для
перебора счетов с двойной аналитикой. Необязательный параметр.
ПорядокПеребора (число) – необязательный
параметр. Определяет, в каком порядке будут перебираться двойные
аналитики. Возможны следующие варианты:
|
1 |
Перебирается только первая аналитика (по
умолчанию). |
|
2 |
Перебирается только вторая аналитика. |
|
12 |
Вторая аналитика в разрезе первой, то есть
перебирается первая аналитика, а внутри неё - вторая. |
|
21 |
Первая аналитика в разрезе второй, то есть
перебирается вторая аналитика, а внутри неё - первая. |
|
ДатНач,ДатКнц (дата) – эти две
внешние переменные определяют период, за который будут
просматриваться обороты и сальдо.
Описание
При переборе создается и устанавливается в качестве
контекстного объект “Лицо”, который определяет текущую
рассматриваемую аналитику.
Помимо стандартных для этого объекта переменных
устанавливаются также шесть дополнительных - СНД, СНК,
ОД, ОК, СКД, СКК, которые содержат
соответственно начальное сальдо, обороты и конечное сальдо по указанному
счету и текущему лицу.
Обратите внимание, что во всех случаях, когда
объект “Лицо” является контекстным, значения
псевдопеременных типа СКД60, ОК62 и т.д. вычисляются в
разрезе данного лица. Для получения общих оборотов и сальдо по счетам
необходимо использовать запись вида .СКД60, .ОК62 и
т.д., то есть необходимо указывать точку перед обращением к
соответствующей переменной.
Чтобы обратиться внутри цикла “ДляВсех(Лиц)” к первой и
второй аналитикам, необходимо использовать следующую запись.
Л1 = Объект(Лицо,”Лицо1”); Л2 =
Объект(Лицо,”Лицо2”);
Пример
Покажем, как закрыть 20-ый счет, разбитый на субсчета по
объектам, на которые списываются затраты. На каждом субсчете ведется
аналитический учет по темам затрат
ДляВсех(Субсчетов(“20”)) ДляВсех(Лиц(‘Номер
счета’)) Проводка(Д46,СКД,‘Номер
счета’,Лицо);
Для аналитического учета с двумя уровнями все интереснее.
Допустим 20-ый счет ведется в разрезе видов затрат и строительных
объектов, затраты на первой аналитике, объекты на второй. В качестве
примера попробуем проанализировать состав затрат.
Для того, чтобы посмотреть затраты по видам нужно
написать:
ДляВсех(Лиц(“20”)) Сообщить(“Вид затрат
”+Лицо.Название+“ Сумма ”+СКД);
Для того, чтобы посмотреть затраты по объектам нужно
написать:
ДляВсех(Лиц(“20”,
2)) Сообщить(“Объект ”+Лицо.Название+“ Сумма
”+СКД);
Для того, чтобы посмотреть по объектам виды затрат нужно
написать:
ДляВсех(Лиц(“20”,
21)) { Л1 =
Объект(Лицо,”Лицо1”); Л2 =
Объект(Лицо,”Лицо2”); Сообщить(“Объект
”+Л2.Название+ “ Вид затрат
”+Л1.Название+“ Сумма ”+СКД); }
Для того, чтобы посмотреть затраты конкретного объекта
нужно написать (“Объект1” – код объекта):
ДляВсех(“Лиц”,Лицо(“Объект1”,1)) Сообщить(“Вид
затрат ”+Лицо.Название+“ Сумма ”+СКД);
|