Опубликовано: 10.04.2022

Системные процедуры и функции компоненты «Бухгалтерский учет»

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

В данной статье рассматриваются встроенные процедуры и функции, используемые исключительно для работы с компонентой «Бухгалтерский учет», то есть для работы с бухгалтерскими счетами, планами счетов, видами субконто и бухгалтерскими итогами (БИ).

Функции для работы с планами счетов

Определить текущее значение параметра «Основной план счетов», выбранное пользователем при работе с системой, позволяет системная функция ВыбранныйПланСчетов() (англоязычный синоним — DefaultChartOfAccounts()). Параметры у данной функции отсутствуют.

Пример использования:

Сч = СоздатьОбъект("Счет");
Сч.ИспользоватьПланСчетов(ВыбранныйПланСчетов());

Примечание: Для того, чтобы установить параметр «Основной план счетов» в системе, необходимо в главном меню последовательно выбрать пункты «Сервис -> Параметры…» и в появившемся окне перейти на вкладку «Бухгалтерия».

Окно настройки параметров системы

Определить план счетов, установленный в конфигурации в качестве основного, позволяет функция ОсновнойПланСчетов() (англоязычный синоним — MainChartOfAccounts()).

Пример:

Сч = СоздатьОбъект("Счет");
Сч.ИспользоватьПланСчетов(ОсновнойПланСчетов());

Данный параметр задаётся в Конфигураторе в окне редактирования объекта метаданных "ПланыСчетов" в поле «Основной план счетов» (см. рис. ниже).

Окно редактирования объекта метаданных ПланыСчетов

Вызвать на экран диалоговое окно для выбора конкретного плана счетов позволяет системная функция ВвестиПланСчетов() (англоязычный синоним — InputChartOfAccounts()). Возвращаемым значением функции является число 1, если выбор осуществлён, или 0, если выбор не осуществлён (пользователем нажата кнопка «Отмена», клавиша Esc или закрыто окно диалога). В случае истечения времени таймаута функция возвращает −1 (минус единицу).

Синтаксис:

ВвестиПланСчетов(<ПланСчетов>, <Подсказка>, <Таймаут>)

где

  • <ПланСчетов> — идентификатор переменной, куда будет возвращено выбранное значение (значение типа "ПланСчетов"). До вызова функции в переменную можно передать значение, которое будет предложено пользователю, как значение по умолчанию;
  • <Подсказка> — строковое выражение, содержащее строку, которая будет выводиться в заголовке окна диалога;
  • <Таймаут> — числовое выражение, задающее интервал времени ожидания ответа пользователя в секундах. Параметр является необязательным. Если параметр опущен или равен 0, ожидание длится бесконечно.

Пример использования:

Перем ВыбПлан;
Если ВвестиПланСчетов(ВыбПлан, "Введите план счетов") = 1 Тогда
    . . .
КонецЕсли;

В результате работы вышеприведённого кода на экран будет выведено следующее окно:

Диалоговое окно для выбора плана счетов

Примечание: Надо заметить, что все описанные выше функции используются довольно редко и лишь в конфигурациях, где предусмотрено несколько планов счетов, например, «Общий» и «Рабочий».

Функции для работы со счетами

Найти значение типа "Счет" по коду счёта, указанному в виде символьной строки, позволяет системная функция СчетПоКоду() (англоязычный синоним — AccountByCode()). Возвращаемым значением функции является значение типа "Счет".

Синтаксис функции:

СчетПоКоду(<КодСчета>, <ПланСчетов>)

где

  • <КодСчета> — символьное выражение — код счета;
  • <ПланСчетов> — значение типа "ПланСчетов" — план счетов, в котором выполняется поиск. Параметр является необязательным. Если параметр не указан, поиск выполняется в основном плане счетов, заданном в конфигурации.

Пример использования:

// При проведении документа формируем проводку
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетПоКоду("51");
Операция.Кредит.Счет = СчетПоКоду("50");

Процедуры и функции для работы с видами субконто

Для организации выбора значения типа "ВидСубконто" применительно к конкретному счёту в диалоге формы используется системная процедура НазначитьСчет() (англоязычный синоним — SetAccount()). Процедура организовывает выбор видов субконто конкретного счёта. В качестве первого параметра процедуре передаётся ссылка на соответствующий реквизит диалога, а в качестве второго — счет. Вызов данной процедуры ограничивает выбор вида субконто видами, заданными для конкретного счёта. Кроме того, само значение вида субконто очищается, если данный вид субконто не используется для указанного счёта. Если указан параметр <НомерСубконто>, то значение вида субконто будет автоматически установлено в соответствии с настройкой субконто указанного счёта с данным номером.

Синтаксис процедуры:

НазначитьСчет(<ВидСубконто>, <Счет>, <НомерСубконто>)

