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

Работа с типом данных «Счет»

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

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

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

Примечание: Бухгалтерские счета, внесённые в Конфигураторе в метаданные, не могут изменять свои основные реквизиты (Код, Наименование, настройки аналитического, валютного и количественного учёта).

Список счетов (план счетов) может быть многоуровневым. При этом каждый объект типа "Счет" вне зависимости от реального наличия подчинённых счетов всегда является либо конкретным счётом, либо группой. Это свойство конкретного счёта задаётся при его создании и не изменяется в дальнейшем. При этом счета-группы не могут участвовать в проводках.

Примечание: Для наглядности разные виды бухгалтерских счетов в форме списка помечены разными пиктограммами. Например, счёт-группа имеет пиктограмму в виде жёлтой буквы «Т», а конкретные счета — пиктограммы в виде синей буквы «Т». Счета, заданные в Конфигураторе, помечены красной галочкой. У счетов же созданных пользователем интерактивно или программно галочка отсутствует.

Виды счетов

Рассмотрим основные моменты работы с объектами типа "Счет":

Контекст работы с бухгалтерскими счетами

В синтаксисе языка доступ к атрибутам, а также вызов методов счетов зависит от контекста выполнения программного модуля.

Если счёт входит (согласно локальному контексту) в набор непосредственно доступных модулю значений агрегатных типов данных, то доступ к атрибутам и вызов метода для этого счёта — просто имя этого атрибута или метода с указанием необходимых параметров. Например, модуль формы счёта выполняется в контексте "Счет". Поэтому в модуле возможен непосредственный доступ к текущему счёту. Для присваивания счёту, например, полного наименования запишем:

ПолнНаименование = "Основные средства в организации";

Если значение счёта получено из других источников, например, как реквизит документа, то в этом случае обращение к атрибутам и методам такого счёта представляет собой сложное выражение, где имена реквизитов разделяются точкой. Например, если в структуре документа «ПриходныйОрдер» существует реквизит «КоррСчет» типа "Счет", получить наименование счёта, указанного в этом реквизите, можно следующим образом:

НаименованиеСчета = Док.КоррСчет.Наименование;

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

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

// для организации доступа к счетам всех планов счетов
Сч = СоздатьОбъект("Счет");

// для организации доступа к счету конкретного плана счетов
Сч = СоздатьОбъект("Счет.Основной");

Примечание: Объект, созданный при помощи функции СоздатьОбъект(), изначально не определён, то есть не содержит никакого значения. Чтобы начать с ним работать, его предварительно надо позиционировать (установить на конкретный счёт) при помощи процедур НайтиСчет(), ПолучитьСчет(), Новый() и т.п.

Сч1 = СоздатьОбъект("Счет.Основной");
// создаем новый счет
Сч1.Новый();
Сч1.Код = "12.01";
Сч1.Записать();

Атрибуты объекта "Счет"

Возможность для задания или получения кода счёта предоставляет атрибут Код (англоязычный синоним — Code) объекта "Счет". Атрибут имеет строковый тип.

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

Таб.Показать("Карточка счета: " + Счет.Код);

Возможность для задания или получения наименования счёта предоставляет атрибут Наименование (англоязычный синоним — Descriptor) объекта "Счет". Атрибут имеет строковый тип.

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

Таб.Показать("Карточка счета: " + Счет.Код +
             " " + Счет.Наименование);

Получить/установить признак ведения валютного учёта по счёту позволяет атрибут Валютный (англоязычный синоним — IsCurrency). Возможные значения атрибута:

  • 1 — валютный учёт ведётся по данному счёту;
  • 0 — валютный учёт не ведётся по данному счёту.

Примечание: Изменение значения данного атрибута из встроенного языка следует производить только в особых случаях и с учётом всех особенностей настройки учёта. После изменения настроек учёта система может потребовать выполнить пересчёт итогов.

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

Сч.Валютный = 1;

Получить/установить признак ведения количественного учёта по счёту позволяет атрибут Количественный (англоязычный синоним — IsAmount). Возможные значения атрибута:

  • 1 — количественный учёт ведётся по данному счёту;
  • 0 — количественный учёт не ведётся по данному счёту.

Примечание: Изменение значения данного атрибута из встроенного языка следует производить только в особых случаях и с учётом всех особенностей настройки учёта. После изменения настроек учёта система может потребовать выполнить пересчёт итогов.

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

Сч.Количественный = 1;

Получить/установить признак забалансового счёта позволяет атрибут Забалансовый (англоязычный синоним — IsSingle). Возможные значения атрибута:

  • 1 — выбранный счет является забалансовым счётом;
  • 0 — выбранный счет является балансовым счётом.

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

Изменение значения атрибута Забалансовый из встроенного языка следует производить только в особых случаях и с учётом всех особенностей настройки учёта. После изменения настроек учёта система может потребовать выполнить пересчёт итогов.

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

Сч.Забалансовый = 1;

Получить/установить признак типа счёта позволяет атрибут Активный (англоязычный синоним — IsActive). Возможные значения атрибута:

  • 1 — счёт является активным;
  • 2 — счёт является пассивным;
  • 3 — счёт является активно-пассивным.

Примечание: Данный атрибут определяет тип бухгалтерского счёта. Счёт может быть активным (остатки по счёту должны быть дебетовыми), пассивным (остатки по счёту должны быть кредитовыми) или активно-пассивным (остатки по счёту могут быть дебетовыми и кредитовыми). По умолчанию все счета являются активно-пассивными.

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

