Теперь о функциях, которые встретятся вам при настройке отчетных форм на ваш план счетов. Все они написаны в справочнике R266. Вызов этого справочника:
- CTRL+ALT+F или
- Сервис – Конфигурация – Библиотека подпрограмм или
- Модуль Администратор – Справочники – Высветка – R266.
Далее поиск по имени функции. Сам текст функции – в поле «Текст программы». Описание входных параметров – поле «Описание параметров» и часто – в самом тексте программы.
Если вы уже стоите в какой-нибудь программе (в описании реквизита и т.п.) и видите вызов функции, текст которой вам хочется посмотреть, нажмите CTRL+F1 стоя на первой букве наименования функции, а затем ENTER. В этом «быстром» случае вам доступно только поле «Текст программы».
Amrt_BU_Inf: возвращает первоначальную стоимость и амортизацию для разных групп ОС (здания, сооружения, машины и оборудование):
{{массив групп=второй параметр или его умолчание}, {первонач. стоимости}, {амортизации}} на конец или начало нужного месяца по заданной паре счетов. Разбивка на группы – согласно полю Название группы (CODEGROUP) в Картотеке ОС (R143). Первоначальная стоимость и амортизация ищутся в оборотной ведомости MTUNммгг.
Параметры
1) массив счетов для анализа инвентарных номеров, например, {‘01’,’02’} или {‘!01’, ‘!02}. По умолчанию – счета из Сервис – Настройки – Системные параметры, закладка План счетов, подзакладка ОС в бухучете {OS_MAINOS, OS_AM_OS}.
2) какие группы ОС анализируем? По умолчанию все CODEGROUP, которые встречаются в картотеке ОС (R143).
3) на (конец/начало) какого месяца собираем сальдо. По умолчанию – текущий месяц.
4) без сообщений о встреченных в оборотной ведомости ошибках. По умолчанию .f. (Нет, то есть с сообщениями).
5) сальдо собирать на начало заданного месяца? По умолчанию .f. (Нет) – на конец.
6) необязательный массив кодов аналитик по R37 – ограничение отбора.
Пример. Нужно узнать первоначальную стоимость и амортизацию на начало года и конец текущего месяца по 2-м группам – здания (CODEGROUP=’11’) и сооружения (CODEGROUP=’12’):
arr_beg:=GetGPRV( , {‘11’,’12’}, CToD(’01.01.’+str(CurYear)), .t., .t.) вернет на начало года
{{‘11’,’12’}, {первон_стоим_зданий, первон_стоим_сооруж}, {аморт_зданий, аморт_сооруж}}
arr_end:=GetGPRV( , {‘11’,’12’}, CurDate, .t.) вернет аналогичные данные на конец текущего месяца
Amrt_NU_Inf: возвращает согласно срокам полезного использования {{10 первоначальных стоимостей},{10 амортизаций}} на конец заданного месяца по счетам !01-1, !02-1 или заданным. Первоначальная стоимость и амортизация ищутся в оборотной ведомости MTUNммгг.
Параметры
1) массив счетов для анализа инвентарных номеров. По умолчанию {«!01-1»,»!02-1»}.
2) на конец какого месяца собираем сальдо. По умолчанию – текущий месяц.
3) без сообщений о встреченных в оборотной ведомости ошибках. По умолчанию .f. (Нет, то есть с сообщениями).
GetGPRV: возвращает {сумма, кол-во, валюта} или одно из них для заданной корреспонденции по Д и/или К. Обороты ищутся в годовом файле сводных проводок (GPRV!!гг): сумма берется из поля SUM, количество – из поля AMNT, валюта – из поля VAL.
Параметры
1) что отбирать по дебету: отсутствует ИЛИ 'счет' ИЛИ {'счет',{'спр-к'},{'спр-к'}} ИЛИ {'счет', {'спр-к',{аналитики через зпт}}, {'спр-к',{аналитики через зпт}}}
2) что отбирать по Кредиту: аналогично.
Например, GetGPRV("20-1", "70») вернет сумму всех проводок, дебет которых начинается на 20-1, а кредит – на 70.
GetGPRV( , {"70», {"R160", {1,3,6}}}) вернет сумму всех проводок, кредит которых начинается на 70 и в одной из аналитик которых присутствует R160 с кодами 1,3,6 (то есть для подразделений 1,3,6), дебет – любой.
GetGPRV( , "43-1") вернет кредитовый оборот по 43-1 (по всем счетам, которые начинаются на 43-1).
3) дата – начиная с какого месяца (именно дата, а не месяц, чтобы понимать, за какой ГОД открывать базу GPRV!!гг). По умолчанию – текущая.
4) дата – по какой месяц (включительно) собирать обороты. По умолчанию – текущая.
5) код единицы измерения согласно ОКЕИ по массиву ArrUnits. Описание этого массива вы найдете в Сервис – Конфигурация – Перечисления (R201). Умолчание – с копейками. Влияет только на возвращаемую сумму: собранные количество и валюта возвращаются без пересчета.
6) элиас уже открытой базы GPRV. Если параметр не задан, ищется открытая ранее база с эйлиасом ‘GPRV’, а в случае ее отсутствия с таким эйлиасом открывается GPRV!!гг, где гг – год даты «начиная с какого месяца». База не закрывается – для последующих обращений.
7) что возвращать: сумму (1), кол-во (2), валюту (3). Если параметр не задан или его значение не лежит в диапазоне 1-3, функция вернет массив {сумма, кол-во, валюта}. Параметр задает порядковый номер в этом массиве: если параметр равен 1, вернется только сумма, при параметре, равном 2, вернется только количество, если параметр равен 3, вернется только валюта.
8) с обратным знаком? По умолчанию .f. (Нет). Если передать в качестве параметра .t. (Да), результат вернется с обратным знаком: -сумма или -количество или -валюта или {-сумма, -количество, -валюта}.
9) в качестве количества вместо штук AMNT будут подсчитываться кг: AMNT * вес из справочника изделий. По умолчанию .f. (Нет).
Пример Нужно узнать приход продукции в производство в рублях и килограммах за период с января по текущий месяц.
arr:=GetGPRV(‘43’, ‘40’, CToD(’01.01.’+str(CurYear)), CurDate, 383, , , , .t.)
arr[1] – сумма в рублях, arr[2] – килограммы.
GetGSLD: возвращает сальдо или обороты на конец/начало заданного месяца в нужных единицах измерения из годовой главной книги (база GSLD!!гг).
Параметры
1) ‘счет’
или {‘счет’, что_вернуть, на_начало_месяца?, с_обратным_знаком?}
или {{‘счет’, что_вернуть, на_начало_месяца?, с_обратным_знаком?}, {…}, {…}, …}
что_вернуть:
‘DO’ – дебетовый оборот,
‘KO’ – кредитовый оборот,
‘DS’ – дебетовое сальдо,
‘KS’ – кредитовое сальдо.
Если ничего не передать, вернется разница дебетовое минус кредитовое сальдо
на_начало_месяца?: .t. , если да. Если ничего не передать, считается .f. (нет).
с_обратным_знаком?: .t. , если да. По умолчанию .f. (нет).
Например,
{{'70','DO',,.t.}} = ДО по 70 с обратным знаком
'62-2' = {{'62-2',,.f.,.f.}} = ДС – КС
2) дата, по умолчанию – текущая CurDate
3) вернуть сумму, а не массив сумм, по умолчанию Да. Имеет смысл, если первым пара метром передается массив счетов. В этом случае результатом может быть или массив сумм той же размерности, что и массив счетов, или итого по всем заданным счетам.
Например, GetGSLD({{‘62’}, {‘76’}}) = GetGSLD({{‘62’}, {‘76’}}, , .t.) вернет одну сумму,
а GetGSLD({{‘62’}, {‘76’}}, , .f.) вернет массив сумм {свернутое_сальдо_62, свернутое_сальдо_76}
4) код единицы измерения согласно ОКЕИ по массиву ArrUnits. Описание этого массива вы найдете в Сервис – Конфигурация – Перечисления (R201). Умолчание – с копейками. Влияет только на возвращаемую сумму: собранные количество и валюта возвращаются без пересчета.
5) алиас, по умолчанию 'GSLD'. Если на момент вызова функции GSLD!!гг вами уже открыт с каким-то нестандартным эйлиасом (не GSLD), вы можете указать его в качестве параметра. По умолчанию ищется уже открытый алиас GSLD, а при его отсутствии открывается GSLD!!гг (где гг – год согласно дате – второму параметру) с эйлиасом GSLD (и уже не закрывается – для ускорения последующих обращений).
6) необязательный массив аналитик в виде {‘спр’, {код, код, код , …}} – ограничение отбора.
Пример
Нужно узнать ВХОДЯЩЕЕ дебетовое сальдо текущего месяца в тысячах рублей по всем субсчетам 60-5, кроме 60-5-4:
GetGSLD({{"60-5»,"DS",.t.}, {"60-5-4»,"DS",.t.,.t.}}, , , 384)
Подчеркнем, что GetGPRV может вернуть оборот по корреспонденции счетов: Д такого-то счета К такого-то, например, оборот Д 20 К 70. А GetGSLD может вернуть либо только дебетовый, либо только кредитовый оборот конкретного счета или его начала: Д 20 при любом кредите либо К 70 при любом дебете. И источники сведений у этих функций разные – см. описание выше.
O: суммирование полей SUM (сумма), AMNT (количество), VAL (валюта) из ежемесячных файлов проводок PRVSммгг (или годового файла сводных проводок GPRV!!гг) по условиям для дебета, кредита, аналитик. При поиске в PRVS функции должна вызываться в области проводок PRVS->(O(....)).
Параметры
2 первых параметра – что отбирать по дебету и кредиту – синтаксис точно такой же, как для аналогичных параметров GetGPRV (см. выше), например:
O( , "70-1") кредит начинается на "70-1», дебет – любой
O("26», "70") дебет начинается на «26», кредит на "70"
O("26», {"70", {"R160»,1}}) дебет начинается на «26», кредит на "70», и одна из кредитовых аналитик – код 1 по справочнику
O({'70',{'R160',{1,2}}},'69') означает фильтр
DEBT=«70» И (DREFL='R160' И (DANAL=1 ИЛИ DANAL=2)) И KRED="69"
O({'70',{'R160',1,'R01',2}},'69') означает отбор по фильтру
DEBT=«70» И ((DREFL="R160» И DANAL=1) ИЛИ (DREFL='R01' И DANAL=2)) И KRED="69"
O({'70',{'R160',1},{'R207',6}},'69') означает отбор по фильтру
DEBT=«70» И DREFL="R160» И DANAL=1 И DREFL="R207» И DANAL=6 И KRED="69"
O('70',{'94',{‘R13’,{55,57}}}) означает фильтр
DEBT=«70» И KRED="94" И KREFL="R13" И (KANAL=1 ИЛИ KANAL=2))
3) использовать ли фильтр – целесообразно при небольшом количестве аналитик – увеличивает скорость обработки.
При отсутствии 4–го параметра функция возвращает массив {сумма, кол-во, в валюте}
4) при наличии 4-го параметра – индекса в массиве – возвращается только один элемент массива: «сумма» (Ind=1) или «кол-во» (Ind=2), или «в валюте» (Ind=3).
5) вернуть суммы(у) с обратным знаком – по умолчанию Нет (.f.).
6) возвращать вес, а не кол-во (Amnt * R11Wght(KOD,REFL)) – по умолчанию Нет (.f.).
7) означает, что активна GPRV, а не PRVS. Это месяц (MONTH), в пределах которого происходит отбор.