где

  • <ВидСубконто> — значение типа "ВидСубконто", переданное по ссылке — обычно реквизит диалога формы;
  • <Счет> — значение типа "Счет";
  • <НомерСубконто> — значение типа "Число" — номер субконто для данного счёта.

Пример использования:

Процедура ПриВыбореСчета()
   НазначитьСчет(ВыбВидСубконто1, Счет, 1);
   НазначитьСчет(ВыбВидСубконто2, Счет, 2);
   НазначитьСчет(ВыбВидСубконтоЗ, Счет, 3);
КонецПроцедуры

Получить значение параметра «Максимальное количество субконто», указанное в метаданных в настройке планов счетов, позволяет системная функция МаксимальноеКоличествоСубконто() (англоязычный синоним — MaxSubcontoCount()). Она позволяет определить, сколько видов субконто может быть задано для счёта (см. рис. ниже). Параметры у данной функции отсутствуют.

Окно редактирования объекта метаданных ПланыСчетов

Пример использования функции:

Если МаксимальноеКоличествоСубконто() < 2 Тогда
   Форма.ВидСубк2.Видимость(0);
КонецЕсли;

Вывести на экран диалог, в котором пользователь может выбрать один из существующих видов субконто позволяет системная функция ВвестиВидСубконто() (англоязычный синоним — InputSubcontoKind()). Выбор видов субконто обычно ограничен видами субконто, заданными для конкретного счёта. Возвращаемым значением функции будет число 1, если выбор осуществлён, или 0, если выбор не осуществлён (пользователем нажата кнопка «Отмена», клавиша Esc или закрыто окно диалога). В случае истечения времени таймаута функция возвращает −1 (минус единицу).

Синтаксис:

ВвестиВидСубконто(<ВидСубконто>, <Подсказка>, <Счет>, <Таймаут>)

где

  • <ВидСубконто> — идентификатор переменной, куда будет возвращено выбранное значение (значение типа "ВидСубконто"). До вызова функции в эту переменную можно передать значение, которое будет предложено пользователю, как значение по умолчанию;
  • <Подсказка> — строковое выражение, содержащее строку, которая будет выводиться в заголовке окна диалога;
  • <Счет> — значение типа "Счет". Параметр является необязательным. Если данное значение указано, выбор будет ограничен видами субконто, заданными для указанного счёта;
  • <Таймаут> — числовое выражение, задающее интервал времени ожидания ответа пользователя в секундах. Параметр является необязательным. Если параметр опущен или равен 0, ожидание длится бесконечно.

Пример использования:

Перем ВыбВидСубк;
Если ВвестиВидСубконто(ВыбВидСубк, "Введите вид субконто", ВыбСчет) = 1 Тогда
    . . .
КонецЕсли;

В результате работы вышеприведённого кода на экран будет выведено следующее окно:

Окно для выбора субконто

Функции для работы с периодом бухгалтерских итогов

Получить дату начала периода бухгалтерских итогов (БИ), заданную пользователем в системе, позволяет функция НачалоПериодаБИ() (англоязычный синоним — BeginOfPeriodBT()). Параметры у функции отсутствуют.

Пример использования:

Дата1 = НачалоПериодаБИ();

Примечание: Установить или посмотреть дату начала периода бухгалтерских итогов можно через главное меню программы: «Сервис -> Параметры…». В появившемся окне необходимо перейти на вкладку «Бухгалтерские итоги».

Окно настройки параметров системы

Получить дату конца периода бухгалтерских итогов (БИ), заданную пользователем в системе, позволяет функция КонецПериодаБИ() (англоязычный синоним — EndOfPeriodBT()). Параметры у функции отсутствуют.

Пример использования:

Дата2 = КонецПериодаБИ();

Получить дату рассчитанных бухгалтерских итогов, заданную в режиме «Управление бухгалтерскими итогами» позволяет системная функция КонецРассчитанногоПериодаБИ() (англоязычный синоним — EndOfCalculatedPeriodBT()). Функция позволяет определить, до какой даты может быть выполнено обращение к бухгалтерским итогам (БИ). Параметров у функции нет. Возвращаемым значением является значение типа "Дата" — последняя дата рассчитанных бухгалтерских итогов.

Пример использования:

Если Дата2 > КонецРассчитанногоПериодаБИ() Тогда
   Сообщить("Период не рассчитан!");
   Возврат;
КонецЕсли;

Примечание: Для управления бухгалтерскими итогами необходимо последовательно выбрать в главном меню программы пункты «Операции -> Управление бухгалтерскими итогами…». После чего на экран будет выведено окно управления итогами (см. рис. ниже). Управление итогами выполняется только в монопольном режиме. В многопользовательском режиме кнопки диалога будут недоступными.

Окно управления бухгалтерскими итогами

Другие статьи по схожей тематике