Сч.Активный = 2;

Получить/установить значение любого дополнительного реквизита выбранного счёта позволяет атрибут <ИмяРеквизита>. В тексте программного модуля в качестве имени реквизита используется идентификатор конкретного реквизита, заданный в Конфигураторе.

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

// Для всех счетов в Конфигураторе определён дополнительный
// реквизит "ОтветственноеЛицо" типа "Справочник.Сотрудники"

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

// Вызываем диалог для интерактивного выбора счета
Если Сч.Выбрать("Выберите счёт", "ДляВыбора") > 0 Тогда
   // Вызываем диалог для интерактивного выбора сотрудника
   Если Сотр.Выбрать("Выберите сотрудника", "ДляВыбора") > 0 Тогда
      // Заносим значение в реквизит
      Сч.ОтветственноеЛицо = Сотр.ТекущийЭлемент();
      Сч.Записать();
   КонецЕсли;
КонецЕсли;

Методы объекта "Счет"

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

Создать новый счёт в текущем плане счетов позволяет метод Новый() (англоязычный синоним — New()).

Синтаксис метода:

Новый(<ЕстьСубсчета>)

где <ЕстьСубсчета> — числовое выражение — признак наличия субсчетов у создаваемого счёта. Возможные значения: 1 — счёт будет иметь субсчета (то есть это счёт-группа); 0 — счёт не будет иметь субсчета. Параметр является необязательным. Значение по умолчанию — 0.

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.Новый();
Сч.Код = "76.02";
Сч.Записать();

Выполнить запись изменений, внесённых в счёт, позволяет метод Записать() (англоязычный синоним — Write()). Параметры у метода отсутствуют.

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Сч.Наименование = "Прочие взаиморасчеты";
Сч.Записать();

Удалить или пометить на удаление текущий счёт позволяет метод Удалить() (англоязычный синоним — Delete()). Данный метод может использоваться только для объектов, созданных системной функцией СоздатьОбъект().

Синтаксис метода:

Удалить(<Режим>)

где <Режим> — числовое выражение. Возможные значения: 1 — непосредственное удаление; 0 — пометка на удаление. Значение по умолчанию — 1.

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Сч.Удалить(0);

Примечание: Непосредственное удаление объекта следует применять только в особых случаях, так как счёт может участвовать в проводках и непосредственное удаление повлечёт нарушение в бухгалтерском учёте.

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

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Сч.СнятьПометкуУдаления();

Методы для выбора конкретного счёта

Выполнить поиск счёта по значению типа "Счет" и позиционировать объект на выбранном счёте позволяет метод НайтиСчет() (англоязычный синоним — FindAccount()). Возвращаемым значением метода является число 1, если счёт найден, или 0, если счёт не найден.

Синтаксис метода:

НайтиСчет(<Счет>)

где <Счет> — выражение, содержащее значение типа "Счет" (например, ссылка на реквизит типа "Счет" документа, элемента, формы отчёта и т.п.).

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиСчет(ВыбСчет);

Выполнить поиск счёта по коду счёта и позиционировать объект на выбранном счёте позволяет метод НайтиПоКоду() (англоязычный синоним — FindByCode()). Возвращаемым значением метода является число 1, если счёт найден, или 0, если счёт не найден.

Синтаксис метода:

НайтиПоКоду(<КодСчета>)

где <КодСчета> — символьное выражение — код счёта, как он указан в плане счетов.

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("01.01");

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

Синтаксис метода:

Выбрать(<Подсказка>, <ФормаСписка>)

где

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

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

// Для всех счетов в Конфигураторе определён дополнительный
// реквизит "ОтветственноеЛицо" типа "Справочник.Сотрудники"

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

// Вызываем диалог для интерактивного выбора счета
Если Сч.Выбрать("Выберите счёт", "ДляВыбора") > 0 Тогда
   // Вызываем диалог для интерактивного выбора сотрудника
   Если Сотр.Выбрать("Выберите сотрудника", "ДляВыбора") > 0 Тогда
      // Заносим значение в реквизит
      Сч.ОтветственноеЛицо = Сотр.ТекущийЭлемент();
      Сч.Записать();
   КонецЕсли;
КонецЕсли;

Вызываемый на экран диалог для выбора счета будет выглядеть так:

Диалог выбора счета

Определить, выбран ли счёт (спозиционирован ли объект на каком либо счёте или нет), позволяет метод Выбран() (англоязычный синоним — Selected()). Параметры у метода отсутствуют. Возвращаемым значением метода является число 1, если счёт выбран (спозиционирован), или 0, если счёт не выбран (не спозиционирован).

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("01.01");
Если Сч.Выбран() = 1 Тогда
   Сообщить("Счет найден");
КонецЕсли;

Методы для циклической обработки счетов

Открыть выборку счетов из текущего плана счетов позволяет метод ВыбратьСчета() (англоязычный синоним — SelectAccounts()). Непосредственно извлечение счетов из выборки осуществляется при помощи метода ПолучитьСчет() в порядке возрастания кода счёта. Параметры у метода ВыбратьСчета() отсутствуют. Возвращаемым значением метода является число 1, если действие выполнено и в выборке есть хотя бы один счёт, или 0, если действие не выполнено или в выборке нет ни одного счёта.

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

Процедура Сформировать()
   Сч = СоздатьОбъект("Счет.Основной");
   Сч.ВыбратьСчета();
   Пока Сч.ПолучитьСчет() = 1 Цикл
      Сообщить(Сч.Код);
   КонецЦикла;
КонецПроцедуры

Выбрать очередной счёт из выборки, предварительно открытой методом ВыбратьСчета(), позволяет метод ПолучитьСчет() (англоязычный синоним — GetAccount()). Возвращаемым значением метода является число 1, если следующий счёт выбран успешно, или 0, если следующий счет не выбран (достигнут конец выборки).

Синтаксис метода:

ПолучитьСчет(<Режим>)

где <Режим> — числовое выражение — признак выборки подчинённых счетов. Может принимать значения: 0 — не включать подчинённые счета; 1 — включать подчинённые счета. Параметр является необязательным. Значение по умолчанию — 1.

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

Процедура Сформировать()
   Сч = СоздатьОбъект("Счет.Основной");
   Сч.ВыбратьСчета();
   Пока Сч.ПолучитьСчет() = 1 Цикл
      // выполняем какие-то действия со счетами
       . . .
   КонецЦикла;
КонецПроцедуры

Получить значение типа "Счет" в соответствии с его текущей позицией позволяет метод ТекущийСчет() (англоязычный синоним — CurAccount()). Обычно данный метод используется при циклическом переборе плана счетов. В контексте формы счёта (для открытой формы) данный метод может выдать текущее значение типа "Счет". Параметры у метода отсутствуют.

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.ВыбратьСчета();
Пока Сч.ПолучитьСчет() = 1 Цикл
   ТекСч = Сч.ТекущийСчет();
    . . .
КонецЦикла;

Другой пример:

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Если Сч.Выбран() = 1 Тогда
   Операция.Дебет.Счет = Сч.ТекущийСчет();
КонецЕсли;

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

Установить/получить план счетов, который будет использован в дальнейшем для поиска, выбора и обхода счетов, позволяет метод ИспользоватьПланСчетов() (англоязычный синоним — UseChartOfAccounts()). Использование метода имеет смысл только в том случае, если объект создан не для работы с каким-то конкретным планом счетов. Возвращаемым значением метода является значение типа "ПланСчетов" — текущее значение на момент до исполнения метода.

Синтаксис метода:

ИспользоватьПланСчетов(<ПланСчетов>)

где <ПланСчетов> — значение типа "ПланСчетов".

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

Сч = СоздатьОбъект("Счет");
Сч.ИспользоватьПланСчетов(ПланыСчетов.Основной);
Сч.ВыбратьСчета();
Пока Сч.ПолучитьСчет() = 1 Цикл
   Сообщить("Счет " + Сч.Код);
КонецЦикла;

Установить или получить значение родителя (счёта вышестоящего уровня), используемого для поиска, выборки и обхода счетов, позволяет метод ИспользоватьРодителя() (англоязычный синоним — UseParent()). Благодаря этому методу при наличии в плане счетов нескольких уровней счетов-субсчетов при переборе или выборе счёта существует возможность отбирать только счета подчинённые некоторому счёту-группе.

Синтаксис метода:

ИспользоватьРодителя(<Родитель>, <ВозможностьИзменения>)

где

  • <Родитель> — значение типа "Счет", устанавливаемое в качестве используемого родителя. Необязательный параметр. Если параметр не указан, значение используемого родителя не изменяется;
  • <ВозможностьИзменения> — необязательный параметр. Этим флагом регулируется возможность интерактивного изменения родителя: 1 — пользователь может изменить родителя интерактивно, 0 — пользователь не может интерактивно изменить родителя.

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.ИспользоватьРодителя(СчетПоКоду("01"));
Сч.ВыбратьСчета();
Пока Сч.ПолучитьСчет(0) = 1 Цикл
   Сообщить(Сч.Код);
КонецЦикла;

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

Синтаксис метода:

ВыборГруппы(<ПризнакВыбораГруппы>)

где <ПризнакВыбораГруппы> — числовое выражение. Возможные значения: 1 — выбирать группы; 0 — не выбирать группы. Параметр является необязательным.

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.ВыборГруппы(0);
Сч.Выбрать("Выберите конкретный счет");

Методы для получения информации о счёте

Определить план счетов, к которому относится данный счёт, позволяет метод Вид() (англоязычный синоним — Kind()). Метод возвращает идентификатор плана счетов в виде строки символов. Параметры у метода отсутствуют.

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Сообщить("Вид - " + Сч.Вид());

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

Пример:

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Сообщить("План счетов - " + Сч.ПредставлениеВида());

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

Пример:

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Сообщить("План счетов - " + Сч.ПланСчетов());

Определить, является ли данный счёт группой, позволяет метод ЭтоГруппа() (англоязычный синоним — IsGroup()). Параметры у метода отсутствуют. Возвращаемым значением метода является число 1, если счёт является группой (может иметь субсчета), или 0, если счёт не является группой (не может иметь субсчета).

Примечание: Для каждого счёта при создании указывается — может ли он иметь субсчета (будет являться группой) или будет собственно счётом (не группой). Счета-группы не могут участвовать в проводках. В дальнейшем это свойство счёта не изменяется.

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

Сч = СоздатьОбъект("Счет.Основной");
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Описание");
Таб.ВывестиСекцию("Отчет");
Сч.ВыбратьСчета();
Пока Сч.ПолучитьСчет()=1 Цикл
   Если Сч.ЭтоГруппа()=1 Тогда
      Таб.ВывестиСекцию("Группа");
   Иначе
      Таб.ВывестиСекцию("Строка");
   КонецЕсли;

   . . .

КонецЦикла;

Проверить, является ли текущий счёт субсчётом для счёта, переданного в качестве параметра метода, позволяет метод ПринадлежитГруппе() (англоязычный синоним — BelongsToGroup()). Проверка выполняется по всем вышестоящим уровням счёта. Возвращаемым значением метода является число 1, если текущий счёт является субсчётом для счёта, указанного в качестве параметра, или 0, если текущий счёт не является субсчётом для счёта, указанного в качестве параметра.

Синтаксис метода:

ПринадлежитГруппе(<Счет>)

где <Счет> — значение типа "Счет" — счёт, к субсчетам которого проверяется принадлежность текущего счёта.

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

Процедура СчетДляНалоговогоУчета(Счет, СчетНУ, СчетПР)
   Если Счет.ПринадлежитГруппе(СчетПоКоду("01")) = 1 Тогда
      СчетНУ = СчетПоКоду("Н05.01");
      СчетПР = СчетПоКоду("НПР.01");
   ИначеЕсли Счет.ПринадлежитГруппе(СчетПоКоду("03")) = 1 Тогда
      СчетНУ = СчетПоКоду("Н05.01");
      СчетПР = СчетПоКоду("НПР.01");
   ИначеЕсли Счет.Код = "08.4" Тогда
      СчетНУ = СчетПоКоду("Н01.01");
      СчетПР = СчетПоКоду("НПР.08");
   ИначеЕсли Счет.ПринадлежитГруппе(СчетПоКоду("10")) = 1 Тогда
      СчетНУ = СчетПоКоду("Н02.01");
      СчетПР = СчетПоКоду("НПР.10.1");
   КонецЕсли;
КонецПроцедуры

Узнать уровень вложенности текущего счёта позволяет метод Уровень() (англоязычный синоним — Level()). Параметров у метода нет. Возвращаемым значением метода является число, показывающее уровень вложенности текущего счёта (1 — для счёта верхнего уровня).

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Сообщить("Уровень счета - " + Сч.Уровень());

Примечание: В системе «1С:Предприятие» количество уровней вложенности субсчетов в плане счетов не ограничивается. В качестве «ограничителя» выступает величина реквизита «Максимальная длина кода счета» в окне редактирования «ПланыСчетов». В пределах указанной длины можно задавать произвольное количество уровней вложенности, комбинируя символы «#» и «.» в шаблоне счёта.

Шаблон кода представляет собой символьную строку, состоящую из символов «#» и «.». Шаблон кода схематически иллюстрирует структуру полного кода счёта. Фактически, шаблон кода задаёт количество уровней субсчетов, которое может быть открыто к счёту. Например, символьная строка вида ##.#.### означает, что к счёту могут быть открыты два уровня субсчетов.

Получить счёт вышестоящего уровня позволяет метод Родитель() (англоязычный синоним — Parent()). Возвращаемым значением метода является значение типа "Счет" — счёт вышестоящего уровня.

Синтаксис метода:

Родитель(<НомерУровняРодителя>)

где <НомерУровняРодителя> — число — номер уровня вышестоящего счёта, который необходимо получить. Параметр является необязательным. Если параметр не указан, выдаётся непосредственный родитель.

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Сообщить("Родитель - " + Сч.Родитель());

Получить код счёта без кодов счетов вышестоящих уровней позволяет метод КодСубсчета() (англоязычный синоним — SubAccountCode()). Параметры у метода отсутствуют.

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Сообщить("Код счета " + Сч.Код);                // возвращает "76.02"
Сообщить("Код Субсчета " + Сч.КодСубсчета());   // возвращает "02"

Определить, задан текущий счёт в конфигурации или в информационной базе, позволяет метод ЗаданВКонфигурации() (англоязычный синоним — DefinedInConfiguration()). Параметры у метода отсутствуют. Возвращаемым значением является число 1, если счёт задан в конфигурации, или 0, если счёт введён в информационной базе.

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Если Сч.ЗаданВКонфигурации() = 1 Тогда
   Сообщить("Счет задан в Конфигураторе");
КонецЕсли;

Проверить, помечен ли на удаление текущий счёт, позволяет метод ПометкаУдаления() (англоязычный синоним — DeleteMark()). Параметры у метода отсутствуют. Возвращаемым значением метода является число 1, если счёт помечен на удаление, или 0, если счёт не помечен на удаление.

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Если Сч.ПометкаУдаления() = 1 Тогда
   Сообщить("Счёт помечен на удаление");
КонецЕсли;

Методы для работы с субконто счёта

Определить количества видов субконто, прикреплённых к текущему счёту в плане счетов, позволяет метод КоличествоСубконто() (англоязычный синоним — SubcontoCount()). Параметры у метода отсутствуют, а возвращаемым значением метода является число.

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Для Номер=1 По Сч.КоличествоСубконто() Цикл
   Сообщить("Субконто " + Сч.ВидСубконто(Номер));
КонецЦикла;

Примечание: Обратите внимание, что все виды субконто, прикреплённые к счёту в плане счетов, имеют порядковые номера. Эти номера выдаются в названиях колонок видов субконто в окне редактирования плана счетов: «Субконто1», «Субконто2», … «Субконто6». При задании видов субконто для счёта их обязательно «выстраивать» по порядку один за другим.

Установить/получить вид субконто счёта позволяет метод ВидСубконто() (англоязычный синоним — SubcontoKind()). Возвращаемым значением метода (при использовании его без второго параметра) является значение типа "ВидСубконто", имеющего порядковый номер, переданный в качестве первого параметра.

Синтаксис метода:

ВидСубконто(<НомерСубк>, <ВидСубк>, <ТолькоОбороты>)

где

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

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Для Номер=1 По Сч.КоличествоСубконто() Цикл
   Сообщить("Субконто " + Сч.ВидСубконто(Номер));
КонецЦикла;

Примечание: Применение данного метода (в целях установки вида субконто) следует производить только в особых случаях и с учётом всех особенностей настройки учёта. После изменения настроек учёта система может потребовать выполнить пересчёт итогов.

Установить/получить значение флага «Только обороты» субконто счёта позволяет метод ТолькоОбороты() (англоязычный синоним — TurnoversOnly()). Возвращаемым значением метода является значение флага «Только обороты» на момент до использования метода.

Синтаксис метода:

ТолькоОбороты(<НомерСубконто>, <ТолькоОбороты>)

где

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

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Для Номер=1 По Сч.КоличествоСубконто() Цикл
   Сообщить("Субконто " + Сч.ВидСубконто(Номер) +
            ?(Сч.ТолькоОбороты(Номер)=1, "(об.)", ""));
КонецЦикла;

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

Установить/получить значение флага «Учет по сумме» субконто счёта позволяет метод УчетПоСумме() (англоязычный синоним — AccountingBySum()). Возвращаемым значением метода является значение флага «Учет по сумме» на момент до использования метода.

Синтаксис метода:

УчетПоСумме(<НомерСубконто>, <УчетПоСумме>)

где

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

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Для Номер=1 По Сч.КоличествоСубконто() Цикл
   Сообщить("Субконто " + Сч.ВидСубконто(Номер) +
            ?(Сч.УчетПоСумме(Номер)=1, "(сум.)", ""));
КонецЦикла;

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

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

Синтаксис метода:

УчетПоВалютнойСумме(<НомерСубконто>, <УчетПоВалСумме>)

где

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

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Для Номер=1 По Сч.КоличествоСубконто() Цикл
   Сообщить("Субконто " + Сч.ВидСубконто(Номер) +
            ?(Сч.УчетПоВалютнойСумме(Номер)=1, "(вал.)", ""));
КонецЦикла;

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

Установить/получить значение флага «Учет по количеству» субконто счёта позволяет метод УчетПоКоличеству() (англоязычный синоним — AccountingByAmount()). Возвращаемым значением метода является значение флага «Учет по количеству» на момент до использования метода.

Синтаксис метода:

УчетПоКоличеству(<НомерСубконто>, <УчетПоКоличеству>)

где

  • <НомерСубконто> — числовое выражение — порядковый номер субконто счёта;
  • <УчетПоКоличеству> — числовое значение, характеризующее действия с флагом «Учет по количеству» для данного субконто счёта (1 — флаг установить; 0 — флаг не устанавливать). Параметр является необязательным. Если параметр не используется, флаг не меняется.

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

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Для Номер=1 По Сч.КоличествоСубконто() Цикл
   Сообщить("Субконто " + Сч.ВидСубконто(Номер) +
            ?(Сч.УчетПоКоличеству(Номер)=1, "(кол.)", ""));
КонецЦикла;

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

Методы для работы с дополнительными реквизитами счетов

Установить значение реквизита по идентификатору реквизита позволяет метод УстановитьАтрибут() (англоязычный синоним — SetAttrib()).

Синтаксис метода:

УстановитьАтрибут(<ИмяРеквизита>, <3начение>)

где

  • <ИмяРеквизита> — строковое выражение, содержащее имя реквизита, как оно задано в Конфигураторе;
  • <3начение> — выражение, содержащее устанавливаемое значение реквизита.

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

// Для всех счетов в Конфигураторе определён дополнительный
// реквизит "ОтветственноеЛицо" типа "Справочник.Сотрудники"

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

// Вызываем диалог для интерактивного выбора счета
Если Сч.Выбрать("Выберите счёт", "ДляВыбора") > 0 Тогда
   // Вызываем диалог для интерактивного выбора сотрудника
   Если Сотр.Выбрать("Выберите сотрудника", "ДляВыбора") > 0 Тогда
      // Заносим значение в реквизит
      Сч.УстановитьАтрибут("ОтветственноеЛицо", Сотр.ТекущийЭлемент());
      Сч.Записать();
   КонецЕсли;
КонецЕсли;

Получить значение реквизита по идентификатору реквизита позволяет метод ПолучитьАтрибут() (англоязычный синоним — GetAttrib()). Возвращаемым значением метода является значение реквизита.

Синтаксис метода:

ПолучитьАтрибут(<ИмяРеквизита>)

где <ИмяРеквизита> — строковое выражение, содержащее имя реквизита, как оно задано в Конфигураторе.

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

// Для всех счетов в Конфигураторе определён дополнительный
// реквизит "ОтветственноеЛицо" типа "Справочник.Сотрудники"

Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("76.02");
Бухгалтер = Сч.ПолучитьАтрибут("ОтветственноеЛицо");

Назначить тип для реквизита, которому в Конфигураторе назначен тип «Неопределенный», позволяет метод НазначитьТип() (англоязычный синоним — SetType()).

Синтаксис метода:

НазначитьТип(<Реквизит>, <Тип>, <Длина>, <Точность>)

где

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

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

ВыбСчет.НазначитьТип("ТМЦ", "Справочник.Товары");

Установить/получить для объекта типа "Счет" дату, на которую будут в дальнейшем выбираться (или записываться) значения периодических реквизитов счёта позволяет метод ИспользоватьДату() (англоязычный синоним — UseDate()). Данный метод, используется обычно, если нужно обращаться сразу к нескольким периодическим реквизитам спозиционированного объекта. Для одиночных обращений рекомендуется использовать методы периодического реквизита счёта Получить() и Установить(). Возвращаемым значением метода ИспользоватьДату() является текущее значение используемой даты (на момент до исполнения метода).

Синтаксис метода:

ИспользоватьДату(<Дата>)

где <Дата> — выражение типа "Дата". Параметр является необязательным и не используется в случаях когда метод применяется для получения текущего значения установленной даты.

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

Процедура Сформировать()
   Сч = СоздатьОбъект("Счет.Основной");
   Сч.ИспользоватьДату(РабочаяДата());
   Сч.ВыбратьСчета();
   Пока Сч.ПолучитьСчет() = 1 Цикл
      Сообщить("Статус учета " + Сч.Код + " - " + Сч.СтатусУчета);
   КонецЦикла;
КонецПроцедуры

Примечание 1: Метод ИспользоватьДату() должен быть вызван до позиционирования объекта. В этом случае после позиционирования периодические реквизиты будут выдаваться на указанную дату.

Метод ИспользоватьДату() устанавливает дату выборки для данного объекта. В случае, если обращение к объекту типа "Счет" выполняется по длинному пути (например, Клиент.СчетУчета.СтатусУчета) значение типа "Счет" создается динамически и после первого обращения к нему с вызовом метода ИспользоватьДату() уничтожается, поэтому при повторном обращении для получения значения реквизита данная установка уже действовать не будет.

Примечание 2: Если к объекту типа "Счет" однажды применён метод ИспользоватьДату(), то в дальнейшем, чтобы выбирать значения периодических реквизитов, нельзя применять к этому же объекту методы Получить() и Установить(), так как в такой последовательности эти методы несовместимы.

Получить значение периодического реквизита счёта на определённую дату позволяет метод Получить() (англоязычный синоним — GetValue()). Возвращаемым значением метода является полученное значение.

Синтаксис:

Получить(<Дата>)

где <Дата> — выражение со значением требуемой даты или значение типа "Документ" (в этом случае возвращается значение на дату и время документа). Параметр является необязательным. Значение по умолчанию — ТА.

Примечание: Если к объекту типа "Счет" однажды применён метод ИспользоватьДату(), то в дальнейшем, чтобы выбирать значения периодических реквизитов, нельзя применять к этому же объекту метод Получить(), так как в такой последовательности эти методы несовместимы.

Записать значение периодического реквизита счёта на определённую дату позволяет метод Установить() (англоязычный синоним — SetValue()). Метод может использоваться только для объектов, созданных с помощью функции СоздатьОбъект().

Синтаксис:

Установить(<Дата>, <3начение>)

где

  • <Дата> — выражение со значением требуемой даты;
  • <3начение> — выражение, содержащее устанавливаемое значение периодического реквизита счёта.

Примечание: Если к объекту типа "Счет" однажды применён метод ИспользоватьДату(), то в дальнейшем, чтобы записать новые значения периодических реквизитов счёта, нельзя применять к этому же объекту метод Установить(), так как в такой последовательности эти методы несовместимы.

Методы контекста Модуля формы списка счетов

Внимание! Описанные в данном разделе методы доступны только в контексте Модуля формы списка счетов.

Установить/получить для формы списка счетов дату, на которую будут в дальнейшем выбираться (или записываться) значения периодических реквизитов счетов позволяет метод ИспользоватьДату() (англоязычный синоним — UseDate()).

Синтаксис метода:

ИспользоватьДату(<Дата>)

где <Дата> — выражение типа "Дата". Параметр является необязательным и не используется в случаях когда метод применяется для получения текущего значения установленной даты.

Пример записи метода:

ИспользоватьДату(РабочаяДата());

Установить/получить текущий план счетов в форме списка счетов, если форма открыта для просмотра нескольких планов счетов, позволяет метод ИспользоватьПланСчетов() (англоязычный синоним — UseChartOfAccounts()). Возвращаемым значением метода является значение текущего плана счетов формы до вызова метода.

Синтаксис метода:

ИспользоватьПланСчетов(<ПланСчетов>)

где <ПланСчетов> – значение типа "ПланСчетов". Параметр является необязательным и не используется, когда метод необходим для получения текущего значения используемого плана счетов.

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

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

Установить счёт в качестве основного для формы списка счетов позволяет метод ИспользоватьРодителя() (англоязычный синоним — UseParent()). При этом в списке показываются субсчета выбранного счёта. При добавлении нового субсчёта текущего плана счетов данный параметр также будет являться свойством нового субсчёта. Возвращаемым значением метода является значение родителя для формы списка счетов (до применения метода).

Синтаксис метода:

ИспользоватьРодителя(<Родитель>, <ФлагИзменения>)

где

  • <Родитель> — значение типа "Счет", устанавливаемое в качестве используемого родителя. Необязательный параметр. Если параметр не указан, значение используемого родителя не изменяется;
  • <ФлагИзменения> — необязательный параметр. Этим флагом регулируется возможность интерактивного изменения родителя: 1 — пользователь может изменить родителя интерактивно, 0 — пользователь не может интерактивно изменить родителя.

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

ИспользоватьРодителя(ВыбСчет, 1);

Установить счёт для показа списка корреспондирующих с ним счетов (корреспондирующие счета задаются с помощью списка корректных проводок) позволяет метод ИспользоватьКорСчет() (англоязычный синоним — UseCorAccount()). Действие данного метода относится ко всему текущему списку счетов, который доступен в локальном контексте Модуля формы списка счетов.

Синтаксис метода:

ИспользоватьКорСчет(<Счет>, <Корреспонденция>)

где

  • <Счет> — выражение со значением типа "Счет";
  • <Корреспонденция> — число, определяющее роль счёта в проводке: 1 — дебетовый счёт; 0 — кредитовый счёт.

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

ИспользоватьКорСчет(ВыбСчет, 1);

Установить режим иерархического списка счетов позволяет метод ИерархическийСписок() (англоязычный синоним — HierarchicalList()). Действие данного метода относится ко всему текущему списку счетов, который доступен в локальном контексте Модуля формы списка счетов. Возвращаемым значением метода является значение флага иерархического списка для формы списка счетов (до применения метода).

Синтаксис метода:

ИерархическийСписок(<ФлагИерархСписка>, <ФлагИзменения>)

где

  • <ФлагИерархСписка> — числовое выражение — флаг иерархического списка. Возможные значения: 1 — иерархический список; 0 — неиерархический список;
  • <ФлагИзменения> — необязательный параметр. Этим флагом регулируется возможность интерактивного изменения флага иерархического списка. Возможные значения: 1 — пользователь может изменить иерархичность интерактивно, 0 — пользователь не может интерактивно изменить иерархичность.

Пример записи метода:

ИерархическийСписок(1, 1);

Установить способ редактирования счёта позволяет метод РедактироватьВДиалоге() (англоязычный синоним — EditInForm()). Действие данного метода относится ко всему текущему списку счетов, который доступен в локальном контексте Модуля формы списка. Возвращаемым значением метода является значение установленного на данный момент способа редактирования счёта (до применения метода).

Синтаксис метода:

РедактироватьВДиалоге(<Способ>, <Разрешение>)

где

  • <Способ> — необязательный параметр. Способ редактирования счета. Возможные значения: 1 — в диалоге; 0 — в строке;
  • <Разрешение> — необязательный параметр. Этим флагом регулируется возможность пользователя менять способ редактирования. Возможные значения: 1 — пользователь может изменить способ редактирования интерактивно, 0 — пользователь не может интерактивно изменить способ редактирования.

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

ТекСп = РедактироватьВДиалоге();  // получение способа
РедактироватьВДиалоге(1);         // установить редактирование в диалоге
РедактироватьВДиалоге(1, 0);      // установить редактирование в диалоге и запретить его менять

Установить режим выбора групп для формы списка счетов, которая открыта в режиме выбора или подбора счёта, позволяет метод ВыборГруппы() (англоязычный синоним — SelectGroup()). Открытие такой формы списка счетов обычно производится вызовом метода Выбрать() или нажатием кнопки выбора, если выбираемый счёт является элементом диалога. Установка режима позволяет разрешить или запретить пользователю выбирать счета-группы (счета, которые могут иметь субсчета). По умолчанию выбор группы разрешён. Возвращаемым значением метода является текущее числовое значение режима выбора групп (на момент до исполнения метода).

Синтаксис метода:

ВыборГруппы(<ФлагВыбораГруппы>)

где <ФлагВыбораГруппы> — необязательный параметр. Числовое выражение. Возможные значения: 1 — разрешить выбирать группы; 0 — не разрешать выбирать группы.

Пример записи метода:

ВыборГруппы(0);

Предопределённые процедуры Модуля формы счёта

Внимание! Описанные в данном разделе процедуры доступны только в контексте Модуля формы счёта. В основном, данные процедуры предназначены для расширения возможности программного управления правами доступа к системе.

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

В момент открытия формы счёта для ввода нового счёта системой «1С:Предприятие» неявно производится вызов предопределённой процедуры ВводНового() (англоязычный синоним — InputNew()). Данная процедура может использоваться, например, для установки начальных значений характеристик нового счёта. Если в данной предопределённой процедуре установить статус возврата в 0 (например, если данному пользователю нельзя вводить новые счета), ввода нового счёта и открытие формы счёта не будет выполнено.

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

Процедура ВводНового(<ПризнКопирования>, <ОбъектКопирования>)
    . . .
КонецПроцедуры

где

  • <ПризнКопирования> — необязательный параметр. Идентификатор переменной, куда будет передано числовое значение: 1 — если объект введён копированием; 0 — если создан просто новый объект;
  • <ОбъектКопирования> — необязательный параметр. Идентификатор переменной, куда будет передана ссылка на объект, с которого было выполнено копирование.

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

Процедура ВводНового()
   Если НазваниеНабораПрав() = "Оператор" Тогда
      Предупреждение("У вас нет права добавлять счета!", 2);
      СтатусВозврата(0);
   КонецЕсли;
   СтатусСчета = ОснСтатусСчетов;
КонецПроцедуры

Примечание: Начальное значение статуса возврата любой предопределённой процедуры равно 1. Оно устанавливается системой при вызове процедуры.

При интерактивной записи счёта системой «1С:Предприятие» производится вызов предопределённой процедуры ПриЗаписи() (англоязычный синоним — OnWrite()). Если в данной предопределённой процедуре установить статус возврата в 0 (например, если данному пользователю нельзя изменять некоторые характеристики счёта), то запись счёта не будет выполнена. Формальный параметр процедуры используется в теле процедуры для обработки ситуаций с изменениями периодических реквизитов счёта.

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

Процедура ПриЗаписи(<СписокПериодРекв>)
    . . .
КонецПроцедуры

где <СписокПериодРекв> — идентификатор переменной, в которую система «1С:Предприятие» передаст строковое значение — список разделённых запятыми изменяемых периодических реквизитов счёта, которые были интерактивно выбраны пользователем для обновления в окне диалога выбора.

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

Процедура ПриЗаписи(СписокРекв)
   Если Валютный = 1 Тогда
      СтатусВозврата(0);
   КонецЕсли;
КонецПроцедуры

Предопределённые процедуры Модуля формы списка счетов

Внимание! Описанные в данном разделе процедуры доступны только в контексте Модуля формы списка счетов. В основном, данные процедуры предназначены для расширения возможности программного управления правами доступа к системе.

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

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

Процедура ПриВводеСтроки()
   Если НазваниеНабораПрав() = "Оператор" Тогда
      Предупреждение("У вас нет права добавлять счета!", 2);
      СтатусВозврата(0);
   КонецЕсли;
КонецПроцедуры

Примечание: Начальное значение статуса возврата любой предопределённой процедуры равно 1. Оно устанавливается системой при вызове процедуры.

В момент начала интерактивного редактирования новой строки списка счетов системой «1С:Предприятие» производится вызов предопределённой процедуры ПриРедактированииНовойСтроки() (англоязычный синоним — OnEditNewLine()). Параметры у данной процедуры отсутствуют. Процедура может использоваться, например, для установки начальных значений характеристик нового счёта. Установка статуса возврата в данной процедуре не имеет смысла, так как новая строка на этот момент уже заведена.

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

Процедура ПриРедактированииНовойСтроки()
   СтатусСчета = ОснСтатусСчетов;
КонецПроцедуры

В момент начала интерактивного редактирования существующей (не новой) строки списка счетов системой «1С:Предприятие» производится вызов предопределённой процедуры ПриНачалеРедактированияСтроки() (англоязычный синоним — OnStartEditLine()). Если в данной предопределённой процедуре установить статус возврата в 0 (например, если данному пользователю нельзя изменять характеристики бухгалтерских счетов), строка не будет изменена. Параметры у процедуры отсутствуют.

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

Процедура ПриНачалеРедактированияСтроки()
   Если НазваниеНабораПрав() = "Оператор" Тогда
      Предупреждение("У вас нет права менять счета!", 2);
      СтатусВозврата(0);
   КонецЕсли;
КонецПроцедуры

Примечание: Начальное значение статуса возврата любой предопределённой процедуры равно 1. Оно устанавливается системой при вызове процедуры.

При интерактивной смене родительской группы счёта системой «1С:Предприятие» производится вызов процедуры ПриВыбореРодителя() (англоязычный синоним — OnSetParent()). Если в данной предопределённой процедуре установить статус возврата в 0, то выбор родительской группы не будет произведён.

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

Процедура ПриВыбореРодителя(<Счет>)
    . . .
КонецПроцедуры

где <Счет> — значение счёта, который интерактивно установлен в качестве родителя.

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

Процедура ПриВыбореРодителя(Родитель)
   Если НазваниеНабораПрав() = "Продавец" Тогда
      Если Родитель = ЗапрещеннаяГруппа Тогда
         Предупреждение("Вам запрещено изменять счет!", 2);
         СтатусВозврата(0);
      КонецЕсли;
   КонецЕсли;
КонецПроцедуры

При интерактивной записи строки списка счёта системой «1С:Предприятие» производится вызов предопределённой процедуры ПриЗаписи() (англоязычный синоним — OnWrite()). Если в данной предопределённой процедуре установить статус возврата в 0 (например, если данному пользователю нельзя изменять некоторые характеристики счёта), то запись счёта не будет выполнена. Формальный параметр процедуры используется в теле процедуры для обработки ситуаций с изменениями периодических реквизитов счёта.

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

Процедура ПриЗаписи(<СписокПериодРекв>)
    . . .
КонецПроцедуры

где <СписокПериодРекв> — идентификатор переменной, в которую система «1С:Предприятие» передаст строковое значение — список разделённых запятыми изменяемых периодических реквизитов счёта, которые были интерактивно выбраны пользователем для обновления в окне диалога выбора.

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

Процедура ПриЗаписи(СписокРекв)
   Если Валютный = 1 Тогда
      СтатусВозврата(0);
   КонецЕсли;
КонецПроцедуры

Предопределённые процедуры глобального модуля

Внимание! Описанные в данном разделе процедуры доступны только в контексте глобального модуля.

При интерактивном удалении счёта из плана счетов системой «1С:Предприятие» производится вызов предопределённой процедуры ПриУдаленииСчета() (англоязычный синоним — OnDeleteAccount()). В качестве параметров в процедуру передаются значение удаляемого счёта и режим удаления: непосредственное удаление или пометка на удаление. Если в данной процедуре установить статус возврата в 0 (например, если нарушается ссылочная целостность системы), то счёт не будет удалён или помечен на удаление.

Синтаксис:

Процедура ПриУдаленииСчета(<УдалСчет>, <Режим>)
    . . .
КонецПроцедуры

где

  • <УдалСчет> — ссылка на удаляемый счёт;
  • <Режим> — выражение, значение которого соответствует флагу режима удаления (1 — непосредственное удаление, 0 — пометка на удаление).

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

Процедура ПриУдаленииСчета(УдСчет, 0)
   Если УдСчет.Валютный = 1 Тогда
      СтатусВозврата(0);
   КонецЕсли;
КонецПроцедуры

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