1С - Описание встроенного языка системы 1С Предприятие


Данная книга является описанием встроенного языка системы 1С:Предприятие и предназначена для специалистов, выполняющих конфигури­рование системы для решения конкретной задачи автоматизации учета.

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

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

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

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

Типизация переменных в языке не жесткая, т. е. тип переменной определя­ется ее значением. Переменные не обязательно объявлять в явном виде. Неяв­ным определением переменной является ее первое упоминание в левой части оператора присваивания. Возможно также явное объявление переменных при помощи соответствующего оператора. Допускается применение массивов.

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

Формат описания элементов языка Каждый элемент (конструкция) языка, упомянутый в этом руководстве, пе­чатается таким шрифтом. Информация по компонентам языка приводится в виде синтаксической диаграммы, подробного описания и примера исходного текста.

Соглашения и обозначения, принятые в синтаксических диаграммах В синтаксических диаграммах используются следующие символы:

Символ Значение
[ ] В квадратных скобках заключаются необязательные син­таксические элементы.
( ) Круглые скобки заключают в себе список параметров.
| Вертикальной линией разделяются синтаксические эле­менты, среди которых нужно выбрать только один.
Синтаксическая диаграмма описания элемента языка Формат описания элемента языка, используемый в данном руководстве, ил­люстрируется синтаксической диаграммой, приведенной ниже.

ЭлементЯзыка Краткое описание того, что делает данный ЭлементЯзыка.

Синтаксис:

ЭлементЯзыка(Параметр1, Параметр2, ...) [ДобКлючевоеСлово]

Англоязычный Синтаксис: (в случае языковых конструкций)

Keyword(Параметр1, Параметр2, ...)[AddKeyWord]

Англоязычный синоним: (в случае описания методов, функций и процедур)

Keyword

Параметры:

Параметр1 краткое описание Параметра1.

Параметр2 краткое описание Параметра2.

[ДобКлючевоеСлово] краткое описание ДобКлючевоеСлово.

Возвращаемое значение:

Тип и краткое описание возвращаемого значения.

Описание:

Подробное описание того, что реализует ЭлементЯзыка.

Пример:

· Краткое описание примера

// Исходный текст примера

См. также: Ссылки на другие методы, процедуры или функции.


Глава 1 Формат исходных текстов программных модулей

Что такое программный модуль? Программные модули в конфигурации системы 1С:Предприятие не являют­ся самостоятельными программами в общепринятом понимании этого слова, поскольку они являются только частью всей конфигурации задачи. Программ­ный модуль — это своего рода «контейнер» для размещения текстов процедур и функций, вызываемых системой во время исполнения задачи в определенные моменты работы. Поэтому программный модуль не имеет формальных границ своего описания типа: «Начало модуля» — «Конец модуля».

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

Каждый отдельный программный модуль воспринимается системой как единое целое, поэтому все процедуры и функции программного модуля вы­полняются в едином контексте.

Контекст выполнения программного модуля

Каждый программный модуль связан с остальной частью конфигурации за­дачи. Эта связь называется контекстом выполнения модуля. Следует различать два вида контекста:

· глобальный контекст задачи;

· локальный контекст выполнения конкретного модуля.

Глобальный контекст образуется:

· значениями системных атрибутов, системными процедурами и функ­циями;

· значениями заданных в конфигураторе констант, перечислений, регист­ров, видов расчета, групп видов расчета;

· переменными, процедурами и функциями глобального программного модуля, объявленными с ключевым словом Экспорт.

Глобальный контекст виден всем программным модулям и определяет об­щую языковую среду конфигурации.

Локальный контекст модуля образуется тем конкретным местом конфигу­рации задачи, для которого использован программный модуль. Локальный кон­текст виден только конкретному программному модулю и определяет для мо­дуля набор непосредственно доступных модулю значений агрегатных типов данных, их атрибутов и методов (см. «Виды программных модулей»). Однако, контекст модуля можно передать как объект в виде параметра при вызове про­цедур и функций (см. «Передача локального контекста программного модуля в качестве параметра»). Кроме того, контекст модуля определяет тот набор мето­дов, которые доступны только в данном контексте (см. «Атрибуты и методы контекста Модуля формы», «Методы контекста Модуля формы элемента спра­вочника» и т. п.). Локальный контекст предназначен для того, чтобы дать воз­можность управлять частными аспектами поведения задачи, присущими дан­ному модулю.

Виды программных модулей

В системе 1С:Предприятие существуют следующие виды программных мо­дулей (места размещения программных модулей в конфигурации задачи), дос­тупных в конфигураторе:

Размещение Момент запуска Контекст выполнения

Глобальный модуль

Размещается в корне­вом разделе конфигу­рации: Метаданные. Запускается при стар­те всей прикладной задачи. Глобальный модуль оп­ределяет глобальный контекст всей задачи.

Модуль Формы списка справочника

Размещается в разделе конфигурации: Мета­данные — Справочник — Форма списка. Запускается при вызо­ве формы списка справочника. В модуле доступны: глобальный контекст, контекст Модуля формы списка справочника, в котором непосредствен­но доступен выбранный в списке элемент спра­вочника и реквизиты формы списка справоч­ника.

Модуль Формы группы справочника

Размещается в разделе конфигурации: Мета­данные — Справочник — Форма группы. Запускается при от­крытии формы группы справочника. В модуле доступны: глобальный контекст, контекст Модуля формы группы справочника, в котором непосредствен­но доступны реквизиты текущей группы спра­вочника и реквизиты формы.

Модуль Формы элемента справочника

Размещается в разделе конфигурации: Мета­данные — Справочник — Форма элемента. Запускается при от­крытии формы эле­мента справочника. В модуле доступны: глобальный контекст, контекст Модуля формы элемента справочника, в котором непосредствен­но доступны реквизиты текущего элемента спра­вочника и реквизиты формы.

 Модуль Формы документа

Размещается в разделе конфигурации: Мета­данные — Документ — Форма. Запускается при от­крытии формы доку­мента. В модуле доступны: глобальный контекст, контекст Модуля формы документа, в котором непосредственно дос­тупны реквизиты теку­щего документа и рек­визиты формы докумен­та.

Модуль документа

Размещается в разделе

конфигурации: Мета­данные — Документ — Модуль документа.
Запускается при про­ведении документа, при удалении прове­денного документа, при снятии проведе­ния, при выполнении архивации записей журнала расчетов, по­рожденных докумен­том. В модуле доступны: глобальный контекст, контекст Модуля доку­мента, в котором непо­средственно доступны реквизиты текущего документа.

Модуль Формы журнала документов

Размещается в разделе конфигурации: Мета­данные — Журнал — Форма. Запускается при вызо­ве формы журнала документов. В модуле доступны: глобальный контекст, контекст Модуля формы журнала документов, в котором непосредствен­но доступен выбранный в журнале документ и реквизиты формы жур­нала.

Модуль Формы журнала расчетов

Размещается в разделе конфигурации: Мета­данные — Журнал расчетов — Форма. Запускается при вызо­ве формы журнала расчетов. В модуле доступны: глобальный контекст, контекст Модуля формы журнала расчетов, в котором непосредствен­но доступны реквизиты журнала расчетов и рек­визиты формы.

Модуль Формы списка счетов

Размещается в разделе конфигурации: Мета­данные — План сче­тов. Запускается при вызо­ве формы списка сче­тов. В модуле доступны: глобальный контекст, контекст Модуля формы списка счетов, в котором непосредственно досту­пен выбранный в списке счет и реквизиты формы списка счетов.

Модуль Формы счета

Размещается в разделе конфигурации: Мета­данные — Справочник

— счет.
Запускается при от­крытии формы счета. В модуле доступны: глобальный контекст, контекст Модуля формы счета, в котором непо­средственно доступны реквизиты текущего счета и реквизиты фор­мы.

Модуль Формы журнала операций

Размещается в разделе конфигурации: Мета­данные — Журнал операций — Форма. Запускается при вызо­ве формы журнала операций. В модуле доступны: глобальный контекст, контекст Модуля формы журнала операций, в котором непосредствен­но доступны реквизиты журнала операций и реквизиты формы.

Модуль Формы операции

Размещается в разделе конфигурации: Мета­данные — Операция. Запускается при от­крытии формы опера­ции. В модуле доступны: глобальный контекст, контекст Модуля формы операции, в котором непосредственно дос­тупны реквизиты теку­щей операции и рекви­зиты формы операции.

 Модуль Формы журнала проводок

Размещается в разделе конфигурации: Мета­данные — Журнал проводок — Форма. Запускается при вызо­ве формы журнала проводок. В модуле доступны: глобальный контекст, контекст Модуля формы журнала проводок, в котором непосредствен­но доступны реквизиты журнала проводок и реквизиты формы.

Модуль Формы отчета

Размещается в разделе конфигуратора: Мета­данные — Отчет — Форма. Запускается при от­крытии диалоговой формы подготовки отчета. В модуле доступны: глобальный контекст, контекст Модуля формы отчета, в котором непо­средственно доступны реквизиты формы.

Модуль Формы обработки

Размещается в разделе конфигуратора: Мета­данные — Обработка — Форма. Запускается при от­крытии диалоговой формы обработки. В модуле доступны: глобальный контекст, контекст Модуля формы обработки, в котором непосредственно дос­тупны реквизиты фор­мы.

Модуль вида расчета

Размещается в разделе конфигуратора: Метаданные — Вид расчета — Модуль вида расчета. Запускается при рас­чете соответствующих записей журнала рас­четов. В модуле доступны: глобальный контекст, контекст Модуля вида расчета, в котором дос­тупны реквизиты жур­нала расчетов.
Формат программного модуля Исходный текст программного модуля может состоять из операторов и комментариев.

Комментарии

Комментарий используется для размещения в исходном тексте программно­го модуля всякого рода пояснений к работе модуля. Хорошим тоном програм­мирования считается, когда исходный текст содержит исчерпывающий коммен­тарий с описанием алгоритма. В режиме исполнения программы комментарии пропускаются. В тексте программного модуля комментарий начинается парой символов // и заканчивается концом строки. Это значит, что комментарий можно начинать с начала строки или записывать его после оператора на той же строке. После начала комментария писать оператор на той же строке нельзя, необходимо закончить комментарий концом строки.

Пример:

А=В; // Это – комментарий

// Это тоже комментарий

Формат операторов

Операторы имеют вид стандартного обращения к процедуре, за исключени­ем оператора присваивания (А=В;) и управляющих конструкций (таких как Для, Пока, Если). Между собой операторы обязательно следует разделять сим­волом ; ( точкой с запятой). Конец строки не является признаком конца опе­ратора, т. е. операторы могут свободно переходить через строки и продолжаться на другой строке. Можно располагать произвольное число операторов на од­ной строке, разделяя их символом ;.

Операторы языка в программном модуле можно подразделить на две кате­гории: операторы объявления переменных и исполняемые операторы.

Операторы объявления переменных создают имена переменных, которыми манипулируют исполняемые операторы.

Любой исполняемый оператор может иметь метку, используемую в качестве точки перехода в операторе Перейти.

В общем случае формат оператора языка следующий:

~метка:Оператор[(параметры)] [ДобКлючевоеСлово];

В качестве меток используются специальные идентификаторы, начинаю­щиеся с символа '~' (тильда) и состоящие из последовательности букв, цифр и символов '_'. Чтобы пометить оператор, надо поместить перед ним метку и сле­дующий за ней символ :.

Пример:

~метка:А=В;

Имена переменных, процедур и функций

Именем переменной, объявленной процедуры или функции может быть лю­бая последовательность букв, цифр и знаков подчеркивания _, начинающаяся с буквы или знака подчеркивания _. Вновь создаваемые имена не должны совпадать с зарезервированными словами языка или именами существующих процедур и функций, доступных на момент выполнения. Распознавание имен переменных, процедур и функций ведется без учета регистра букв.

Зарезервированные слова

Приведенные далее ключевые слова являются зарезервированными и не могут использоваться в качестве создаваемых имен переменных и объявляе­мых процедур и функций. В данном варианте языка каждое из ключевых слов имеет два представления — русское и английское. Английское представление является традиционным для языков программирования. Ключевые слова в русском и английском представлении могут свободно смешиваться в одном исходном тексте. Регистр букв ключевых слов не имеет значения. Ниже приведен список ключевых слов в обоих вариантах представления.

Если If He Not Дата Date
Тогда Then Знач Val Формат Format
ИначеЕсли Elsif СтрДлина StrLen Разм Dim
Иначе Else СокрЛ TrimL Вопрос Do Query Box
КонецЕсли Endlf СокрП TrimR Контекст Context
Цикл Do Лев Left Перем Var
Для For Прав Right Перейти Goto
По To Сред Mid Возврат Return
Пока While Цел Int Продолжить Continue
Функция Function Окр Round Прервать Break
КонецПроцедуры EndProcedure Число Number И And
КонецФункции EndFunction Строка String Или Or
Предупреждение DoMessageBox КонецЦикла EndDo Процедура Procedure

Структура программного модуля

Структуру программного модуля можно подразделить на следующие разде­лы:

· раздел определения переменных;

· раздел процедур и функций;

· раздел основной программы.

В конкретном программном модуле любой из разделов может отсутствовать.

Раздел определения переменных размещается от начала текста модуля до первого оператора Процедура или оператора Функция или любого исполняе­мого оператора. В этом разделе могут находиться только операторы объявления переменных Перем.

Раздел процедур и функций размещается от первого оператора Процедура или оператора Функция до любого исполняемого оператора вне тела описания процедур или функций.

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

Специальные символы, используемые в исходном тексте
// Двумя знаками «косая черта» начинается комментарий. Коммен­тарием считается весь текст от знака // до конца текущей стро­ки.
| Вертикальная черта в начале строки используется только в стро­ковых константах и означает, что данная строка является про­должением предыдущей (перенос строки), (см. «Строковые кон­станты»).
~ Знаком тильда начинается метка оператора.
: Двоеточием заканчивается метка оператора.
; Точка с запятой является символом разделения операторов.
( ) В круглые скобки заключается список параметров методов, про­цедур и функций.
[ ] В квадратные скобки заключается размерность массивов.
, Запятая разделяет параметры в списке параметров методов, про­цедур и функций.
В двойные кавычки заключаются строковые константы.
' ' В одинарные кавычки заключаются константы даты.
. Десятичная точка в числовых константах. Разделитель, используемый в описаниях агрегатных типов данных.
+ Символ «плюс» обозначает операцию сложения.
- Символ «минус» обозначает операцию вычитания.
* Символ «звездочка» обозначает операцию умножения.
/ Символ «косая черта» обозначает операцию деления.
Правая угловая скобка обозначает логическую операцию «боль­ше».
= Логическая операция «больше или равно».
Левая угловая скобка обозначает логическую операцию «мень­ше».
= Логическая операция «меньше или равно».
= Знак равенства обозначает присвоение или логическую операцию «равно».
Две угловые скобки обозначают логическую операцию «не рав­но».
Процедуры и функции программного модуля

Процедура

Секция описания процедуры.

Синтаксис:

Процедура Имя_проц([[Знач] Парам1[=ДефЗнач],

... , [Знач] ПapaмN[=ДeфЗнaч]]) [Экспорт]

//Объявления локальных переменных;

//Операторы;

...

[Возврат;]

//Операторы;

...

КонецПроцедуры

Англоязычный Синтаксис:

Procedure Имя_проц([[Val] Парам1[=ДефЗнач],

... , [Val] ПарамN[=ДефЗнач]]) [Export]

//Объявления локальных переменных;

//Операторы;

...

[Return;]

//Операторы;

...

EndProcedure

Параметры:

Имя_проц Назначает имя процедуры.
Знач Необязательное ключевое слово, которое указывает на то, что следующий за ним параметр передается по значению, т. е. изменение значения формального параметра при выполнении процедуры никак не повлияет на фактический параметр, переданный при вызове процедуры. Если это ключевое слово не указано, то параметр процедуры передается по ссылке, то есть изменение внутри процедуры зна­чения формального параметра приведет к измене­нию значения соответствующего фактического па­раметра.
Парам1, ..., ПарамN Необязательный список формальных параметров, разделяемых запятыми. Значения формальных па­раметров должны соответсвовать значениям пере­даваемых при вызове процедуры фактических па­раметров. В этом списке определяются имена каж­дого из параметров так, как они используются в тексте процедуры. Список формальных параметров может быть пуст. См. также: «Передача парамет­ров».
=ДефЗнач Необязательная установка значения параметра по умолчанию. Параметры с установленными значе­ниями по умолчанию можно располагать в любом месте списка формальных параметров.

Если параметр при вызове процедуры опущен, то он принимает либо установленное по умолчанию значение (если оно есть) либо принимает «пустое» значение (значение неопределенного типа).

Если параметру не задано значение по умолча­нию и он является последним в списке передавае­мых параметров, то при вызове процедуры его нельзя опускать.

Если параметру задано значение по умолчанию и он является последним в списке, то при вызове процедуры его можно опускать в списке передавае­мых фактических параметров и не ставить запятую перед опущенным параметром.

Если параметру не задано значения по умолча­нию, то при вызове процедуры его можно опускать в списке передаваемых фактических параметров, но разделительную запятую надо ставить.
Экспорт Необязательное ключевое слово, которое указывает на то, что данная процедура является доступной из других программных модулей. Имеет смысл только в глобальном программном модуле.
//Объявления локальных переменных Объявляются локальные переменные, на которые можно ссылаться только в рамках этой процедуры (см. оператор Перем).
//Операторы Исполняемые операторы процедуры.
Возврат Необязательное ключевое слово, которое завершает выполнение процедуры и осуществляет возврат в точку программы, из которой было обращение к процедуре. Использование данного оператора в процедуре не обязательно.
КонецПроцедуры Обязательное ключевое слово, обозначающее конец исходного текста процедуры, завершение выполне­ния процедуры. Возврат в точку, из которой было обращение к процедуре.
Описание:

Ключевое слово Процедура начинает секцию исходного текста, выполнение которого можно инициировать из любой точки программного модуля, просто указав Имя_процедуры со списком параметров (если параметры не передают­ся, то круглые скобки, тем не менее, обязательны). Если в глобальном про­граммном модуле в теле описания функции использовано ключевое слово Экспорт, то это означает, что данная процедура является доступной из всех других программных модулей конфигурации. Ключевое слово Экспорт имеет смысл использовать только в глобальном программном модуле.

При выполнении оператора Возврат процедура заканчивается и возвраща­ет управление в точку вызова. Если в тексте процедуры не встретился оператор Возврат, то после выполнения последнего исполняемого оператора происхо­дит выполнение неявного оператора Возврат. Конец программной секции процедуры определяется по оператору КонецПроцедуры.

Переменные, объявленные в теле процедуры в разделе Объявления_локальных_переменных, являются локальными переменными данной процедуры, поэтому доступны только в этой процедуре (за исключени­ем случая передачи их как параметров при вызове других процедур, функций или методов).

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

См. также: «Передача параметров»

Пример:

Перем Глоб;

// Описание процедуры

Процедура МояПроцедура(Пар1, Пар2, ПарЗ) Экспорт

Глоб = Глоб + Пар1 + Пар2 + ПарЗ;

Возврат;

КонецПроцедуры

Глоб = 123;

МояПроцедура(5, 6, 7);   // Вызов процедуры

Функция

Секция описания функции.

Синтаксис:

Функция Имя_функции([[Знач] Парам1[=ДефЗнач], ...

, [Знач] ПарамN [=ДефЗнач]])[Экспорт]

//Объявления локальных переменных;

// Операторы;

...

Возврат ВозвращаемоеЗначение;

// Операторы;

...

КонецФункции

Англоязычный Синтаксис:

Function Имя_функции ([[Val] Парам1[=ДефЗнач], ...

, [Val] ПapaмN [=ДефЗнач]])[Export]

//Объявления локальных переменных;

// Операторы;

...

Return ВозвращаемоеЗначение;

// Операторы;

...

EndFunction

Параметры:

Имя_функции Назначает имя функции.
Знач Необязательное ключевое слово, которое указывает на то, что следующий за ним параметр передается по значению, т. е. изменение значения формального па­раметра при выполнении функции никак не повлия­ет на значение фактического параметра, переданного при вызове функции. Если это ключевое слово не указано, то параметр функции передается по ссылке, то есть изменение внутри функции значения фор­мального параметра приведет к изменению значения соответствующего фактического параметра.
Парам1, ..., ПарамN Необязательный список формальных параметров, разделяемых запятыми. Значения формальных пара­метров должны соответсвовать значениям передавае­мых при вызове функции фактических параметров. В этом списке определяются имена каждого из пара­метров так, как они используются в тексте функции. Список формальных параметров может быть пуст. См. также: «Передача параметров».
=ДефЗнач Необязательная установка значения параметра по умолчанию. Параметры с установленными значения­ми по умолчанию можно располагать в любом месте списка формальных параметров.

Если параметр при вызове процедуры опущен, то он принимает либо установленное по умолчанию значение (если оно есть) либо принимает «пустое» значение (значение неопределенного типа).

Если параметру не задано значение по умолчанию и он является последним в списке передаваемых па­раметров, то при вызове процедуры его нельзя опус­кать.

Если параметру задано значение по умолчанию и он является последним в списке, то при вызове про­цедуры его можно опускать в списке передаваемых фактических параметров и не ставить запятую перед опущенным параметром.

Если параметру не задано значения по умолчанию, то при вызове процедуры его можно опускать в спи­ске передаваемых фактических параметров, но разде­лительную запятую надо ставить.
Экспорт Необязательное ключевое слово, которое указывает на то, что данная функция является доступной из других программных модулей. Данное ключевое сло­во имеет смысл использовать только в глобальном программном модуле.
//Объявления локальных переменных Объявляются локальные переменные, на которые можно ссылаться только в рамках этой функции (см. оператор Перем).
//Операторы Исполняемые операторы функции.
Возврат Ключевое слово, которое завершает выполнение функции и возвращает ВозвращаемоеЗначение в выражение, в котором используется функция. Ис­пользование данного ключевого слова в функции обязательно.
ВозвращаемоеЗначение Выражение, значение которого содержит результат обращения к функции.
КонецФункции Обязательное ключевое слово, обозначающее конец исходного текста функции.
Описание:

Ключевое слово Функция начинает секцию исходного текста функции, вы­полнение которой можно инициировать из любой точки программного модуля, просто указав Имя_функции со списком параметров (если параметры не пере­даются, то круглые скобки, тем не менее, обязательны). Если в глобальном про­граммном модуле в теле описания функции использовано ключевое слово Экспорт, то это означает, что данная функция является доступной из всех дру­гих программных модулей конфигурации. Ключевое слово Экспорт имеет смысл использовать только в глобальном программном модуле.

Выполнение функции заканчивается обязательным оператором Возврат. Функции отличаются от процедур только тем, что возвращают Воз вращаемое Значение. Конец программной секции функции определяется по оператору КонецФункции.

Вызов любой функции в тексте программного модуля можно записывать как вызов процедуры, т. е. в языке допускается не принимать от функции воз­вращаемое значение.

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

Замечание: ключевые слова Функция, КонецФункции являются не операто­рами, а операторными скобками, поэтому не должны заканчиваться точ­кой с запятой (это может приводить к ошибкам выполнения модуля).

См. также: «Передача параметров»

Пример:

Перем Глоб;

// Описание функции

Функция МояФункция(Парам1, Парам2, ПарамЗ) Экспорт

Лок = Глоб + Парам1 + Парам2 + ПарамЗ;

Возврат Лок;

КонецФункции

Глоб = 123;

Рез = МояФункция(5, 6, 7);      // Вызов функции

Предварительное описание процедур и функций

В тексте программного модуля допускается предварительное описание про­цедур и функций без их определения.

Пример:

· фрагмента текста модуля, содержащий предварительное описание процеду­ры.

Процедура А(Парам1, Парам2) Далее

Процедура Б()

   Перем АА, ББ;

   ...

   А(АА, ББ);

   ...

КонецПроцедуры

Процедура А(Парам1, Парам2)

   ...

КонецПроцедуры

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

Процедура А(Парам1, Парам2) Далее

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

Передача параметров

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

Если параметру задано значение по умолчанию и он является последним в списке, то при вызове процедуры его можно опускать в списке передаваемых фактических параметров и не ставить запятую перед опущенным параметром.

Если параметру не задано значения по умолчанию, то при вызове процеду­ры его можно опускать в списке передаваемых фактических параметров, но разделительную запятую надо ставить.

Если параметр при вызове процедуры опущен, то он принимает либо уста­новленное по умолчанию значение (если оно есть) либо принимает «пустое» значение (значение неопределенного типа).

Если при вызове метода, процедуры или функции параметры не передаются (пустой список параметров), то, тем не менее, круглые скобки обязательно тре­буется ставить.

Пример:

Перем Глоб;

// Описание функции

Функция МояФункция(Знач Пар1, Пар2, Пар3) Экспорт

   Лок = Глоб + Пар1 + Пар2 + Пар3;

   Пар1 = 40;

   Возврат Лок;

КонецФункции

Глоб = 123;

А = 10;

Рез = МояФункция(А, 6, 7); // Вызов функции

// Здесь Рез = 146, а переменная А = 10, несмотря на то, что в теле

// функции значение параметра Пар1 изменено на 40

Передача локального контекста программного модуля в качестве параметра

В языке есть возможность передавать локальный контекст программного модуля (см. «Контекст выполнения программного модуля», «Виды программ­ных модулей») в качестве параметра процедуры или функции. Для этого в ка­честве фактического параметра при вызове процедуры или функции использу­ется ключевое слово Контекст (англоязычный синоним — Context). Данная возможность позволяет, например, написать в глобальном программном модуле процедуры и функции (общие для многих модулей), которые, при их вызове из других модулей, будут исполняться с использованием конкретного локального контекста вызвавшего модуля.

Пример:

· Допустим, у нас есть несколько различных документов, причем у всех есть реквизит Склад. В каждом программном модуле формы редактирования документа нужна процедура выбора склада. В глобальном программном модуле напишем процедуру:

Процедура УстСклада(Конт) Экспорт

   // создаем объект типа справочник

   Скл = СоздатьОбъект(Справочник.Склады);

   // вызываем диалог для выбора элемента Справочника

   Скл.Выбрать(Выберите Склад, );

   Если Скл.Выбран() = 1 Тогда

      // если в диалоге элемент Справочника был выбран,

      // то присваиваем его значение реквизиту Документа,

      // который доступен по локальному контексту

      Конт.Склад = Скл.ТекущийЭлемент();

   КонецЕсли;

КонецПроцедуры

· Здесь переменная Конт является формальным параметром, которому при вызове процедуры будет присвоен локальный контекст. В данном примере обращение к реквизитам и методам локального контекста происходит «че­рез точку» после идентификатора Конт, например:

Конт.Склад = Скл.ТекущийЭлемент();

· Теперь в любом программном модуле конфигурации (в данном примере в любом Модуле формы документа) для выбора склада можно вызвать про­цедуру, передав ей свой локальный контекст в качестве параметра:

УстСклад(Контекст);

Пример исходного текста программного модуля Перем ФлагПроводки; // Флаг проведения Документа

Перем ФлагИзменения; // Флаг изменения Документа

//————————————————————————————————————————————————

Функция КонтрольОстатка()

   // Функция возвращает текущее значение остатка товара на складе

   Ост = Регистр.ОстаткиТоваров.Остаток(Склад, Товар, ОстатокТовара);

   Возврат Ост;

КонецФункции

//————————————————————————————————————————————————

Процедура УстФлагИзм()

   ФлагИзменения = 1;

КонецПроцедуры

//————————————————————————————————————————————————

Процедура ВводНового()

   // предопределенная процедура, вызываемая при вводе нового документа

   // установим дату Документа

   ДатаДок = РабочаяДата();

   // установим реквизиты Документа (по умолчанию)

   ТипНакладной = Перечисление.ТипыНакладных.Перемещение;

   Фирма = Константа.ДефФирма;

   Склад = Константа.ДефСклад;

   СкладПолучатель = Константа.ДефСклад;

КонецПроцедуры

//————————————————————————————————————————————————

Процедура ВыходноеСообщение()

   // процедура, которую мы будем вызывать при нажатии кнопки ОК

   Если (ФлагПроводки = 1) И (ФлагИзменения = 1) Тогда

      Предупреждение(Проведенный Документ был изменен! При

            | сохранении обязательно проведите Документ снова!);

   КонецЕсли;

КонецПроцедуры

//————————————————————————————————————————————————

// При входе в Форму запомним промежуточные переменные

ФлагПроводки = Проведен();

ФлагИзменения = 0;


Глава 2 Типы данных

Базовые типы данных В языке поддерживаются следующие базовые типы данных:

· числовой;

· строковый;

· дата.

Числовым типом может быть представлено любое десятичное число. Над данными числового типа определены основные арифметические операции.

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

Типом дата может представляться любая корректная дата.

Правила преобразования типов данных

В процессе работы модуля или вычисления выражений может возникнуть необходимость в преобразовании типов данных отдельных значений. Для базо­вых типов определены следующие правила преобразования:

Число - Строка

Если число не имеет форматных установок, то его строковым представлени­ем является полное представление числа в формате с фиксированной точкой.

Дата - Строка

Дата преобразованная к строковому типу имеет вид ДД.ММ.ГГ, где ГГ — две цифры года, ММ — числовое обозначение месяца (01, ..., 12), ДД — день месяца.

Строка - Число

Строка преобразуется в число пока это возможно. Получившееся число счи­тается результатом преобразования. (Например, строка 1.22 Glass будет преобразована к числу 1.22). Если в начале строки не имеется ничего, что мог­ло бы быть проинтерпретировано как число, то результат равен 0.

Дата - Число

Результатом данного преобразования является численное представление да­ты.

Строка - Дата

Если в начале строки содержится что-то, что может быть проинтерпретиро­вано как строковое представление даты в виде ДД.ММ.ГГ, где ГГ — две цифры года, ММ — числовое обозначение месяца (01, ..., 12), ДД — день месяца, то бу­дет произведено соответствующее преобразование. В противном случае значе­ние даты будет нулевым.

Число - Дата

Делается попытка взять целую часть Числа и проинтерпретировать как чис­ленное представление даты. Если число отрицательно, то итогом является ну­левая дата.

Агрегатные типы данных Агрегатные типы данных — это специализированные типы данных систе­мы 1С:Предприятие, суть которых — отражение объектов предметной области и способ работы с ними.

Работа с агрегатными типами данных имеет существенные отличия от рабо­ты с обычными базовыми типами данных. Конкретные значения существую­щих агрегатных типов данных могут быть определены в программном модуле двумя способами:

· некоторые значения заранее известны в программном модуле из его гло­бального и локального контекста;

· другие значения могут быть определены с помощью системной функции СоздатьОбъект, которой в качестве параметра передается строка с именем агрегатного типа данных, созданного в конфигураторе.

Каждый агрегатный тип данных, как правило, имеет набор атрибутов и ме­тодов.

Атрибуты по свойствам напоминают переменные, т. е. им можно присваи­вать или читать их значения.

Методы — это те действия, которые может выполнять агрегатный тип дан­ных. Методы могут иметь или не иметь возвращаемое значение. Если метод имеет возвращаемое значение, то он может размещаться в правой части опера­тора присваивания, в выражениях, в описании фактических параметров других вызываемых методов, процедур или функций.

Замечание. В тексте программного модуля вызов любого метода можно запи­сывать отдельным оператором программы (как вызов процедуры) даже в том случае, если метод имеет возвращаемое значение. Другими словами, в языке допускается игнорировать возвращаемое значение.

Замечание. Работа с агрегатными типами данных языка напоминает работу с объектными типами в Visual Basic. Атрибуты агрегатного типа данных — аналогичны свойствам объектного типа в Visual Basic. Методы — анало­гичны методам объектного типа в VisualBasic.

Замечание. При конфигурировании агрегатных типов данных, например Справочников, Документов, Регистров и т. п. не рекомендуется использо­вать в качестве идентификаторов создаваемых рекизитов существующие термины названий атрибутов и методов объектов.

Типичная последовательность работы с объектом агрегатного типа данных выглядит следующим образом:

· с помощью функции СоздатьОбъект создается объект агрегатного типа данных, и какой-либо переменной присваивается ссылка на него;

· объект позиционируется на нужном элементе данных;

· производятся различные манипуляции с объектом агрегатного типа дан­ных через вызовы методов и обращения к его атрибутам.

· в случае, если объект агрегатного типа данных больше не нужен, он мо­жет быть отсоединен от переменной посредством переприсваивания пе­ременной какого-либо значения базового типа (например, числа 0). От­соединение объекта выполнять не обязательно.

Пример:

// Создаем объект типа справочник.Сотрудники

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

// Позиционируем созданный объект Сотр по известному наименованию

Сотр.НайтиПоНаименованию(Петров);

Если Сотр.Выбран() = 1 Тогда

   // если сотрудник найден, отобразим его оклад

   Предупреждение(Оклады + Сотр.Оклад);

Иначе

   Предупреждение(Петров не найден + !!!);

КонецЕсли;

// отсоединяем объект

Сотр=0;

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

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

Агрегатными типами данных называются следующие типы данных:

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

Справочник — средство для ведения списков однородных элементов дан­ных. Помимо наименования элементов данных, списки могут содержать различную дополнительную информацию. Физическим аналогом справочника мо­жет являться картотека. Каждая карточка — это элемент справочника, а сведе­ния, заносимые в карточку, являются реквизитами справочника. Перечень спра­вочников, доступных в конкретной конфигурации, их названия и реквизиты определяются в конфигураторе.

Перечисление — средство работы с элементами данных, список возможных значений которых жестко задан (например, для перечисления «ФормаОплаты» можно задать возможные значения: «Нал», «Безнал»). В отличие от справочни­ков, списки значений в перечислении задаются в процессе их создания в конфи­гураторе и при выполнении задачи не могут быть изменены. Состав перечисле­ний, доступных в конкретной конфигурации, их названия и допустимые значе­ния определяются в конфигураторе.

Документ — средство для ввода первичной информации о совершаемых хо­зяйственных операциях. Перечень документов, доступных в конкретной конфи­гурации, их названия, реквизиты и другие свойства определяются в конфигура­торе.

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

ПланСчетов является служебным типом данных. Он предназначен для идентификации Плана счетов, созданного в метаданных. В основном он ис­пользуется для передачи в качестве параметра различным процедурам и функ­циям компоненты «Бухгалтерский учет» и для выбора плана счетов в формах. Тип значения «ПланСчетов» не поддерживает никаких данных в информаци­онной базе, а список возможных значений этого типа данных определен плана­ми счетов созданными в конфигурации. Значения типа «ПланСчетов» могут выступать как реквизиты диалога формы, как реквизиты документов, справоч­ников и т. д. Для получения значения такого типа данных используется гло­бальный атрибут ПланыСчетов, который имеет в свою очередь набор атрибу­тов типа «ПланСчетов» соответсвующих имеющимся в конфигурации планам счетов. Кроме того, глобальный атрибут ПланыСчетов имеет методы для обхо­да всех существующих планов счетов. (Данные типа ПланСчетов доступны только при наличии компоненты «Бухгалтерский учет»)

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

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

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

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

ЖурналРасчетов — средство для учета расчетных действий по тем или иным объектам расчета. Каждая строка журнала расчетов соответствует одному расчетному действию — акту расчета, выполняемому по определенному алго­ритму (виду расчета), в определенном временном интервале и имеющему ре­зультат. (ЖурналыРасчетов доступны только при наличии компоненты «Рас­чет»)

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

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

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

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

Текст — средство работы с текстовыми документами. В программных мо­дулях допускается создавать произвольное число объектов типа Текст при по­мощи вызова системной функции СоздатьОбъект.

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

СписокЗначений — средство для создания списка значений каких-либо данных и возможности в дальнейшем сортировать и выбирать нужные значе­ния из списка. При добавлении в диалоговых формах полей типа «Список» или «Поле со списком», система автоматически создает объекты СписокЗначений, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа СписокЗна­чений при помощи вызова системной функции СоздатьОбъект.

ТаблицаЗначений — средство для создания списка значений каких-либо данных и возможности в дальнейшем сортировать и выбирать нужные значе­ния из списка. При добавлении в диалоговых формах полей типа «Список» или «Поле со списком», система автоматически создает объекты СписокЗначений, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа СписокЗна­чений при помощи вызова системной функции СоздатьОбъект.

Картинка — средство для работы с графическими файлами. При добавле­нии в диалоговых формах и в таблицах полей типа «Картинка», система авто­матически создает объекты Картинка, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произ­вольное число объектов типа Картинка при помощи вызова системной функ­ции СоздатьОбъект.

Периодический — средство для работы с периодическими реквизитами справочников и периодическими константами. В программных модулях допус­кается создавать произвольное число объектов типа Периодический при помощи вызова системной функции СоздатьОбъект.

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

XBase — средство для работы с файлами баз данных DBF формата непо­средственно из встроенного языка системы 1С:Предприятие. В программных модулях допускается создавать произвольное число объектов типа XBase при помощи вызова системной функции СоздатьОбъект.

Англоязычные синонимы названий агрегатных типов данных

Названия агрегатных типов данных Англоязычные синонимы
Константа Const
Справочник Reference
Перечисление Enum
Документ Document
Регистр Register
ПланСчетов ChartOfAccounts
Счет Account
ВидСубконто SubcontoKind
Операция Operation
БухгалтерскиеИтоги BookkeepingTotals
ЖурналРасчетов CalcJournal
ВидРасчета CalculationKind
ГруппаРасчетов CalculationGroup
Календарь Calendar
Запрос Query
Текст Text
Таблица Table
СписокЗначений ValueList
ТаблицаЗначений ValueTable
Картинка Picture
Периодический Рег1odic
ФС FS
XBase Xbase

Атрибуты агрегатных типов данных

Атрибут — свойство агрегатного типа данных. В общем случае атрибуты могут размещаться в правой и в левой части оператора присваивания, в выра­жениях, быть параметром вызываемых методов, процедур или функций. Имена атрибутов можно использовать для того, чтобы определить или задать текущее значение атрибута конкретного объекта агрегатного типа данных. Некоторые атрибуты доступны только для чтения, это специально указывается при описа­нии этого атрибута в данном руководстве. Атрибуты только для чтения не мо­гут стоять в левой части оператора присваивания.

Доступ к атрибутам конкретного объекта агрегатного типа данных зависит от контекста программного модуля.

Если объект агрегатного типа данных входит (согласно контекста) в набор непосредственно доступных модулю значений агрегатных типов данных, то доступ к атрибуту — просто имя этого атрибута.

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

Пример:

*

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

А = Спр.Выбрать(Выберите объект, 0);

//Выбираем наименование и оклад как атрибуты справочника

Сообщить(Выбран сотрудник + Спр.Наименование);

Сообщить(Оклад - + Спр.Оклад );

*

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

А = Спр.Выбрать(Выберите объект, 0);

Док = СоздатьОбъект(Документ.ПриказНаДоплату);

Док.Новый();

// Устанавливаем атрибут НомерДок

Док.НомерДок = 777;

// Устанавливаем атрибут ДатаДок

Док.ДатаДок = '14.04.96';

Док.ТипРасчета = ВидРасчета.ДоплатаСуммой;

Методы агрегатных типов данных

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

Синтаксис вызова методов конкретного агрегатного типа данных зависит от контекста программного модуля.

Если объект агрегатного типа данных входит (согласно контекста) в набор непосредственно доступных модулю значений агрегатных типов данных, то вызов метода — просто имя этого метода с указанием необходимых параметров.

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

См. также: «Передача параметров»

Пример:

Спр = СоздатьОбъект(Справочник.Товары);

А = Спр.Выбрать(Выберите товар, 0);

Доку = СоздатьОбъект(Документ.НаклПрих);

Доку.Новый();                // Вызываем метод

Доку.Склад = 22;

Доку.НомерДок = 777;       // Устанавливаем номер документа

Доку.ДатаДок = '14.04.96';   // Устанавливаем дату документа

Доку.АвтоВремяОтключить();   // Вызываем метод

Доку.УстановитьВремя(17, 30, 00);

Доку.НоваяСтрока();          // Вызываем метод

Доку.Товар = Спр.ТекущийЭлемент();

Доку.Количество = 100;


Глава 3 Объявление переменных

В языке переменные не обязательно объявлять в явном виде. Неявным оп­ределением переменной является первое ее появление в левой части оператора присваивания. Возможно также явное объявление переменной при помощи оператора Перем. Тип переменной определяется типом присвоенного ей значе­ния. Не допускается использование в выражениях переменных с неопределен­ным значением (то есть переменных, которым никогда не присваивалось значе­ния).

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

Оператор объявления переменной

Перем

Объявление переменной в явном виде.

Синтаксис:

Перем Имя_переменной [[Размерность]] [Экспорт];

Англоязычный синоним:

Var:

Параметры



Имя_переменной Имя переменной.
[Размерность] Необязательная числовая константа (записывает­ся в квадратных скобках), указывается только в том случае, если объявляется массив и должна представляться в виде положительного целого числа.
Экспорт Необязательное ключевое слово Экспорт указы­вает, что данная переменная станет доступна для других модулей. Использование данного ключево­го слова имеет смысл только в глобальном про­граммном модуле.
Описание:

Оператор Перем в явном виде объявляет переменную.

Пример:

Перем Очень_Нужная_Переменная;

Перем Массив_Для_Хранения[10];

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

· В разделе определения переменных глобального программного модуля. Если переменные определены с ключевым словом Экспорт (см. опера­тор Перем), то это будут глобальные переменные.

· В разделе определения переменных модуля. Это переменные модуля.

· В процедуре или функции. Это локальные переменные.

Глобальные переменные доступны для использования в исполняемых опе­раторах, выражениях, в любой процедуре и функции любого программного мо­дуля конфигурации задачи.

Переменные модуля доступны для использования в исполняемых операто­рах, выражениях, в любой процедуре и функции того программного модуля, в пределах которого они объявлены.

Локальные переменные доступны в пределах той процедуры или функции, в которой они объявлены.

Если переменная определена как глобальная переменная, то она видна из всех процедур и функций любого программного модуля конфигурации задачи. Если же переменная определена внутри процедуры, то её областью видимости является данная процедура или функция. Таким образом, если две переменные с одинаковыми именами используются в двух различных процедурах модуля, и имя этой переменной не упоминается как глобальная переменная, то это две различные переменные, локальные для процедур. Если же переменная опреде­лена как глобальная переменная, то любое использование имени этой перемен­ной будет приводить к обращению к одной и той же переменной.

Единственный способ создать для процедуры локальную переменную с именем, совпадающим с именем переменной, определенной как глобальная пе­ременная — это объявить ее явно при помощи оператора Перем.


Глава 4 Выражения и оператор присваивания

Выражения Выражение — это математическая или логическая формула, по которой вы­числяется значение. Математическое выражение может стоять справа от знака равенства в операторах присваивания, быть параметром процедур или функ­ций, индексом массива переменных. Логическое выражение может быть услови­ем в управляющих операторах Если, Пока, Для. Выражения состоят из кон­стант, переменных и функций, связанных символами логических и/или ариф­метических операций.

Арифметические операции

В языке определены следующие виды арифметических операций:

сложение (Оп1 + Оп2)
вычитание (Оп1 - Оп2)
умножение (Оп1 * Оп2)
деление (Оп1 / Оп2)
остаток от деления (Оп1 % Оп2)
унарный минус (-Оп1)
Арифметические операции имеют один или два операнда, в зависимости от типа которых операция имеет ту или иную семантику. Тот или иной семанти­ческий вариант операции определяется по первому операнду. В случае несовпа­дения типа второго операнда с требуемым, значение преобразуется к требуемо­му типу в соответствии с правилами преобразования типов. Если тип первого операнда не соответствует ни одному из допустимых типов, то в зависимости от ситуации может производиться преобразование типов или возбуждаться состояние ошибки выполнения.

Сложение определено для следующих типов операндов: Число + Число
Дата + Число (к дате прибавля­ется число дней)
Вычитание определено для следующих типов операндов: Число – Число
Дата – Число (от даты отнимает­ся число дней)
Дата – Дата (результатом явля­ется число дней между датами)
Умножение: Число * Число
Деление: Число / Число
Остаток от деления: Число % Число
Замечание. При выполнении операции % (остаток от деления) оба операнда операции округляются до целого значения.

Операция конкатенации

Операция конкатенации (+) используется для того, чтобы присоединить одну строку к другой. Длина результирующей строки равна сумме длин соеди­няемых строк. В случае несовпадения типа данных второго или последующих операндов со строковым типом, их значение преобразуется к строковому типу в соответствии с правилами преобразования типов.

Пример:

· Для того, чтобы удалить ненужные пробелы, используются системные функции СокрЛ и СокрП.

ФИО = СокрП(Фамилия) + + СокрП(Имя) + + СокрП(Отчество);

Логические операции

Логическая операция сравнивает операнды и вырабатывает логическое зна­чение: «истина» или «ложь». Существует два вида логических операций: опера­ции сравнения и булевы операции. В операциях сравнения сравниваются два значения. Булевы операции выполняются над логическими значениями, реали­зуя булеву алгебру. Символы булевых операций могут комбинироваться, обра­зуя составные операции.

Операции сравнения:

В языке определены следующие виды операций сравнения:

больше (Оп1 Оп2)
больше или равно (Оп1 = Оп2)
равно (Оп1 = Оп2)
не равно (Оп1 Оп2)
меньше (Оп1 Оп2)
меньше или равно (Оп1 = Оп2)
Операции сравнения определены для следующих типов операндов:

Больше  Число Число
Строка Строка
Дата Дата
Больше или равно:             Число = Число
Строка = Строка
Дата = Дата
Меньше:               Число Число
Строка Строка
Дата Дата
Меньше или равно:            Число = Число
Строка = Строка
Дата = Дата
Равно:    Число = Число
Строка = Строка
Дата = Дата
АгрегатныйТип = АгрегатныйТип
Не равно:              Число Число
Строка Строка
Дата Дата
АгрегатныйТип АгрегатныйТип
Булевы операции:

В языке определены следующие виды булевых операций:

И или AND конъюнкция (булево И)
ИЛИ или OR дизъюнкция (булево ИЛИ)
НЕ или NOT логическое отрицание (булево отрицание НЕ)

Числовые константы

Константа числового типа представляется в виде:

[‘+’| ‘-’]{‘0’|’1’|’2’|’3’|’4’|’5’|’6’|’7’|’8’|’9’}[.{‘0’|’1’|’2’|’3’|’4’|’5’|’6’|’7’|’8’|’9’}]

Пример:

0   123      -15      +24.11      0.245

Константы даты

Дата задается в формате 'ДД.ММ.ГГ' или 'ДД.ММ.ГГГГ' (дата заключается в одиночные кавычки). Неопределенная дата задается как '00.00.00'.

Пример:

'12.04.95'      '01.01.1996'

Строковые константы

Константа строкового типа представляется как любая последовательность символов, заключенных в двойные кавычки.

Пример:

Ура заработала

Это самая правильная строка



Кроме того, допускаются «многострочные» строковые константы. В исход­ном тексте многострочные константы могут задаваться двумя способами:

· Первый вариант: В данном случае между фрагментами, представляющими отдельные строки многострочной константы, не должно встречаться ника­ких символов, за исключением пробелов, переводов строки и строк ком­ментариев.

Пример:

Стр = Первая строка    // пример строковой константы

Вторая строка

Третья строка;

· Второй вариант: В данном примере значение константы полностью иден­тично предыдущему примеру. Отличие заключается в том, что каждая от­дельная составляющая не замыкается кавычками, а на каждой последую­щей строке помещен символ переноса строки |. В этом варианте коммен­тарии между открывающей и закрывающей кавычками не допускаются.

Пример:

Стр = Первая строка

   |Вторая строка

   |Третья строка;

Строковые выражения

Строковые выражения могут использоваться в качестве параметров мето­дов, процедур и функций, либо в правой части оператора присваивания. Стро­ковым выражением может быть отдельная строка или сложное сочетание стро­ковых констант, функций и операций. То, что выражение является строковым, определяется по первому операнду. В случае несовпадения типа второго и по­следующих операндов со строковым типом, их значения преобразуются к тре­буемому типу в соответствии с правилами преобразования типов. Чтобы ука­зать, что выражение является строковым, можно, например, начинать его с пус­той строки символов .

Пример:

Стр = СокрП(Фамилия + , + Имя + , + отчество);

Стр1 = + Докум.Цена + Валюта.СокрНаим;

Логические выражения

В логических выражениях происходит вычисление логического значения (истина/ложь). Обычно логические выражения используются в управляющих операторах, в которых на основании результата логического выражения опре­деляется дальнейшая последовательность выполнения программы. Логические выражения вычисляются слева направо. Для того, чтобы избежать неоднознач­ности и управлять последовательностью операндов, следует применять круглые скобки.

Уровни старшинства логических операций:

Уровень 1 операнды, заключенные в скобки
Уровень 2 NOT
Уровень 3 AND
Уровень 4 OR
Пример:

Стр = Угадал!;

а = ВвестиСтроку(Стр, Назови пароль!, 15);

Если (а=1) И ((Стр = пароль) ИЛИ (Стр = Пароль)) Тогда

   Сообщить(Стр);

КонецЕсли;

Оператор присваивания Синтаксис:

Назначение = Источник;

Параметры:

Назначение В качестве Назначения может выступать простая переменная, элемент массива, атрибут агрегатного типа данных (который допускает запись). Элемент массива задается как

Имя_массива[Индексное_выражение].
Источник Выражение.
Описание:

Оператор присваивания (символ =) означает присваивание значения Источник переменной, обозначенной как Назначение.

Пример:

А = В;

Стр1 = 777;

ДатаДок = '14.04.96';


Глава 5 Управляющие операторы

Управляющие конструкции

Если

Оператор условного выполнения.

Синтаксис:

Если Логическое_выражение Тогда

   //операторы;

[ИначеЕсли Логическое_выражение Тогда]

   //операторы;

[Иначе]

   //операторы;

КонецЕсли;

Англоязычный Синтаксис:

If Логическое_выражение Then

   //операторы;

[Elsif Логическое_выражение Then]

   //операторы;

[Else]

   //операторы;

Endlf;

Параметры:

Логическое_выражение Логическое выражение.
Тогда Операторы следующие за Тогда вы­полняются, если результатом логиче­ского выражения в конструкции Если является истина.
//операторы Исполняемый оператор или последова­тельность таких операторов.
ИначеЕсли Логическое выражение, следующее за ключевым словом ИначеЕсли вычис­ляется только тогда, когда условия в Если и всех предшествующих ИначеЕсли оказались ложными. Опе­раторы следующие за конструкцией ИначеЕсли — Тогда выполняются, если результатом логического выраже­ния в данном ИначеЕсли является ис­тина.
Иначе Операторы, следующие за ключевым словом Иначе выполняются, если ре­зультаты логических выражений в кон­струкции Если и всех предшествующих конструкциях ИначеЕсли оказались ложными.
КонецЕсли Ключевое слово, которое завершает структуру оператора условного выпол­нения.


Описание:

Оператор Если управляет выполнением программы, основываясь на ре­зультате одного или более логических выражений. Оператор может содер­жать любое количество групп операторов, возглавляемых конструкциями

ИначеЕсли — Тогда.

Пример:

Если (РабочаяДата() '01.01.95') И (Сег = Понедельник) Тогда

   Сообщить(Сегодня + + Сег + + РабочаяДата());

КонецЕсли;

Пока

Оператор выполнения цикла.

Синтаксис:

Пока Логическое_выражение Цикл

   //операторы;

КонецЦикла;

Англоязычный Синтаксис:

While Логическое_выражение Do

   //операторы;

EndDo;

Параметры:

Логическое_выражение Логическое выражение.
Цикл Операторы, следующие за ключевым сло­вом Цикл, выполняются, пока результа­том логического выражения является истина.
//операторы; Исполняемый оператор или последова­тельность таких операторов.
КонецЦикла Ключевое слово, которое завершает структуру оператора цикла.
Описание:

Оператор цикла Пока предназначен для циклического повторения операто­ров, находящиеся внутри конструкции Цикл ... КонецЦикла. Цикл выполняет­ся пока логическое выражение — истина. Условие выполнения цикла все­гда проверяется вначале, перед выполнением цикла.

Пример:

Док = СоздатьОбъект(Документ.БригадныйНаряд);

// Будем просматривать документы в интервале дат

Док.ВыбратьДокументы('11.01.88', '11.01.99');

// Цикл по всем Документам

Пока (Док.ПолучитьДокумент() = 1) Цикл

   // отобразим Документ в строке состояния

   Состояние(Док.Вид() + + Док.НомерДок + + Док.ДатаДок);

   Док.ВыбратьСтроки();

   // вложенный цикл по всем строкам Документа

   Пока(Док.ПолучитьСтроку() 0) Цикл

      Если Док.КодРабот = 104 Тогда

         Сообщить( + Док.НомерДок);

      КонецЕсли;

   КонецЦикла;

КонецЦикла;

Для

Оператор выполнения цикла.

Синтаксис:

Для Имя_переменной = Выражение1 По Выражение2 Цикл

   //Операторы;

КонецЦикла;

Англоязычный Синтаксис:

For Имя_переменной = Выражение1 То Выражение2 Do

   //Операторы;

EndDo;

Параметры:

Имя_переменной Идентификатор переменной (счетчика цикла), значение которой автоматически увеличивается при каждом повторении цикла.
Выражение 1 Числовое выражение, которое задает на­чальное значение, присваиваемое счетчику цикла при первом проходе цикла.
По Синтаксическая связка для параметра Выражение2.
Выражение 2 Максимальное значение счетчика цикла. Когда переменная Имя_переменной стано­вится больше чем Выражение2, выпол­нение оператора цикла Для прекращается. Величина приращения счетчика при каж­дом выполнении цикла равна 1.
Цикл Операторы следующие за ключевым сло­вом Цикл выполняются, пока значение переменной Имя_переменной меньше зна­чения Выражение2.
//Операторы Исполняемый оператор или последова­тельность таких операторов.
КонецЦикла Ключевое слово, которое завершает струк­туру оператора цикла.


Описание:

Оператор цикла Для предназначен для циклического повторения операто­ров, находящиеся внутри конструкции Цикл ... КонецЦикла. Перед началом выполнения цикла значение Выражение1 присваивается переменной Имя_переменной. Значение Имя_переменной автоматически увеличи­вается при каждом проходе цикла. Цикл выполняется пока значение перемен­ной Имя_переменной меньше или равно значению Выражение2. Вели­чина приращения счетчика при каждом выполнении цикла равна 1. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.

Пример:

// Выведем все строки текста

Выв = СоздатьОбъект(Текст);

Выв.Открыть(ТТТ);

Для i = l по Выв.КоличествоСтрок() Цикл

   Сообщить(Выв.ПолучитьСтроку(i));

КонецЦикла;

Попытка

Обработка исключительных ситуаций.

Синтаксис:

Попытка

   // Некоторые действия;

Исключение

   // Обработка исключительной ситуации;

КонецПопытки;

Англоязычный Синтаксис:

Try

   // Некоторые действия;

Except

   // Обработка исключительной ситуации;

EndTry;

Параметры:

// Некоторые действия Исполняемый оператор или последова­тельность таких операторов.
// Обработка исключительной ситуации Исполняемый оператор или последовательность операторов, которые обраба­тывают исключительную ситуацию.
Исключение Операторы, следующие за ключевым словом Исключение выполняются, если при выполнении последовательно­сти операторов // Некоторые действия произошла ошибка времени вы­полнения.
КонецПопытки Ключевое слово, которое завершает структуру оператора обработки исклю­чительных ситуаций.
Описание:

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

В качестве ошибочных (исключительных) ситуаций воспринимаются ошиб­ки времени выполнения модуля. Не предусмотрено определяемых пользовате­лем исключений.

Если при выполнении последовательности операторов // Некоторые действия произошла ошибка времени выполнения, то выполнение оператора, вызвавшего ошибку прерывается и управление передается на первый оператор последовательности операторов // Обработка исключительной ситуации. При этом управление будет передано даже в том случае, если ошибку вызвал оператор, находящийся в процедуре или функции, вызванной из // Некото­рые действия. Если ошибка произошла в вызванной процедуре или функции, то ее выполнение будет прервано, а локальные переменные уничтожены. Это справедливо для любой вложенности вызовов. После выполнения последова­тельности операторов // Обработка исключительной ситуации управление передается на следующий за ключевым словом КонецПопытки оператор. Если же последовательность // Некоторые действия выполнилась без ошибок, то последовательность операторов // Обработка исключительной ситуации будет пропущена и управление также будет продолжено с оператора, следующе­го за ключевым словом КонецПопытки.

Конструкции Попытка-Исключение-КонецПопытки могут быть вложен­ными. При этом, при возникновении исключительной ситуации управление будет передано на самый «внутренний» обработчик, начинающийся с ключево­го слова Исключение. Последовательность операторов // Обработка ис­ключительной ситуации может содержать оператор ВызватьИсключение (англоязычный синоним Raise). Выполнение данного оператора прекращает выполнение последовательности // Обработка исключительной ситуации и производится поиск более «внешнего» обработчика. Если таковой есть, то управление передается на его первый оператор. Если нет, то выполнение моду­ля прекращается с выдачей сообщения о первоначально возникшей ошибке. Оператор ВызватьИсключение может встречаться только внутри операторных скобок Исключение ... КонецПопытки.

В выдаче диагностики помощь может оказать встроенная функция ОписаниеОшибки() (англоязычный синоним GetErrorDescription). Эта функция не имеет параметров, а в качестве значения возвращает описание ошибки, такое же, как было бы выдано в окне сообщений, в случае отсутствия обработчика исключительной ситуации, за исключением описания модуля и строки, в которой ошибка возникла. Применять данную функцию имеет смысл только при выполнении последовательности операторов // Обработка исклю­чительной ситуации, так как в ином случае она вернет пустую строку.

Пример:

Процедура СформироватьВЕхсеl()

   Попытка

      // пытаемся обратиться к программе MS Excel

      Табл = СоздатьОбъект(Excel.Application);

   Исключение

      Предупреждение(ОписаниеОшибки() +

           ; Excel не установлен на данном компьютере!);

      Возврат;

   КонецПопытки;

   // Формирование отчета

   ...

КонецПроцедуры

Управляющие операторы

Перейти

Безусловная передача управления на другой оператор программы.

Синтаксис:

Перейти Метка;

Англоязычный синоним:

Goto

Параметры:

Метка Метка другого исполняемого оператора в программе.
Описание:

Безусловная передача управления на другой оператор программы. Оператор Перейти передает управление от одного оператора к другому. Метка в этом операторе не должна быть меткой перехода на оператор Процедура или Функция.

Область действия оператора Перейти ограничивается программным моду­лем, процедурой или функцией; он не может передать управление за пределы программного модуля, процедуры или функции.

Оператор безусловного перехода не может быть использован для передачи управления на операторы, находящиеся внутри конструкций: Пока ... КонецЦикла, Для ... КонецЦикла, Если ... ИначеЕсли ... Иначе ... КонецЕсли, Попытка ... Исключение ... КонецПопытки извне этих конструкций.

Пример:

     // Выведем строки текста

     Выв = СоздатьОбъект(Текст);

     Выв.Открыть(ТТТ);

     Для i = l По Выв.КоличествоСтрок() Цикл

        Если i = 10 Тогда

           Перейти ~М1;

        КонецЕсли;

        Сообщить(Выв.ПолучитьСтроку(i));

        Перейти ~М2;

~М1:    Сообщить(Это десятая строка);

~М2: КонецЦикла;

Продолжить

Передача управления в начало цикла.

Синтаксис:

Продолжить;

Англоязычный синоним:

Continue;

Описание:

Передает управление в начало цикла. Оператор Продолжить немедленно передает управление в начало цикла, где производится вычисление и проверка условий выполнения цикла. Оператор Продолжить может использоваться только внутри конструкций операторов цикла Пока и Для.

Пример:

// Выведем строки текста начиная с 5

Выв = СоздатьОбъект(Текст);

Выв.Открыть(ТТТ);

Для i = 1 По Выв.КоличествоСтрок() Цикл

   Если i 5 Тогда

      Продолжить;

   КонецЕсли;

   Сообщить(Выв.ПолучитьСтроку(i));

КонецЦикла;

Прервать

Прерывает выполнение цикла.

Синтаксис:

Прервать

Англоязычный синоним:

Break

Описание:

Прерывает выполнение цикла. Оператор Прервать приводит к немедлен­ному прекращению выполнения цикла и передает управление первому опера­тору, следующему за конструкцией оператора Пока или Для. Оператор Прервать может использоваться только внутри конструкций операторов цик­ла Пока и Для.

Пример:

// Выведем строки текста с 1 по 10

Выв = СоздатьОбъект(Текст);

Выв.Открыть(ТТТ);

Для i = l По Выв.КоличествоСтрок() Цикл

   Сообщить(Выв.ПолучитьСтроку(i));

   Если i=10 Тогда

      Прервать;

   КонецЕсли;

КонецЦикла;

Возврат

Завершение процедуры или функции.

Синтаксис:

Возврат [Выражение]

Англоязычный синоним:

Return

Параметры:

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

Оператор Возврат завершает выполнение процедуры или функции и пере­дает управление в вызвавшую точку программы. Оператор Возврат обязателен в функции и необязателен в процедуре. Если в процедуре не используется опе­ратор Возврат, то его неявное выполнение происходит вслед за последним исполняемым оператором процедуры. Данный оператор может применяться только в теле описания процедуры или функции, причем Выражение может задаваться только в случае использования оператора в контексте функции.

Пример:

Функция ДеньНедели(Номер)

   Если Номер =1 Тогда

      Return понедельник;

   ИначеЕсли Номер =2 Тогда

      Возврат вторник;

   ИначеЕсли Номер =3 Тогда

      Возврат среда;

   ИначеЕсли Номер =4 Тогда

      Возврат четверг;

   ИначеЕсли Номер =5 Тогда

      Возврат пятница;

   ИначеЕсли Номер =6 Тогда

      Возврат суббота;

   ИначеЕсли Номер =7 Тогда

      Возврат воскресенье;

   Иначе

      Возврат ошибка;

   КонецЕсли;

КонецФункции

Специальные конструкции языка

#ЗагрузитьИзФайла

Переключение загрузки программного модуля на загрузку из тексто­вого файла.

Синтаксис:

#ЗагрузитьИзФайла ИмяФайла

Англоязычный синоним:

ftLoadFromFile

Параметры:

ИмяФайла Имя файла, содержащего исходный текст программного модуля (записывается без кавычек и скобок).
Описание:

Данная конструкция переключает загрузку программного модуля на загруз­ку из указанного файла. Специальная конструкция #ЗагрузитьИзФайла должна записываться в первой строке программного модуля с первой позиции. Ее использование рекомендуется для отладки, чтобы быстро отлаживать код какого-либо программного модуля без промежуточного сохранения всей кон­фигурации. Данная конструкция переключает загрузку программного модуля конфигурации на загрузку из указанного файла. Содержимое программного модуля конфигурации при этом игнорируется.

Для редактирования собственно файла, откуда загружается текст программ­ного модуля, можно использовать встроенный текстовый редактор системы 1С:Предприятие , открывая его через главное меню «Файл» — «Открыть». Да­лее, если выбрать в главном меню «Действия» — «Текст модуля», то это позво­лит при редактировании использовать свойства контекстного выделения цве­том синтаксических конструкций языка и установленную для программных модулей ширину табуляции.

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

После окончания отладки текста программного модуля в файле, следует пе­ренести текст из файла в программный модуль конфигурации.

Замечание: #ЗагрузитьИзФайла является не оператором, а специальной конструкцией, поэтому не должна заканчиваться точкой с запятой.

Пример:

#ЗагрузитьИзФайла NEW_MOD.TXT


Глава 6 Системные константы

Системные константы — это константы, которые доступны в любом про­граммном модуле конфигурации. Они могут размещаться в правой части опе­ратора присваивания, в выражениях, могут использоваться в качестве парамет­ров вызываемых методов, процедур или функций. Имена системных констант можно использовать только для того, чтобы получить их значения. Системные константы не могут стоять в левой части оператора присваивания.

Строковые системные константы

РазделительСтраниц

Содержит строковое значение перевода страницы текста.

Синтаксис:

РазделительСтраниц

Англоязычный синоним:

PageBreak

Описание:

Системная константа РазделительСтраниц содержит строковое значение перевода страницы текста. Данная системная константа применяется для вставки или поиска в тексте строкового значения перевода страницы текста.

Пример:

Выв=СоздатьОбъект(Текст);

Выв.ДобавитьСтроку(Страница 1);

Выв.ДобавитьСтроку(РазделительСтраниц);

Выв.ДобавитьСтроку(Страница 2);

Выв.Показать();

РазделительСтрок

Содержит строковое значение перевода строки текста.

Синтаксис:

РазделительСтрок

Англоязычный синоним:

LineBreak

Описание:

Системная константа РазделительСтрок содержит строковое значение перевода строки текста. Данная системная константа применяется для вставки или поиска в тексте строкового значения перевода строки текста

Пример:

Выв=СоздатьОбъект(Текст);

Выв.ДобавитьСтроку(Страница 1);

Выв.ДобавитьСтроку(РазделительСтрок);

Выв.ДобавитьСтроку(Страница 2);

Выв.Показать();

СимволТабуляции

Содержит строковое значение символа табуляции.

Синтаксис:

СимволТабуляции

Англоязычный синоним:

TabSymbol

Описание:

Системная константа СимволТабуляции содержит строковое значение символа табуляции. Данная системная константа применяется для вставки или поиска в тексте строкового значения символа табуляции.

Пример:

Выв=СоздатьОбъект(Текст);

Выв.ДобавитьСтроку(Страница 1);

Выв.ДобавитьСтроку(СимволТабуляции);

Выв.ДобавитьСтроку(Страница 2);

Выв.Показать();


Глава 7 Системные процедуры и функции

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

Математические функции

Окр

Округлить число.

Синтаксис:

Окр(Число1, [Число2], [Спосо6])

Англоязычный синоним:

Round

Параметры:

Число1 Числовое выражение, значение которого надо округлить.
Число2 Необязательный параметр. Числовое выражение, значение которого — формат округления (число знаков дробной части (если Число2 отрицательно, то округляется до соответствующего количества знаков целой части). Значе­ние этого параметра по умолчанию — 0.
Способ Необязательный параметр. Числовое выражение — способ округления: 0 — если при округлении 1.5 = 1; 1 — если при округлении 1.5 = 2. Значение по умолчанию — 0.
Возвращаемое значение:

Числовое значение результата округления.

Описание:

Функция Окр возвращает числовое значение результата округления Число1 до Число2 знаков дробной части (если Число2 отрицательно, то округляется до соответствующего количества знаков целой части). Параметр Число2 может быть опущен, при этом принимается, что Число2 = 0.

Пример:

ОкруглЦена = Окр(ЦЕНА, -2);

Цел

Получить целую часть числа.

Синтаксис:

Цел(Число)

Англоязычный синоним:

Int

Параметры:

Число Числовое выражение.
Возвращаемое значение:

Числовое значение целой части переданного в качестве параметра числа.

Описание:

Функция Цел возвращает целую часть переданного в качестве параметра числа, полностью отсекая дробную часть.

Пример:

МожноКупить = Цел(Наличность/Цена);

Мин

Определить минимальное значение.

Синтаксис:

Мин(Элемент1, ..., ЭлементN)

Англоязычный синоним:

Min

Параметры:

Элемент1, ..., ЭлементN Список выражений базовых типов данных.
Возвращаемое значение:

Значение минимального элемента из списка Элемент1, ..., ЭлементN

Описание:

Функция Мин определяет минимальное значение из списка Элемент1, ..., ЭлементN.

Тот или иной семантический вариант функции определяется по типу дан­ных первого параметра. В случае несовпадения типа второго и последующих параметров с требуемым, их значения преобразуются к требуемому типу в со­ответствии с правилами преобразования типов. Если тип первого операнда не соответствует ни одному из допустимых типов, то в зависимости от ситуации может производиться преобразование типов или возбуждаться состояние ошибки исполнения.

Пример:

МинимЦена = Мин(Цена1, Цена2, ЦенаЗ);

Макс

Определить максимальное значение.

Синтаксис:

Макс(Элемент1, ..., ЭлементN)

Англоязычный синоним:

Мах

Параметры:

Элемент1, ..., ЭлементN                Список выражений базовых типов данных.

Возвращаемое значение:

Значение максимального элемента из списка Элемент1, ..., ЭлементN

Описание:

Функция Макс определяет максимальное значение из списка Элемент1, ..., ЭлементN.

Тот или иной семантический вариант функции определяется по типу дан­ных первого параметра. В случае несовпадения типа второго и последующих параметров с требуемым, их значения преобразуются к требуемому типу в со­ответствии с правилами преобразования типов. Если тип первого операнда не соответствует ни одному из допустимых типов, то в зависимости от ситуации может производиться преобразование типов или возбуждаться состояние ошибки исполнения.

Пример:

МаксимЦена = Макс(Цена1, Цена2, ЦенаЗ);

Лог10

Вычислить десятичный логарифм числа.

Синтаксис:

Лог10(Число)

Англоязычный синоним:

Log10

Параметры:

Число Числовое выражение.
Возвращаемое значение:

Числовое значение результата вычисления десятичного логарифма.

Описание:

Функция Лог10 вычисляет и возвращает десятичный логарифм числа. При отрицательном или нулевом значении параметра возвращаемое значение — 0.

Пример:

Шкала = Лог10(Частота);

Лог

Вычислить натуральный логарифм числа.

Синтаксис:

Лог(Число)

Англоязычный синоним:

Ln

Параметры:

Число Числовое выражение.
Возвращаемое значение:

Числовое значение результата вычисления натурального логарифма.

Описание:

Функция Лог вычисляет и возвращает натуральный логарифм числа. При отрицательном или нулевом значении параметра возвращаемое значение — 0.

Пример:

Шкала = Лог(Частота);

Строковые функции

СтрДлина

Получить длину строки.

Синтаксис:

СтрДлина(Строка)

Англоязычный синоним:

StrLen

Параметры:

Строка Строковое выражение.
Возвращаемое значение:

Числовое значение длины строки.

Описание:

Функция СтрДлина получает в качестве параметра строку и возвращает чи­словое значение ее длины.

Пример:

Длина = СтрДлина(Измерим длину строки);

ПустаяСтрока

Проверить строку на наличие значащих символов.

Синтаксис:

ПустаяСтрока(Строка)

Англоязычный синоним:

IsBlankString

Параметры:

Строка Строковое выражение.
Возвращаемое значение:

Числовое значение. 1 — пустая строка или только пробелы. 0 — не пустая строка.

Описание:

Функция ПустаяСтрока проверяет переданный параметр Строка на наличие значащих символов (любых кроме пробелов) и возвращает число 1, если строка пустая или содержит только пробелы, 0 , если строка не пустая.

Пример:

Если ПустаяСтрока(Буфер) = 1 Тогда

   // если Буфер содержит только пробелы, то его удаляем

   Буфер = ;

КонецЕсли;

СокрЛ

Отбросить в строке стоящие слева пробелы.

Синтаксис:

СокрЛ(Строка)

Англоязычный синоним:

TrimL

Параметры:

Строка Строковое выражение.
Возвращаемое значение:

Строковое значение.

Описание:

Функция СокрЛ получает в качестве параметра строку, отсекает стоящие слева пробелы и возвращает результирующую строку.

Пример:

СтрЦена = СокрЛ(Цена) + руб.;

СокрП

Отбросить в строке стоящие справа пробелы.

Синтаксис:

СокрП(Строка)

Англоязычный синоним:

TrimR

Параметры:

Строка Строковое выражение.
Возвращаемое значение:

Строковое значение.

Описание:

Функция СокрП получает в качестве параметра строку, отсекает стоящие справа пробелы и возвращает результирующую строку.

Пример:

ФИО = СокрП(Фамилия) + + СокрП(Имя) + + СокрП(Отчество);

СокрЛП

Отбросить в строке пробелы, стоящие слева и справа.

Синтаксис:

СокрЛП(Строка)

Англоязычный синоним:

TrimAll

Параметры:

Строка Строковое выражение.
Возвращаемое значение:

Строковое значение.

Описание:

Функция СокрЛП получает в качестве параметра строку, отсекает стоящие слева и справа пробелы, и возвращает результирующую строку.

Пример:

ФИО = СокрЛП(Фамилия) + + СокрП(Имя) + + СокрП(Отчество);

Лев

Выбрать в строке символы слева.

Синтаксис:

Лев (Строка, Число)

Англоязычный синоним:

Left

Параметры:

Строка Строковое выражение.
Число Числовое выражение.
Возвращаемое значение:

Строковое значение.

Описание:

Функция Лев получает в качестве параметра строку, выбирает первые слева символы строки, числом равные Число, и возвращает в качестве значения результирующую строку.

Пример:

Фамилия = Лев(ФИО, 15);

Прав

Выбрать в строке символы справа.

Синтаксис:

Прав(Строка, Число)

Англоязычный синоним:

Right

Параметры:

Строка Строковое выражение.
Число Числовое выражение.
Возвращаемое значение:

Строковое значение.

Описание:

Функция Прав получает в качестве параметра строку, выбирает крайние справа символы строки, числом равные Число, и возвращает в качестве зна­чения результирующую строку.

Пример:

Отчество = Прав(ФИО, 15);

Сред

Выбрать подстроку.

Синтаксис:

Сред(Строка, Число1, Число2)

Англоязычный синоним:

Mid

Параметры:

Строка Строковое выражение.
Число1 Числовое выражение, начальный номер символа.
Число2 Числовое выражение, количество символов.
Возвращаемое значение:

Строковое значение.

Описание:

Функция Сред возвращает подстроку параметра Строка, начиная с сим­вола с номером Число1 общим количеством Число2. Позиции в строке считаются, начиная с 1. Параметр Число2 может быть опущен, тогда выде­ляются все символы начиная с символа с номером Число1 до конца строки.

Пример:

Имя = Сред(ФИО, 10, 12);

Найти

Найти вхождение подстроки.

Синтаксис:

Найти(Строка1, Строка2)

Англоязычный синоним:

Find

Параметры:

Строка1 Строковое выражение места поиска.
Строка2 Строковое выражение шаблона поиска.
Возвращаемое значение:

Числовое значение позиции первого знака найденной подстроки.

Описание:

Функция Найти находит вхождение строки Строка2 как подстроки в Строка1. Возвращает числовое значение позиции первого знака найденной подстроки (первая позиция имеет индекс 1). Если не находит — возвращает число 0.

Пример:

Симв = Найти(ФИО, Борис);

СтрЗаменить

Заменить вхождение подстроки другим значением.

Синтаксис:

СтрЗаменить(СтрИсточник, СтрПодстрока, СтрЗамены)

Англоязычный синоним:

StrReplace

Параметры:

СтрИсточник Строковое выражение места поиска.
СтрПодстрока Строковое выражение шаблона поиска.
СтрЗамены Строковое выражение замены.
Возвращаемое значение:

Результирующая строка.

Описание:

Функция СтрЗаменить находит вхождение строки СтрПодстрока как подстроки в СтрИсточник и заменяет его на СтрЗамены. Результирую­щую строку возвращает в качестве собственного значения. Исходная строка не изменяется.

Пример:

Результат = СтрЗаменить(СтрИсточник, СтрПодстрока, СтрЗамены);

СтрЧислоВхождений

Вычислить число вхождений подстроки.

Синтаксис:

СтрЧислоВхождений(СтрИсточник, СтрПодстрока)

Англоязычный синоним:

StrCountOccur

Параметры:

СтрИсточник Строковое выражение места поиска.
СтрПодстрока Строковое выражение шаблона поиска.
Возвращаемое значение:

Число вхождений.

Описание:

Функция СтрЧислоВхождений вычисляет число вхождений строки СтрПодстрока как подстроки в СтрИсточник.

Пример:

Результат = СтрЧислоВхождений(СтрИсточник, СтрПодстрока);

СтрКоличествоСтрок

Определить число строк в многострочном тексте.

Синтаксис:

СтрКоличествоСтрок(Строка)

Англоязычный синоним:

StrLineCount

Параметры:

Строка Строковое выражение, в котором строки раз­делены символами перевода строк.
Возвращаемое значение:

Число строк в многострочном тексте.

Описание:

Функция СтрКоличествоСтрок вычисляет число строк в многострочном тексте (строки разделены символами перевода строк).

Пример:

Рез = СтрКоличествоСтрок(ДлТекст);

См. также: РазделительСтрок

СтрПолучитьСтроку

Получить строку из многострочного текста по номеру.

Синтаксис:

СтрПолучитьСтроку(Текст, НомерСтроки)

Англоязычный синоним:

StrGetLine

Параметры:

Текст Строковое выражение, в котором строки раз­делены символами перевода строк.
НомерСтроки Числовое выражение, начальный номер сим­вола.
Возвращаемое значение:

Строковое значение.

Описание:

Функция СтрПолучитьСтроку возвращает строку с номером НомерСтроки из многострочного текста Текст (строки разделены символами перевода строк).

Пример:

ВтораяСтрока = СтрПолучитьСтроку(ДлТекст, 2);

См. также: РазделительСтрок

Врег

Преобразовать символы строки в верхний регистр.

Синтаксис:

ВРег(Строка)

Англоязычный синоним:

UpРег

Параметры:

Строка Строковое выражение.
Возвращаемое значение:

Строковое значение.

Описание:

Функция ВРег преобразует все символы строки в верхний регистр. Резуль­тирующую строку возвращает в качестве собственного значения. Исходная строка не изменяется.

Пример:

Загл = ВРег(маленькие);

Нрег

Преобразовать символы строки в нижний регистр.

Синтаксис:

НРег(Строка)

Англоязычный синоним:

Lower

Параметры:

Строка Строковое выражение.
Возвращаемое значение:

Строковое значение.

Описание:

Функция НРег преобразует все символы строки в нижний регистр. Резуль­тирующую строку возвращает в качестве собственного значения. Исходная строка не изменяется.

Пример:

Загл = НРег(БОЛЬШИЕ);

OemToAnsi

Преобразовать строку в кодировку ANSI.

Синтаксис:

OemToAnsi(Строка)

Англоязычный синоним:

OemToAnsi

Параметры:

Строка Строковое выражение.
Возвращаемое значение:

Строковое значение.

Описание:

Функция OemToAnsi используется для перевода строки из DOS-кодировки в Windows-Кодировку. Результирующая строка возвращается в качестве собст­венного значения. Исходная строка не изменяется.

Пример:

Загл = OemToAnsi(ТекстDOS);

AnsiToOem

Преобразовать строку в кодировку OEM.

Синтаксис:

AnsiToOem(Строка)

Англоязычный синоним:

AnsiToOem

Параметры:

Строка Строковое выражение.
Возвращаемое значение:

Строковое значение.

Описание:

Функция AnsiToOem используется для перевода строки из Windows-кодировки в DOS-Кодировку. Результирующая строка возвращается в качестве собственного значения. Исходная строка не изменяется.

Пример:

3aгл = AnsiToOem(TeкстWin);

Симв

Преобразовать код символа в символ.

Синтаксис:

Симв(КодСимвола)

Англоязычный синоним:

Chr

Параметры:

КодСимвола Числовое выражение.
Возвращаемое значение:

Строковое значение.

Описание:

Функция Chr преобразует код символа в символ. Возвращает результи­рующий символ в виде строкового значения.

Пример:

Буква_я = Симв(255);

КодСимв

Преобразовать символ в код символа.

Синтаксис:

КодСимв(Символ)

Англоязычный синоним:

Asс

Параметры:

Символ Строковое выражение.
Возвращаемое значение:

Числовое значение.

Описание:

Функция КодСимв преобразует символ в код символа. Возвращает резуль­тирующий код символа в виде числового значения.

Пример:

КодБуквы_я = КодСимв(я);

Функции работы с датой

РабочаяДата

Установить/получить текущую рабочую дату.

Синтаксис:

РабочаяДата(Дата, РежимСменыРабДаты)

Англоязычный синоним:

WorkingDate

Параметры:

Дата Необязательный параметр. Выражение типа «дата».
РежимСменыРабДаты Необязательный параметр. Режим автома­тической смены рабочей даты в полночь: 0 — не менять; 1 — менять с предупреждением; 2 — менять автоматически без предупреж­дения. Если параметр не указан, то режим не меняется и действует установка, выбранная в параметрах системы.
Возвращаемое значение:

Значение текущей рабочей даты (на момент до выполнения функции).

Описание:

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

Пример:

// оклад сотрудника на текущую рабочую дату

Сотрудник.Оклад.Получить(РабочаяДата());

ТекущаяДата

Возвратить текущую дату.

Синтаксис:

ТекущаяДата()

Англоязычный синоним:

CurDate

Возвращаемое значение:

Результирующая дата.

Описание:

Функция ТекущаяДата возвращает текущую (системную) дату. Возвра­щаемое значение — результирующая дата.

Пример:

ДатаТекущая = ТекущаяДата();

ДобавитьМесяц

Добавляет к указанной дате заданное число месяцев.

Синтаксис:

ДобавитьМесяц(Дата, ЧислоМесяцев)

Англоязычный синоним:

AddMonth

Параметры:

Дата Выражение со значением типа «дата».
ЧислоМесяцев Числовое выражение, задающее число месяцев, до­бавляемое к дате.
Возвращаемое значение:

Результирующая дата.

Описание:

Функция ДобавитьМесяц добавляет к указанной дате заданное число ме­сяцев.

Пример:

ДатаЧерезТриМесяца = ДобавитьМесяц(РабочаяДата(), 3);

НачМесяца

Определить дату начала месяца.

Синтаксис:

НачМесяца(Дата)

Англоязычный синоним:

BegOfMonth

Параметры:

Дата Выражение со значением типа «дата».
Возвращаемое значение:

Результирующая дата.

Описание:

Функция НачМесяца определяет дату начала месяца для указанной даты.

Пример:

ДатаНачалаМесяца = НачМесяца(РабочаяДата());

КонМесяца

Определить дату конца месяца.

Синтаксис:

КонМесяца(Дата)

Англоязычный синоним:

EndOfMonth

Параметры:

Дата Выражение со значением типа «дата».
Возвращаемое значение:

Результирующая дата.

Описание:

Функция КонМесяца определяет дату конца месяца для указанной даты.

Пример:

ДатаКонцаМесяца = КонМесяца(РабочаяДата());

НачКвартала

Определить дату начала квартала.

Синтаксис:

НачКвартала(Дата)

Англоязычный синоним:

BegOfQuart

Параметры:

Дата Выражение со значением типа «дата».
Возвращаемое значение:

Результирующая дата.

Описание:

Функция НачКвартала определяет дату начала квартала для указанной да­ты.

Пример:

ДатаНачалаКвартала = НачКвартала(РабочаяДата());

КонКвартала

Определить дату конца квартала.

Синтаксис:

КонКвартала(Дата)

Англоязычный синоним:

EndOfQuart

Параметры:

Дата Выражение со значением типа «дата».
Возвращаемое значение:

Результирующая дата.

Описание:

Функция КонКвартала определяет дату конца квартала для указанной да­ты.

Пример:

ДатаКонцаКвартала = КонКвартала(РабочаяДата());

НачГода

Определить дату начала года.

Синтаксис:

НачГода(Дата)

Англоязычный синоним:

BegOfYear

Параметры:

Дата Выражение со значением типа «дата».
Возвращаемое значение:

Результирующая дата.

Описание:

Функция НачГода определяет дату начала года для указанной даты.

Пример:

ДатаНачалаГода = НачГода(РабочаяДата());

КонГода

Определить дату конца года.

Синтаксис:

КонГода(Дата)

Англоязычный синоним:

EndOfYear

Параметры:

Дата Выражение со значением типа «дата».
Возвращаемое значение:

Результирующая дата.

Описание:

Функция КонГода определяет дату конца года для указанной даты.

Пример:

ПатаКонцаГода = КонГода(РабочаяДата());

НачНедели

Определить дату начала недели.

Синтаксис:

НачНедели(Дата)

Англоязычный синоним:

BegOfWeek

Параметры:

Дата Выражение со значением типа «дата».
Возвращаемое значение:

Результирующая дата.

Описание:

Функция НачНедели определяет дату начала недели для указанной даты.

Пример:

ДатаНачалаНедели = НачНедели(РабочаяДата());

КонНедели

Определить дату конца недели.

Синтаксис:

КонНедели(Дата)

Англоязычный синоним:

EndOfWeek

Параметры:

Дата Выражение со значением типа «дата».
Возвращаемое значение:

Результирующая дата.

Описание:

Функция КонНедели определяет дату конца недели для указанной даты.

Пример:

ДатаКонцаНедели = КонНедели(РабочаяДата());

ДатаГод

Определить год указанной даты.

Синтаксис:

ДатаГод(Дата)

Англоязычный синоним:

GetYear

Параметры:

Дата Выражение со значением типа «дата».
Возвращаемое значение:

Число со значением определенного года.

Описание:

Функция ДатаГод определяет год указанной даты.

Пример:

ЗначениеГода = ДатаГод(РабочаяДата());

ДатаМесяц

Определить месяц указанной даты.

Синтаксис:

ДатаМесяц(Дата)

Англоязычный синоним:

GetMonbh

Параметры:

Дата Выражение со значением типа «дата».
Возвращаемое значение:

Число со значением номера месяца года.

Описание:

Функция ДатаМесяц определяет месяц указанной даты.

Пример:

ЗначениеМесяца = ДатаМесяц(РабочаяДата());

ДатаЧисло

Определить день месяца указанной даты.

Синтаксис:

ДатаЧисло(Дата)

Англоязычный синоним:

GetDay

Параметры:

Дата Выражение со значением типа «дата».
Возвращаемое значение:

Число со значением определенного дня месяца.

Описание:

Функция ДатаЧисло определяет день месяца указанной даты.

Пример:

ЗначениеДняМесяца = ДатаЧисло(РабочаяДата());

НомерНеделиГода

Определить номер недели в году для указанной даты.

Синтаксис:

НомерНеделиГода(Дата)

Англоязычный синоним:

GetWeekOfYear

Параметры:

Дата Выражение со значением типа «дата».
Возвращаемое значение:

Число со значением определенного номера недели в году.

Описание:

Функция НомерНеделиГода определяет номер недели в году для указан­ной даты.

Пример:

ЗначениеНедели = НомерНеделиГода(РабочаяДата());

НомерДняГода

Определить день года указанной даты.

Синтаксис:

НомерДняГода(Дата)

Англоязычный синоним:

GetDayOfYear

Параметры:

Дата Выражение со значением типа «дата».
Возвращаемое значение:

Число со значением определенного дня года.

Описание:

Функция НомерДняГода определяет порядковый день в году для указан­ной даты.

Пример:

ЗначениеДняГода = НомерДняГода(РабочаяДата());

НомерДняНедели

Определить день недели указанной даты.

Синтаксис:

НомерДняНедели(Дата)

Англоязычный синоним:

GetDayOfWeek

Параметры:

Дата Выражение со значением типа «дата».
Возвращаемое значение:

Число со значением определенного порядкового дня недели.

Описание:

Функция НомерДняНедели определяет день недели указанной даты. Воз­вращаемое значение — число со значением определенного порядкового дня не­дели (1 — понедельник, 2 — вторник, ..., 7 — воскресенье).

Пример:

ЗначениеДняНедели = НомерДняНедели(РабочаяДата());

ПериодСтр

Строковое представление периода.

Синтаксис:

ПериодСтр(ДатаНачалаПериода, ДатаКонцаПериода)

Англоязычный синоним:

Рег1odStr

Параметры:

ДатаНачалаПериода Дата — начальная дата периода.
ДатаКонцаПериода Дата — конечная дата периода.
Возвращаемое значение:

Символьная строка — представление периода.

Описание:

Внутри системы все периоды задаются интервалом дат — дата начала и дата конца. Функция ПериодСтр предназначена для того, чтобы в случае, если пе­риод фактически является кварталом, месяцем, полугодием отобразить его со­ответствующим образом, например 1 квартал 1997 г.

Функция ПериодСтр возвращает информацию о периоде бухгалтерских итогов в виде строки символов. Строка может использоваться для выдачи ин-форации о периоде итогов в отчетах.

Пример:

Дата1='01.01.97';

Дата2='31.03.97';

Сообщить(ПериодСтр(Дата1, Дата2));  //Выводит 1 квартал 1997 г.

НачалоСтандартногоИнтервала

Устанавливает вариант задания начала стандартного интервала ото­бражения журнала документов.

Синтаксис:

НачалоСтандартногоИнтервала(Вариант)

Англоязычный синоним:

BegOfStandrdRange

Параметры:

Вариант Необязательный параметр. Выражение со значением типа строка или дата. Возможные строковые значе­ния параметра:

День, Месяц, Квартал, Год, Day, Month, Quarter, Year. Значением типа «дата» задается конкретная дата на­чала интервала журнала документов. Если параметр не задан, то установка сделанная в параметрах системы не меняется, а только возвращается текущий вариант.
Возвращаемое значение:

Возвращает текущий установленный вариант.

Описание:

Функция НачалоСтандартногоИнтервала устанавливает вариант зада ния начала стандартного интервала отображения журнала документов. Вариан может изменяться при помощи главного меню Сервис-Параметры-Общие.

Пример:

НачалоСтандартногоИнтервала(Месяц);

КонецСтандартногоИнтервала

Устанавливает вариант задания конца стандартного интервала ото бражения журнала документов.

Синтаксис:

КонецСтандартногоИнтервала(Вариант)

Англоязычный синоним:

EndOfStandardRange

Параметры:

Вариант Необязательный параметр. Выражение со значени­ем типа строка или дата. Возможные строковые значения параметра: День, Месяц, Квартал, Год, Day, Month, Quarter, Year. Значением типа «дата» задается конкретная дата конца интервала журнала документов. Если пара­метр не задан, то установка сделанная в параметрах системы не меняется, а только возвращается теку­щий вариант.
Возвращаемое значение:

Возвращает текущий установленный вариант.

Описание:

Функция КонецСтандартногоИнтервала устанавливает вариант задания конца стандартного интервала отображения журнала документов. Вариант мо­жет изменяться при помощи главного меню Сервис-Параметры-Общие.

Пример:

КонецСтандартногоИнтервала(Месяц);

Функции работы с временем

ТекущееВремя

Возвратить текущее время

Синтаксис:

ТекущееВремя(Час, Мин, Сек)

Англоязычный синоним:

CurrentTime

Параметры:

Час Необязательный параметр. Имя переменной, куда система возвращает числовое значение часа теку­щего времени.
Мин Необязательный параметр. Имя переменной, куда система возвращает числовое значение минут те­кущего времени.
Сек Необязательный параметр. Имя переменной, куда система возвращает числовое значение секунд текущего времени.
Возвращаемое значение:

Текущее время в текстовом виде.

Описание:

Функция ТекущееВремя возвращает текущее (системное) время в тексто­вом виде. Кроме того, если в качестве параметров при вызове функции пере­дать переменные, то функция вернет в них числовые значения текущего часа, минуты, секунды.

Пример:

Сообщить(Сейчас + ТекущееВремя());

Функции преобразования типов

Дата

Преобразовать параметр в дату.

Синтаксис 1:

Дата(Параметр)

Синтаксис 2:

Дата(Год, Месяц, Число)

Англоязычный синоним:

Date

Параметры:

Параметр Числовое выражение.
Год Числовое выражение. Год указывается 4-х знач-ным числом (вместе с веком).
Месяц Числовое выражение.
Число Числовое выражение.
Возвращаемое значение:

Значение типа «дата».

Описание:

Функция Дата преобразует значение переданных параметров в дату, руко­водствуясь принятыми правилами преобразования типов и возвращает значе­ние даты.

Пример:

// преобразование из строки

ДатаРожд = Дата('06.03.1958');

Строка

Преобразовать параметр в строку.

Синтаксис:

Строка(Параметр)

Англоязычный синоним:

String

Параметры:

Параметр Выражение.
Возвращаемое значение:

Строковое значение.

Описание:

Функция Строка преобразует параметр в строку, руководствуясь приняты­ми правилами преобразования типов и возвращает значение строки.

Стр = Строка(ДатаРожд + 1);

Число

Преобразовать параметр в число.

Синтаксис:

Число(Параметр)

Англоязычный синоним:

Number

Параметры:

Параметр Выражение.
Возвращаемое значение:

Числовое значение.

Описание:

Функция Число преобразует параметр в число, руководствуясь принятыми правилами преобразования типов и возвращает значение числа.

Пример:

ВР = Число(Вар + Род);

Функции работы с позицией документа

СформироватьПозициюДокумента

Формирует позицию документа согласно переданным параметрам

Синтаксис 1:

СформироватьПозициюДокумента(Докум, ФлагСмещения)

Синтаксис 2:

СформироватьПозициюДокумента(Дата, Час, Мин, Сек, ФлагКонцаСекунды)

Англоязычный синоним:

MakeDocPosition

Параметры:

Докум Значение документа (или его позиция), позиция кото­рого определяется.
ФлагСмещения Необязательный параметр. Число: -1 (минус единица) — предыдущая позиция. 1 — следующая позиция. 0 — текущая позиция. Значение по умолчанию — 0. Ис­пользование данного параметра позволяет получить предыдущую или последующую позицию от уже имеющейся позиции.
Дата Значение типа «дата», на которую формируется пози­ция документа.
Час Значение типа «число», которое определяет час, на который формируется позиция документа.
Мин Значение типа «число», которое определяет минуту, на которую формируется позиция документа.
Сек Значение типа «число», которое определяет секунду, на которую формируется позиция документа.
ФлагКонцаСекунды Необязательный параметр. Число: 1 — позиция будет браться от следующей секунды. 0 — позиция от указан­ной секунды. Значение по умолчанию — 0.
Возвращаемое значение:

Строковое значение — сформированная позиция документа (см. «Позиция документа»).

Описание:

Функция СформироватьПозициюДокумента формирует и возвращает по­зицию документа согласно переданным параметрам.

Пример:

ПозицияВыбДокум=СформироватьПозициюДокумента(ВыбДокумент);

РазобратьПозициюДокумента

Раскладывает позицию документа на составляющие и возвращает строковое представление позиции документа

Синтаксис:

РазобратьПозициюДокумента(Позиция, Дата, Час, Мин , Сек, Документ)

Англоязычный синоним:

SplitDocPosition

Параметры:

Позиция Строковое значение позиции документа.
Дата Необязательный параметр. Имя переменной, куда система вернет значение даты позиции документа.
Час Необязательный параметр. Имя переменной, куда система вернет числовое значение часа позиции документа.
Мин Необязательный параметр. Имя переменной, куда система вернет числовое значение минуты позиции документа.
Сек Необязательный параметр. Имя переменной, куда система вернет числовое значение секунды позиции документа.
Документ Необязательный параметр. Имя переменной, куда система вернет значение документа данной позиции документа.
Возвращаемое значение:

Представление позиции документа в строковом виде, например: «12.07.98 12:57:14 ПрихНакл 24»

Описание:

Функция РазобратьПозициюДокумента раскладывает позицию докумен­та на составляющие и возвращает строковое представление позиции документа.

Пример:

Позиция = РазобратьПозициюДокумента(ВыбДокумент.ПозицияДокумента());

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

Пропись

Задать образец вывода числа прописью.

Синтаксис:

Пропись(Образец)

Англоязычный синоним:

Spelling

Параметры:

Образец Необязательный параметр. В данном параметре можно передавать:

-строковое выражение, задающее имя файла про­писи (в поставляемом комплекте файлы прописей имеют расширение .SPL);

- объект типа «СписокЗначений» в котором в специальном формате задан образец прописей.

Если параметр Образец пустой или состоит из пробелов, то устанавливается образец прописей по умолчанию (файл 1CV7.spl).
Описание:

Процедура Пропись задает образец, в соответствии с которым будут выво­диться прописные значения функцией Формат.

В параметре Образец может быть передана строка, задающая имя файла прописей. Файл прописей представляет собой текстовый файл специальной структуры, в котором находятся образцы прописей чисел, названия денежной единицы, дат, дней недели и т. п. Пример файла прописей можно посмотреть в поставляемом комплекте (файл lCV7.spl).

Ниже приводится фрагмент текста файла прописей, содержащий образец прописи для валюты мужского рода:

{Speller,

{Money,

{Рубль, Рубля, Рублей, Копейка, Копейки, Копеек, М}},

Ниже приводится фрагмент текста файла, содержащий образец прописи для валюты женского рода (добавляется параметр F в описание названия валю­ты):

{Speller,

{Money,

{условная единица, Условные единицы, Условных единиц, Сотая, Сотые,

Сотых, F}},

Кроме того, в параметре Образец может быть передан объект типа «Спи­сокЗначений», содержащий в качестве своих значений объекты типа «Список-Значений» каждый из которых содержит набор слов используемых в прописи определенного типа. Типы прописей соответвуют секциям файла SPL:

Money

Numbers

Date

DateRange

WeekDay

Списки значений с наборами слов определенного типа прописей должны следовать либо в строго определенной последовательности, либо значение, яв­ляющееся списком значений, должно иметь в качестве своего строкового пред­ставления название типа прописи — в этом случае в переданном списке значе­ний могут присутствовать не все списки значений соотвутствующие секциям файла SPL.

В списке значений конкретного типа прописи должны быть слова в после­довательности, строго соответвующей последовательности слов в данной сек­ции в файле SPL.

Действие данной процедуры распространяется только на текущий про­граммный модуль.

Пример:

Процедура Печать(Тип)

   Таб = СоздатьОбъект(Таблица);

   // ...

   Пропись(1cue.spl);  // задаем имя файла прописи

   Таб.Опции(0, 0, 0, 0);

   Таб.ТолькоПросмотр(1);

   Таб.Показать(Печать отчета, );

   Пропись();

   // возвращаем значение прописи по умолчанию

КонецПроцедуры

Формат

Форматировать переданный параметр.

Синтаксис:

Формат(Параметр, Форматная_строка)

Англоязычный синоним:

Format

Параметры:

Параметр Выражение.
Форматная_строка Строковое выражение.
Возвращаемое значение:

Строковое значение.

Описание:

Функция Формат форматирует переданный параметр, руководствуясь ин­формацией, содержащейся в параметре Форматная_строка. Возвращает сформатированную строку.

Параметр может быть сформатирован как число, строка или дата. Если тип параметра не соответствует виду форматирования, указанному в форматной строке, то будет произведено соответствующее преобразование типа.

Форматная строка состоит из символа, определяющего тип данных, для ко­торого будет производиться форматирование, и дополнительных параметров, уточняющих как должно быть сформатировано значение представленное пер­вым параметром. Результатом работы функции является строковое значение, представляющее результаты форматирования.

Символы, определяющие тип форматируемых данных:

Ч — число (Англоязычный синоним: N)

С — строка (Англоязычный синоним: S)

Д — дата (Англоязычный синоним: D)

Между символом, определяющим тип форматируемого значения и дополни­тельными уточняющими параметрами может находиться любое число пробелов.

Для числовых значений форматная строка должна иметь вид: Чm.nDT или Чm, где т и п— целые числа. Целое положительное число m определяет длину поля в котором будет размещаться строковое представление числа, а целое по­ложительное число n определяет число знаков после десятичной точки. D — представляет собой любой символ (кроме пробела и цифры), которым в сфор-матированной строке целая часть будет отделяться от дробной, а T — символ (также кроме пробела и цифры), которым будут разделяться триады целой час­ти числа. Символы D и Т являются необязательными.

Если в форматной строке проставить символ 0 (ноль) перед длиной поля, то нулевые значения при выводе будут подавлятся (выводится пустая строка). Пример: Ч015.2.

Если в форматной строке указано (0) перед всеми прочими специфика­циями, то все позиции в поле вывода числа, соответствующие незадействован­ным старшим разрядам будут заполнены символами 0. Например:

Формат(123.15, Ч(0)10.2) = 0000123.15

Если в форматной строке проставить символ - перед длиной поля, то ну­левые значения при выводе будут отображаться прочерком. Пример: 4-17.2 .

В форматной строке для числа можно использовать сдвиг разрядов при вы­воде. Это позволяет, например, отображать числовое значение в тысячах и т. п. В этом случае форматная строка должна заканчиваться символами Х , где Х — количество сдвигаемых разрядов. Например, форматная строка: Ч0103 — означает вывод числа в тысячах (сдвиг на три разряда).

Строковое представление числа всегда является правоустановленным.

Кроме того, возможен вывод денежных величин и просто целых чисел про­писью. В этом случае форматная строка должна иметь вид ЧПДС. Наличие буквы П (в английском варианте для аналогичной цели используется буква S) определяет сам факт вывода числа прописью. Символ Д (в английском варианте — M) обозначает вывод денежной величины и является необяза­тельным. Символ С (в английском варианте — H) также необязателен и означает вывод с копейками.

Для форматирования строк используется следующая форматная строка:

Сn, где n — положительное целое число определяющее ширину поля, в кото­ром будет размещаться строка. В случае, если ширина поля превосходит длину строки сформатированная строка будет дополнена справа пробелами, если же ширина поля меньше длины строки — строка будет усечена справа.

Для форматирования даты используется форматная строка вида ДПодстрокаФормата, где Подстрока Формата представляет собой строку, определяющую вид сформатированного представления даты:

DDMMYY (ДДММГГ) дата в виде ДД.ММ.ГГ
DDMMYYYY

(ДДММГГГГ)
дата в виде ДД.ММ.ГГГГ
DDMMMMYYYY

(ДДММММГГГГ)
дата в виде ДД месяц прописью ГГГГ
(0)DDMMMMYYYY

((0)ДДММММГГГГ)
этот формат представляет собой вариант предыдущего формата с тем отличием, что число месяца всегда выводится двумя цифрами, т. е. для чисел меньших 10 спереди будет добавлен 0. Например: Формат('01.01.1999', ' 'Д(0)ДДММММГГГГ' ') = 01 Января 1999 г.
MMMMYYYY

(ММММГГГГ)
дата в виде месяц прописью ГГГГ
MMMMYY (ММММГГ) дата в виде месяц прописью ГГ
ММММ (ММММ) дата в виде месяц прописью
QQQQYYYY

(ККККГГГГ)
дата в виде N квартала ГГГГ
QQQQYY (ККККГГ) дата в виде N квартала ГГ
QQQQ дата в виде N квартала
YYYYMMDD

(ГГГГММДД)
дата в виде ГГГГММДД, то есть дата '10.11.1998' будет представлена как стро­ка 19981110
WWWW (HHHH) выводит наименование дня недели, соответст­вующее указанной дате. Наименования дней недели берутся из файла прописи.
Пример:

ДолгКлиента = Строка(Формат(-Долг(), Ч12.2)) + + Валюта.Сокр_назв;

Шаблон

Сформировать строку по шаблону.

Синтаксис:

Шаблон(Строка_шаблон)

Англоязычный синоним:

Template

Параметры:

Строка_шаблон Строковое выражение, содержащее шаблон формирования результирующей строки.
Возвращаемое значение:

Строковое значение.

Описание:

Функция Шаблон возвращает строковое значение, сформированное в соот­ветствии с заданным параметром Строка_шаблон, заменив в ней все встро­енные выражения, заключенные в квадратные скобки, на их строковые значе­ния.

Строковое значение параметра Строка_шаблон обрабатывается сле­дующим образом: символы [ , ] (квадратные скобки) являются специаль­ными символами, которые выделяют поля, содержащие встроенные выражения. Например:

Имя клиента [Имя], телефон: [Телефон]

После встроенного выражения может стоять символ #, после которого следует Форматная_строка описанная в функции Формат. В этом случае в данное поле будет проставлен результат выражения, обработанный функцией Формат.

Пример:

Стр = Шаблон(Это название услуги: [Услуга.Наименование]);

//   выдает: Это название услуги: Вывоз мусора

ФиксШаблон

Сформировать строку по фиксированному шаблону.

Синтаксис:

ФиксШаблон(Строка_шаблон)

Англоязычный синоним:

FixTemplate

Параметры:

Строка_шаблон Строковое выражение, содержащее шаблон формирования результирующей строки.
Возвращаемое значение:

Строковое значение.

Описание:

Функция ФиксШаблон возвращает строковое значение, сформированное в соответствии с заданным параметром Строка_шаблон, заменив в ней все встроенные выражения, заключенные в квадратные скобки, на их значения. В отличие от функции Шаблон, поля замещаются значениями выражений с со­хранением своей длины в символах, то есть обрезаются, если поле короче ре­зультата вычисления выражения и дополняются пробелами если длиннее. Если результат числовой, то в границах поля строка прижимается к правой границе.

Строковое значение параметра Строка_шаблон обрабатывается сле­дующим образом: символы [ , ] (квадратные скобки) являются специаль­ными символами, которые выделяют поля, содержащие встроенные выражения. Выделенные поля фиксируют свою длину с учетом ограничивающих скобок. Например:

Имя Клиента [Имя], телефон: [Телефон]

После встроенного выражения может стоять символ #, после которого следует Форматная_строка описанная в функции Формат. В этом случае в данное поле будет проставлен результат выражения, обработанный функцией Формат.

Пример:

// ниже - пример с дополнением пробелами

Стр = Шаблон(Это название услуги [Услуга.Наименование       ]);

//   выдает: Это название услуги Вывоз мусора               

// далее - с сокращением строки

Стр = Шаблон(Это название услуги [Услуга.Наименование]);

//   выдает: Это название услуги Выполенние формирован

Функции для вызова диалога ввода данных

ВвестиЗначение

Вызов диалога для ввода значения заданного типа.

Синтаксис:

ВвестиЗначение(3начение, Подсказка, Тип, Длина, Точность)

Англоязычный синоним:

InputValue

Параметры:

3начение Имя переменной, ранее объявленной в программном модуле. В эту переменную будет помещено введенное значение.
Подсказка Текст заголовка окна диалога ввода. Может использо­ваться в качестве подсказки конечному пользователю.
Тип Строковое выражение — название типа данных, кото­рое требуется ввести. Например: Строка, Число, Справочник.Товары, Документ . РасходнаяНакладная и т. п.
Длина Необязательный параметр. Длина вводимого значения (для типов данных «Строка», «Число»).
Точность Необязательный параметр. Количество знаков после десятичной точки (для типа данных «Число»).
Возвращаемое значение:

Числовое значение: 1 — если в диалоге нажата кнопка «ОК»; 0 — если на­жата кнопка «Отмена»;

Описание:

Функция ВвестиЗначение выполняет вызов диалога для ввода значения заданного типа.

Пример:

Если ВвестиЗначение(Ном, Введите номер приказа, Число, 5, 0) = 1 Тогда

   ВыбДок = СоздатьОбъект(Документ.Приказ);

   ВыбДок.НайтиПоНомеру(Строка(Ном), Дата(0));

   Если ВыбДок.Выбран() = 1 Тогда

      // . . .

   ИначеЕсли;

      // . . .

   КонецЕсли;

КонецЕсли;

ВвестиЧисло

Вызов диалога для ввода числа.

Синтаксис:

ВвестиЧисло(Число, Подсказка, Длина, Точность , Таймаут)

Англоязычный синоним:

InputNumeric

Параметры:

Число Имя переменной, ранее объявленной в программном модуле. В эту переменную будет помещено введенное значение числа.
Подсказка Текст заголовка окна диалога ввода. Может использо­ваться в качестве подсказки конечному пользователю.
Длина Длина вводимого числа.
Точность Количество знаков после десятичной точки.
Таймаут Необязательный параметр. Числовое выражение интервала времени ожидания ответа в секундах, в течение которого система будет ожидать ответа пользователя. Если данный параметр опущен или равен 0, то время ожидания бесконечно. Значение по умолчанию — 0.
Возвращаемое значение:

Числовое значение: 1 — если в диалоге нажата кнопка «ОК»; 0 — если на­жата кнопка «Отмена»; -1 (минус единица) — если закончилось время ожида­ния ответа.

Описание:

Функция ВвестиЧисло выполняет вызов диалога для ввода числа.

Пример:

Если ВвестиЧисло(Ном, Введите номер приказа, 5, 0, 10) = 1 Тогда

   ВыбДок = СоздатьОбъект(Документ.Приказ);

   ВыбДок.НайтиПоНомеру(Строка(Ном), Дата(0));

   Если ВыбДок.Выбран() = 1 Тогда

      // . . .

   ИначеЕсли;

      // . . .

   КонецЕсли;

КонецЕсли;

ВвестиСтроку

Вызов диалога для ввода строки.

Синтаксис:

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

Англоязычный синоним:

InputString

Параметры:

Строка Имя переменной, ранее объявленной в программном модуле. В эту переменную будет помещено введенное строковое значение.
Подсказка Текст заголовка окна диалога ввода. Может исполь­зоваться в качестве подсказки конечному пользовате­лю.
ДлинаСтроки Числовое выражение — длина строки.
Признак Необязательный параметр. Числовое выражение, если 0 — ввод простой строки без разделителей строк, если 1 — ввод многострочного текста с разделителя­ми строк. Значение по умолчанию — 0.
Таймаут Необязательный параметр. Числовое выражение ин­тервала времени ожидания ответа в секундах, в тече­ние которого система будет ожидать ответа пользова­теля. Если данный параметр опущен или равен 0, то время ожидания бесконечно. Значение по умолчанию — 0.
Возвращаемое значение:

Числовое значение: 1 — если в диалоге нажата кнопка «ОК», 0 — если на­жата кнопка «Отмена»; -1 (минус единица) — если закончилось время ожида­ния ответа.

Описание:

Функция ВвестиСтроку выполняет вызов диалога для ввода строки.

Пример:

Процедура ВводКодовПродукции()

   Если Продукция.Вид = Перечисление.ВидПродукции.Наша Тогда

      НК = Код;

      Если ВвестиСтроку(НК, Введите код продукции, 40, 1, 9) = 1 Тогда

         Koд = HK;

      КонецЕсли;

   Иначе

      Код = ;

      Возврат;

   КонецЕсли;

КонецПроцедуры

ВвестиДату

Вызов диалога для ввода даты.

Синтаксис:

ВвестиДату(Дата, Подсказка, Таймаут)

Англоязычный синоним:

InputDate

Параметры:

Дата Имя переменной, ранее объявленной в про­граммном модуле. В эту переменную будет по­мещено введенное значение даты.
Подсказка Текст заголовка окна диалога ввода. Может ис­пользоваться в качестве подсказки конечному пользователю.
Таимаут Необязательный параметр. Числовое выражение ин­тервала времени ожидания ответа в секундах, в тече­ние которого система будет ожидать ответа пользова­теля. Если данный параметр опущен или равен 0, то время ожидания бесконечно. Значение по умолчанию — 0.
Возвращаемое значение:

Числовое значение: 1 — если в диалоге нажата кнопка «ОК»; 0 — если на­жата кнопка «Отмена»; -1 (минус единица) — если закончилось время ожида­ния ответа.

Описание:

Функция ВвестиДату выполняет вызов диалога для ввода даты.

Пример:

Процедура ВводДатыСсуды()

   Если ВидРасчета = ВидРасчета.БеспроцентнаяСсуда Тогда

      ДатаСсуды = Дата(0);

      Возврат;

   КонецЕсли;

   Если ДатаСсуды = Дата(0) Тогда

      ДатаСсуды = ДатаДок + 30;

   КонецЕсли;

   Д = ДатаСсуды;

   Если ВвестиДату(Д, Введите дату ссуды) = 1 Тогда

      ДатаСсуды = Д;

   Иначе

      ВидРасчета = ВидРасчета.БеспроцентнаяСсуда;

   КонецЕсли;

КонецПроцедуры

ВвестиПериод

Ввод периода в виде диалога.

Синтаксис:

ВвестиПериод(НачалоПериода, КонецПериода, Подсказка)

Англоязычный синоним:

InputРег1od

Параметры:

НачалоПериода Идентификатор переменной, в которую функция возвращает дату начала периода.
КонецПериода Идентификатор переменной, в которую функция возвращает дату конца периода.
Подсказка Необязательный параметр. Строковое выра­жение, содержащее строку, которая будет выводиться в заголовке окна диалога. Если не указано — стандартная подсказка.
Возвращаемое значение:

Числовое значение: 1 — выбор осуществлен , 0 — выбор не осуществлен (пользователем нажата кнопка «Отмена», клавиша Esc или закрыто окно диалога).

Описание:

Функция ВвестиПериод выдает на экран диалог специального вида, при помощи которого пользователь может выбрать период. Выбранный пользовате­лем период записывается в переменные, передаваемые как параметры при вы­зове метода.

Пример:

Дата1 = '01.01.97';

Дата2 = '31.03.97';

Если ВвестиПериод(Дата1, Дата2, Введите период отчета) 1 Тогда

   Возврат 0;

КонецЕсли;

ВвестиПеречисление

Вызов диалога для ввода перечисления.

Синтаксис:

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

Англоязычный синоним:

InputEnum

Параметры:

3начение Имя переменной, ранее объявленной в программном модуле. Переменная должна содержать значение типа «Перечисление» или строковое значение. Если тип передаваемого в качестве параметра значения — пере­числение, то вызывается диалог со списком заданного вида перечисления. Если тип передаваемого в качестве параметра значения — строка, то в ней должен быть идентификатор требуемого вида перечисления, как он задан в конфигураторе. В эту же переменную будет помещено выбранное в диалоге значение перечисле­ния.
Подсказка Текст заголовка окна диалога ввода. Может ис­пользоваться в качестве подсказки конечному пользователю.
Таймаут Необязательный параметр. Числовое выражение ин­тервала времени ожидания ответа в секундах, в тече­ние которого система будет ожидать ответа пользова­теля. Если данный параметр опущен или равен 0, то время ожидания бесконечно. Значение по умолчанию — 0.
Возвращаемое значение:

Числовое значение: 1 — если в диалоге нажата кнопка «ОК», 0 — если на­жата кнопка «Отмена»; -1 (минус единица) — если закончилось время ожида­ния ответа.

Описание:

Функция ВвестиПеречисление выполняет вызов диалога для ввода пере­числения.

Пример:

*

Процедура УстПризнак1()

   ВыбПризн = Перечисление.ТипСотрудника.Штатный;

   Если ВвестиПеречисление(ВыбПризн, Выберите тип) 0 Тогда

      Тип = ВыбПризн;

   Иначе

      Тип = Перечисление.ТипСотрудника.Штатный;

   КонецЕсли;

КонецПроцедуры



*

Процедура УстПризнак2()

   ВыбПризн = ТипСотрудника;

   Если ВвестиПеречисление(ВыбПризн, Выберите тип) 0 Тогда

      Тип = ВыбПризн;

   Иначе

      Тип = Перечисление.ТипСотрудника.Штатный;

   КонецЕсли;

КонецПроцедуры

Процедуры и функции общего назначения

Вопрос

Вывести окно вопроса.

Синтаксис:

Вопрос(Текст_вопроса, Режим, Таймаут)

Англоязычный синоним:

DoQueryBox

Параметры:

Текст_вопроса Строковое выражение текста вопроса.
Режим Числовое или строковое выражение, определяю­щее режим вывода окна вопроса.
Таймаут Необязательный параметр. Числовое выражение интервала времени ожидания ответа в секундах, в течение которого система будет ожидать ответа пользователя. Если данный параметр опущен или равен 0, то время ожидания бесконечно. Значение по умолчанию — 0.
Возвращаемое значение:

Если параметр Режим задан числовым значением, то функция возвраща­ет числовое значение:

-1 Закончилось время ожидания ответа.
1 Выбрана кнопка «ОК».
2 Выбрана кнопка «Отмена».
3 Выбрана кнопка «Стоп».
4 Выбрана кнопка «Повтор».
5 Выбрана кнопка «Пропустить».
6 Выбрана кнопка «Да».
7 Выбрана кнопка «Нет».
Если параметр Режим задан строковым значением, то функция возвраща­ет строковое значение. Язык для возврата такой же, какой использован в пара-метре Режим.

Русск. яз. Англ.яз. Описание
Таймаут Timeout Закончилось время ожидания ответа.
ОК ОК Выбрана кнопка «ОК».
Отмена Cancel Выбрана кнопка «Отмена».
Стоп Abort Выбрана кнопка «Стоп».
Повтор Retry Выбрана кнопка «Повтор».
Пропустить Ignore Выбрана кнопка «Пропустить».
Да Yes Выбрана кнопка «Да».
Нет No Выбрана кнопка «Нет».
Описание:

Функция Вопрос выводит на экран окно вопроса. Текст определяется па­раметром Текст_вопроса. Параметр Режим определяет варианты воз­можных ответов.

Если параметр Режим задан числовым значением, то возможные вариан­ты передаваемого параметра:

0 Кнопка «ОК».
1 Кнопки «ОК» и «Отмена».
2 Кнопки «Стоп», «Повтор», «Пропустить».
3 Кнопки «Да», «Нет», «Отмена».
4 Кнопки «Да», «Нет».
5 Кнопки «Повтор», «Отмена».
Любое другое числовое значение параметра Режим эквивалентно значению 0 (кнопка «ОК»), равно как и отсутствие указанного параметра.

Если параметр Режим задан строковым значением, то возможные вариан­ты передаваемого параметра:

Русскоязычное написание Англоязычное написание
ОК ОК
ОК+Отмена OK+Cancel
Стоп+Повтор+Пропустить Abort+Retry+Ignore
Да+Нет+Отмена Yes+No+Cancel
Да+Нет Yes+No
Повтор+Отмена Retry+Cancel
Пример:

Рез = Вопрос(Вы получили данное сообщение?, 4);

Если Вопрос(Все нормально?, Да+Нет) = Да Тогда

   //  . . .

КонецЕсли;

Предупреждение

Вывести окно предупреждения.

Синтаксис:

Предупреждение(Текст_сообщения, Таймаут)

Англоязычный синоним:

DoMessageBox

Параметры:

Текст_сообщения Строковое выражение.
Таймаут Необязательный параметр. Числовое выра­жение интервала времени ожидания в се­кундах, в течение которого система будет ждать ответа пользователя. Если данный параметр опущен или равен 0, то время ожи­дания бесконечно. Значение по умолчанию — 0.
Описание:

Процедура Предупреждение выводит на экран окно предупреждения (MessageBox). Текст определяется параметром Текст_сообщения. По пове­дению данная процедура эквивалентна функции:

Вопрос(Текст_сообщения, 0, Таймаут), но не возвращает значения.

Если закончилось время ожидания ответа, то окно предупреждения автома­тически удаляется с экрана.

Пример:

// Выводим сообщение 5 секунд

Предупреждение(Доброе утро!, 5);

Сообщить

Вывести строку в окно сообщений.

Синтаксис:

Сообщить(Текст_сообщения, ИмиджМаркера)

Англоязычный синоним:

Message

Параметры:

Текст_сообщения Строковое выражение.
ИмиджМаркера Необязательный параметр. Строковое выра­жение, которое задает тип пиктограммы вы­водимой перед сообщением. Возможные зна­чения:

I,

!,

!!,

!!!,

. — обычное сообщение,

— без маркера.
Описание:

Процедура Сообщить выводит Текст_сообщения в окно сообщений. Перед сообщениями можно отображать специальные пиктограммы, которыми можно помечать сообщения различной важности.

Пример:

Сообщить(Доброе утро!, I);

ОчиститьОкноСообщений

Очистить окно сообщений.

Синтаксис:

ОчиститьОкноСообщений()

Англоязычный синоним:

ClearMessageWindow

Описание:

Процедура ОчиститьОкноСообщений очищает окно сообщений.

Пример:

ОчиститьОкноСообщений();

Состояние

Вывести сообщение в строку состояния.

Синтаксис:

Состояние(Текст_сообщения)

Англоязычный синоним:

Status

Параметры:

Текст_сообщения Строковое выражение.
Описание:

Процедура Состояние выводит строку текста в строку состояния (статус-бар). Текст определяется параметром Текст_сообщения.

Пример:

Состояние(Доброе утро!)

? (вычислить выражение по условию)

Вычислить выражение по условию.

Синтаксис:

?(Логич_выраж, Выраж1, Выраж2)

Англоязычный синоним:

?

Параметры:

Логич_выраж Логическое выражение.
Выраж1 Выражение.
Выраж2 Выражение.
Возвращаемое значение:

Результирующее значение.

Описание:

Функция ? вычисляет значение Логич_выраж и если его значение — ис­тина, то возвращает вычисленное значение Выраж1. Если значение Логич_выраж — ложь, то возвращает вычисленное значение Выраж2.

Пример:

Спр.ВыбратьЭлементы();

Пока (Спр.ПолучитьЭлемент() 0) Цикл

   Состояние(Спр.Наименование);

   Сообщить(Спр.Наименование);

   Sec = ?(Спр.ЭтоГруппа = 1, Folder, DL);

   Таб.ВывестиСекцию(Sес + -V1);

   Таб.ПрисоединитьСекцию(Sec + -V3);

КонецЦикла;

Сигнал

Вывести звуковой сигнал.

Синтаксис:

Сигнал()

Англоязычный синоним:

Веер

Описание:

Процедура Сигнал издает короткий звуковой сигнал.

Пример:

Сигнал();

Разм

Определить размерность массива.

Синтаксис:

Разм(Имя_массива)

Англоязычный синоним:

Dim

Параметры:

Имя_массива Идентификатор массива.
Возвращаемое значение:

Числовое значение размерности массива.

Описание:

Функция Разм возвращает числовое значение размерности массива пере­данного в качестве параметра.

Пример:

Перем Массив_для_хранения[10];

Размер = Разм(Массив_для_хранения);

Функции среды исполнения

ЗаголовокСистемы

Получить/установить заголовок окна программы.

Синтаксис:

ЗаголовокСистемы(3аголовок)

Англоязычный синоним:

SystemCaption

Параметры:

Заголовок Строковое выражение.
Возвращаемое значение:

Строковое значение — заголовок системы до исполнения метода.

Описание:

Метод ЗаголовокСистемы позволяет получить/установить заголовок окна программы.

Пример:

ЗаголовокСистемы(Оптово-розничная конфигурация)

ИмяКомпьютера

Получить сетевое имя компьютера.

Синтаксис:

ИмяКомпьютера()

Англоязычный синоним:

ComputerName

Возвращаемое значение:

Строковое значение — сетевое имя компьютера, работающего в данный мо­мент с программой.

Описание:

Функция ИмяКомпьютера возвращает сетевое имя компьютера, работающе­го в данный момент с программой.

Пример:

Компьютер = ИмяКомпьютера();

ИмяПользователя

Получить имя пользователя.

Синтаксис:

ИмяПользователя()

Англоязычный синоним:

UserName

Возвращаемое значение:

Строковое значение — имя пользователя, работающего в данный момент с программой.

Описание:

Функция ИмяПользователя возвращает имя пользователя (указанное в конфигураторе в списке пользователей), работающего в данный момент с про­граммой.

Пример:

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

Спр.НайтиПоКоду(ИмяПользователя());

Менеджер = Спр.ТекущийЭлемент();

Если Менеджер.Выбран() = 0 Тогда

   Предупреждение(Не выбран менеджер!);

КонецЕсли;

ПолноеИмяПользователя

Получить полное имя пользователя.

Синтаксис:

ПолноеИмяПользователя()

Англоязычный синоним:

UserFullName

Возвращаемое значение:

Строковое значение, содержащее полное имени пользователя.

Описание:

Функция ПолноеИмяПользователя возвращает полное имя пользователя, указанное в конфигураторе при авторизации доступа.

Пример:

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

Спр.НайтиПоНаименованию(ПолноеИмяПользователя());

Менеджер = Спр.ТекущийЭлемент();

Если Менеджер.Выбран() = 0 Тогда

   Предупреждение(Не выбран менеджер!);

КонецЕсли;

НазваниеНабораПрав

Получить название набора прав пользователя.

Синтаксис:

НазваниеНабораПрав(ВыдИспНабПрав)

Англоязычный синоним:

RightName

Параметры:

ВыдИспНабПрав Выдавать используемый набор прав или нет. Не­обязательный параметр. Число: 0 — выдает уста­новленный пользователю набор прав; 1 — выдает пустую строку, если пользователю набор прав назначен, но установлен режим отключения кон­троля набора прав. Значение по умолчанию — 0.
Возвращаемое значение:

Строковое значение, содержащее название набора прав пользователя.

Описание:

Функция НазваниеНабораПрав возвращает название набора прав, задан­ное пользователю в конфигураторе.

Пример:

МоиПрава = НазваниеНабораПрав();

ПравоДоступа

Проверяет для текущего пользователя наличие права доступа для за­данного объекта.

Синтаксис:

ПравоДоступа(НазваниеПрава, Объект)

Англоязычный синоним:

AccessRight

Параметры:

НазваниеПрава Строка с названием права доступа, как оно выво­дится в конфигурации (без пробелов).
Объект Строка с наименованием типа и вида объекта (записывается через точку). Для глобальных прав этот параметр не указывается. Для объектов, у которых нет вида, записывается только тип объ­екта, например, «Операция».
Возвращаемое значение:

Число: 1 — если право доступа есть, иначе 0.

Описание:

Функция ПравоДоступа проверяет для текущего пользователя наличие права доступа для заданного объекта.

Пример:

Доступ = ПравоДоступа(Чтение, Документ.Счет);

Доступ1 = ПравоДоступа(МонопольныйРежим);

НазваниеИнтерфейса

Получить название интерфейса пользователя.

Синтаксис:

НазваниеИнтерфейса()

Англоязычный синоним:

UserInterfaceName

Возвращаемое значение:

Строковое значение, содержащее название интерфейса пользователя.

Описание:

Функция НазваниеИнтерфейса возвращает название интерфейса, задан­ное пользователю в конфигураторе.

Пример:

МойИнтерфейс = НазваниеИнтерфейса();

КаталогПользователя

Получить каталог пользователя.

Синтаксис:

КаталогПользователя()

Англоязычный синоним:

UserDir

Возвращаемое значение:

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

Описание:

Функция КаталогПользователя возвращает имя рабочего каталога поль­зователя, заданный пользователю в конфигураторе.

Пример:

МояДиректория = КаталогПользователя();

КаталогИБ

Получить каталог базы данных.

Синтаксис:

КаталогИБ()

Англоязычный синоним:

IBDir

Возвращаемое значение:

Строковое значение, содержащее имя каталога базы данных.

Описание:

Функция КаталогИБ возвращает имя каталога базы данных.

Пример:

МояБД = КаталогИБ();

КаталогПрограммы

Получить каталог программы.

Синтаксис:

КаталогПрограммы()

Англоязычный синоним:

BinDir

Возвращаемое значение:

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

Описание:

Функция КаталогПрограммы возвращает имя каталога, где размещены ис­полняемые файлы системы 1С:Предприятие.

Пример:

МояДирПрог = КаталогПрограммы();

КаталогВременныхФайлов

Получить каталог временных файлов.

Синтаксис:

КаталогВременныхФайлов()

Англоязычный синоним:

TempFilesDir

Возвращаемое значение:

Строковое значение, содержащее имя каталога временных файлов.

Описание:

Функция КаталогВременныхФайлов возвращает имя каталога временных файлов, как он установлен в системе 1С:Предприятие. Это может быть каталог, установленный в командной строке запуска системы или, если не указан, то каталог временных файлов установленный в операционной системе.

Пример:

МояВремДир = КаталогВременныхФайлов();

МонопольныйРежим

Определение режима работы программы.

Синтаксис:

МонопольныйРежим()

Англоязычный синоним:

ExclusiveMode

Возвращаемое значение:

Число 1 — если программа запущена в монопольном режиме;

Число 0 — если программа запущена в сетевом режиме.

Описание:

Функция МонопольныйРежим возвращает число 1 — если программа запу­щена в монопольном режиме и 0 если нет.

Пример:

Процедура Загрузка()

   Если МонопольныйРежим() 0 Тогда

      ЗагрузитьНаряды();

   Иначе

      Предупреждение(Для запуска этой операции требуется +

                     монопольный режим доступа !!!);

   КонецЕсли;

КонецПроцедуры

ОсновнойЯзык

Определение основного языка конфигурации.

Синтаксис:

ОсновнойЯзык()

Англоязычный синоним:

GeneralLanguage

Возвращаемое значение:

Число 1 — если основной язык конфигурации — русский;

Число 0 — если основной язык конфигурации — английский.

Описание:

При помощи функции ОсновнойЯзык можно прочитать текущее значение основного языка конфигурации.

Замечание: Значение основного языка конфигурации задается в конфигура­торе (Метаданные-Глобалъный_модуль-Свойство-Задача-Основной язык).

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

Пример:

*

В данном примере при записи периодического реквизита справочника (че­рез диалоговое окно «История») система передает в предопределенную процедуру строковое значение названия объекта. Нижеследующая проце­дура определяет, что введено значение курса валюты и сообщает об этом.

Процедура ПриЗаписиИстории(ИмяОбъекта, Объект, Значение, ДатаИстории)

   Если ОсновнойЯзык() = 1 Тогда

      СПР = Справочник;

   Иначе

      СПР = Reference;

   КонецЕсли;

   Если ИмяОбъекта = СПР + .Валюты.Текущ_курс Тогда

      Сообщить(Добавлено новое значение курса);

      Сообщить(Для валюты + Объект.Наименование);

      Сообщить(На дату + ДатаИстории);

      Сообщить(Установлено значение + Значение);

   КонецЕсли;

КонецПроцедуры

См. также: ПриУдаленииИстории, ПриЗаписиИстории

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

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

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

Для начала транзакции используется процедура НачатьТранзацию. Для фиксации сделанных в процессе выполнения изменений применяется процеду­ра ЗафиксироватьТранзакцию. Для отмены изменений, сделанных в процес­се выполнения транзакции — процедура ОтменитьТранзакцию. Таким обра­зом, все действия с базой данных, выполняемые внутри скобок: НачатьТранзакцию — ЗафиксироватьТранзацию собственно и являются транзакцией.

Действия, заключенные в транзакцию, выполняются быстрее. Особенно су­щественно разница проявляется в многопользовательском режиме и особенно существенна разница для операций, связанных с изменением содержимого базы данных, хотя и для операций только чтения разница может быть в разы.

Замечание. В Модуле документа (при проведении документов) в предопреде­ленных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения система сама по умолчанию выполня­ет все действия через транзакцию, поэтому никаких специальных дейст­вий в этих предопределенных процедурах предпринимать не нужно.

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

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

НачатьТранзакцию

Открыть обработку транзакции.

Синтаксис:

НачатьТранзакцию()

Англоязычный синоним:

BeginTransaction

Описание:

Процедура НачатьТранзакцию открывает транзакцию для обработки ин­формации.

Пример:

Процедура УдалитьПустые()

   Спр = СоздатьОбъект(Справочник.Подразделения);

   Спр.ВыбратьЭлементы();

   НачатьТранзакцию();

   Пока Спр.ПолучитьЭлемент() = 1 Тогда

      Если Спр.Количество = 0 Тогда

         Спр.Удалить();

      КонецЕсли;

   КонецПока;

   ЗафиксироватьТранзакцию();

КонецПроцедуры

ЗафиксироватьТранзакцию

Завершить успешную транзакцию.

Синтаксис:

ЗафиксироватьТранзакцию()

Англоязычный синоним:

CoinmitTransation

Описание:

Процедура ЗафиксироватьТранзакцию завершает успешную транзакцию.

Пример:

Процедура УдалитьПустые()

   Спр = СоздатьОбъект(Справочник.Подразделения);

   Спр.ВыбратьЭлементы();

   НачатьТранзакцию();

   Пока Спр.ПолучитьЭлемент() = 1 Тогда

      Если Спр.Количество = 0 Тогда

         Спр.Удалить();

      КонецЕсли;

   КонецПока;

   ЗафиксироватьТранзакцию();

КонецПроцедуры

ОтменитьТранзакцию

Завершить транзакцию без записи изменений.

Синтаксис:

ОтменитьТранзакцию()

Англоязычный синоним:

RollBackTransaction

Описание:

Процедура ОтменитьТранзакцию завершает транзакцию без записи изме­нений.

Пример:

*

В данном примере приведена процедура заполнения справочника валют значениями курсов из внешнего текстового файла. В процедуре использу­ется обработка транзакции, причем, если в процессе загрузки обнаружи­лось наличие некорректных данных во внешнем файле, то процедура за­вершается с отменой транзакции.

Процедура ЗагрузкаКурсовВалют()

   Влт = СоздатьОбъект(Справочник.Валюты);

   Текст = СоздатьОбъект(Текст);

   Текст.Открыть(ИмяФайла);

   Если Текст.КоличествоСтрок() = 0 Тогда

      Сообщить(Текст пустой!);

      Возврат;

   КонецЕсли;

   Успешно = 1;

   НачатьТранзакцию();

   Для Ном = 1 по Текст.КоличествоСтрок() Цикл

      Стр = Текст.ПолучитьСтроку(Ном);

      Если СтрДлина(Стр) = 0 Тогда

         Продолжить;

      КонецЕсли;

      Поле=0;

      Пока СтрДлина(Стр) 0 Цикл

         Поле = Поле + 1;

         Инд = Найти(Стр, -);

         Если Инд 0 Тогда

            Если Инд 3 Тогда

               Стр1 = Сред(Стр, 2, Инд-3);

               // не берем кавычки спереди и сзади, и символ тильды.

            Иначе

               // если значение поля пропущено

               Стр1 = ;

            КонецЕсли;

            Стр=Сред(Стр, Инд + 1);

            // не берем символ тильды

         Иначе

            Стр = Сред(Стр, 2);

            Инд = Найти(Стр, );

            Стр1 = Сред(Стр, 1, Инд-1);

           Стр = ;

         КонецЕсли;

         Если Поле = 1 Тогда

            Код = Стр1;

         ИначеЕсли Поле = 2 Тогда

            Курс = Стр1;

         ИначеЕсли Поле = 3 Тогда

            ДатаКурса = Стр1;

         КонецЕсли;

      КонецЦикла;

      Влт.ИспользоватьДату(Дата(ДатаКурса));

      Влт.НайтиПоКоду(Код);

      Если Влт.Выбран() 0 Тогда

         Сообщить(Формат(Ном, 45) + - загрузка Курса=

              + Формат(Курс, 45) + от + ДатаКурса);

         Влт.Текущ_курс = Число(Курс);

         Влт.Записать();

         Сообщить(    – Загружен!);

      Иначе

         Успешно = 0;

         Сообщить(В базе данных нет валюты с кодом + Код);

         Сообщить(Импорт данных отменён!);

         Прервать;

      КонецЕсли;

      Состояние(Загружено +Ном+ строк.);

   КонецЦикла;

   Если Успешно = 1 Тогда

      ЗафиксироватьТранзакцию();

   Иначе

      ОтменитьТранзакцию();

   КонецЕсли;

КонецПроцедуры

Специальные процедуры и функции

СоздатьОбъект

Создает объект агрегатного типа данных и возвращает ссылку на не­го.

Синтаксис:

СоздатъО6ъект(ИмяАгрегатногоТипа)

Англоязычный синоним:

CreateObject

Параметры:

ИмяАгрегатногоТипа Строковое выражение, значение которого содержит имя агрегатного типа данных, объ­явленного в конфигураторе.
Возвращаемое значение:

Ссылка на созданный объект агрегатного типа данных.

Описание:

Функция СоздатьОбъект создает объект агрегатного типа данных и воз­вращает ссылку на него. Данная функция обычно используется одновременно с неявным определением переменной и присвоением ей ссылки на объект агре­гатного типа данных.

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

Пример:

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

Спр.НайтиПоКоду(029);

СтатусВозврата

Установить/определить статуса возврата предопределенной процеду­ры.

Синтаксис:

СтатусВозврата([Статус])

Англоязычный синоним:

ReturnStatus

Параметры:

Статус Необязательный параметр. Числовое выражение. Если задано значение 1, то устанавливается статус возврата — Выполнить Действие. Если задано зна­чение 0, то устанавливается статус возврата — Отменить Действие. Если параметр опущен, то статус возврата предопределенной процедуры не меняется.
Возвращаемое значение:

Число 1 — если статус возврата — Выполнить Действие;

Число 0 — если статус возврата — Отменить Действие.

Описание:

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

Значение статуса возврата предопределенной процедуры используется сис­темой при завершении отработки любой предопределенной процедуры, чтобы определить, выполнять ли системно событие, которое вызвало данную предо­пределенную процедуру.

Замечание: Начальное значение статуса возврата предопределенной процеду­ры равно 1 (Выполнить Действие), которое устанавливается системой при вызове предопределенной процедуры.

В тексте программного модуля возможно использование данного оператора как процедуры или как функции. При использовании в качестве функции, воз­вращаемое значение соответствует текущему статусу возврата предопределен­ной процедуры, которое было до вызова данной функции. В данном случае па­раметр Статус можно опускать.

Если параметр Статус задан явно, то после выполнения данной функ­ции статус возврата установится в заданное значение. Пример:

* Если в предопределенной процедуре ПриЗаписи установить статус возвра­та — 0 (например, если неверно заполнены реквизиты), то документ не бу­дет записываться.

Процедура ПриЗаписи()

   Если Клиент.Выбран() = 0 Тогда

      Предупреждение(Запись отменена! Не задан клиент!);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

* Если в предопределенной процедуре ВводНаОсновании установить статус возврата — 0, то ввод нового документа будет отменен и форма нового до­кумента не откроется.

Процедура ВводНаОсновании(ДокОснование)

   Автор = Пользователь;

   ДокВид = ДокОснование.Вид();

   Если (ДокВид = Счет) ИЛИ (ДокВид = Счет_фактура)

        ИЛИ (ДокВид = РасходнаяКредит) ИЛИ (ДокВид = РасходнаяРеализ) Тогда

      Автор = Пользователь;

      ДокВид = ДокОснование.Вид();

      Фирма = ДокОснование.Фирма;

      Клиент = ДокОснование.Клиент;

      Основание = ДокВид + № + ДокОснование.НомерДок;

      Сумма = ДокОснование.Итог(Сумма);

      НДС = ДокОснование.Итог(НДС);

   Иначе

      Предупреждение(Недопустимый вид документа основания!);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: «Системные предопределенные процедуры»

ОткрытьФорму

Выполняет открытие формы из'встроенного языка.

Синтаксис:

ОткрытьФорму (Параметр1, КонтекстФормы, Параметр 3...)

Англоязычный синоним:

OpenForm

Параметры:

Параметр1 В зависимости от типа открываемой формы используется различные значения данного параметра.

Для журналов, отчетов, списков в конце строки описателя формы может быть указан символ # с некоторым идентификатором: #LLLL. Это используется для того, чтобы данная форма открылась в новом окне, а не активизировала существующее окно этой формы, если оно открыто. Где, LLLL — иден­тификатор, который позволяет открыть но­вое окно или активизировать уже открытое с этим идентификатором. Если идентификатор не задан, то обязательно открывается новое окно.
КонтекстФормы Необязательный параметр. Имя переменной, куда можно задать значение любого типа для передачи в открываемую форму. Данное зна­чение будет доступно в открытой форме как атрибут Форма.Параметр.

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

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено.

Описание:

Функция ОткрытьФорму позволяет открыть форму документа, справочни­ка, журнала документов, и других форм используемых в системе 1С:Предприятие.

Замечание. Для журналов, отчетов, списков в конце строки описателя формы может быть указан символ # с некоторым идентификатором: #LLLL. Это используется для того, чтобы данная форма открылась в новом окне, а не активизировала существующее окно этой формы, если оно открыто. Где, LLLL — идентификатор, который позволяет открыть новое окно или активизировать уже открытое с этим идентификатором. Если идентифи­катор не задан, то обязательно открывается новое окно.

Замечание. Метод ОткрытьФорму нельзя вызывать в «теле» глобального мо­дуля (части глобального модуля, расположенной после последней проце­дуры). Для его вызова при старте программы следует размещать его в процедуре ПриНачалеРаботыСистемы.

Для открытия разных форм следует использовать разный синтаксис вызова данной функции:

Открытие формы существующего документа.

ОткрытьФорму(Документ, КонтекстФормы, РежимПросмотра)

Документ Значение типа «Документ».
РежимПросмотра Необязательный параметр. Числовое выра­жение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотрен­ный текущим значением параметра «Режим открытия объектов» установленного поль­зователем. По умолчанию — 0.

Открытие формы нового документа

ОткрытьФорму(ОписательОбъекта, КонтекстФормы, ДокументОснование)

ОписательОбъекта Строковое выражение.

Документ.ХХХХХ, где ХХХХХ — идентификатор вида документа;
ДокументОснование Необязательный параметр. Выражение типа «документ», задающий документ-основание для открытия формы ввода нового докумен­та в режиме ввода на основании.
Открытие формы журнала документов.

ОткрытьФорму(ОписательОбъекта, КонтекстФормы)

ОписательОбъекта Строковое выражение.

Журнал . ХХХХХ. YYYYY, где ХХХХХ — идентификатор журнала докумен­тов; YYYYY — идентификатор формы журна­ла документов;

Кроме того, в качестве идентификатора жур­нала можно указывать идентификатор кон­кретного вида документа, тогда откроется журнал просмотра документов именно ука­занного вида, например:

ОткрытьФорму(Журнал.РасходнаяНакладная)
Открытие формы журнала подчиненных документов.

ОткрытьФорму(ОписательОбъекта, КонтекстФормы, Документ)

ОписательОбъекта Строковое выражение. Журнал.Подчиненные;
Документ Значение типа «документ», задающее доку­мент, для которого будут выводиться подчи­ненные документы.
Открытие формы существующего элемента справочника.

ОткрытьФорму(Элемент, КонтекстФормы, РежимПросмотра)

Элемент Значение типа «Справочник».
РежимПросмотра Необязательный параметр. Числовое выра­жение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотрен­ный текущим значением параметра «Режим открытия объектов» установленного поль­зователем. По умолчанию — 0.
Открытие формы нового элемента справочника.

ОткрытьФорму(ОписательОбъекта, КонтекстФормы , ГруппаРодитель,

ФлагГруппы, ЭлементВладелец)

ОписательОбъекта Строковое выражение.

Элемент. ХХХХХ, где ХХХХХ — вид спра­вочника;
ГруппаРодитель Необязательный параметр. Выражение типа «справочник», задающий родительскую группу для открытия формы ввода нового элемента (группы) справочника.
ФлагГруппы Необязательный параметр. Числовое выра­жение, задающее форму ввода нового эле­мента (группы) справочника: 1 — ввод новой группы, 0 — ввод нового элемента. По умол­чанию — 0.
ЭлементВладелец Необязательный параметр. Выражение типа «справочник», задающий элемент справоч­ника-владельца для открытия формы ввода нового элемента (группы) подчиненного справочника.
Открытие формы списка справочника.

ОткрытьФорму(ОписательОбъекта, КонтекстФормы)

ОписательОбъекта Строковое выражение.

Справочник.ХХХХХ.YYYYY, где ХХХХХ — вид справочника, YYYYY — имя выбран­ной формы списка справочника;
Открытие формы отчета.

ОткрытьФорму(ОписательОбъекта, КонтекстФормы)

ОписательОбъекта Строковое выражение. Отчет. ХХХХХ , где ХХХХХ — вид отчета;
Открытие формы обработки.

ОткрытьФорму(ОписательОбъекта, КонтекстФормы)

ОписательОбъекта Строковое выражение. Обработка.ХХХХХ, где ХХХХХ — вид обработки;
Открытие формы внешнего отчета.

ОткрытьФорму(ОписательОбъекта, КонтекстФормы, ИмяФайла)

ОписательОбъекта Строковое выражение. Отчет;
ИмяФайла Строковое выражение — полное имя файла внешнего отчета.
Открытие формы журнала расчетов.

ОткрытьФорму(ОписательОбъекта, КонтекстФормы)

ОписательОбъекта Строковое выражение.

ЖурналРасчетов. ХХХХХ, где ХХХХХ — вид журнала расчетов;
Открытие формы существующего счета.

ОткрытьФорму(Счет, КонтекстФормы, РежимПросмотра)

Счет Значение типа «Счет».
РежимПросмотра Необязательный параметр. Числовое выра­жение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотрен­ный текущим значением параметра «Режим открытия объектов» установленного поль­зователем. По умолчанию — 0.
Открытие формы нового счета.

ОткрытьФорму(ОписательОбъекта, КонтекстФормы)

ОписательОбъекта Строковое выражение.

Счет. ХХХХХ , где ХХХХХ — идентифика­тор плана счетов;
Открытие формы списка счетов (плана счетов).

ОткрытьФорму(ОписательОбъекта, КонтекстФормы)

ОписательОбъекта Строковое выражение.

ПланСчетов.ХХХХ.YYYY, где ХХХХХ — идентификатор плана счетов; YYYYY — идентификатор формы плана сче­тов.
Открытие формы существующей операции.

ОткрытьФорму(ОписательОбъекта, КонтекстФормы, Документ, Проводка,

Корреспонденция, РежимПросмотра)

ОписательОбъекта Строковое выражение. Операция.
Документ Значение типа «документ», операция которого будет открываться.
Проводка Необязательный параметр. Числовое выра­жение — номер проводки, на которую нужно позиционировать курсор при открытии опе­рации.
Корреспонденция Необязательный параметр. Числовое выра­жение — номер корреспонденции указанной проводки, на которую нужно позициониро­вать курсор при открытии операции.
РежимПросмотра Необязательный параметр. Числовое выра­жение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотрен­ный текущим значением параметра «Режим открытия объектов» установленного поль­зователем. По умолчанию — 0.
Открытие формы ввода новой операции.

ОткрытьФорму(ОписательОбъекта, КонтекстФормы, ТиповаяОперация)

ОписательОбъекта Строковое выражение. Операция.
ТиповаяОперация Необязательный параметр. Строковое выра­жение — наименование типовой операции, которую следует использовать при вводе новой операции. Если значение не задано или пустое, то ввод операции выполняется без использования типовой.
Открытие формы журнала операций.

ОткрытьФорму(ОписательОбъекта, КонтекстФормы, Документ, Пров, Корр)

ОписательОбъекта Строковое выражение.

ЖурналОпераций.YYYYY, где YYYYY — идентификатор формы журнала операций;
Документ Значение типа «документ», операция кото­рого будет использована для первоначально­го позиционирования.
Пров Номер проводки, которая будет использова­на для первоначального позиционирования курсора, если в журнале операций использу­ется режим показа проводок.
Корр Номер корреспонденции, которая будет ис­пользована для первоначального позициони­рования курсора, если в журнале операций используется режим показа проводок.
Открытие формы журнала проводок.

ОткрытьФорму(ОписательОбъекта, КонтекстФормы, Документ, Проводка,

Корреспонденция)

ОписательОбъекта Строковое выражение.

ЖурналПроводок.YYYYY, где YYYYY — идентификатор формы журнала проводок;
Документ Значение типа «документ», операция кото­рого будет использована для первоначально­го позиционирования.
Проводка Необязательный параметр. Числовое выра­жение — номер проводки операции, на кото­рую нужно в начале позиционироваться.
Корреспонденция Необязательный параметр. Числовое выра­жение — номер корреспонденции указанной проводки, на которую нужно в начале пози­ционироваться.

Открытие окна истории значений периодических констант, реквизитов справочников и счетов.

ОткрытьФорму(История.Константа.ИдентКонстанты, , , УстНаДату)

ОткрытьФорму(История.Справочник.ИдентСправочника, ИдентРеквизита, ,

ЭлементСправочника, УстНаДату)

ОткрытьФорму(История.Счет, , Счет, УстНаДату)

ИдентКонстанты Идентификатор периодической константы, как он задан в конфигураторе.
ИдентСправочника Идентификатор справочника, как он задан в конфигураторе.
ИдентРеквизита Идентификатор периодического реквизита справочника, как он задан в конфигураторе.
ЭлементСправочника Элемент справочника, для периодического реквизита которого открывается окно истории значений.
Счет Счет, для которого открывается окно истории значений.
УстНаДату Необязательный параметр. Дата, на которую нужно установить курсор при открытии ок­на.
Замечание. Допустимо включение в описатель открываемой формы уникаль­ного имени открываемой формы через символ # с некоторым произ­вольным идентификатором: #LLLL. В этом случае открываемая форма закрепляется за выбранным объектом и не происходит обновление формы при смене объекта, например при смене текущей строки списка справочника.

Примеры:

Перем Конт;

ОткрытьФорму(История.Справочник.Сотр.Тариф#Ид01, , ТекущийЭлемент());

ОткрытьФорму(Докум, Конт);

ОткрытьФорму(Документ.РасхНакл);

ОткрытьФорму(Журнал.Продажи.КраткаяФорма);

ОткрытьФорму(Отчет, , С:\lcv7db\extforms\profit.ert);

ОткрытьФормуМодально

Выполняет открытие модальной формы из встроенного языка.

Синтаксис:

ОткрытьФормуМодально(Параметр1, КонтекстФормы, ПараметрЗ...)

Англоязычный синоним:

OpenFormModal

Параметры: см. параметры метода ОткрытьФорму

Возвращаемое значение: см. метод ОткрытьФорму.

Описание:

Функция ОткрытьФормуМодально позволяет открыть модальную форму документа, справочника, журнала документов, и других форм используемых в системе 1С:Предприятие. Синтаксис и описание см. метод ОткрытьФорму.

См. также: ОткрытьФорму

ТипЗначения

Получить тип значения данных.

Синтаксис:

ТипЗначения(3начение)

Англоязычный синоним:

ValueType

Параметры:

3начение                Выражение, тип данных значения которого надо опреде­лить.

Возвращаемое значение:

Функция возвращает числовое значение:

0 —                  неопределенный тип данных;

1 —                  числовой тип данных;

2 —                  строковый тип данных;

3 —                  тип данных — дата;

10 —                агрегатный тип данных «Перечисление»;

11 —                агрегатный тип данных «Справочник»;

12 —                агрегатный тип данных «Документ»;

13 —                агрегатный тип данных «Календарь»;

14 —                агрегатный тип данных «ВидРасчета»;

15 —                агрегатный тип данных «Счет»;

16 —                агрегатный тип данных «ВидСубконто»;

17 —                агрегатный тип данных «ПланСчетов»;

100 — так называемый внешний объект. В этот класс попадают все агре­гатные объекты, не вошедшие в вышеперечисленный список, такие как «Текст», «Таблица», «Запрос», «ЖурналРасчетов» и т. п.

Описание:

Функция ТипЗначения определяет, к какому типу данных принадлежит переданный параметр 3начение и возвращает числовой результат:

Пример:

Если ТипЗначения(Код)1 Тогда

   Предупреждение(Код имеет не числовой тип !!!);

КонецЕсли;

ТипЗначенияСтр

Получить строковое обозначение типа данных.

Синтаксис:

ТипЗначенияСтр(3начение)

Англоязычный синоним:

ValueTypeStr

Параметры:

3начение                Выражение, тип данных значения которого надо определить.

Возвращаемое значение:

Функция возвращает строковое значение в русскоязычном или в англоя­зычном написании — в зависимости от текущей установки основного языка конфигурации:

Русскоязычное Англоязычное Описание
Неизвестный Объект UnknownObject неопределенный тип дан­ных;
Число Number числовой тип данных;
Строка String строковый тип данных;
Дата Date тип данных — дата;
Перечисление Enum агрегатный тип данных «Перечисление»;
Справочник Reference агрегатный тип данных «Справочник»;
Документ Document агрегатный тип данных «Документ»;
Регистр Register агрегатный тип данных «Регистр»;
Календарь Calendar агрегатный тип данных «Календарь»;
ВидРасчета Calculation агрегатный тип данных «ВидРасчета»;
ЖурналРасчетов CalcJournal агрегатный тип данных «ЖурналРасчетов»;
ПланСчетов ChartOfAccounts агрегатный тип данных «ПланСчетов»;
Счет Account агрегатный тип данных «Счет»,
Операция Operation агрегатный тип данных «Операция»;
КорректныеПроводки CorrectEntries агрегатный тип данных «КорректныеПроводки»;
БухгалтерскиеИтоги BookkeepingTotals агрегатный тип данных «БухгалтерскиеИтоги»;
Таблица Table агрегатный тип данных «Таблица»;
Текст Text агрегатный тип данных «Текст»;
Запрос Query агрегатный тип данных «Запрос»;
СписокЗначений ValueList агрегатный тип данных «СписокЗначений»;
ТаблицаЗначений ValueTable агрегатный тип данных «ТаблицаЗначений»;
Периодический Рег1odic агрегатный тип данных «Периодический»;
Картинка Picture агрегатный тип данных «Картинка»;
ГрупповойКонтекст GroupContext локальный контекст про­граммного модуля, пере­даваемый при помощи ключевого слова Контекст или возвра­щаемый методом ОткрытьПодбор;
OLE OLE OLE-объект;


Описание:

Функция ТипЗначенияСтр определяет, к какому типу данных принадле­жит переданный параметр 3начение и возвращает соответствующе строко­вое значение. Название агрегатного типа данных передается либо в русском либо в английском написании — в зависимости от текущей установки основно­го языка конфигурации.

Пример:

Предупреждение(Код имеет тип - + ТипЗначенияСтр(Код));

См. также: ОсновнойЯзык

ПустоеЗначение

Проверить значение любого типа.

Синтаксис:

ПустоеЗначение(3начение)

Англоязычный синоним:

Empty Value

Параметры:

3начение                Выражение любого типа данных, значение которого про­веряется на «пустое».

Возвращаемое значение:

Функция возвращает числовое значение: 1 — значение пустое; 0 — значение не пустое.

Описание:

Функция ПустоеЗначение определяет, является ли пустым переданное в параметре значение. При этом применяется следующее правило:

- значение неопределенного типа — всегда пустое;

- значение типа «строка» проверяется как в методе ПустаяСтрока;

- значение типа «число» проверяется на равенство нулю;

- значение типа «дата» проверяется на пустое значение;

- значения следующих типов: «справочник», «перечисление», «документ», «счет», «вид субконто», «план счетов», «календарь» проверяются как в методах Выбран для соответствующего типа объекта.

Пример:

Если ПустоеЗначение(Код) = 1 Тогда

   Предупреждение(Задайте непустое значение Кода !!!);

КонецЕсли;

ПолучитьПустоеЗначение

Получить пустое значение заданного типа данных.

Синтаксис:

ПолучитьПустоеЗначение(Тип)

Англоязычный синоним:

GetEmptyValue

Параметры:

Тип Необязательный параметр. Строка или вид субконто или объект метаданных, задающий тип данных. Если параметр не задан, то функция возвращает пустое значение неопре­деленного типа.
Возвращаемое значение:

Функция ПолучитьПустоеЗначение возвращает пустое значение заданно­го типа данных.

Описание:

Функция возвращает пустое значение заданного типа данных.

Пример:

Если ВыбФирма = ПолучитьПустоеЗначение(Справочник.Фирмы) = 1 Тогда

   Предупреждение(Задайте непустое значение Фирмы);

КонецЕсли;

НазначитьВид

Для значений типа «Документ неопределенного вида», «Справочник неопределенного вида», «Счет неопределенного вида» назначает кон­кретный вид.

Синтаксис:

НазначитьВид(3начение, Вид)

Англоязычный синоним:

SetKind

Параметры:

3начение Значение типа документ/справочник/счет неопределенного вида — обычно реквизит документа, справочника или диалога фор­мы.
Вид Строка — вид значения может быть задан строкой, содержащей идентификатор кон­кретного справочника, документа, плана счетов.

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

Процедура НазначитьВид используется для установки значениям типа «Документ неопределенного вида», «Справочник неопределенного вида», «Счет неопределенного вида» конкретный вид. При этом, если существующее значе­ние не соответсвует вновь установленному виду — то оно очищается.

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

Данная процедура может использоваться в сочетании с методом элемента формы НеИзменятьВид. Это возволяет регулировать программно собственно вид, а само значение предоставить выбирать пользователю интерактивно.

Пример:

* Например, реквизиту документа «Контрагент» типа справочник неопреде­ленного вида, в зависимости от значений других реквизитов можно уста­новить вид «Организации» или «Сотрудники».

Процедура ВводНаОсновании(ДокОсн)

   Если ДокОсн.Вид() = Счет Тогда

      НазначитьВид(Контрагент, «Организации»);

   Иначе

      НазначитВид(Контрагент, «Сотрудники»);

   КонецЕсли;

   Форма.Контрагент.НеИзменятьВид(1);

КонецПроцедуры

ЗаписьЖурналаРегистрации

Выводит строку текста в системный журнал регистрации.

Синтаксис:

ЗаписьЖурналаРегистрации(Коммент, ТипСобытия, Событие, Объект,

Категория)

Англоязычный синоним:

LogMessageWrite

Параметры:

Коммент Строковое выражение, комментарий к событию. Если этот параметр — единственный переданный при вы­зове метода, то тогда в журнал записывается стан­дартное дополнительное событие с указанным ком­ментарием.
ТипСобытия Необязательный параметр. Строковое выражение -тип события. По умолчанию или при пустой строке «Дополнительные события».
Событие Необязательный параметр. Строковое выражение -событие. По умолчанию «Дополнительное событие».
Объект Необязательный параметр. Объект события, по умол­чанию отсутствует. Для переданных в функцию объ­ектов типа Документ/ Справочник/ Счет представ­ление объекта будет записано автоматически (это не зависит от типа события и самого события).
Категория Необязательный параметр. Число — категория собы­тия:

1 — администрирование;

2 — изменение данных;

3 — информация;

4 — предупреждение;

5 — ошибка.

Значение по умолчанию 3.
Описание:

Процедура ЗаписьЖурналаРегистрации позволяет эмулировать запись в системный журнал регистрации информации о возникновении важных систем­ных событий.

Системой зарезервированы следующие типы событий/события:

Документ / Открыт Справочник/СнятаПометакаНаУдаление
Документ / Новый
Документ / Удален Константа / ЗначениеЗаписано
Документ / Записан Константа / ЗначениеУдалено
Документ / НаЗаписан
Документ / Проведен ЖурналРасчетов / ИзмененРасчетныйПериод
Документ / ПроведенЗаднимЧислом ЖурналРасчетов / ОткатНазадРасчетногоПериода
Документ / НеПроведен ЖурналРасчетов / НеудачнаяПопыткаИзмененияПериода
Документ / СделанНеПроведенным ЖурналРасчетов / ОтменаРучногоРедактированияРезультата
Документ / ЗаписанИПроведенЗаднимЧислом ЖурналРасчетов / ИзмененРезультат
Документ / ЗаписанИПроведен
Документ / ПомеченНаУдаление Счет / ЗаписанНовый
Документ / СнятаПометакаНаУдаление Счет / Записан
Документ / ИзмененаОперацияДокумента Счет / ЗначениеРеквизитаЗаписано
Документ / ПроводкиВключены Счет / ЗмачениеРеквизитаУдалено
Документ / ПроводкиВыключены Счет / Удален
Документ / ИзмененоВремя Счет / ПомеченНаУдаление
Справочник / ЗаписанНовый Счет / СнятаПометакаНаУдаление
Справочник / Записан
Справочник / Удален КорректнаяПроводка / ЗаписанаНовая
Справочник / ЗначениеРеквизитаЗаписано КорректнаяПроводка / Записана
Справочник / ЗначениеРеквизитаУдалено КорректнаяПроводка / Удалена
Справочник / ПеренесенВДругуюГруппу
Справочник / ПомеченНаУдаление ОбщиеСобытия / ИзменениеТА
Незарезервированные имена позволяют пользователю фактически указы­вать свои собственные типы событий и события. Это значит, что если в пара­метре ТипСобытия записать Отчет а в параметре Событие Сформирован, то при просмотре журнала регистрации можно будет фильт­ровать по событию «Сформирован» типа событий «Отчет».

Пример:

ЗаписьЖурналаРегистрации(Доброе утро!)

ПрефиксАвтоНумерации

Установить префикс для автоматического создания новых номеров.

Синтаксис:

ПрефиксАвтоНумерации(ИмяВида, Префикс)

Англоязычный синоним:

AutoNumPrefix

Параметры:

ИмяВида Строковое выражение с полным названием спра­вочника или документа, как он назван в конфигу­рации.
Префикс Строковое выражение — префикс номеров докумен­тов или кодов элементов справочника.
Описание:

Процедура ПрефиксАвтоНумерации устанавливает префикс для автоматического создания новых номеров документов или кодов элементов справочника.

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

ПрефиксАвтоНумерации(Документ.*, ПР-)

Пример:

ПрефиксАвтоНумерации(Документ.РасходнаяНакл, Рн-);

См. также: ПрефиксНомера, ПрефиксКода, УстановитьНовыйНомер, УстановитьНовыйКод.

ПолучитьЗначенияОтбора

Выбирать все существующие значения отбора.

Синтаксис:

ПолучитьЗначенияОтбора(ИмяОтбора, СписокЗначений , [ДатаНач], [ДатаКон])

Англоязычный синоним:

GetSelect ionValues

Параметры:

ИмяОтбора Строковое выражение с полным названием общего реквизита документа или графы отбора, как он назван в конфигурации.
СписокЗначений Идентификатор переменной. Если при вызове метода данная переменная содержит объект ти­па «СписокЗначений», то система заполнит его всеми возможными существующими значения­ми отбора. Если при вызове метода данная пе­ременная содержит любое другое значение кро­ме объекта типа «СписокЗначений», то система сама создаст объект типа «СписокЗначений», заполнит его существующими значениями отбо­ра и присвоит переменной ссылку на этот объ­ект.
ДатаНач Необязательный параметр. Дата начала интер­вала в котором проводить отбор. Если параметр не задан, то отбор будет производиться по всем данным.
ДатаКон Необязательный параметр. Дата конца интерва­ла в котором проводить отбор. Если параметр не задан или равен 0, то отбор будет производиться до ТА.
Возвращаемое значение:

Числовое значение: 1 — операция выполнена успешно; 0 — операция не вы­полнена.

Описание:

Функция ПолучитьЗначенияОтбора выбирает все возможные сущест­вующие значения отбора ИмяОтбора, заполняет выбранными значениями объект типа «СписокЗначений», и передает ссылку на этот объект в перемен­ной СписокЗначений.

Замечание. Функция ПолучитьЗначенияОтбора может работать и с вы­бранными в конфигурации отборами операций и проводок (СуммаОперации, Содержание, Сумма, Валюта, Количество, ВалСумма, Счет, СчетДт, СчетКт, ПланСчетов, реквизитам операции, реквизитам проводки, видам субконто) для которых установлен режим отбора.

Пример:

// Выбрать существующие значения Авторов документов

ПолучитьЗначенияОтбора(Автор, Спис, , );

См. также: «Работа со Списком Значений»

КомандаСистемы

Вызывает на исполнение команду DOS.

Синтаксис:

КомандаСистемы(СтрокаКоманды)

Англоязычный синоним:

System

Параметры:

СтрокаКоманды Строковое выражение, содержащее строку коман­ды.
Описание:

Процедура КомандаСистемы вызывает на исполнение команду, как если бы она была введена в командной строке DOS. При выполнении команды за­гружается исполняемый файл как «верхняя», активная программа.

Если загружается Windows-приложение, то управление немедленно возвра­щается в систему 1С:Предприятие на следующий за оператором КомандаСистемы оператор и система продолжает выполняться как фоновая прикладная программа. Пользователь может возвратиться в запускающую про­грамму или закончив выполнение запущенной, или переключившись обратно посредством списка задач Windows.

Если в параметре СтрокаКоманды не содержится путь к загружаемой программе в файловой системе к программе, то поиск происходит в следующей последовательности:

- текущий системный каталог;

- каталог Windows;

- системный каталог Windows;

- все каталоги, указанные в переменной PATH;

Пример:

* В данном примере запускается редактор текста notepad.exe и в него за­гружается файл textl. txt.

КомандаСистемы(notepad textl.txt);

ЗапуститьПриложение

Выполняет запуск внешнего приложения.

Синтаксис:

ЗапуститьПриложение(СтрокаКоманды)

Англоязычный синоним:

RunApp

Параметры:

СтрокаКоманды Строковое выражение, содержащее строку коман­ды запуска внешнего приложения или имя фай­ла, чтобы открыть его с помощью ассоциирован­ного для данного вида файлов приложения.
Описание:

Процедура ЗапуститьПриложение вызывает запуск внешнего приложе­ния. В отличие от функции КомандаСистемы запуск приложения выполняет­ся непосредственно, минуя командный интерпретатор. При выполнении коман­ды исполняемый файл загружается как «верхняя», активная программа.

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

Если загружается Windows-приложение, то управление немедленно возвра­щается в систему 1С:Предприятие на следующий за оператором ЗапуститьПриложение оператор и система продолжает выполняться как фо­новая прикладная программа. Пользователь может возвратиться в запускаю­щую программу или закончив выполнение запущенной, или переключившись обратно посредством списка задач Windows.

Если в параметре СтрокаКоманды не содержится путь к загружаемой программе в файловой системе к программе, то поиск происходит в следующей последовательности:

- текущий системный каталог;

- каталог Windows;

- системный каталог Windows;

- все каталоги, указанные в переменной PATH;

Пример:

* В данном примере запускается редактор текста notepad.exe и в него за­гружается файл textl. txt.

ЗапуститьПриложение(notepad textl.txt);

ЗавершитьРаботуСистемы

Выполняет запуск внешнего приложения.

Синтаксис:

ЗавершитьРаботуСистемы(ФлагСохранения)

Англоязычный синоним:

ExitSystem

Параметры:

ФлагСохранения Необязательный параметр. Флаг запроса сохра­нения открытых объектов. Если 0, то не запра­шивается сохранение не записанных документов, элементов справочников и т. п. Если 1, то сохра­нение запрашивается. Значение по умолчанию 1.
Описание:

Процедура ЗавершитьРаботуСистемы вызывает завершение работы сис­темы.

Пример:

ЗавершитьРаботуСистемы(0);

НайтиПомеченныеНаУдаление

Находит все помеченные на удаление объекты.

Синтаксис:

НайтиПомеченныеНаУдаление(Объекты)

Англоязычный синоним:

FindMarkedForDelete

Параметры:

Объекты Идентификатор объекта типа «СписокЗначений», в который данная процедура помещает найден­ные объекты.
Описание:

Процедура НайтиПомеченныеНаУдаление находит все помеченные на удаление объекты и помещает их в список значений.

Пример:

Список = СоздатьОбъект(Список Значений);

НайтиПомеченныеНаУдаление(Список);

НайтиСсылки

Находит ссылки на объекты, переданные в списке значений.

Синтаксис:

НайтиСсылки(Объекты, Ссылки)

Англоязычный синоним:

FindReferences

Параметры:

Объекты Конкретное значение объекта или объект типа «СписокЗначений», в котором данной процедуре передаются объекты, по которым надо найти ссылки.
Ссылки Идентификатор объекта типа «ТаблицаЗначений», в который данная процедура помещает найденные ссылки на объекты. Таблица значений состоит из 3 колонок:

1. Объект — объект, на который ссылаются;

2. Ссылка — объект, который содержит ссылку;

3. Комментарий — комментарий к ссылке.
Описание:

Процедура НайтиСсылки находит ссылки на переданные в списке объекты, и помещает их в таблицу значений.

Пример:

Список = СоздатьОбъект(СписокЗначений);

ТаблицаСсылок = СоздатьОбъект(ТаблицаЗначений);

НайтиПомеченныеНаУдаление(Список);

НайтиСсылки(Список, ТаблицаСсылок);

УдалитьОбъекты

Удалить объекты, переданные в списке значений.

Синтаксис:

УдалитьОбъекты(Объекты, Проверять, Ссылки)

Англоязычный синоним:

DeleteObjects

Параметры:

Объекты Конкретное значение объекта или объект типа «СписокЗначений», в котором данной процедуре передаются объекты, которые надо удалить.
Проверять Необязательный параметр. Число: 1 — перед удале­нием проверяется — нет ли ссылок на удаляемый объект. Если есть, то объект не удаляется, а ссылки помещаются в таблицу значений Ссылки. Любое другое число — проверку не выполнять. Значение по умолчанию: 1.
Ссылки Необязательный параметр. Идентификатор объекта типа «ТаблицаЗначений», в который данная про­цедура помещает найденные ссылки на объекты. Таблица значений состоит из 3 колонок:

1. Объект — объект, на который ссылаются;

2. Ссылка — объект, который содержит ссылку;

3. Комментарий — комментарий к ссылке.
Описание:

Процедура УдалитьОбъекты удаляет объекты, переданные в списке значе­ний.

Пример:

Список = СоздатьОбъект(СписокЗначений);

ТаблицаСсылок = СоздатьОбъект(ТаблицаЗначений);

НайтиПомеченныеНаУдаление(Список);

УдалитьОбъекты(Список, 1, ТаблицаСсылок);

ОбработкаОжидания

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

Синтаксис:

ОбработкаОжидания([ИмяПроцедуры], [ИнтервалВызова])

Англоязычный синоним:

IdleProcessing

Параметры:

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

Если в качестве параметра передается «пустая строка», то ранее запущенный процесс прекраща­ется.

Если параметр опущен, то данная процедура ОбработкаОжидания просто возвращает имя процедуры глобального модуля, которая назначе­на для периодического запуска в текущий мо­мент.
ИнтервалВызова Необязательный параметр. Числовое выражение — интервал времени в секундах, с которым пе­риодически будет вызываться процедура гло­бального модуля ИмяПроцедуры.

Если в качестве параметра передается 0 (ноль), то ранее запущенный процесс прекращается.

Если параметр опущен, то данная процедура ОбработкаОжидания просто возвращает имя процедуры глобального модуля, которая назначе­на для периодического запуска в текущий мо­мент.
Возвращаемое значение:

Имя процедуры глобального модуля, которая назначена для периодического запуска (на момент до исполнения процедуры).

Описание:

Функция ОбработкаОжидания инициирует периодический вызов проце­дуры глобального модуля ИмяПроцедуры с интервалом времени ИнтервалВызова.

Пример:

Процедура СформироватьТекущийОтчетПродаж

КонецПроцедуры;

ОбработкаОжидания(СформироватьТекущийОтчетПродаж, 60);

Процедуры и функции обработки значений

ЗначениеВСтрокуВнутр

Преобразование значения объекта агрегатного типа из внутреннего представления в строковое.

Синтаксис:

ЗначениеВСтрокуВнутр(Выражение)

Англоязычный синоним:

ValueToStringInternal

Параметры:

Выражение Выражение, вычисленное значение которого следу­ет перевести в строковое представление. В качестве параметра для данного метода допускается переда­вать значения любых типов данных, доступных в конфигурации, как базовых, так и агрегатных типов данных, за исключением тех типов данных, которые не имеют собственно значения — это касается таких объектов как «Периодический», «Таблица», «ФС», «Запрос», «XBase» и т. п. Однако, объекты типа «СписокЗначений» и «ТаблицаЗначений» исполь­зовать можно — они преобразуются в строковое представление.
Возвращаемое значение:

Результирующее строковое значение.

Описание:

Применять функцию ЗначениеВСтрокуВнутр имеет смысл только в осо­бых случаях. Например, если в рамках одной конфигурации требуется несколь­ко объектов упаковать в одну строку. При помощи функции ЗначениеВСтрокуВнутр объекты можно преобразовать в строковые значения, которые затем можно объединить в единую строку операцией конкатенации. В дальнейшем эту строку можно будет разобрать на составляющие и сделать об­ратное преобразование при помощи функции ЗначениеИзСтрокиВнутр.

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

Пример:

* Допустим, в конфигурации формируется отчет с использованием объекта «Таблица». Для обеспечения возможности получать дополнительные све­дения по отчету, в таблицах есть возможность в каждой ячейке хранить вычисляемое значение, которое можно затем использовать для обработки. Однако, в ячейке таблицы можно хранить только одно значение. В случае, если все же для обработки необходимо иметь несколько значений, то их можно с помощью метода ЗначениеВСтрокуВнутр упаковать в одну строку. Например, в ячейке таблицы запишем формулу значения ячейки в следующем виде:

ЗначениеВСтрокуВнутр(Запрос.Клиент) + РазделительСтрок +  

ЗначениеВСтрокуВнутр(Запрос.Товар)

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

Процедура ОбработкаЯчейкиТаблицы(Значение, ФлагСтандартнойОбработки)

   Если ТипЗначенияСтр(Значение) = Строка Тогда

      Орг = ЗначениеИзСтрокиВнутр(СтрПолучитьСтроку(Значение, 1));

      Тов = ЗначениеИзСтрокиВнутр(СтрПолучитьСтроку(Значение, 2));

      Если Тов.Выбран() = 0 Тогда

         Возврат;

      КонецЕсли;

      Карт(Орг, Тов);

      ФлагСтандартнойОбработки = 0;

      Возврат;

   КонецЕсли;

   ФлагСтандартнойОбработки = 1;

КонецПроцедуры

См. также: ЗначениеИзСтрокиВнутр, ЗначениеТекущейЯчейки, ОбработкаЯчейкиТаблицы

ЗначениеИзСтрокиВнутр

Преобразование значения объекта агрегатного типа из строкового системного представления во внутреннее.

Синтаксис:

ЗначениеИзСтрокиВнутр(СистСтрока)

Англоязычный синоним:

ValueFromStringInternal

Параметры:

СистСтрока Строковое выражение, представление объекта агре­гатного типа данных в системном строковом виде.
Возвращаемое значение:

Объект агрегатного типа данных, который получен из строкового системно­го представления.

Описание:

Применять функцию ЗначениеИзСтрокиВнутр имеет смысл только в осо­бых случаях. Например, если требуется несколько объектов упаковать в одну строку. При помощи функции ЗначениеВСтрокуВнутр объекты можно пре­образовать в строковые значения, которые затем можно объединить в единую строку операцией конкатенации. В дальнейшем эту строку можно будет разо­брать на составляющие и сделать обратное преобразование при помощи функ­ции ЗначениеИзСтрокиВнутр.

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

Замечание. При использовании метода ЗначениеИзСтрокиВнутр() для зна­чения типа «СписокЗначений», являющимся реквизитом формы, его идентификатор следует передавать в качестве второго параметра. В этом случае метод следует использовать как процедуру, т. е. не использовать возвращаемое значение. Пример:

ВосстановитьЗначение(СистСтрокаМойСпис, ИдентМойСпис);

Пример: См. предыдущий пример

См. также: ЗначениеВСтрокуВнутр, ЗначениеТекущейЯчейки

ЗначениеВСтроку

Преобразование значения из внутреннего представления в строковое.

Синтаксис:

ЗначениеВСтроку(Объект)

Англоязычный синоним:

ValueToString

Параметры:

Объект Значение, которое следует перевести в строковое представление. В качестве параметра для данного метода допускается передавать значения любых типов данных, доступных в конфигурации, как ба­зовых, так и агрегатных типов данных, за исключе­нием тех типов данных, которые не имеют собст­венно значения — это касается таких объектов как «Периодический», «Таблица», «ФС», «Запрос», «XBase» и т. п. Однако, объекты типа «СписокЗна­чений» и «ТаблицаЗначений» использовать можно — он преобразуется в строковое представление.
Возвращаемое значение:

Строковое представление переданного значения.

Описание:

Применять функцию ЗначениеВСтроку имеет смысл только в особых слу­чаях. Например, если требуется несколько объектов упаковать в одну строку. При помощи функции ЗначениеВСтроку объекты можно преобразовать в строковые значения, которые затем можно объединить в единую строку опера­цией конкатенации. В дальнейшем эту строку можно будет разобрать на составляющие и сделать обратное преобразование при помощи функции ЗначениеИзСтроки.

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

Пример:

СтрДок = ЗначениеВСтроку(ВыбДокумент);

См. также: ЗначениеИзСтроки

ЗначениеИзСтроки

Преобразование из строкового системного представления во внут­реннее значение объекта.

Синтаксис:

ЗначениеИзСтроки(СистСтрока)

Англоязычный синоним:

ValueFromString

Параметры:

СистСтрока Строковое выражение, содержащее представление объекта, полученное ранее при помощи метода ЗначениеВСтроку.
Возвращаемое значение:

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

Описание:

Применять функцию ЗначениеИзСтроки имеет смысл только в особых случаях. Например, если требуется несколько объектов упаковать в одну стро­ку. При помощи функции ЗначениеВСтроку объекты можно преобразовать в строковые значения, которые затем можно объединить в единую строку опера­цией конкатенации. В дальнейшем эту строку можно будет разобрать на со­ставляющие и сделать обратное преобразование при помощи функции ЗначениеИзСтроки.

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

Пример:

Док = ЗначениеИзСтроки(СтрДок);

См. также: ЗначениеВСтроку

ЗначениеВФайл

Сохраняет значение в файле.

Синтаксис:

ЗначениеВФайл(ИмяФайла, 3начение, Формат)

Англоязычный синоним:

ValueToFile

Параметры:

ИмяФаила Строковое выражение, задающее имя файла.
3начение Значение, которое следует сохранить в файле. В качестве параметра для данного метода допускается передавать значения любых типов данных, доступ­ных в конфигурации, как базовых, так и агрегатных типов данных, за исключением тех типов данных, которые не имеют собственно значения — это каса­ется таких объектов как «Периодический», «Табли­ца», «ФС», «Запрос», «XBase» и т. п. Однако, объ­екты типа «СписокЗначений» и «ТаблицаЗначе-ний» использовать можно.
Формат Необязательный параметр. Число: 1 — сохранение во внутреннем формате; иначе во внешнем. Значе­ние по умолчанию: 1.
Возвращаемое значение:

Число: 1 — функция выполнена успешно; 0 — функция не выполнена.

Описание:

Функция ЗначениеВФайл позволяет сохранить любое значение в файле. В дальнейшем этот файл можно будет распаковать и сделать обратное преобразо­вание при помощи функции ЗначениеИзФайла.

Пример:

Результат = ЗначениеВФайл(ВыбИмяФайла, ВыбДокумент);

См. также: ЗначениеИзФайла

ЗначениеИзФайла

Восстанавливает значение из файла.

Синтаксис:

ЗначениеИзФайла(ИмяФайла, 3начение, Формат)

Англоязычный синоним:

ValueFromFile

Параметры:

ИмяФайла Строковое выраженние, задающее имя файла.
3начение Необязательный параметр. Идентификатор пере­менной, куда система вернет значение, которое по­лучено из файла.
Формат Необязательный параметр. Число: 1 — сохранение во внутреннем формате; иначе во внешнем. Значе­ние по умолчанию: 1.
Возвращаемое значение:

Значение, которое получено из файла.

Описание:

Функция ЗначениеИзФайла восстанавливает значение из файла, которое упаковано туда при помощи функции ЗначениеВФайл.

Пример:

Док = ЗначениеИзФайла(ВыбИмяФайла);

См. также: ЗначениеВФайл

СохранитьЗначение

Сохранить для пользователя некоторое значение между сеансами.

Синтаксис:

СохранитьЗначение(Идентификатор, 3начение)

Англоязычный синоним:

SaveValue

Параметры:

Идентификатор Строковое выражение, наименование сохраняемо­го значения. Данное наименование используется для идентификации сохраняемых значений.
3начение Выражение любого типа. Объекты типа «Список-Значений» и «ТаблицаЗначений» использовать можно.
Описание:

Применять процедуру СохранитьЗначение следует, например, если требу­ется запомнить некоторые значения до следующего запуска системы.

Например, можно сохранять для данного пользователя значение того скла­да, с которого он обычно выписывает накладные. При запуске системы в сле­дующий раз данное значение может использоваться как значение склада по умолчанию для данного пользователя.

Пример:

СохранитьЗначение(МойСклад, Склад);

См. также: ВосстановитьЗначение

ВосстановитьЗначение

Восстановить сохраненное для пользователя значение.

Синтаксис:

ВосстановитьЗначение(Идентификатор)

Англоязычный синоним:

RestoreValue

Параметры:

Идентификатор Строковое выражение, наименование восстанав­ливаемого значения. Данное наименование ис­пользуется для идентификации сохраненных зна­чений.
Возвращаемое значение:

Значение, сохраненное для пользователя.

Описание:

Применять функцию ВосстановитьЗначение следует, например, если требуется восстановить ранее запомненное (в предыдущем сеансе работы) не­которые значение системы.

Например, можно сохранять для данного пользователя значение того скла­да, с которого он обычно выписывает накладные. При запуске системы в сле­дующий раз данное значение может использоваться как значение склада по умолчанию для данного пользователя.

Замечание. При использовании метода ВосстановитьЗначение() для зна­чения типа «СписокЗначений», являющимся реквизитом формы, его идентификатор следует передавать в качестве второго параметра. В этом случае метод следует использовать как процедуру, т. е. не использовать возвращаемое значение. ВосстановитьЗначение(СистСтрокаМойСпис, ИдентМойСпис);

Пример:

ДефСклад = ВосстановитьЗначение(МойСклад);

См. также: СохранитьЗначение

Процедуры и функции компоненты «Оперативный учет»

ПолучитьТА

Получить дату и время Точки Актуальности итогов в текстовом виде. Данная функция используется только при наличии компоненты. «Опе­ративный учет».

Синтаксис:

ПолучитьТА()

Англоязычный синоним:

GetAP

Возвращаемое значение:

Строковое значение, содержащее дату и время ТА.

Описание:

Функция ПолучитьТА возвращает дату и время Точки Актуальности ито­гов в текстовом виде.

Пример:

Дата_И_Время_ТА = ПолучитьТА();

ПолучитьДатуТА

Получить дату Точки Актуальности итогов. Данная функция исполь­зуется только при наличии компоненты «Оперативный учет».

Синтаксис:

ПолучитьДатуТА()

Англоязычный синоним:

GetDateOfAP

Возвращаемое значение:

Значение типа «дата», содержащее дату ТА.

Описание:

Функция ПолучитьДатуТА возвращает значение (типа «дата») даты Точки Актуальности итогов.

Пример:

Дата_ТА = ПолучитьДатуТА();

ПолучитьВремяТА

Получить значение времени Точки Актуальности итогов. Данная функция используется только при наличии компоненты «Оперативный учет».

Синтаксис:

ПолучитьВремяТА(Часы, Минуты, Секунды)

Англоязычный синоним:

GetTimeOfAP

Параметры:

Часы Идентификатор переменной, в которую ме­тод возвращает строковое значение часа ТА.
Минуты Идентификатор переменной, в которую ме­тод возвращает строковое значение минут ТА.
Секунды Идентификатор переменной, в которую ме­тод возвращает строковое значение секунд ТА.
Возвращаемое значение:

Строковое значение времени ТА в виде ЧЧ. MM. СС.

Описание:

Функция ПолучитьВремяТА записывает значение времени Точки Актуаль­ности итогов в передаваемые при вызове параметры.

Пример:

ПолучитьВремяТА(Час, Минута, Секунда);

ПолучитьДокументТА

Получить документ, который стоит на ТА. Данная функция использу­ется только при наличии компоненты «Оперативный учет».

Синтаксис:

ПолучитьДокументТА()

Англоязычный синоним:

GetDocOfAP

Возвращаемое значение:

Значение типа «документ», который стоит на ТА.

Описание:

Функция ПолучитьДокументТА возвращает документ, который стоит на ТА, если он есть.

Пример:

ПоследнийДок = ПолучитьДокументТА();

ПолучитьПозициюТА

Получить позицию Точки Актуальности итогов. Данная функция ис­пользуется только при наличии компоненты «Оперативный учет».

Синтаксис:

ПолучитьПозициюТА()

Англоязычный синоним:

GetAPPosition

Возвращаемое значение:

32-х символьное строковое значение позиции ТА.

Описание:

Функция ПолучитьПозициюТА возвращает 32-х символьное строковое зна­чение позиции ТА.

Пример:

ПозицияТА = ПолучитьПозициюТА();

УстановитьТАна

Изменить положение Точки Актуальности итогов. Данный метод ис­пользуется только при наличии компоненты «Оперативный учет». Данный метод используется только в монопольном режиме доступа.

Синтаксис:

УстановитьТАна(ПоложениеТА]

Англоязычный синоним:

SetAPToBeg

Параметры:

ПоложениеТА Выражение типа дата, документ или позиция документа, на начало которого устанавлива­ется ТА.
Описание:

Метод УстановитьТАна изменяет положение Точки Актуальности итогов на начало даты или документа ПоложениеТА. Данный метод используется только в монопольном режиме доступа.

Пример:

УстановитьТАна(ВыбДокумент);

УстановитьТАпо

Изменить положение Точки Актуальности итогов. Данный метод ис­пользуется только при наличии компоненты «Оперативный учет». Данный метод используется только в монопольном режиме доступа.

Синтаксис:

УстановитьТАпо(ПоложениеТА)

Англоязычный синоним:

SetAPToEnd

Параметры:

ПоложениеТА Выражение типа дата, документ или позиция документа, на конец которого устанавливает­ся ТА.
Описание:

Метод УстановитьТАпо изменяет положение Точки Актуальности итогов на конец даты или документа ПоложениеТА. Данный метод используется только в монопольном режиме доступа.

Пример:

УстановитьТАпо(ВыбДокумент);

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

Процедуры и функции этого раздела используются только при наличии компоненты «Бухгалтерский учет».

ВыбранныйПланСчетов

Возвращает план счетов, выбранный пользователем в параметрах системы.

Синтаксис:

ВыбранныйПланСчетов()

Англоязычный синоним:

DefaultChartOfAccounts

Возвращаемое значение:

Значение типа «ПланСчетов».

Описание:

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

Пример:

Сч = СоздатьОбъект(Счет);

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

ОсновнойПланСчетов

Возвращает план счетов, установленный в конфигурации в качестве основного.

Синтаксис:

ОсновнойПланСчетов()

Англоязычный синоним:

MainChartOfAccounts

Возвращаемое значение:

Значение типа «ПланСчетов».

Описание:

Функция ОсновнойПланСчетов выдает план счетов установленный в конфигурации в качестве основного.

Пример:

Сч = СоздатьОбъект(Счет);

Сч.ИспользоватьПланСчетов(ОсновнойПланСчетов());

СчетПоКоду

Поиск бухгалтерского счета по коду.

Синтаксис:

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

Англоязычный синоним:

AccountByCode

Параметры:

КодСчета Символьное выражение — код счета.
ПланСчетов Значение типа «План Счетов» — план счетов, в котором выполняется поиск. Если параметр не указан, поиск выполняется в основном плане счетов, заданном в метадан­ных.
Возвращаемое значение:

Значение типа «Счет».

Описание:

Метод СчетаПоКоду позволяет найти значение типа «Счет» по коду счета, указанному в виде символьной строки.

Пример:

// При проведении документа формируем проводку

Операция.НоваяПроводка();

Операция.Дебет.Счет = СчетПоКоду(51);

НачалоПериодаБИ

Возвращает дату начала периода бухгалтерских итогов.

Синтаксис:

НачалоПериодаБИ()

Англоязычный синоним:

BeginOfРег1odBT()

Возвращаемое значение:

Значение типа «Дата» — дата начала периода бухгалтерских итогов.

Описание:

Метод НачалоПериодаБИ возвращает дату начала периода бухгалтерских итогов, заданную в режиме «Настройка параметров системы».

Пример:

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

КонецПериодаБИ

Возвращает дату конца периода бухгалтерских итогов.

Синтаксис:

КонецПериодаБИ()

Англоязычный синоним:

EndOfРег1odBT()

Возвращаемое значение:

Значение типа «Дата» — дата конца периода бухгалтерских итогов.

Описание:

Метод КонецПериодаБИ возвращает дату конца периода бухгалтерских итогов, заданную в режиме «Настройка параметров системы».

Пример:

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

КонецРассчитанногоПериодаБИ

Возвращает последнюю дату рассчитанных бухгалтерских итогов.

Синтаксис:

КонецРассчитанногоПериодаБИ()

Англоязычный синоним:

EndOfCalculatedРег1odBT()

Возвращаемое значение:

Значение типа «Дата» — последняя дата рассчитанных бухгалтерских ито­гов.

Описание:

Метод КонецРассчитанногоПериодаБИ возвращает последнюю дату рас­считанных бухгалтерских итогов, заданную в режиме «Управление бухгалтер­ских итогов» при работе в режиме «1С:Предприятие».

Данная функция позволяет определить, до какой даты может быть выпол­нено обращение к бухгалтерским итогам.

Пример:

Если Дата2 КонецРассчитанногоПериодаБИ() Тогда

   Сообщить(Период не рассчитан!);

   Возврат;

КонецЕсли;

НазначитьСчет

Назначает счет значению типа «Вид субконто».

Синтаксис:

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

Англоязычный синоним:

SetAccount

Параметры:

ВидСубконто Значение типа «ВидСубконто», переданное по ссылке — обычно реквизит диалога формы.
Счет Значение типа «Счет».
НомерСубконто Значение типа «Число» — номер субконто для данного счета.
Описание:

Данная процедура используется для организации выбора значения типа «Вид субконто» в диалоге формы применительно к конкретному счету, то есть организовать выбор видов субконто конкретного счета. В качестве первого па­раметра передается собственно реквизит диалога, а в качестве второго — счет. Вызов данной процедуры ограничивает выбор вида субконто видами, заданны­ми для конкретного счета. Кроме того, само значение вида субконто очищается, если данный вид субконто не используется для указанного счета. Если указан параметр НомерСубконто, то значение вида субконто будет автоматически установлено в соответствии с настройкой субконто указанного счета с данным номером.

Пример:

Процедура ПриВыбореСчета()

   НазначитьСчет(ВыбВидСубконто1, Счет, 1);

   НазначитьСчет(ВыбВидСубконто2, Счет, 2);

   НазначитьСчет(ВыбВидСубконтоЗ, Счет, 3);

КонецПроцедуры

ВвестиПланСчетов

Выбрать план счетов из существующих планов счетов в диалоге.

Синтаксис:

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

Англоязычный синоним:

InputChartOfAccounts

Параметры:

ПланСчетов Значение типа «План счетов», переданное по ссылке (идентификатор переменной). В дан­ное значение будет осуществлен возврат вы­бранного значения.
Подсказка Строковое выражение, содержащее строку, которая будет выводиться в заголовке окна диалога.
Таймаут Числовое выражение — интервал времени ожидания ответа пользователя в секундах. Если параметр опущен или равен 0 — ожида­ние бесконечно. Необязательный параметр.
Возвращаемое значение:

Числовое значение: 1 — выбор осуществлен , 0 — выбор не осуществлен (пользователем нажата кнопка «Отмена», клавиша Esc или закрыто окно диалога).

Описание:

Данная функция выводит диалог, в котором пользователь интерактивно вы­бирает один из существующих планов счетов. Результат выбора возвращается в первый параметр функции.

Пример:

Перем ВыбПлан;

Если ВвестиПланСчетов(ВыбПлан, Введите план счетов) = 1 Тогда

   ...

КонецЕсли;

ВвестиВидСубконто

Выбрать вид субконто из существующих видов субконто в диалоге.

Синтаксис:

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

Англоязычный синоним:

InputSubcontoKind

Параметры:

ВидСубконто Значение типа «ВидСубконто», переданное по ссылке (идентификатор переменной). В дан­ное значение будет осуществлен возврат вы­бранного значение вида субконто.
Подсказка Строковое выражение, содержащее строку, которая будет выводиться в заголовке окна диалога выбора вида субконо.
Счет Значение типа «Счет». Если данное значение указано выбор будет ограничен видами суб­конто, заданными для указанного счета. Не­обязательный параметр.
Таймаут Числовое выражение — интервал времени ожидания ответа пользователя в секундах. Если параметр опущен или равен 0 — ожида­ние бесконечно. Необязательный параметр.
Возвращаемое значение:

Числовое значение: 1 — выбор осуществлен , 0 — выбор не осуществлен (пользователем нажата кнопка «Отмена», клавиша Esc или закрыто окно диалога).

Описание:

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

Пример:

Перем ВыбВидСубк;

Если ВвестиВидСубконто(ВыбВидСубк, Введите вид убконто, ВыбСчет) = 1 Тогда

   ...

КонецЕсли;

МаксимальноеКоличествоСубконто

Максимальное количество видов субконто, которые могут быть зада­ны для счетов.

Синтаксис:

МаксимальноеКоличествоСубконто()

Англоязычный синоним:

MaxSubcontoCount

Возвращаемое значение:

Число — максимальное количество видов субконто.

Описание:

Метод МаксимальноеКоличествоСубконто выдает значение параметра «Максимальное количество субконто», указанное в метаданных в настройке планов счетов. Фактически она позволяет определить, сколько видов субконто может быть задано для счета.

Пример:

Если МаксимальноеКоличествоСубконто() 2 Тогда

   Форма.ВидСубк2.Видимость(0);

КонецЕсли;

Процедуры и функции компоненты «Расчет»

ОсновнойЖурналРасчетов

Устанавливает основной журнал расчетов. Используется только при наличии компоненты «Расчет».

Синтаксис:

ОсновнойЖурналРасчетов(ЖурналРасч)

Англоязычный синоним:

BasicCalcJournal

Параметры:

ЖурналРасч Строковое значение — идентификатор журнала расчетов, как он задан при конфигурировании.
Возвращаемое значение:

Значение текущего журнала расчетов.

Описание:

Функция ОсновнойЖурналРасчетов устанавливает основной журнал рас­четов. По умолчанию основной журнал расчетов — первый в списке журналов расчетов.

Пример:

ОсновнойЖурналРасчетов(Основной);


Глава 8 Системные предопределенные процедуры

Системные предопределенные процедуры предназначены для того, чтобы дать возможность программно обрабатывать системные события, возникающие при интерактивных действиях пользователя, таких как ввод нового, изменение, удаление. Исключение составляют только предопределенные процедуры Моду­ля документа: ОбработкаПроведения, ОбработкаУдаленияПроведения, АрхивироватьДокумент, которые вызываются как при интерактивном, так и при программном возникновении события.

ВНИМАНИЕ! Системные предопределенные процедуры не являются встроен­ными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком конфигурации в соответствующих программных модулях.

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

С помощью системной функции СтатусВозврата в теле предопределен­ной процедуры можно устанавливать значение статуса возврата процедуры. Статус возврата используется системой, чтобы определить — выполнить или нет действие того системного события, которое вызвало данную предопреде­ленную процедуру.

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

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в глобальном программном модуле. Данные про­цедуры, например, могут использоваться для расширения возможности про­граммного управления правами доступа пользователя к системе.

ПриНачалеРаботыСистемы

Предопределенная процедура при начале работы задачи.

Синтаксис:

ПриНачалеРаботыСистемы()

Англоязычный синоним:

OnStartSystem

Описание:

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

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриНачалеРаботыСистемы()

   Курс = Константа.ОсновнаяВалюта.Текущ_Курс.Получить(ТекущаяДата();

   Предупреждение(Добро пожаловать! Сегодня + + ТекущаяДата() +

         РазделительСтрок + Сейчас установлен курс доллара= + Курс), 7);

КонецПроцедуры

См. также: СтатусВозврата

ПриЗавершенииРаботыСистемы

Предопределенная процедура при завершении работы задачи.

Синтаксис:

ПриЗавершенииРаботыСистемы()

Англоязычный синоним:

OnFinishSystem

Описание:

Вызов предопределенной процедуры ПриЗавершенииРаботыСистемы про­изводится системой 1С:Предприятие неявно при завершении работы пользова­теля с системой. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если пользователь не выполнил какие-либо штатные операции), то работа системы не будет завершена, т. е. пользователь не сможет выйти из программы.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриЗавершенииРаботыСистемы()

   Предупреждение(До свидания !, 2);

КонецПроцедуры

См. также: СтатусВозврата

ПриУдаленииДокумента

Предопределенная процедура при удалении документа и при отмене пометки на удаление.

Синтаксис:

ПриУдаленииДокумента(УдалДокум, Режим)

Англоязычный синоним:

OnDeleteDoc

Параметры:

УдалДокум Значение удаляемого документа.
Режим Значение флага непосредственного удаления: 1 — непосредственное уда­ление; 0 — пометка на удаление.
Описание:

Вызов предопределенной процедуры ПриУдаленииДокумента производит­ся системой 1С:Предприятие неявно при интерактивном удалении документа и в случае отмены пометки на удаление. В этом случае, условия вызова можно узнать методом ПометкаУдаления документа. Если в данной предопределен­ной процедуре установить статус возврата — 0 (например, если не истек срок хранения документа), то удаление документа не будет выполнено.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриУдаленииДокумента(Док, Реж)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если (Док.Вид() = РасходнаяНакл) И (Реж = 1) Тогда

         Предупреждение(У вас нет права удалять накладную!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриУдаленииЭлемента

Предопределенная процедура при удалении элемента справочника и при отмене пометки на удаление.

Синтаксис:

ПриУдаленииЭлемента(УдалЭлем, Режим)

Англоязычный синоним:

OnDeleteItem

Параметры:

УдалЭлем Значение удаляемого элемента справочни­ка.
Режим Значение флага непосредственного удале­ния: 1 — непосредственное удаление; 0 — пометка на удаление.
Описание:

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

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриУдаленииЭлемента(Элем, Реж)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если (Элем.Вид() = Товар) И (Реж = 1) Тогда

         Предупреждение(У вас нет права удалять Товар!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриОткрытииИстории

Предопределенная процедура при открытии окна «История» значе­ния периодического реквизита элемента справочника или константы.

Синтаксис:

ПриОткрытииИстории(ТипОбъекта, Объект, ТолькоПросмотр)

Англоязычный синоним:

OnOpenHistory

Параметры:

ТипОбъекта Название периодического объекта конфигурации, как оно задано в конфигураторе (например, Справочник.Валюты.ТекущийКурс или Константа. ИмяДиректора). Строковое назва­ние агрегатного типа данных может передаваться системой в русском или англоязычном написании (Справочник или Reference, Константа или Const) — в зависимости от установки флага ос­новного языка системы (см. ОсновнойЯзык).
Объект Элемент справочника, для которого выполняется открытие окна истории периодического реквизита. Имеет смысл только для периодических реквизитов справочников, а не для констант.
ТолькоПросмотр Флаг установки режима только просмотр для окна истории значения. Если значение этого пара­метра установить в 1 (в предопределенной проце­дуре), то окно истории будет открыто только для чтения. Установка значения в 0 — введет режим по умолчанию (определенный правами). Уже открытое окно истории соответствующим образом изменит режим (если это случай, когда процедура обрабаты­вает не открытие окна, а смену отображаемого объ­екта). Значение по умолчанию — 0.
Описание:

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

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриОткрытииИстории(ТипОб, Об, ФлагРежима)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если (ТипОб = Справочник.Валюты.ТекКурс) И

           (Об = Константа.ОсновнаяВалюта)) Тогда

         Предупреждение(У вас нет права просматривать историю курса!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, ОсновнойЯзык

ПриЗаписиИстории

Предопределенная процедура при записи в окне «История» значения периодического реквизита элемента справочника или константы.

Синтаксис:

ПриЗаписиИстории(ТипОбъекта, Объект, 3начение, ДатаИстории)

Англоязычный синоним:

OnWriteHistory

Параметры:

ТипОбъекта Название периодического объекта конфигурации, как оно задано в конфигураторе (например, Справочник.Валюты.ТекущийКурс или Константа. ИмяДиректора). Строковое назва­ние агрегатного типа данных может передаваться системой в русском или англоязычном написании (Справочник или Reference, Константа или Const) — в зависимости от установки флага ос­новного языка системы (см. ОсновнойЯзык).
Объект Элемент справочника, для которого выполняется изменение периодического реквизита. Имеет смысл только для периодических реквизитов справочни­ков, а не для констант.
3начение Значение периодической записи.
ДатаИстории Дата периодической записи.
Описание:

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

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриЗаписиИстории(ТипОб, Об, Значен, ДатаИстор)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если (ТипОб = Справочник.Валюты.ТекКурс) И

           (Об = Константа.ОсновнаяВалюта) И (ДатаИстор РабочаяДата()) Тогда

         // Записывается курс для валюты, которая записана в Константе

         Предупреждение(У вас нет права устанавливать курс на будущую дату!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

Ом. также: СтатусВозврата, ОсновнойЯзык

ПриУдаленииИстории

Предопределенная процедура при удалении в окне «История» значе­ния периодического реквизита элемента справочника или константы.

Синтаксис:

ПриУдаленииИстории(ТипОбъекта, Объект, 3начение, ДатаИстории)

Англоязычный синоним:

OnDeleteHistory

Параметры:

ТипОбъекта Название периодического объекта конфигурации, как оно задано в конфигураторе (например, Справочник.Валюты.ТекущийКурс или Константа. ИмяДиректора). Строковое назва­ние агрегатного типа данных может передаваться системой в русском или англоязычном написании (Справочник или Reference, Константа или Const) — в зависимости от установки флага ос­новного языка системы (см. ОсновнойЯзык).
Объект Элемент справочника, для которого выполняется изменение периодического реквизита. Имеет смысл только для периодических реквизитов справочни­ков, а не для констант.
3начение Значение периодической записи.
ДатаИстории Дата периодической записи.
Описание:

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

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриУдаленииИстории(ТипОб, Об, Значен, ДатаИстор)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если (ТипОб = Справочник.Валюты.ТекКурс) И

           (Об=Константа.ОсновнаяВалюта) И (ДатаИстор РабочаяДата() - 7) Тогда

         // Удаляется курс для валюты, которая записана в Константе

         Предупреждение(У вас нет права удалять прошлый курс!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, ОсновнойЯзык

ПриЗаписиКонстанты

Предопределенная процедура при записи значения константы.

Синтаксис:

ПриЗаписиКонстанты(ИмяКонстанты, 3начение)

Англоязычный синоним:

OnWriteConst

Параметры:

ИмяКонстанты Название константы, как оно задано в конфигура­торе (например, СкладПоУмолчанию).
3начение Новое значение константы.
Описание:

Вызов предопределенной процедуры ПриЗаписиКонстанты производится системой 1С:Предприятие неявно при интерактивной записи значения кон­станты. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данное значение константы запрещено), то запись кон­станты не будет выполнена.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриЗаписиКонстанты(ИмяКонстанты, Значение)

   Если ИмяКонстанты = ТекущийПрефикс Тогда

      Если НазваниеНабораПрав() = Продавец Тогда

         Предупреждение(У вас нет права менять префикс!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриОтменеПроведенияДокумента

Предопределенная процедура при отмене проведения документа.

Синтаксис:

ПриОтменеПроведенияДокумента(Докум)

Англоязычный синоним:

OnUnPosting

Параметры:

Докум Значение обрабатываемого документа.
Описание:

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

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриОтменеПроведенияДокумента(Док)

   Если Док.ДатаДок = Константа.ДатаЗащитыДокументов Тогда

      Предупреждение(Нельзя снимать с проведения архив!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, СделатьНеПроведенным

ПриИзмененииВремениДокумента

Предопределенная процедура при изменении времени документа.

Синтаксис:

ПриИзмененииВремениДокумента(Докум)

Англоязычный синоним:

OnChangeTimeDoc

Параметры:

Докум Значение обрабатываемого документа.
Описание:

Вызов предопределенной процедуры ПриИзмененииВремениДокумента производится самой системой 1С:Предприятие неявно при интерактивной по­пытке изменить время документа. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если время данного документа нель­зя менять), изменение времени документа не будет выполнено.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриИзмененииВремениДокумента(Док)

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права менять время документа!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриУстановкеОтбора

Предопределенная процедура при установке отбора.

Синтаксис:

ПриУстановкеОтбора(ИмяРеквизОтбора, 3начение)

Англоязычный синоним:

OnSetSelectInJournal

Параметры:

ИмяРеквизОтбора Строковое значение — название общего рекви­зита документа (как оно задано в конфигура­торе), по которому производится отбор (на­пример, Автор).
3начение Значение реквизита отбора. Допустим, у документов существует общий реквизит Автор, по которому решено про­вести отбор, значит в этом параметре будет передано конкретное значение этого реквизи­та, по которому решено провести отбор (на­пример, Сидоров И.А.).
Описание:

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

Данная предопределенная процедура может располагаться в глобальном программном модуле и модуле формы журнала. Если данная процедура при­сутствует в модуле формы соответствующего журнала, то будет вызвана она, если нет, то будет вызвана процедура из глобального модуля.

Пример:

Процедура ПриУстановкеОтбора(ИмяОтбора, ЗначОтбора)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если (Имя0тбора = Автор) И (ЗначОтбора ТекущПользователь) Тогда

         Предупреждение(У вас нет права просматривать чужие документы!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриСменеРасчетногоПериода

Предопределенная процедура, вызываемая при смене текущего рас­четного периода журнала расчетов.

Синтаксис:

ПриСменеРасчетногоПериода(ЖурналРасчетов, Период)

Англоязычный синоним:

OnРег1odChange

Параметры:

ЖурналРасчетов Журнал расчетов, период которого изменяет­ся (агрегатный объект типа «ЖурналРасче-тов»).
Период Устанавливаемый расчетный период (значе­ние типа «ПериодРасчета»).
Описание:

Вызов предопределенной процедуры ПриСменеРасчетногоПериода на исполнение производится системой 1C:Предприятие неявно при попытке сме­ны текущего расчетного периода любого журнала расчетов. Если в данной пре­допределенной процедуре установить статус возврата — 0, то текущий расчет­ный период не будет изменен.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриСменеРасчетногоПериода(ЖР, Период)

   Если ЖР.Вид() = Зарплата Тогда

      Предупреждение(Это смена текущего расчетного периода для журнала

                          | Зарплата);

   КонецЕсли;

   Если Период.ДатаНачала = ЖР.НачалоТекущегоПериода Тогда

      //не позволяем откатывать период назад

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриУдаленииСчета

Предопределенная процедура, выполняемая при удалении бухгалтер­ского счета.

Синтаксис:

ПриУдаленииСчета(УдалСчет, Режим)

Англоязычный синоним:

OnDeleteAccount

Параметры:

УдалСчет Значение типа «Счет» — удаляемый бух­галтерский счет.
Режим Режим удаления. Может принимать значе­ния:

1 — счет будет удален;

0 — счет будет помечен на удаление.
Описание:

Вызов предопределенной процедуры ПриУдаленииСчета производится системой 1С:Предприятие неявно при интерактивном удалении счета из плана счетов. В качестве параметров в процедуру передаются значение удаляемого счета и режим удаления: непосредственное удаление или пометка на удаление.

Если в данной процедуре установить статус возврата 0 (например, если на­рушается ссылочная целостность системы), то счет не будет удален (или поме­чен на удаление).

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриУдаленииСчета(УдСчет)

   Если УдСчет.Валютный() = 1 Тогда

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриВыклВклПроводокОперации

Предопределенная процедура, выполняемая при выключении или включении проводок.

Синтаксис:

ПриВыклВклПроводокОперации(Документ)

Англоязычный синоним:

OnOperEntryOffOn

Параметры:

Документ Значение типа «Документ» — документ, которому принадлежит операция.
Описание:

Вызов предопределенной процедуры ПриВыклВклПроводокОперации про­изводится системой 1С:Предприятие неявно при интерактивном выключении или включении проводок. В качестве параметра в процедуру передается значе­ние документа, которому принадлежит операция.

Если в данной процедуре установить статус возврата 0, то действие не будет выполнено.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриВыклЗклПроводокОперации(Док)

   Если Док.Вид() Операция Тогда

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата


Глава 9 Работа с Константами

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

* Изначально значение периодической константы Константа.ИмяДиректора было — Иванов И. И.. В некоторый мо­мент директор сменился.

Константа.ИмяДиректора.Установить('01.05.96', Петров П.П.);

* Данный оператор устанавливает новое значение периодической константы с даты '01.05.96', но старое значение — Иванов И. И. сохраняется до этой даты и может быть получено, например, следующей строкой текста программы:

ПрежнДирект = Константа.ИмяДиректора.Получить('01.01.96');

Средства языка предоставляют возможность непосредственного доступа к созданным в конфигураторе названиям констант в любом программном модуле, т. к. константы принадлежат глобальному контексту задачи. Работа с периоди­ческими константами осуществляется при помощи методов Получить и Уста­новить или при помощи специального агрегатного типа данных — Периодиче­ский. Работа с непериодическими константами осуществляется непосредствен­но через их идентификаторы.

Использование непериодических констант в синтаксисе языка аналогично глобальным переменным, т. е. идентификаторы непериодических констант могут размещаться в левой и правой части оператора присваивания, в выражениях, быть параметрами методов, процедур или функций в любом программном мо­дуле.

В качестве имени константы обязательно должно выступать полное имя конкретной константы, как оно объявлено в конфигураторе. Имя константы записывается через точку после ключевого слова Константа, т. е. полное имя константы записывается следующим образом:

Константа.Имя_константы,

где Имя_константы — название конкретной константы, как оно объявлено в окне «Метеданные» конфигуратора.

Англоязычный синоним ключевого слова Константа — Const.

Пример:

* Пример работы с непериодическими константами:

Константа.Организация = АО СПЕЦСТРОЙКОНСЕРВБАНК;

Константа.Адрес = г.Москва, Вернадского, 523, 25;

Р_Счет = Константа.НашСчет;

// операторы

Если Всего Константа.МинимальнаяЗарплата Тогда

   // операторы

Иначе

   // операторы

КонецЕсли;

Методы констант

НазначитьТип

Назначить тип для константы неопределенного типа.

Синтаксис:

НазначитьТип(ИмяКонстанты, ИмяТипа, Длина, Точность)

Англоязычный синоним:

SetType

Параметры:

ИмяКонстанты Строковое выражение — название константы неопре­деленного типа, как она названа в конфигураторе.
ИмяТипа Строковое выражение — название типа данных (или Вид субконто), который назначается константе. Например:

Строка, Число, Справочник.Товары, Документ.РасходнаяНакладная и т. п.
Длина Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
Точность Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.
Описание:

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

Пример:

Константа.НазначитьТип(ТМЦ, Справочник.Товары);

УстановитьАтрибут

Установить значение константы по имени идентификатора.

Синтаксис:

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

Англоязычный синоним:

SetAttrib

Параметры:

ИмяРеквизита Строковое выражение, содержащее имя констан­ты, как оно задано в конфигураторе.
3начение Выражение, содержащее устанавливаемое значе­ние константы.
Описание:

Метод УстановитьАтрибут позволяет установить значение константы по имени идентификатора, как оно задано в конфигураторе.

Пример:

Константа.УстановитьАтрибут(ФлагЗапретаРедактирования, 1);

ПолучитьАтрибут

Получить значение константы по идентификатору.

Синтаксис:

ПолучитьАтрибут(ИмяАтрибута)

Англоязычный синоним:

GetAttrib

Параметры:

ИмяАтрибута Строковое выражение, содержащее имя констан­ты, как оно задано в конфигураторе.
Возвращаемое значение:

Значение константы ИмяАтрибута.

Описание:

Метод ПолучитьАтрибут позволяет получить значение константы по идентификатору, как оно задано в метаданных.

Пример:

ФлЗапрРед = Константа.ПолучитьАтрибут(ФлагЗапретаРедактирования);

Методы периодических констант

Получить

Получить значение периодической константы на дату.

Синтаксис:

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

Англоязычный синоним:

GetValue

Параметры:

Дата Выражение со значением требуемой даты.
Возвращаемое значение:

Значение константы на заданную дату.

Описание:

Метод Получить возвращает значение константы на определенную дату. Данный метод можно использовать только для периодических констант.

Пример:

// Константа.РазмерКомпенсации - периодическая

// поэтому получим значение этой константы на дату документа

РазмерДК = Константа.РазмерКомпенсации.Получить(ДатаДок);

Если РазмерДК 0 Тогда

   Результат = РазмерДК;

Иначе

   // операторы

КонецЕсли;

Установить

Установить значение периодической константы на дату.

Синтаксис:

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

Англоязычный синоним:

SetValue

Параметры:

Дата Выражение со значением требуемой даты.
3начение Новое значение константы.
Описание:

Метод Установить устанавливает значение константы на определенную дату. Данный метод можно использовать только для периодических констант.

Пример:

Константа.РасчетныйСчет.Установить('01.07.96', 77889001);

Константа.Директор.Установить('01.01.85', Иванов П.С.)


Глава 10 Работа со Справочниками

Справочники — это агрегатный тип данных, средство для работы со спи­сками однородных элементов данных. При помощи справочников организуется ввод стандартной информации в документы, а также ее просмотр и, если необ­ходимо, корректировка. В большинстве своем справочники являются электрон­ными аналогами каталогов. Каждая карточка — это строка справочника, а све­дения, заносимые в карточку, являются реквизитами справочника.

Например, для того, чтобы покупатель, продавец, кладовщик, директор од­нозначно понимали, о каком товаре идет речь, каждый должен называть его одинаково, т. е. в соответствии с однажды утвержденным справочником товаров. Обычно в торговом предприятии он имеет вид прайс-листа, а если такой спра­вочник товаров хранится в компьютере, то в него заносят всю возможную но­менклатуру товаров, с которыми работает торговая фирма.

Название и структура каждого конкретного справочника определяется при его создании в конфигураторе. У любого справочника существует два обяза­тельных реквизита, которые создаются автоматически — Код и Наименование. Другие реквизиты справочника, которые могут содержать различную дополнительную информацию помимо наименования, определяются в конфигураторе конкретно для каждого создаваемого справочника.

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

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

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

Если конкретный элемент или группа справочника входит (согласно ло­кального контекста) в набор непосредственно доступных модулю значений аг­регатных типов данных (см. «Виды программных модулей»), то обращение к атрибуту, вызов метода для этого элемента или группы справочника — просто имя этого атрибута или метода с указанием необходимых параметров.

Пример:

* В форме редактирования элемента справочника «Сотрудники» мы имеем непосредственный доступ к текущему элементу (сотруднику) справочника. Значит, чтобы изменить имя текущего сотрудника, просто укажем:

Наименование = Сидоров С.С.;

Значение элемента или группы справочника может быть получено из дру­гих источников, например как реквизит какого-либо документа. Чтобы полу­чить доступ к атрибуту, вызвать метод такой переменной со значением типа «Справочник», имя этого атрибута, метода (с указанием необходимых парамет­ров) пишется через точку после имени реквизита.

Пример:

* Если в документе значение реквизита Сотрудники имеет тип «Спра­вочник», имя сотрудника можно узнать следующим образом:

ИмяСотр = Док.Сотрудники.Наименование;

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

При создании переменной со ссылкой на объект типа «Справочник» в каче­стве имени справочника должно выступать полное название конкретного вида справочника, как он объявлен в конфигураторе. Вид справочника записывается через точку после ключевого слова Справочник, т. е. полное имя справочни­ка записывается следующим образом:

Справочник.Имя_Справочника

где Имя_Справочника — название справочника, определенное в конфи­гураторе.

Англоязычный синоним ключевого слова Справочник — Reference. Допускается создавать объект неопределенного вида справочника. В этом случае название конкретного вида справочника в параметре вызова функции СоздатьОбъект опускается. Далее для работы с таким объектом ему надо ус­тановить вид справочника при помощи метода Вид.

Пример:

Спр1=СоздатьОбъект(Справочник.Товары);

Спр2=СоздатьОбъект(Справочник.Клиенты);

СпрЗ=СоздатьОбъект(Справочник);

СпрЗ.Вид(Валюты);

Замечание. Следует обратить особое внимание, что переменной может быть присвоена ссылка на позиционируемый объект или само значение элемен­та справочника (например, переменной может быть присвоено значение реквизита документа, который имеет тип «Справочник»). Использование ссылки, созданной при помощи функции СоздатьОбъект существенно отличается от работы непосредственно со значением элемента справочни­ка. Только при работе со ссылкой на позиционируемый объект типа «Справочник» есть возможность изменять позиционирование (найти-выбрать...) текущего элемента справочника (т. е. осуществлять навигацию по справочнику), создавать новые элементы и удалять существующие. С другой стороны, ссылка не содержит собственно значения элемента спра­вочника, которое можно присвоить чему-либо. Однако, его всегда можно получить используя метод ТекущийЭлемент.

Замечание. Объект, созданный при помощи функции СоздатьОбъект, изна­чально не спозиционирован, т. е. не указывает на конкретный элемент справочника. Чтобы начать с ним работать, его предварительно надо по­зиционировать при помощи методов НайтиЭлемент, НайтиПоКоду, ПолучитьЭлемент и т. п.

Пример:

*

//В модуле Формы списков Справочника

// меняем наименование выбранного в списке элемента справочника

Наименование = Администрация;

*

// В модуле Формы элемента справочника или

// В модуле Формы группы справочника

// при редактирования одного элемента справочника

// меняем наименование обрабатываемого элемента справочника

Наименование = Бухгалтерия;

*

// В других программных модулях

Спр = СоздатьОбъект(Справочник.Товары);

Спр.Новый();

//задаем реквизиты элемента Справочника, используя атрибуты

Спр.Наименование = Авто-Элемент;

Спр.Код = 1032;

Спр.Размер = 10045;

Спр.Записать();

Атрибуты справочников

Код

Значение реквизита Код.

Синтаксис:

Код

Англоязычный синоним:

Code

Описание:

Атрибут Код предоставляет доступ к значению обязательного реквизита Код выбранного элемента справочника.

Пример:

Спр = СоздатьОбъект(Справочник.Подразделения);

Спр.НайтиПоКоду(29);

Ид = Спр.Код;

Спр.Код = Ид + 5;

Наименование

Значение реквизита Наименование.

Синтаксис:

Наименование

Англоязычный синоним:

Description

Описание:

Атрибут Наименование предоставляет доступ к значению обязательного реквизита Наименование выбранного элемента справочника.

Пример:

Спр = СоздатьОбъект(Справочник.Подразделения);

Спр.НайтиПоКоду(29);

Подразделение = Спр.Наименование;

Реквизит

Значение реквизита справочника.

Синтаксис:

Реквизит Идентификатор реквизита справочника, как он задан в конфигураторе.
Описание:

Атрибут Реквизит предоставляет доступ к значению реквизита выбран­ного элемента справочника. В тексте программного модуля в качестве названия реквизита подставляется идентификатор конкретного реквизита справочника, созданного в конфигураторе.

Пример:

// В этом примере справочник Сотрудники имеет реквизит Оклад

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

Спр.НайтиПоКоду(111);

ОкладСотр = Спр.Оклад;

Спр.Оклад = ОкладСотр * 1.5;

Родитель

Значение родительской группы элемента справочника.

Синтаксис:

Родитель

Англоязычный синоним:

Parent

Описание:

Атрибут Родитель предоставляет доступ к значению родительской группы выбранного элемента справочника.

Данный атрибут может быть изменен только для объектов, созданных функцией СоздатьОбъект.

Пример:

Функция ДатьРодителя(Элем)

   // Справочник Товаров многоуровневый

   // Получая в параметре функции значение товара,

   // надо выдать имя группы товара

   Спр = СоздатьОбъект(Справочник.Товары);

   Спр.НайтиЭлемент(Элем);

   Если Спр.Уровень() 1 Тогда

      Спр.НайтиЭлемент(Спр.Родитель);

      Возврат Этот товар принадлежит группе + Спр.Наименование;

   Иначе

      Возврат Это товар первого уровня - нет родителя!;

   КонецЕсли;

КонецФункции

Владелец

Значение элемента сопряженного справочника, которому подчинен выбранный элемент текущего справочника.

Синтаксис:

Владелец

Англоязычный синоним:

Owner

Описание:

Атрибут Владелец предоставляет доступ к значению элемента сопряженно­го справочника, которому подчинен выбранный элемент текущего справочника.

Данный атрибут может быть изменен только для объектов, созданных функцией СоздатьОбъект.

Пример:

Функция ДатьВладельца(Элем)

   // Справочник Единицы подчинен Справочнику Товары

   // Получая в параметре функции значение Единицы измерения товара,

   // надо выдать имя товара, для которого задана эта единица изм.

   СпрТ = СоздатьОбъект(Справочник.Товары);

   СпрЕ = СоздатьОбъект(Справочник.Единицы);

   СпрЕ.НайтиЭлемент(Элем);

   СпрТ.НайтиЭлемент(СпрЕ.Владелец);

   Возврат Это единица измерения товара + СпрТ.Наименование;

КонецФункции

Методы периодических реквизитов

Получить

Получить значение периодического реквизита справочника на дату (или на документ).

Синтаксис:

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

Англоязычный синоним:

GetValue

Параметры:

Дата Необязательный параметр. Выражение со зна­чением требуемой даты или значение типа «документ» (в этом случае возвращается зна­чение на дату и время документа). Значение по умолчанию — ТА.
Возвращаемое значение:

Значение периодического реквизита справочника на заданную дату (или на документ).

Описание:

Метод Получить возвращает значение периодического реквизита справоч­ника на определенную дату или на документ. Данный метод разрешено исполь­зовать только для периодических реквизитов справочников, если для справоч­ника не установлена дата при помощи метода ИспользоватьДату.

Замечание: Если к объекту типа «справочник» однажды применен метод ИспользоватьДату, то в дальнейшем, чтобы выбирать значения перио­дических реквизитов справочника, нельзя применять к этому же объекту метод Получить, т. е. в такой последовательности эти два метода несо­вместимы.

Пример:

// при работе в контексте документа, его реквизит Сотрудник

// является переменной типа справочник,

// чтобы получить значение периодического реквизита Оклад этого

// справочника, применим функцию Получить

ОкладСотр = Сотрудники.Оклад.Получить(ДатаДок);

См. также: ИспользоватьДату, Установить

Установить

Записать новое значение периодического реквизита справочника на заданную дату.

Синтаксис:

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

Англоязычный синоним:

SetValue

Параметры:

Дата Выражение со значением требуемой даты.
3начение Выражение, содержащее устанавливаемое зна­чение периодического реквизита справочника.
Описание:

Метод Установить записывает значение периодического реквизита спра­вочника на определенную дату. Данный метод разрешено использовать только для периодических реквизитов справочников, если для справочника не уста­новлена дата при помощи метода ИспользоватьДату.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Замечание: Если к объекту типа «справочник» однажды применен метод ИспользоватьДату, то в дальнейшем, чтобы записать новые значения периодических реквизитов справочника, нельзя применять к этому же объекту метод Установить, т. е. в такой последовательности эти два ме­тода несовместимы.

Пример:

// при работе в контексте документа, его реквизит Сотрудник

// является переменной типа справочник,

// чтобы установить новое значение периодического

// реквизита Оклад этого элемента

// справочника, применим функцию Получить

Сотрудники.Оклад.Установить(ДатаДок, МаксОклад);

См. также: ИспользоватьДату, УстановитьРеквизитСправочника, Получить

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

Вид

Определить вид справочника.

Синтаксис:

Вид(Название)

Англоязычный синоним:

Kind

Параметры:

Название Необязательный параметр. Строковое выражение с названием вида справочника.
Возвращаемое значение:

Строковое значение, содержащее текущее название вида справочника (на момент до исполнения метода).

Описание:

Метод Вид позволяет установить или получить текущее название вида справочника. В тексте программы метод Вид можно использовать как процеду­ру или как функцию. Если при вызове метода параметр Название задан явно, то вид справочника устанавливается в соответствии с этим параметром. Метод возвращает строку, содержащую текущий (на момент до исполнения метода) идентификатор вида справочника, как он задан в конфигураторе.

Устанавливать новое значение вида справочника допускается только для объектов типа «Справочник» неопределенного вида, созданных при помощи функции СоздатьОбъект.

Пример:

// отобразим вид справочника в строке состояния

Спр1 = СоздатьОбъект(Справочник.Товары);

Состояние(Cnpl.Вид());

Спр2 = СоздатьОбъект(Справочник.Клиенты);

Состояние(Спр2.Вид());

СпрЗ = СоздатьОбъект(Справочник);

СпрЗ.Вид(Валюты);

Состояние(СпрЗ.Вид());

ПредставлениеВида

Определить пользовательское представление вида справочника.

Синтаксис:

ПредставлениеВида()

Англоязычный синоним:

KindPresent

Возвращаемое значение:

Строковое значение, содержащее пользовательское представление вида справочника (синоним справочника или, если он пустой, то идентификатор).

Описание:

Метод ПредставлениеВида позволяет получить пользовательское пред­ставление вида справочника, как он задан в конфигураторе.

Пример:

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

Спр1 = СоздатьОбъект(Справочник.Товары);

Состояние(Cnpl.ПредставлениеВида());

Уровень

Определить номер уровня элемента справочника.

Синтаксис:

Уровень()

Англоязычный синоним:

Level

Возвращаемое значение:

Числовое значение номера уровня текущего элемента справочника.

Описание:

Метод Уровень возвращает номер уровня текущего элемента справочника в структуре дерева многоуровневого справочника.

Пример:

Спр = СоздатьОбъект(Справочник.Подразделения);

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

Спр.ВыбратьЭлементы();

Пока Спр.ПолучитьЭлемент() 0 Цикл

   Сообщить(Строка(Спр.Наименование + Спр.Код + Спр.Уровень());

КонецЦикла;

УстановитьАтрибут

Установить значение реквизита по имени идентификатора.

Синтаксис:

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

Англоязычный синоним:

SetAttrib

Параметры:

ИмяРеквизита Строковое выражение, содержащее имя реквизи­та, как оно задано в конфигураторе.
3начение Выражение, содержащее устанавливаемое значе­ние реквизита.
Описание:

Метод УстановитьАтрибут позволяет установить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

Тов.УстановитьАтрибут(ЦенаРозн, ЦенаТов);

ПолучитьАтрибут

Получить значение реквизита по имени идентификатора.

Синтаксис:

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

Англоязычный синоним:

GetAttrib

Параметры:

ИмяРеквизита Строковое выражение, содержащее имя реквизи­та, как оно задано в конфигураторе.
Возвращаемое значение:

Значение реквизита ИмяРеквизита.

Описание:

Метод ПолучитьАтрибут позволяет получить значение реквизита по име­ни идентификатора, как оно задано в конфигураторе.

Пример:

ЦенаТов = Тов.ПолучитьАтрибут(ЦенаРозн);

ЭтоГруппа

Проверить принадлежность к группам.

Синтаксис:

ЭтоГруппа()

Англоязычный синоним:

IsGroup

Возвращаемое значение:

Числовое значение: 1 — если выбранный элемент справочника является группой , 0 — если выбранный элемент справочника обычный элемент.

Описание:

Метод ЭтоГруппа возвращает числовое значение 1 — если выбранный элемент справочника является группой , 0 — если выбранный элемент спра­вочника обычный элемент.

Пример:

* В данном примере мы просматриваем весь справочник Сотрудники и для групп сотрудников выводим в таблицу секцию Группа, а для со­трудников выводим секцию Элемент

Таб = СоздатьОбъект(Таблица);

Таб.ВывестиСекцию(Отчет);

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

Сотр.ВыбратьЭлементы();

Пока Сотр.ПолучитьЭлемент() 0 Цикл

   Если Сотр.ЭтоГруппа() = 1 Тогда

      Таб.ВывестиСекцию(Группа);

   Иначе

      Таб.ВывестиСекцию(Элемент);

   КонецЕсли;

КонецЦикла;

См. также: ПринадлежитГруппе

ПринадлежитГруппе

Проверить принадлежность к группе.

Синтаксис:

ПринадлежитГруппе(Группа)

Англоязычный синоним:

BelongsToGroup

Параметры:

Группа Выражение со значением группы справочника.
Возвращаемое значение:

Числовое значение: 1 — если выбранный элемент справочника принадлежит указанной группе, 0 — если нет.

Описание:

Метод ПринадлежитГруппе проверяет, принадлежит ли указанной группе текущий элемент справочника (не важно, на каком нижестоящем уровне он находится). Возвращаемое числовое значение: 1 — если да; 0 — если нет.

Пример:

// выведем в отчет только те подразделения, которые

// принадлежат группе ВыбГруппа

Процедура ВывестиНаПечать()

   // . . .

   Возврат;

КонецПроцедуры

...

Спр = СоздатьОбъект(Справочник.Подразделения);

// Задаем выборку в порядке кодов Спр.ПорядокКодов();

Спр.ВыбратьЭлемернты();

Пока Спр.ПолучитьЭлемент() = 1 Цикл

   Если Спр.ПринадлежитГруппе(ВыбГруппа) = -1 Тогда

      ВывестиНаПечать();

   КонецЕсли;

КонецЦикла;

См. также: ЭтоГруппа

Выбран

Проверить факт выбора элемента справочника.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Числовое значение: 1 — если элемент справочника выбран (спозициониро­ван); 0 — если не выбран.

Описание:

Метод Выбран возвращает число со значением 1 — если элемент справоч­ника выбран (спозиционирован), 0 — если элемент справочника не выбран.

Пример:

// В диалоге формирования некоторого отчета

// ВыбСклад - реквизит диалога типа «справочник.Склад»

Если ВыбСклад.Выбран() = 0 Тогда

   // Если Склад в диалоге не выбран, то формируем без условий

   Заг1 = По всем складам.;

Иначе

   // если в диалоге выбран Склад

   // то формируем отчет только по выбранному складу

   Заг1 = Отчет по складу + ВыбСклад.Наименование;

КонецЕсли;

Выбрать

Выбрать элемент справочника в диалоге.

Синтаксис:

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

Англоязычный синоним:

Choose

Параметры:

Подсказка Текст заголовка окна диалога выбора. Может ис­пользоваться в качестве подсказки конечному поль­зователю.
ФормаСписка Строковое выражение идентификатора той формы списка справочника (как он объявлен в конфигура­торе), которая должна использоваться для выбора. Если это значение пустое, то используется форма списка по умолчанию.
Возвращаемое значение:

Числовое значение: 1 — если элемент выбран; 0 — если не выбран.

Описание:

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

Пример:

// данная процедура присваивает некоторому реквизиту Фирма

// значение из Справочника.Фирмы

Процедура УстФирмы()

   // Создадим объект требуемого справочника

   Фрм = СоздатьОбъект(Справочник.Фирмы);

   // реквизиты справочника могут быть периодическими

   // поэтому установим дату выборки периодических реквизитов

   Фрм.ИспользоватьДату(ДатаДок);

   // Вызываем диалог выбора элемента Справочника

   Если Фрм.Выбрать(Выберите фирму, ) 0 Тогда

      Фирма = Фрм.ТекущийЭлемент();

   КонецЕсли;

КонецПроцедуры

См. также: ВидыДляВыбора

ВидыДляВыбора

Установка выбираемых видов для справочника неопределенного вида.

Синтаксис:

ВидыДляВыбора(СписокВидов)

Англоязычный синоним:

KindsForChoise

Параметры:

СписокВидов Необязательный параметр. Строковое выражение, содержащее список видов выбираемых справоч­ников, разделенных запятыми.
Возвращаемое значение:

Строковое значение, содержащее текущий список видов выбираемых спра­вочников, разделенных запятыми (на момент до исполнения метода).

Описание:

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

Данный метод может использоваться только для объектов-справочников не­определенного вида, либо созданных функцией СоздатьОбъект, либо опреде­ленных в конфигураторе как реквизиты диалога или другого объекта. Если метод ВидыДляВыбора применен к реквизиту диалога типа «справочник неоп­ределенного вида», то интерактивный выбор элемента справочника будет про­изводиться только среди установленных видов справочников.

Пример:

// данная процедура присваивает некоторому реквизиту Фирма

// значение из Справочника.Фирмы

Процедура УстФирмы()

   // Создадим объект требуемого справочника

   Фрм = СоздатьОбъект(Справочник);

   // реквизиты справочника могут быть периодическими

   // поэтому установим дату выборки периодических реквизитов

   Фрм.ВидыДляВыбора(Фирмы);

   Фрм.ИспользоватьДату(ДатаДок);

   // Вызываем диалог выбора элемента справочника

   Если Фрм.Выбрать(Выберите фирму, ) 0 Тогда

      Фирма = Фрм.ТекущийЭлемент();

   КонецЕсли;

КонецПроцедуры

См. также: Выбрать

ВыборГруппы

Установить режим выборки групп.

Синтаксис:

ВыборГруппы(Режим)

Англоязычный синоним:

SelectGroup

Параметры:

Режим Необязательный параметр. Числовое выражение:
1 — выбирать группы; 0—не выбирать группы.

Возвращаемое значение:

Текущее числовое значение режима выборки групп (на момент до исполне­ния метода).

Описание:

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

По умолчанию, выборка элементов справочников для полей в формах доку­ментов, журналов и справочников установлена без выбора групп, а в форме отчета с выбором групп. Поэтому реально имеет смысл применять данный ме­тод только в том случае, если надо изменить режим выборки групп.

Пример:

* Если в форме документа необходимо, чтобы какой-либо реквизит Статус типа «справочник» мог принимать значения как элемента, так и группы, то этому реквизиту следует установить:

Статус.ВыборГруппы(1);

*

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

// Задаем выборку без групп

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

// Открываем выборку

Спр.ВыбратьЭлементы();

// Цикл получения элементов справочника

Пока (Спр.ПолучитьЭлемент() 0) Цикл

   Состояние(Спр.Наименование);

КонецЦикла;

ТекущийЭлемент

Получить значение элемента справочника.

Синтаксис:

ТекущийЭлемент()

Англоязычный синоним:

Currentltem

Возвращаемое значение:

Значение элемента справочника.

Описание:

Метод ТекущийЭлемент возвращает значение элемента справочника в це­лом, как объекта. Данный метод применяется, например, если нужно элемент справочника передать как параметр в вызове какого-либо метода или присвоить какому-либо реквизиту.

Пример:

// данная процедура присваивает некоторому реквизиту Фирма

// значение из справочника Фирмы

Процедура УстФирмы()

   // Создадим объект требуемого справочника

   Фрм = СоздатьОбъект(Справочник.Фирмы);

   // Вызываем диалог выбора элемента справочника

   Если Фрм.Выбрать(Выберите фирму, ) 0 Тогда

      Фирма = Фрм.ТекущийЭлемент();

   КонецЕсли;

КонецПроцедуры

ПолныйКод

Определить полный код элемента справочника.

Синтаксис:

ПолныйКод()

Англоязычный синоним:

FullCode

Возвращаемое значение:

Строковое значение, содержащее полный код выбранного элемента спра­вочника.

Описание:

Метод ПолныйКод возвращает строку, содержащую полный код выбранно­го элемента справочника (с кодами групп всех вышестоящих уровней, разде­ленными символом /).

Пример:

ПолнКод = Спр.Подразделения.ПолныйКод();

См. также: НайтиПоКоду

ПолноеНаименование

Определить полное наименование элемента справочника.

Синтаксис:

ПолноеНаименование()

Англоязычный синоним:

FullDescr

Возвращаемое значение:

Строковое значение, содержащее полное наименование выбранного элемен­та справочника.

Описание:

Метод ПолноеНаименование возвращает строку, содержащую полное на­именование выбранного элемента справочника (с наименованиями групп всех вышестоящих уровней, разделенными символом /).

Пример:

ПолнИмя = Спр.Подразделения.ПолноеНаименование();

См. также: НайтиПоНаименованию

НайтиЭлемент

Найти элемент справочника по значению.

Синтаксис:

НайтиЭлемент(Элемент)

Англоязычный синоним:

Findltem

Параметры:

Элемент Выражение со значением элемента справочника.
Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено (элемент не найден).

Описание:

Метод НайтиЭлемент выполняет поиск элемента справочника по значе­нию, заданному параметром Элемент, и позиционирует объект справочник на этом элементе.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

// НашБанк должен иметь тип «справочник.Банки»

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

Бнк.ИспользоватьДату(ДатаДок);

Если НашБанк.Выбран() = 1 Тогда

   // Позиционируем созданный объект Бнк на заданном элементе

   Бнк.НайтиЭлемент(НашБанк);

   Процент = Бнк.Процент;

   НазваниеБанка = Бнк.Наименование;

КонецЕсли;

См. также: ТекущийЭлемент

НайтиПоКоду

Найти элемент справочника по коду.

Синтаксис:

НайтиПоКоду(Код, ФлагПоиска)

Англоязычный синоним:

FindByCode

Параметры:

Код Выражение со значением искомого кода.
ФлагПоиска Необязательный параметр. Числовое выражение — флаг поиска: 0 — поиск во всем справочнике вне за­висимости от родителя; 1 — поиск внутри установ­ленного подчинения (родителя); 2 — поиск по пол­ному коду.

Значение по умолчанию: 0 — для справочников, у которых код уникален во всем справочнике; 2 — для справочников, у которых код уникален в группе.
Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено (элемент не найден).

Описание:

Метод НайтиПоКоду выполняет поиск элемента справочника по значению кода, заданному параметром Код, и позиционирует объект справочник на этом элементе. Если справочник многоуровневый, то полный код выбираемого элемента можно задавать, разделяя коды уровней символом /.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

// Контекст журнала расчетов.

// Реквизит Подразд имеет тип «справочник»

Пдр = СоздатьОбъект(Справочник.Подразделения);

Пдр.ИспользоватьДату(ДатаДок);

Если Документ.Подразд 0 Тогда

   // если в документе код подразделения указан...

   Пдр.НайтиПоКоду(Документ.Подразд);

   Если Пдр.Выбран() 0 Тогда

      Сообщить(Есть такое подразделение !)

   Иначе

      Сообщить(Нет такого подразделения!)

   КонецЕсли;

КонецЕсли;

См. также: ПолныйКод

НайтиПоНаименованию

Найти элемент справочника по наименованию.

Синтаксис:

НайтиПоНаименованию(Наименование, Режим, ФлагПоиска)

Англоязычный синоним:

FindByDescr

Параметры:

Наименование Строковое выражение с наименованием искомого элемента справочника.
Режим Необязательный параметр. Числовое выражение — режим поиска: 1 — поиск внутри установленного подчинения (родителя); 0 — поиск во всем спра­вочнике вне зависимости от родителя. Значение по умолчанию — 1.
ФлагПоиска Необязательный параметр. Числовое выражение — флаг поиска: 1 — найти точное соответствие наиме­нования; 0 — найти наименование по первым сим­волам.

Значение по умолчанию — 0.
Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено (элемент не найден).

Описание:

Метод НайтиПоНаименованию выполняет поиск элемента справочника по наименованию, заданному параметром Наименование и позиционирует объект справочник на этом элементе.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

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

Спр.ИспользоватьДату(ДатаДок);

// Позиционируем созданный объект Спр по известному наименованию

Спр.НайтиПоНаименованию(Иванов, 1);

Если Спр.Выбран() 0 Тогда

   Оклад=Спр.Оклад;

   Подразделение = Спр.Подразделение;

Иначе

   Предупреждение(Нет у нас Ивановых!);

КонецЕсли;

См. также: ПолноеНаименование

НайтиПоРеквизиту

Найти элемент справочника по значению реквизита.

Синтаксис:

НайтиПоРеквизиту(ИмяРеквизита, 3начение, ФлагГлобальногоПоиска)

Англоязычный синоним:

FindByAttribute

Параметры:

ИмяРеквизита Строковое выражение с наименованием реквизита.
3начение Значение реквизита для поиска.
ФлагГлобальногоПоиска Числовое выражение. Если 0, то поиск должен выполняться в пределах подчине­ния справочника, если 1, то поиск должен выполняться по всему справочнику.
Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено (элемент не найден).

Описание:

Метод НайтиПоРеквизиту выполняет поиск первого элемента с указанным значением заданного реквизита и позиционирует объект справочник на этом элементе.

Данный метод может использоваться только в том случае, если в конфигу­раторе при описании данного реквизита установлен признак «Сортировка» (Свойства реквизита - Дополнительные - Сортировка).

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

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

Спр.ИспользоватьДату(ДатаДок);

// Позиционируем созданный объект Спр по реквизиту

Спр.НайтиПоРеквизиту(СерияПаспорта, XXVII-OP, 1);

Если Спр.Выбран() 0 Тогда

   Имя = Спр.Наименование;

Иначе

   Предупреждение(Не найден сотрудник с таким паспортом!);

КонецЕсли;

ВыбратьЭлементы

Открыть выборку элементов справочника

Синтаксис:

ВыбратьЭлементы(Режим)

Англоязычный синоним:

SelectItems

Параметры:

Режим Необязательный параметр. Числовое выражение: 1 — выбирать элементы с учетом иерархии; 0 — выбирать элементы без учета иерархии. Значение по умолчанию — 1.
Возвращаемое значение:

Число 1 — если действие выполнено и в выборке есть хотя бы один эле­мент;

Число 0 — если действие не выполнено или в выборке нет ни одного эле­мента.

Описание:

Метод ВыбратьЭлементы предоставляет возможность выбирать элементы (открывает выборку) при помощи метода ПолучитьЭлемент.

Дальнейшая выборка при помощи метода ПолучитьЭлемент будет про­исходить среди элементов текущего справочника в порядке, установленном заранее при помощи методов: ПорядокНаименований, ПорядокКодов, ВключатьПодчиненные, ИспользоватьРодителя, ИспользоватьВладельца, ИспользоватьДату.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Акц = СоздатьОбъект(Справочник.Акционеры);

Таб = СоздатьОбъект(Таблица);

Акц.ИспользоватьДату(ДатаОтчета);

Таб.ВывестиСекцию(Отчет);

// Открываем выборку Акц.ВыбратьЭлементы();

// Цикл получения элементов справочника

Пока Акц.ПолучитьЭлемент() 0 Цикл

   Если Акц.ЭтоГруппа() = 1 Тогда

      Таб.ВывестиСекцию(Группа);

   Иначе

      Таб.ВывестиСекцию(Акционер);

   КонецЕсли;

КонецЦикла;

См. также: ПолучитьЭлемент, ПорядокНаименований, ПорядокКодов, ВключатьПодчиненные, ИспользоватьРодителя, ИспользоватьВладельца, ИспользоватьДату.

ВыбратьЭлементыПоРеквизиту

Открыть выборку элементов справочника по значению реквизита.

Синтаксис:

ВыбратьЭлементыПоРеквизиту(ИмяРеквизита, 3начение, РежимИерархии,

 РежимГрупп)

Англоязычный синоним:

Select ItemsByAttribute

Параметры:

ИмяРеквизита Строковое выражение с именем реквизита спра­вочника, который задает порядок обхода элементов справочника.
3начение Значение реквизита для выборки.
РежимИерархии Необязательный параметр. Числовое выражение: 1 — выбирать элементы с учетом иерархии; 0 — вы­бирать элементы без учета иерархии. Значение по умолчанию — 1.
РежимГрупп Числовое выражение: 1 — выбирать среди групп справочника; 0 — выбирать среди элементов спра­вочника.
Возвращаемое значение:

Число; 1 — если действие выполнено и в выборке есть хотя бы один эле­мент; 0 — если действие не выполнено или в выборке нет ни одного элемента.

Описание:

Метод ВыбратьЭлементыПоРеквизиту предоставляет возможность выби­рать элементы (открывает выборку) при помощи метода ПолучитьЭлемент.

Дальнейшая выборка при помощи метода ПолучитьЭлемент будет проис­ходить среди элементов текущего справочника, имеющих значение реквизита ИмяРеквизита равным 3начение, в порядке, установленном параметрами РежимИерархии и РежимГрупп, а также согласно установкам, сделан­ным заранее при помощи методов:

ПорядокНаименований,

ПорядокКодов,

ВключатьПодчиненные,

ИспользоватьРодителя,

ИспользоватьВладельца,

ИспользоватьДату.

Данный метод может использоваться только в том случае, если в конфигу­раторе при описании данного реквизита установлен признак «Сортировка» (Свойства реквизита - Дополнительные - Сортировка).

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Акц = СоздатьОбъект(Справочник.Акционеры);

Таб = СоздатьОбъект(Таблица);

Акц.ИспользоватьДату(ДатаОтчета);

Таб.ВывестиСекцию(Отчет);

// Открываем выборку

Акц.ВыбратьЭлементыПоРеквизиту(Отдел, НомерОтдела, 1, 0);

// Цикл получения элементов справочника

Пока Акц.ПолучитьЭлемент() 0 Цикл

   Если Акц.ЭтоГруппа() = 1 Тогда

      Таб.ВывестиСекцию(Группа);

      Таб.ВывестиСекцию(Акционер);

   КонецЕсли;

КонецЦикла;

См. также: ПолучитьЭлемент, ПорядокНаименований, ПорядокКодов, ОбратныйПорядок, ВключатьПодчиненные, ИспользоватьРодителя, ИспользоватьВладельца, ИспользоватьДату

ОбратныйПорядок

Установить порядок выборки элементов справочника.

Синтаксис:

ОбратныйПорядок(Режим)

Англоязычный синоним:

BackwardOrder

Параметры:

Режим Необязательный параметр. Числовое выражение: 1 — выбирать элементы справочника в обратном порядке; 0 — выбирать элементы справочника в прямом порядке. Значение по умолчанию — 1.
Возвращаемое значение:

Текущее значение порядка выборки элементов справочника (на момент до исполнения метода): 1 — обратный порядок выборки элементов справочника; 0 — выборка элементов справочника в прямом порядке.

Описание:

Метод ОбратныйПорядок устанавливает порядок выборки элементов спра­вочника. Данный метод обычно используется до вызова одного из методов: ВыбратьЭлементы, ВыбратьЭлементыПоРеквизиту который фактически открывает выборку. Дальнейшая выборка при помощи ПолучитьЭлемент бу­дет происходить в заданном порядке выборки.

По умолчанию, выборка элементов справочника выполняется в прямом по­рядке. Поэтому реально имеет смысл применять данный метод только в том случае, если надо получить обратный порядок выборки.

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

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Таб = СоздатьОбъект(Таблица);

Акц = СоздатьОбъект(Справочник.Акционеры);

Акц.ИспользоватьДату(ДатаОтчета);

Таб.ВывестиСекцию(Отчет);

// Открываем выборку Акц.ВыбратьЭлементы();

Акц.ПорядокКодов();

Акц.ОбратныйПорядок(1);

// Цикл получения элементов справочника.

Пока Акц.ПолучитьЭлемент() 0 Цикл

   Если Акц.Это Группа() = 1 Тогда

      Таб.ВывестиСекцию(Группа);

   Иначе

      Таб.ВывестиСекцию(Акционер);

   КонецЕсли;

КонецЦикла;

См. также: ВыбратьЭлементы, ПолучитьЭлемент, ПорядокНаименований, ПорядокКодов, ВключатьПодчиненные, ИспользоватьРодителя, ИспользоватьВладельца, ИспользоватьДату

ПолучитьЭлемент

Получить из выборки следующий элемент справочника.

Синтаксис:

ПолучитьЭлемент(Режим)

Англоязычный синоним:

Getltem

Параметры:

Режим Необязательный параметр. Числовое выражение: 1 — надо включать в выборку все подчиненные элементы, если 0 — не надо включать подчинен­ные элементы. Значение по умолчанию — 1.
Возвращаемое значение:

Числовое значение: 1 — если элемент выбран успешно, 0 — если элемент не выбран (отсутствует).

Описание:

Метод ПолучитьЭлемент выбирает следующий элемент справочника в по­следовательности выборки, открытой перед этим при помощи метода ВыбратьЭлементы.

Данный метод может применяться только для объектов, созданных функци­ей СоздатьОбъект, и используется для организации цикла поиска по спра­вочнику.

Пример:

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

// Задаем выборку в порядке кодов

Спр.ПорядокКодов();

// Открываем выборку

Спр.ВыбратьЭлементы();

// Цикл получения элементов справочника

Пока Спр.ПолучитьЭлемент() 0 Цикл

   Сообщить(=== + Спр.Наименование);

КонецЦикла;

См. также: ВыбратьЭлементы, ПолучитьЭлемент, ПорядокНаименований, ОбратныйПорядок, ПорядокКодов, ВключатьПодчиненные, ИспользоватьРодителя, ИспользоватьВладельца, ИспользоватьДату

ИспользоватьДату

Установить дату выборки периодических реквизитов справочника.

Синтаксис:

ИспользоватьДату[Дата, УстСразу)

Англоязычный синоним:

UseDate

Параметры:

Дата Необязательный параметр. Выражение со значением типа «дата».
УстСразу Необязательный параметр. Число: если 1, то дата, пере­данная в качестве параметра, будет установлена уже в те­кущей выборке; если 0 — то дата, переданная в качестве параметра будет установлена при следующей выборке. Значение по умолчанию — 0. Например:

если Цена — периодический реквизит справочника, то

Спр.ИспользоватьДату(Д1, 1);

Спр.ВыбратьЭлементы();

А = Спр.Цена; — возвращает значение на дату Д1

Спр.ИспользоватьДату(Д2, 1);

Б = Спр.Цена; — возвращает значение на дату Д2!

Если УстСразу — 0 (или опущен), то

Спр.ИспользоватьДату(Д1);

Спр.ВыбратьЭлементы();

А = Спр.Цена; — возвращает значение на дату Д1

Спр.ИспользоватьДату(Д2);

Б=Спр.Цена; — тоже возвращает значение на дату Д1!

Спр.ВыбратьЭлементы();

В=Спр.Цена; — только теперь возвращает значение на Д2.
Возвращаемое значение:

Текущее значение используемой даты (на момент до исполнения метода).

Описание:

Метод ИспользоватьДату устанавливает для объекта типа «справочник» дату, на которую будут в дальнейшем выбираться (или записываться) значения периодических реквизитов справочника.

Это очень важный метод, о котором необходимо всегда помнить при работе со справочниками, имеющими периодические реквизиты. Если он пропущен, то чначения выбранных периодических реквизитов справочника будут не опреде­лены.

Замечание: Если к объекту типа «справочник» однажды применен метод ИспользоватьДату, то в дальнейшем, чтобы выбирать значения перио­дических реквизитов справочника, нельзя применять к этому же объекту методы Получить и Установить, т. е. в такой последовательности эти методы несовместимы.

Замечание: Данный метод имеет следующую особенность применения: его нельзя использовать «через две точки». Например, если в документе с именем ДокНакл есть реквизит Фирма типа «справочник», у которо­го есть периодические реквизиты НДС и СН, то следующий оператор:

ДокНакл.Фирма.ИспользоватьДату(Дата);

работать не будет. В данном случае следует просто использовать проме­жуточную переменную, например:

ФирДок = ДокНакл.Фирма;

ФирДок.ИспользоватьДату(РабочаяДата());

НДСДок = ФирДок.НДС;

Пример:

// Здесь мы работаем в локальном контексте модуля Формы

// редактирования документа.

// Реквизит Должность в документе является справочником,

// у которого МинОкл - периодический реквизит

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

Длж.ИспользоватьДату(ДатаДок);

Длж.НайтиЭлемент(Должность);

Сообщить(Длж.Наименование + Минимальный оклад + Строка(Длж.МинОкл));

См. также: Получить, Установить, НайтиЭлемент, ВыбратьЭлементы

ИспользоватьВладельца

Установить выборку подчиненного справочника.

Синтаксис:

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

Англоязычный синоним:

UseOwner

Параметры:

Владелец Необязательный параметр. Выражение со значением элемента справочника-владельца.
ФлагИзменения Необязательный параметр. Этим флагом регулирует­ся возможность интерактивного изменения владель­ца. 1 — пользователь может изменить владельца интерактивно, 0 — пользователь не может интерактивно изменить владельца. Этот параметр используется в случае использовсния данного метода для объектов типа «справочник», которые являются реквизитами формы или реквизитами диалога.
Возвращаемое значение:

Значение элемента справочника-владельца для текущего подчиненного справочника (на момент до исполнения метода).

Описание:

Метод ИспользоватьВладельца может применяться к объектам типа «справочник» в двух случаях:

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

// Процедура выводит список детей сотрудника

// Справочник детей подчинен справочнику сотрудников

Процедура ВыводСпискаДетей(Сотр)

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

      // в качестве параметра функции ИспользоватьВладельца

      // передаем параметр, переданный в процедуру

   СпрД.ИспользоватьВладельца(Сотр);

   Сообщить(Дети сотрудника + Сотр.Наименование);

   СпрД.ВыбратьЭлементы();

   Пока СпрД.ПолучитьЭлемент() 0 Цикл

      Сообщить(СпрД.Наименование);

   КонецЦикла;

КонецПроцедуры

Пример:

// В форме элемента справочника Товары есть реквизит Единица,

// который имеет тип подчиненного справочника «Единицы»

// здесь мы можем задать ему в качестве владельца текущий элемент:

Единица.ИспользоватьВладельца(ТекущийЭлемент());

См. также: ВыбратьЭлементы, ПолучитьЭлемент, СоздатьОбъект

ИспользоватьРодителя

Установить выборку по группе справочника.

Синтаксис:

ИспользоватьРодителя(Группа)

Англоязычный синоним:

UseParent

Параметры:

Группа Необязательный параметр. Выражение со значе­нием группы справочника.
Возвращаемое значение:

Значение текущей группы для справочника (на момент до исполнения ме­тода).

Описание:

Метод ИспользоватьРодителя устанавливает группу текущего справоч­ника в качестве параметра выборки.

Данный метод используется до вызова метода ВыбратьЭлементы, который фактически открывает выборку. Дальнейшая выборка при помощи метода ПолучитьЭлемент будет происходить только среди элементов текущего спра­вочника, принадлежащих указанной группе.

При добавлении нового элемента текущего справочника данная установка также будет являться свойством нового элемента.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

// Это процедура формирования отчета - Список сотрудников

// ВыбСотр - реквизит диалога типа «справочник.Сотрудники»

Процедура ВыводСпискаСотрудников()

   Таб = СоздатьОбъект(Таблица);

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

   Спр.ИспользоватьДату(ДатаОтчета);

   Если ВыбСотр.Выбран() = 0 Тогда

      // если сотрудник в диалоге не выбран,

      // то формируем отчет без условий

      Заг = По всем сотрудникам;

   ИначеЕсли ВыбСотр.ЭтоГруппа() = 1 Тогда

      // если в диалоге выбрана группа сотрудников, то

      // задаем выборку элементов справочника из одной группы

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

      // Задаем выборку всех подчиненных элементов справочника

      Заг = По сотрудникам группы + ВыбСотр.Наименование;

   Иначе

      // если в диалоге выбран сотрудник, то

      // формируем отчет только по нему

      Спр.НайтиЭлемент(ВыбСотр);

      Заг = По сотруднику + ВыбСотр.Наименование;

      Таб.ВывестиСекцию(Отчет);

      Таб.ВывестиСекцию(Сотрудник);

      Перейти ~MET;

   КонецЕсли;

   ЧислоСтрок = 0;

   Таб.ВывестиСекцию(Отчет);

   // Открываем выборку Спр.ВыбратьЭлементы();

   Пока Спр.ПолучитьЭлемент() 0 Цикл

      ЧислоСтрок = ЧислоСтрок + 1;

      Если Спр.ЭтоГруппа() = 1 Тогда

         Таб.ВывестиСекцию(Группа);

      Иначе

         Таб.ВывестиСекцию(Сотрудник);

      КонецЕсли;

      Состояние(В отчет выведено +ЧислоСтрок+ строк.);

   КонецЦикла;

~MET:

   //Вызов выходного отчета в окно просмотра и редактирования.

   Таб.ТолькоПросмотр(1);

   Таб.Опции(0, 0, 4, 0);

   Таб.Показать(Список товаров по каталогу, );

   ВыбТовар = 0;

КонецПроцедуры

См. также: ВыбратьЭлементы, ПолучитьЭлемент, СоздатьОбъект

ВключатьПодчиненные

Установить флаг выборки всех подчиненных элементов.

Синтаксис:

ВключатьПодчиненные(Режим]

Англоязычный синоним:

IncludeChildren

Параметры:

Режим Необязательный параметр. Числовое выражение: если 1 — надо включать в выборку все подчиненные элементы, если 0 — не надо включать подчиненные элементы.
Возвращаемое значение:

Текущее числовое значение режима выборки подчиненных элементов спра­вочника (на момент до исполнения метода).

Описание:

Метод ВключатьПодчиненные устанавливает флаг выборки всех подчи­ненных элементов (то есть раскручивания дерева справочника глубже текуще­го уровня).

Данный метод используется до вызова метода ВыбратьЭлементы, который фактически открывает выборку. Дальнейшая выборка при помощи метода ПолучитьЭлемент будет происходить среди элементов текущего справочника в соответствии с установленным режимом выборки Режим. По умолчанию в выборку всегда включаются подчиненные элементы, поэтому реально имеет смысл применять данный метод только в том случае, если надо отменить вклю­чение подчиненных.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

// Это процедура формирования отчета - Список Товаров

// ВыбТовар - реквизит диалога типа «справочник.Товар», которым

// задается группа товаров для отображения.

//В процедуру передается параметр Режим, которым задается,

// отображать или нет вложенные подгруппы товаров выбранной группы

Процедура ВыводСпискаТоваров(Режим)

   Таб = СоздатьОбъект(Таблица);

   Тов = СоздатьОбъект(Справочник.Товары);

   Тов.ИспользоватьДату(ДатаОтчета);

   Если ВыбТовар.Выбран() = 0 Тогда

      //если товар в диалоге не выбран, то формируем отчет без условий

      Заг = По всем товарам.;

   ИначеЕсли ВыбТовар.ЭтоГруппа() = 1 Тогда

      // если в диалоге выбрана группа товаров, то

      // Задаем выборку элементов Справочника из одной группы

      Тов.ИспользоватьРодителя(ВыбТовар);

      Заг = По товарам группы + ВыбТовар.Наименование;

      // Задаем выборку всех подчиненных элементов Справочника

      Тов.ВключатьПодчиненные(Режим);

   Иначе

      // если в диалоге выбран товар, то

      // формируем отчет только по этому товару

      Тов.НайтиЭлемент(ВыбТовар);

      Заг = По товару + ВыбТовар.Наименование;

      Таб.ВывестиСекцию(Отчет);

      Таб.ВывестиСекцию(Товар);

      Перейти ~MET;

   КонецЕсли;

   ЧислоСтрок = О;

   Таб.ВывестиСекцию(Отчет);

   // Открываем выборку

   Тов.ВыбратьЭлементы();

   Пока Тов.ПолучитьЭлемент() 0 Цикл

      ЧислоСтрок = ЧислоСтрок + 1;

      Если Тов.ЭтоГруппа() = 1 Тогда

         Таб.ВывестиСекцию(Группа);

      Иначе

         Таб.ВывестиСекцию(Товар);

      КонецЕсли;

      Состояние(В отчет выведено + ЧислоСтрок + строк.);

   КонецЦикла;

   //Вызов выходного отчета в окно просмотра и редактирования.

~MET:

   Таб.ТолькоПросмотр(1);

   Таб.Опции(0, 0, 4, 0);

   Таб.Показать(Список товаров по каталогу, );

КонецПроцедуры

См. также: ВыбратьЭлементы, ПолучитьЭлемент, СоздатьОбъект

ПорядокКодов

Установить порядок выборки по возрастанию кода.

Синтаксис:

ПорядокКодов()

Англоязычный синоним:

OrderByCode

Описание:

Метод ПорядокКодов устанавливает режим выборки элементов справоч­ника в порядке возрастания кодов элементов.

Данный метод обычно используется до вызова метода ВыбратьЭлементы, который фактически открывает выборку. Дальнейшая выборка при помощи метода ПолучитьЭлемент будет происходить среди элементов текущего спра­вочника в порядке возрастания кодов элементов.

По умолчанию выборка элементов справочника производится в порядке основного представления справочника, которое задается в конфигураторе. По­этому реально имеет смысл применять данный метод только в том случае, если основное представление справочника — наименование, а надо получить элемен­ты в порядке кодов.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

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

// Задаем выборку в порядке кодов Спр.ПорядокКодов();

// Открываем выборку Спр.ВыбратьЭлементы();

// Цикл получения элементов справочника

Пока (Спр.ПолучитьЭлемент() 0) Цикл

   Состояние(Спр.Наименование);

КонецЦикла;

ПорядокНаименований

Установить порядок выборки по возрастанию наименования.

Синтаксис:

ПорядокНаименований()

Англоязычный синоним:

OrderByDescr

Описание:

Метод ПорядокНаименований устанавливает режим выборки элементов справочника в порядке возрастания наименования элементов.

Данный метод обычно используется до вызова метода ВыбратьЭлементы, который фактически открывает выборку. Дальнейшая выборка при помощи метода ПолучитьЭлемент будет происходить среди элементов текущего спра­вочника в порядке возрастания наименования элементов.

По умолчанию выборка элементов справочника производится в порядке основного представления справочника, которое задается в конфигураторе. По­этому реально имеет смысл применять данный метод только в том случае, если основное представление справочника — код, а надо получить элементы в по­рядке наименований.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

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

// Задаем выборку в порядке наименований

Спр.ПорядокНаименований();

// Открываем выборку

Спр.ВыбратьЭлементы();

// Цикл получения элементов справочника

Пока (Спр.ПолучитьЭлемент() 0) Цикл

   Состояние(Спр.Наименование);

КонецЦикла;

ПорядокРеквизита

Установить порядок выборки по возрастанию значения реквизита.

Синтаксис:

ПорядокРеквизита(ИмяРеквизита)

Англоязычный синоним:

OrderByAttribute

Параметры:

ИмяРеквизита Строковое выражение с именем реквизита справочника, который задает порядок обхода эле­ментов справочника.
Описание:

Метод ПорядокРеквизита устанавливает режим выборки элементов спра­вочника в порядке возрастания значения указанного реквизита ИмяРеквизита.

Данный метод обычно используется до вызова метода ВыбратьЭлементы, который фактически открывает выборку. Дальнейшая выборка при помощи метода ПолучитьЭлемент будет происходить среди элементов текущего спра­вочника в порядке возрастания значения реквизита.

Данный метод может использоваться только в том случае, если в конфигу­раторе при описании данного реквизита установлен признак «Сортировка» (Свойства реквизита - Дополнительные - Сортировка).

Данный метод может использоваться только для объектов, созданных Функцией СоздатьОбъект.

Пример:

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

// Задаем выборку в порядке возрастания окладов

Спр.ПорядокРеквизита(Оклад);

// Открываем выборку

Спр.ВыбратьЭлементы();

// Цикл получения элементов справочника

Пока Спр.ПолучитьЭлемент() = 1 Цикл

   Состояние(Спр.Наименование + - + Спр.Оклад);

КонецЦикла;

Новый

Добавить новый элемент справочника.

Синтаксис:

Новый()

Англоязычный синоним:

New

Описание:

Метод Новый инициализирует создание нового элемента справочника. Соб­ственно запись нового элемента происходит при вызове метода Записать. По­сле инициализации создания нового элемента справочника, как правило, про­изводится заполнение его реквизитов с последующим вызовом метода Записать.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Процедура ВводСотрудника()

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

   // добавляем новый элемент справочника

   Спр.Новый();

   // Определяем реквизиты нового элемента справочника

   Спр.Наименование = ФИО;

   Спр.Код = ТН;

   Спр.Оклад = Оклад;

   Спр.Аванс = Аванс;

   // ...

   // Записываем новый элемент справочника

   Спр.Записать();

КонецПроцедуры

НоваяГруппа

Добавить новую группу справочника.

Синтаксис:

НоваяГруппа()

Англоязычный синоним:

NewGroup

Описание:

Метод НоваяГруппа добавляет пустую запись новой группы в справочник. Данный метод может использоваться только для объектов, созданных функци­ей СоздатьОбъект.

Пример:

Процедура ВводГруппыСотрудников()

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

   // добавляем новую группу справочника

   Спр.НоваяГруппа();

   // Определяем реквизиты новой группы справочника

   Спр.Наименование = Расчетчик3;

   Спр.Код = 3;

   // Записываем на диск

   Спр.Записать();

КонецПроцедуры

ПрефиксКода

Установить для справочника текущий префикс кода.

Синтаксис:

ПрефиксКода(Префикс)

Англоязычный синоним:

CodePrefix

Параметры:

Префикс Необязательный параметр. Строковое выражение — новый префикс кодов элементов справочника.
Возвращаемое значение:

Строковое значение текущего префикса кодов элементов справочника (на момент до исполнения метода).

Описание:

Метод ПрефиксКода устанавливает новый текущий префикс для автомати­ческого создания кодов элементов справочника.

Пример:

ПрефиксКода(01-);

См. также: ПрефиксАвтоНумерации, УстановитьНовыйКод

УстановитьНовыйКод

Установить новый код с префиксом кода для справочника.

Синтаксис:

УстановитьНовыйКод(Префикс)

Англоязычный синоним:

SetNewCode

Параметры:

Префикс Строковое выражение — префикс кода элемента справочника.
Описание:

Метод УстановитьНовыйКод устанавливает новый код элемента справоч­ника с префиксом Префикс.

Пример:

УстановитьНовыйКод(01-);

См. также: ПрефиксАвтоНумерации, ПрефиксКода

НазначитьТип

Назначить тип для реквизита неопределенного вида.

Синтаксис:

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

Англоязычный синоним:

SetType

Параметры:

ИмяРеквизита Строковое выражение — название реквизита спра­вочника неопределенного типа, как он назван в кон­фигураторе.
ИмяТипа Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту спра­вочника. Например:

Строка, Число, Справочник.Товары, Документ.РасходнаяНакладная и т. п.
Длина Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
Точность Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.
Описание:

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

Пример:

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

Записать

Записать (обновить) элемент справочника.

Синтаксис:

Записать()

Англоязычный синоним:

Write

Описание:

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

Замечание. Если этот метод применяется в Модуле формы элемента справоч­ника непосредственно к элементу справочника локального контекста, то данный метод отрабатывает те же действия, как интерактивное нажатие пользователем кнопки с формулой #Записать.

Пример:

Процедура ВводСотрудника()

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

   // добавляем новый элемент справочника

   Спр.Новый();

   // Определяем реквизиты нового элемента справочника

   Спр.Наименование = ФИО;

   Спр.Код = ТН;

   Спр.Оклад = Оклад;

   Спр.Аванс = Аванс;

   // ...

   // Записываем новый элемент справочника

   Спр.Записать();

КонецПроцедуры

Удалить

Удалить элемент справочника.

Синтаксис:

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

Англоязычный синоним:

Delete

Параметры:

Режим Числовое выражение: 1 — непосредственное уда­ление; 0 — пометка на удаление. Необязательный параметр. Значение по умолчанию — 1.
Описание:

Метод Удалить удаляет (или делает пометку на удаление) текущий эле­мент или группу справочника.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Замечание: Непосредственное удаление объекта следует применять очень ак­куратно, так как это действие может нарушить ссылочную целостность информации. Данный режим не рекомендуется использовать, если на данный объект могут быть ссылки в других объектах, например в рекви­зитах существующих документов.

Пример:

Процедура УдалениеСотрудника(Сотр)

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

   Если Сотр.Выбран() 0 Тогда

      // позиционируем справочник на заданном элементе

      Спр.НайтиЭлемент(Сотр);

      Если Спр.Выбран() 0 Тогда

         Если Вопрос(Удалять??? , 1) = 1 Тогда

            // удаляем элемент справочника

            Спр.Удалить(1);

         КонецЕсли;

      Иначе

         Предупреждение(Некого удалять!);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: ПометкаУдаления, СнятьПометкуУдаления

Блокировка

Установить/прочитать режим блокировки.

Синтаксис:

Блокировка(ВклВыкл)

Англоязычный синоним:

Locking

Параметры:

ВклВыкл Необязательный параметр. Число: 1 — включить; 0 — выключить.
Возвращаемое значение:

Если при вызове метода параметр ВклВыкл не задан, то возвращается режим блокировки до выполнения метода. Число: 1 — заблокирован; 0 — свобо­ден.

Если при вызове метода параметр ВклВыкл задан, то возвращается ре­зультат выполнения метода блокировки. Число: 1 — успешно; 0 — не получи­лось.

Описание:

Метод Блокировка позволяет установить/прочитать режим блокировки. Пример:

Блокировка(0);

ПометкаУдаления

Прочитать флаг пометки удаления элемента справочника.

Синтаксис:

ПометкаУдаления()

Англоязычный синоним:

DeleteMark

Возвращаемое значение:

Числовое значение: 1 — если на элементе справочника стоит пометка удале­ния; 0 — если нет пометки удаления.

Описание:

Метод ПометкаУдаления позволяет прочитать значение пометки удаления текущего элемента справочника.

Пример:

Процедура УсловноеУдалениеСотрудника(Сотр)

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

   Если Сотр.Выбран() 0 Тогда

      // позиционируем справочник на заданном элементе

      Спр.НайтиЭлемент(Сотр);

      Если Спр.Выбран() 0 Тогда

         Если Вопрос(Удалять??? , 1) = 1 Тогда

            Если Спр.ПометкаУдаления() = 1 Тогда

               Предупреждение(Уже помечен на удаление!);

            Иначе

               // удаляем элемент справочника

               Спр.Удалить(0);

            КонецЕсли;

         КонецЕсли;

      Иначе

         Предупреждение(Некого удалять!);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: Удалить, СнятьПометкуУдаления

СнятьПометкуУдаления

Снять пометку удаления элемента справочника.

Синтаксис:

СнятьПометкуУдаления()

Англоязычный синоним:

ClearDeleteMark

Описание:

Метод СнятьПометкуУдаления снимает пометку удаления текущего эле­мента справочника.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Процедура ВосстановлениеУдаленныхСотр(Сотр)

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

   Если Сотр.Выбран() 0 Тогда

      // позиционируем справочник на заданном элементе

      Спр.НайтиЭлемент(Сотр);

      Если Спр.Выбран() 0 Тогда

         Если Спр.ПометкаУдаления() = 1 Тогда

            // восстанавливаем элемент справочника

            Спр.СнятьПометкуУдаления();

         КонецЕсли;

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: Удалить, ПометкаУдаления

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

Описанные в данном разделе методы доступны только в контексте Модуля формы элемента справочника (см. «Виды программных модулей»).

Модифицированность

Возвратить признак изменения реквизитов в текущей форме элемен­та справочника.

Синтаксис:

Модифицированность()

Англоязычный синоним:

Modify

Возвращаемое значение:

Числовое значение: 1 — если реквизиты текущей формы элемента справоч­ника были изменены; 0 — если нет.

Описание:

Метод Модифицированность возвращает признак изменения (в режиме исполнения он отображается символом (*) в заголовке окна формы).

Замечание. Данный метод доступен только в контексте Модуля формы эле­мента справочника (см. «Виды программных модулей»). Действие данно­го метода относится только к текущему элементу справочника, который доступен в локальном контексте Модуля формы элемента справочника.

Пример:

ИспользоватьДату

Установить дату, на которую будут записываться периодические рек­визиты элемента справочника, форма которого открыта.

Синтаксис:

ИспользоватьДату(Дата, Обновить)

Англоязычный синоним:

UseDate

Параметры:

Дата Выражение со значением типа «дата». Дата, на которую будут записываться периодические реквизиты элемента справочника, форма которого открыта.
Обновить Необязательный параметр. Число: 1 — обновить периоди­ческие реквизиты формы на заданную дату; 0 — не обнов­лять периодические реквизиты формы. Значение по умол­чанию — 0;
Возвращаемое значение:

Значение используемой даты (на момент до исполнения метода).

Описание:

Метод ИспользоватьДату устанавливает для элемента справочника дату, на которую будут записываться периодические реквизиты.

Если данный метод опущен, то значения выбранных периодических рекви­зитов справочника будут записываться на текущую рабочую дату.

Замечание. Данный метод доступен только в контексте Модуля формы эле­мента справочника (см. «Виды программных модулей»). Действие данно­го метода относится только к текущему элементу справочника, который доступен в локальном контексте Модуля формы элемента справочника.

Пример:

// Здесь мы работаем в локальном контексте модуля Формы

// элемента справочника.

// в справочнике есть несколько реквизитов,

// которые являются периодическими реквизитами.

// В форме существует элемент диалога ВыбДата типа «Дата»

Если Число(ВыбДата) 0 Тогда

   // задано некоторое значение ВыбДата

   ИспользоватьДату(ВыбДата);

КонецЕсли;

СохранениеПериодическихРеквизитов

Установить режим отображения диалога сохранения периодических реквизитов при записи элемента справочника.

Синтаксис:

СохранениеПериодическихРеквизитов(ВариантВызова, Список)

Англоязычный синоним:

Рег1odicAttributesSaving

Параметры:

ВариантВызова Число, определяет вариант вызова метода: 0 — отключить автоматический режим определе­ния списка измененных реквизитов и показ диа­лога (параметр Список не используется);

1 — включить автоматический режим определения списка измененных реквизитов с показом диалога (параметр Список определяет набор анализи­руемых реквизитов);

2 — включить автоматический режим определения списка измененных реквизитов без показа диало­га (параметр Список определяет набор анали­зируемых реквизитов);

3 — выполнить определение списка измененных реквизитов с показом диалога (параметр Список определяет набор анализируемых рек­визитов);

4 — выполнить определение списка измененных реквизитов без показа диалога (параметр Список определяет набор анализируемых рек­визитов);

5 — выдать/установить список сохраняемых пе­риодических реквизитов. Метод возвращает уста­новленный список периодических реквизитов, которые будут записываться на момент до вызова метода. Если параметр Список указан, то ус­танавливается список периодических реквизитов, которые должны быть записаны.
Список Необязательный параметр. Строковое выражение, в котором через запятую перечислены имена пе­риодических реквизитов справочника, которые должны выводится в диалоге (если диалог пока­зывается), или по которым будет записан элемент истории (если диалог не показывается). По умол­чанию предполагается, что в списке все периоди­ческие реквизиты справочника. Если указан сим­вол *, то считается, что в список включены все периодические реквизиты справочника.
Описание:

Метод СохранениеПериодическихРеквизитов управляет режимом ав-томатического определения списка измененных периодических реквизитов, показом диалога для выбора записываемых периодических реквизитов, а также предоставляет доступ непосредственно к списку записываемых периодических реквизитов.

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

Замечание. Данный метод доступен только в контексте Модуля формы эле­мента справочника (см. «Виды программных модулей»). Действие данно­го метода относится только к текущему элементу справочника, который доступен в локальном контексте Модуля формы элемента справочника.

Пример:

// Здесь мы работаем в локальном контексте модуля Формы

// элемента справочника.

// в справочнике есть несколько реквизитов,

// которые являются периодическими реквизитами.

СохранениеПериодическихРеквизитов(1, ЦенаРозн, ЦенаОптов);

ПросмотрИстории

Установить список периодических реквизитов, просмотр истории ко­торых допускается.

Синтаксис:

ПросмотрИстории(СписокРеквизитов)

Англоязычный синоним:

ViewHistory

Параметры:

СписокРеквизитов Строка со списком идентификаторов (через запя­тую) тех реквизитов, просмотр истории которых допускается.
Возвращаемое значение:

Текущий (на момент до вызова метода) список реквизитов, просмотр исто­рии которых допускается просмор истории.

Описание:

Метод ПросмотрИстории позволяет установить список реквизитов для ко­торых допускается просмор истории .

Замечание. Данный метод доступен только в контексте Модуля формы эле­мента справочника (см. «Виды программных модулей»). Действие данно­го метода относится только к текущему элементу справочника, который доступен в локальном контексте Модуля формы элемента справочника.

Пример:

Процедура ПриОткрытии()

   ПросмотрИстории;Оклад, Тариф, Подразделение);

КонецПроцедуры

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

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях форм справочника (см. «Виды про­граммных модулей»). К ним относятся программные модули: Модуль формы элемента справочника, Модуль формы группы справочника.

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

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

ВводНового

Предопределенная процедура при вводе нового элемента справочника.

Синтаксис:

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

Англоязычный синоним:

InputNew

Параметры:

ПризнКопирования Признак того, что объект введен копировани­ем. Число: 1 — объект введен копированием, 0 — просто новый объект. Данный признак мо­жет быть использован для анализа необходи­мости инициализации реквизитов нового объ­екта.
ОбъектКопирования Объект, который был скопирован.
Описание:

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

Процедуру ВводНового контекста справочников можно размещать в сле­дующих программных модулях: Модуль формы элемента справочника, Модуль формы группы справочника (см. «Виды программных модулей»).

Пример:

Процедура ВводНового();

   Оклад = 1000000;

   Пдр = СоздатьОбъект(Справочник.Подразделения);

   Пдр.НайтиПоКоду(1);

   Подразделение = Пдр.ТекукщийЭлемент();

   Город = Константа.НашГород;

КонецПроцедуры

См. также: СтатусВозврата

ПриЗаписи

Предопределенная процедура при записи элемента справочника.

Синтаксис:

ПриЗаписи(СписокПериодРекв)

Англоязычный синоним:

OnWrite

Параметры:

СписокПериодРекв Строковое значение — список разделенных за­пятыми изменяемых периодических реквизитов справочника. В данный параметр система 1С:Предприятие передает перечень периодиче­ских реквизитов, которые были интерактивно выбраны пользователем для обновления в окне диалога выбора. В теле процедуры значение данного параметра может быть изменено, что позволяет в данной процедуре непосредственно управлять списком записываемых значений периодических реквизитов.
Описание:

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

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

Пример:

Процедура ПриЗаписи (СписокРекв)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если ТекущийЭлемент() = Константа.НашаФирма Тогда

         Предупреждение(У вас нет права менять реквизиты!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

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

Описанные в данном разделе методы доступны только в контексте Модуля формы списка справочника (см. «Виды программных модулей»).

ИспользоватьДату

Установить дату выборки периодических реквизитов формы списка справочника.

Синтаксис:

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

Англоязычный синоним:

UseDate

Параметры:

Дата Выражение со значением типа «дата»
Возвращаемое значение:

Значение даты выборки периодических реквизитов формы списка справоч­ника.

Описание:

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

Данный метод доступен только в контексте Модуля формы списка справоч­ника (см. «Виды программных модулей»). Действие данного метода относится только к текущему справочнику, который доступен в локальном контексте Мо­дуля формы списка справочника.

Пример:

ИспользоватьДату(ДатаДок);

ИспользоватьВладельца

Установить владельца для формы списка подчиненного справочника.

Синтаксис:

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

Англоязычный синоним:

UseOwner

Параметры:

Владелец Необязательный параметр. Выражение со значением элемента справочника — нового владельца. Если па­раметр не задан, то значение владельца не меняется.
ФлагИзменения Необязательный параметр. Этим флагом регулирует­ся возможность интерактивного изменения владель­ца, 1 — пользователь может изменить владельца инте­рактивно, 0 — пользователь не может интерактивно изменить владельца. Если параметр не задан, то зна­чение флага не меняется.
Возвращаемое значение:

Значение владельца для формы списка подчиненного справочника (до при­менения метода).

Описание:

Метод ИспользоватьВладельца устанавливает элемент связанного спра­вочника (которому подчинен текущий справочник) в качестве владельца для формы списка подчиненного справочника.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему подчиненному справочнику, который доступен в локальном контексте Модуля формы списка справочника.

При добавлении нового элемента текущего справочника данный параметр также будет являться свойством нового элемента.

Пример:

ИспользоватьВладельца(Сотр, 0);

ИспользоватьРодителя

Установить родителя для формы списка справочника.

Синтаксис:

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

Англоязычный синоним:

UseParent

Параметры:

Родитель Необязательный параметр. Выражение со значением группы справочника- нового родителя. Если пара­метр не задан, то значение родителя не меняется.
ФлагИзменения Необязательный параметр. Этим флагом регулирует­ся возможность интерактивного изменения родителя. 1 — пользователь может изменить родителя интерак­тивно, 0 — пользователь не может интерактивно изме­нить родителя. Если параметр не задан, то значение флага не меняется.
Возвращаемое значение:

Значение родителя для формы списка справочника (до применения метода).

Описание:

Метод ИспользоватьРодителя устанавливает группу справочника в каче­стве родителя для формы списка справочника.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему справочнику, который доступен в локальном контексте Моду­ля формы списка справочника.

При добавлении нового элемента текущего справочника данный параметр также будет являться свойством нового элемента.

Пример:

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

ИерархическийСписок

Установить режим иерархического списка справочника.

Синтаксис:

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

Англоязычный синоним:

HierarchicalList

Параметры:

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

Значение флага иерархического списка для формы списка справочника (до применения метода).

Описание:

Метод ИерархическийСписок устанавливает режим иерархического спи­ска справочника.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

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

ВыборГруппы

Установить режим выборки групп.

Синтаксис:

ВыборГруппы(Режим)

Англоязычный синоним:

SelectGroup

Параметры:

Режим Необязательный параметр. Числовое выражение: 1 — выбирать группы; 0 — не выбирать группы.
Возвращаемое значение:

Текущее числовое значение режима выборки групп (на момент до исполне­ния метода).

Описание:

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

По умолчанию, выборка элементов справочников для полей в формах доку­ментов, журналов и справочников установлена без выбора групп, а в форме отчета с выбором групп. Поэтому реально имеет смысл применять данный ме­тод только в том случае, если надо изменить режим выборки групп.

Пример:

// Задаем выборку без групп

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

РедактироватьВДиалоге

Установить способ редактирования элементов справочника.

Синтаксис:

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

Англоязычный синоним:

EditInForm

Параметры:

Способ Необязательный параметр. Способ редактирования элемента справочника: 1 — в диалоге; 0 — в строке.
Разрешение Необязательный параметр. Флаг разрешения пользо­вателю менять способ редактирования: 1 — разрешить; 0 — запретить.
Возвращаемое значение:

Значение установленного на данный момент способа редактирования эле­ментов справочника (до применения метода).

Описание:

Метод РедактироватьВДиалоге устанавливает способ редактирования элементов справочника.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

ТекСп = РедактироватьВДиалоге();

// какой сейчас способ?

РедактироватьВДиалоге(1);

// установить редактирование в диалоге

РедактироватьВДиалоге(1, 0);

// установить редактирование в диалоге

// и запретить его менять

СохранениеПериодическихРеквизитов

Установить режим отображения диалога сохранения периодических реквизитов при записи элемента справочника.

Синтаксис:

СохранениеПериодическихРеквизитов(ВариантВызова, Список)

Англоязычный синоним:

Рег1odicAttributesSaving

Параметры:

ВариантВызова Число, определяет вариант вызова метода:

0 — отключить автоматический режим определе­ния списка измененных реквизитов и показ диа­лога (параметр Список не используется);

1 — включить автоматический режим определения списка измененных реквизитов с показом диалога (параметр Список определяет набор анализи­руемых реквизитов);

2 — включить автоматический режим определения списка измененных реквизитов без показа диало­га (параметр Список определяет набор анали­зируемых реквизитов);

3 — выполнить определение списка измененных реквизитов с показом диалога (параметр Список определяет набор анализируемых рек­визитов);

4 — выполнить определение списка измененных реквизитов без показа диалога (параметр Список определяет набор анализируемых рек­визитов);

5 — выдать/установить список сохраняемых пе­риодических реквизитов. Метод возвращает уста­новленный список периодических реквизитов, которые будут записываться на момент до вызова метода. Если параметр Список указан, то ус­танавливается список периодических реквизитов, которые должны быть записаны.
Список Необязательный параметр. Строковое выражение, в котором через запятую перечислены имена пе­риодических реквизитов справочника, которые должны выводится в диалоге (если диалог пока­зывается), или по которым будет записан элемент истории (если диалог не показывается). По умол­чанию предполагается, что в списке все периоди­ческие реквизиты справочника. Если указан сим­вол *, то считается, что в список включены все периодические реквизиты справочника.
Описание:

Метод СохранениеПериодическихРеквизитов управляет режимом ав­томатического определения списка измененных периодических реквизитов, показом диалога для выбора записываемых периодических реквизитов, а также предоставляет доступ непосредственно к списку записываемых периодических реквизитов.

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

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

СохранениеПериодическихРеквизитов(1, ЦенаРозн, ЦенаОптов);

Сортировка

Установить способ сортировки элементов справочника.

Синтаксис:

Сортировка(Способ, Разрешение)

Англоязычный синоним:

SortOrder

Параметры:

Способ Строка с именем устанавливаемой сортировки. Это может быть (в зависимости от языка по умолчанию) Код\Code, Наименование\Description или имя рекви­зита по которому устанавливается сортировка.
Разрешение Необязательный параметр. Флаг разрешения пользователю менять способ сортировки: 1 — раз­решить; 0 — запретить.
Возвращаемое значение:

Возвращает текущее значение установленного на данный момент способа сортировки элементов справочника (до применения метода).

Описание:

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

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»).

Пример:

// установить сортировку по наименовнаию и запретить ее менять

Сортировка(Наименование, 0);

// получить текущее значение сортировки и установить сортировку по

// реквизиту Оклад

СтСорт = Сортировка(Оклад);

УстановитьОтбор

Установить отбор списка справочника.

Синтаксис:

УстановитьОтбор(ИмяОтбора, 3начение0тбора)

Англоязычный синоним:

SetSelection

Параметры:

ИмяОтбора Строковое выражение — строка с именем рекви­зита справочника (по которому возможен отбор — флажок свойств «Отбор по реквизиту»), по кото­рому установлен отбор. Если это значение пустое, то отбор отключается.
ЗначениеОтбора Необязательный параметр. Значение отбора.
Описание:

Метод УстановитьОтбор принудительно устанавливает отбор для списка справочника.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

Процедура ПриОткрытии()

   Перем Тип;

   Перем Знач;

   БылОтбор = ПолучитьОтбор(Тип, Знач);

   Если .... Тогда

      // что-нибудь проверяем

      УстановаитьОтбор(Имя, Коля);

   ИначеЕсли БылОтбор = 1 Тогда

      // вернем назад

      УстановитьОтбор(Тип, Знач);

   КонецЕсли;

КонецПроцедуры

ПолучитьОтбор

Возвратить текущее значение отбора списка справочника.

Синтаксис:

ПолучитьОтбор(ИмяОтбора, 3начение0т6ора)

Англоязычный синоним:

GetSelection

Параметры:

ИмяОтбора Имя переменной, куда вернется строковое значе­ние имени отбора.
ЗначениеОтбора Имя переменной, куда вернется значение отбора.
Возвращаемое значение:

Числовое значение: 1 — есть отбор; 0 — если нет отбора.

Описание:

Метод ПолучитьОтбор возвращает текущее значение отбора списка спра­вочника.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

См. пример для предыдущей функции.

ВидыОтбора

Установить доступные виды отборов списка справочника для вызова их в интерактивном режиме.

Синтаксис:

ВидыОтбора(СписокИменОтборов)

Англоязычный синоним:

KindsOfSelection

Параметры:

СписокИменОтборов Строка со списком (через запятую) имен тех реквизитов, отбор по которым допускается, или символ * — для всех видов отборов.
Возвращаемое значение:

Строковое значение, содержащее текущий список имен отборов, разделен­ных запятыми (на момент до исполнения метода).

Описание:

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

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

Процедура ПриОткрытии()

   ВидыОтбора(Имя, Оклад);

КонецПроцедуры

ЗакладкиОтбора

Установить в форме списка справочника закладки для интерактивно­го осуществления отбора.

Синтаксис:

ЗакладкиОтбора(ИмяОтбора, 3начение0тбора)

Англоязычный синоним:

TabCtrlSelection

Параметры:

ИмяОтбора Строковое выражение, содержащее имя отбора.
ЗначениеОтбора Значение отбора, который будет установлен первоначально.
Описание:

Метод ЗакладкиОтбора устанавливает в форме списка справочника за­кладки для интерактивного осуществления отбора.

Данный метод доступен только в контексте Модуля формы списка справоч­ника (см. «Виды программных модулей»).

Пример:

ЗакладкиОтбора(Имя, Коля);

ИспользоватьСписокЭлементов

Реализует фильтрацию элементов справочника используя нединами­ческий фильтр.

Синтаксис:

ИспользоватьСписокЭлементов (СписокЗначений)

Англоязычный синоним:

UseItemList

Параметры:

СписокЗначений Необязательный параметр. Значение типа «СписокЗначений». Должен представлять собой список элементов справочника, выбранных для просмотра. Если это значение пустое, то фильтр отключается.
Описание:

Метод ИспользоватьСписокЭлементов реализует фильтрацию элементов справочника. Устанавливает нединамический фильтр.

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

После вызова метода ИспользоватьСписокЭлементов форма списка справочника не позволяет вводить новый элемент, копировать и т. п.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

Процедура УстановитьФильтр(ВыбПризнак)

   Список.СоздатьОбъект(СписокЗначений);

   Буфер = СоздатьОбъект(Справочник.Главн);

   // отбираем только те элементы, которые могут отображаться в текущем списке

   Буфер.ИспользоватьРодителя(ИспользоватьРодителя());

   Буфер.ВключатьПодчиненные(0);

   Буфер.ВыбратьЭлементы();

   Пока Буфер.ПолучитьЭлемент() = 1 Цикл

      // отбираем только те элементы, которые удовлетворяют заданному признаку

      Если (Буфер.Признак = ВыбПризнак) Тогда

         Список.ДобавитьЗначение(Буфер.ТекущийЭлемент());

      КонецЕсли;

   КонецЦикла;

   ИспользоватьСписокЭлементов(Список);

КонецПроцедуры

ПросмотрИстории

Установить список периодических реквизитов, просмотр истории ко­торых допускается.

Синтаксис:

ПросмотрИстории(СписокРеквизитов)

Англоязычный синоним:

ViewHistory

Параметры:

СписокРеквизитов Строка со списком идентификаторов (через запя­тую) тех реквизитов, просмотр истории которых допускается.
Возвращаемое значение:

Текущий (на момент до вызова метода) список реквизитов, просмотр исто­рии которых допускается просмор истории.

Описание:

Метод ПросмотрИстории позволяет установить список реквизитов для ко­торых допускается просмор истории .

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

Процедура ПриОткрытии()

   ПросмотрИстории(Оклад, Тариф, Подразделение);

КонецПроцедуры

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

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях формы списка справочника (см. «Ви­ды программных модулей»).

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

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

ПриВводеСтроки

Предопределенная процедура при вводе новой строки списка спра­вочника.

Синтаксис:

ПриВводеСтроки()

Англоязычный синоним:

OnNewLine

Описание:

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

Данная предопределенная процедура может располагаться в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриВводеСтроки()

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права добавлять строки!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриРедактированииНовойСтроки

Предопределенная процедура при редактировании новой строки спи­ска справочника.

Синтаксис:

ПриРедактированииНовойСтроки()

Англоязычный синоним:

OnEditNewLine

Описание:

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

имеет смысла, т. к. отказаться от ввода новой строки в этот момент уже невоз­можно.

Данная предопределенная процедура может располагаться в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриРедактированииНовойСтроки()

   Оклад = 100000;

   Пдр = СоздатьОбъект(Справочник.Подразделения);

   Пдр.НайтиПоКоду(1);

   Подразделение = Пдр.ТекукщийЭлемент();

   Город = Константа.НашГород;

КонецПроцедуры

ПриНачалеРедактированияСтроки

Предопределенная процедура при начале редактирования сущест­вующей строки списка справочника.

Синтаксис:

ПриНачалеРедактированияСтроки()

Англоязычный синоним:

OnStartEditLine

Описание:

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

Данная предопределенная процедура может располагаться в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриНачалеРедактированияСтроки()

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права менять реквизиты!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриЗаписи

Предопределенная процедура при записи строки списка справочника.

Синтаксис:

ПриЗаписи(СписокПериодРекв)

Англоязычный синоним:

OnWrite

Параметры:

СписокПериодРекв Строковое значение — список разделенных запятыми изменяемых периодических рекви­зитов справочника. В данный параметр систе­ма 1С:Предприятие передает перечень перио­дических реквизитов, которые были интерак­тивно выбраны пользователем для обновления в окне диалога выбора.
Описание:

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

Формальный параметр СписокПериодРекв используется в теле проце­дуры для обработки события интерактивной записи строки списка справочни­ка.

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

Пример:

Процедура ПриЗаписи (СписокРекв)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если ТекущийЭлемент() = Константа.НашаФирма Тогда

         Предупреждение(У вас нет права менять реквизиты!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриПереносеЭлементаВДругуюГруппу

Предопределенная процедура переноса элемента справочника в дру­гую группу.

Синтаксис:

ПриПереносеЭлементаВДругуюГруппу(Элемент, Группа)

Англоязычный синоним:

OnMoveIntoOtherGroup

Параметры:

Элемент Значение элемента справочника, который переносится.
Группа Значение группы справочника, в которую переносится элемент справочника.
Описание:

Вызов предопределенной процедуры ПриПереносеЭлементаВДругуюГруппу производится в системе 1С:Предприятие при интерактивном переносе элемента справочника в другую группу. Если в данной предопределенной процедуре установить статус возврата — 0, то перенос не будет произведен.

Данная предопределенная процедура может располагаться только в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриПереносеЭлементаВДругуюГруппу()

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права менять группуi, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриВыбореРодителя

Предопределенная процедура выбора родительской группы справоч­ника.

Синтаксис:

ПриВыбореРодителя(Элемент)

Англоязычный синоним:

OnSetParent

Параметры:

Элемент Значение элемента справочника, который интерак­тивно устанавливается в качестве родителя.
Описание:

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

Данная предопределенная процедура может располагаться только в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриВыбореРодителя(Родитель)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если Родитель = ЗапрещеннаяГруппа Тогда

         Предупреждение(Вам запрещено просматривать эту группу!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриВыбореВладельца

Предопределенная процедура выбора владельца подчиненного спра­вочника.

Синтаксис:

ПриВыбореВладельца(Элемент)

Англоязычный синоним:

OnSetOwner

Параметры:

Элемент Значение элемента справочника, который интерактивно устанавливается в качестве владельца подчиненного спра­вочника.
Описание:

Вызов предопределенной процедуры ПриВыбореВладельца производится в системе ЮПредприятие при интерактивном выборе владельца подчиненного справочника (при интерактивной смене владельца, т. е. смене позиции в спра­вочнике-владельце, которая приводит к смене отображаемых в подчиненном справочнике элементов). Если в данной предопределенной процедуре устано­вить статус возврата — 0, то выбор владельца подчиненного справочника не будет произведен.

Данная предопределенная процедура может располагаться только в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриВыбореВладельца(Владелец)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если Владелец = ЗапрещенныйВладелец Тогда

         Предупреждение(Нельзя просматривать эти элементы!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриСменеИерархии

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

Синтаксис:

ПриСменеИерархии(Способ)

Англоязычный синоним:

OnHierarchyChange

Параметры:

Способ Значение устанавливаемого (тот, который пользователь хочет установить) способа просмотра справочника: 1 — иерархических список; 0 — все элементы сразу.
Описание:

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

Данная предопределенная процедура может располагаться только в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриСменеИерархии(ВыбСпособ)

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(Нельзя менять режим просмотра 1, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриУстановкеОтбора

Предопределенная процедура при установке отбора справочника.

Синтаксис:

ПриУстановкеОтбора(ТипОтбора, 3начение0тбора)

Англоязычный синоним:

OnSetSelectInJournal

Параметры:

ТипОтбора Строковое значение — тип устанавливаемого отбора (имя реквизита справочника по которому устанавли­вается отбор).
3начение0тбора Устанавливаемое значение отбора.
Описание:

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

Данная предопределенная процедура может располагаться только в Модуле формы списка справочника (см. «Виды программных модулей»).

Пример:

Процедура ПриУстановкеОтбора(ВыбСпособ)

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(Нельзя устанавливать отбор;, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата


Глава 11 Работа с Перечислениями

Перечисление — средство работы с элементами данных, список возможных значений которых жестко задан в конфигурации. Например, для перечисления ТипСотрудника можно задать возможные значения: Штатный, Совместитель.

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

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

В качестве имени перечисления обязательно должно выступать полное имя конкретного вида и значения перечисления, как оно объявлено в конфигурато­ре. Вид и значение перечисления записывается через точку после ключевого слова Перечисление, т. е. полное имя вида перечисления записывается сле­дующим образом:

Перечисление.Имя_Переч.Значение_Переч,

где Имя_Переч — имя вида перечисления, Значение_Переч — кон­кретное значение данного вида перечисления.

Англоязычный синоним ключевого слова Перечисление — Enum.

Пример:

Если Док.Сотрудник.Тип = Перечисление.ТипСотрудника.Штатный Тогда

   Льготы = 1;

Иначе

   Льготы = 0;

КонецЕсли;

Объект Перечисление является частью глобального контекста программы 1С:Предприятие. Этот объект в качестве своих атрибутов имеет значения объ­ектов конкретных видов перечислений, заданных в конфигурации. Кроме того, этот объект имеет метод ПолучитьАтрибут, который позволяет получить доступ к объекту перечисления конкретного вида по его имени.

Перечисление конкретного вида в качестве своих атрибутов имеет конкрет-йьте значения перечислений. Кроме того, этот объект имеет методы КоличествоЗначений, ЗначениеПоНомеру и ЗначениеПоИдентификатору которые позволяют получить доступ к конкретному значению перечисления.

Конкретное значение перечисления имеет методы Вид, ПредставлениеВида, Выбран, ПорядковыйНомер, Идентификатор.

Методы перечислений

ПолучитьАтрибут

Получить доступ к объекту перечисления конкретного вида по его имени.

Синтаксис:

ПолучитьАтрибут(ИмяПеречисления)

Англоязычный синоним:

GetAttrib

Параметры:

ИмяПеречисления Строковое выражение, содержащее имя вида пе­речисления, как оно задано в конфигураторе.
Возвращаемое значение:

Объект перечисления конкретного вида.

Описание:

Метод ПолучитьАтрибут позволяет получить доступ к объекту перечисле­ния конкретного вида по его имени, как оно задано в конфигураторе.

Этот метод применяется только к объекту глобального контекста Перечисление.

Пример:

Булево = Перечисление.ПолучитьАтрибут(Булево);

КоличествоЗначений

Определить общее количество значений в данном виде перечисления.

Синтаксис:

КоличествоЗначений()

Англоязычный синоним:

Count

Возвращаемое значение:

Число общего количества значений в данном виде перечисления.

Описание:

Метод КоличествоЗначений применяется к конкретному виду перечисле­ния и позволяет определить общее количество значений в данном виде пере­числения.

Пример:

// отобразим все значения перечисления

Всего = Перечисление.ВидыТоваров.КоличествоЗначений();

Пока Ном = 1 По Всего Цикл

   Сообщить(Перечисление.ВидыТоваров.ЗначениеПоНомеру(Ном));

КонецЦикла;

ЗначениеПоНомеру

Определить значение перечисления, соответствующее номеру пози­ции в конфигураторе.

Синтаксис:

ЗначениеПоНомеру(Номер)

Англоязычный синоним:

ValueByIndex

Параметры:

Номер Числовое выражение. Номер позиции значения перечисления, заданный в конфигураторе.
Возвращаемое значение:

Значение перечисления, соответствующее номеру заданной позиции.

Описание:

Метод ЗначениеПоНомеру применяется к конкретному виду перечисления и позволяет определить значение перечисления, соответствующее номеру пози­ции в конфигураторе.

Пример:

См. предыдущий пример.

ЗначениеПоИдентификатору

Определить значение перечисления, соответствующее идентификато­ру в конфигураторе.

Синтаксис:

ЗначениеПоИдентификатору(Идентификатор)

Англоязычный синоним:

ValueByIdentifier

Параметры:

Идeнтификaтop Строковое выражение. Идентификатор пере­числения, заданный в конфигураторе.
Возвращаемое значение:

Значение перечисления, соответствующее идентификатору в конфигураторе. Если не найдено — то пустое значение.

Описание:

Метод ЗначениеПоИдентификатору применяется к конкретному виду пе­речисления и позволяет определить значение перечисления, соответствующее идентификатору в конфигураторе.

Пример:

См. предыдущий пример.

Вид

Определить название вида перечисления.

Синтаксис:

Вид()

Англоязычный синоним:

Kind

Возвращаемое значение:

Строковое значение, содержащее название вида перечисления.

Описание:

Метод Вид позволяет определить название вида перечисления, как оно за­дано в конфигураторе.

Пример:

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

Состояние(ИзмерениеТовара.Вид());

ПредставлениеВида

Определить пользовательское представление вида перечисления.

Синтаксис:

ПредставлениеВида()

Англоязычный синоним:

KindPresent

Возвращаемое значение:

Строковое значение, содержащее пользовательское представление вида пе­речисления (синоним перечисления или, если он пустой, то идентификатор).

Описание:

Метод ПредставлениеВида позволяет получить пользовательское пред­ставление вида перечисления, как оно задано в конфигураторе.

Пример:

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

Состояние(ИзмерениеТовара.ПредставлениеВида());

Выбран

Возвратить флаг выбора элемента перечисления.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Числовое значение: 1 — если элемент перечисления выбран (спозициониро­ван); 0 — если не выбран.

Описание:

Метод Выбран возвращает число со значением 1 — если элемент перечис­ления выбран (спозиционирован), 0 — если элемент перечисления не выбран.

Пример:

// В диалоге формирования некоторого отчета

// ВыбЕдИзмер — реквизит диалога типа «Перечисление.Единицы»

Если ВыбЕдИзмер.Выбран() = 0 Тогда

   // Если единица измерений в диалоге не выбрана, то формируем отчет без условий

   Заг1 = По всем единицам измерения.;

Иначе

   // если в диалоге выбрана единица измерений

   // то формируем отчет только по выбранным единицам

   Заг1 = Отчет по товарам с единицей измерения + ВыбЕдИзмер;

КонецЕсли;

ПорядковыйНомер

Определить порядковый номер значения в перечеслении.

Синтаксис:

ПорядковыйНомер()

Англоязычный синоним:

Number

Возвращаемое значение:

Строковое значение, содержащее название вида перечисления.

Описание:

Метод ПорядковыйНомер определяет порядковый номер значения в пере­чеслении, как он задан в конфигураторе. Значения перечисления нумеруются с 1.

Пример:

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

Сообщить(Перечисление.Единицы.Штука.ПорядковыйНомер());

Идентификатор

Возвращает строку — идентификатор значения перечисления.

Синтаксис:

Идентификатор()

Англоязычный синоним:

Identifier

Возвращаемое значение:

Строковое значение — идентификатор значения перечисления как он задан в метаданных.

Описание:

Метод Идентификатор возвращает строку — идентификатор значения пере­числения как он задан в метаданных.

Пример:

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

Всего = Перечисление.ВидыТоваров.КоличествоЗначений();

Пока Ном = 1 По Всего Цикл

   ВидТов = Перечисление.ВидыТоваров.ЗначениеПоНомеру(Ном);

   Сообщить(ВидТов.Идентификатор());

КонецЦикла;


Глава 12 Работа с Документами

Документ — одно из основных понятий системы 1С:Предприятие. При по­мощи документов организуется ввод в систему информации о совершаемых хозяйственных операциях, а также ее просмотр и, если необходимо, корректи­ровка. В большинстве своем документы, которые создаются в процессе настройки конфигурации задачи, являются электронными аналогами стандартных бумаж­ных документов, являющихся основаниями для тех или иных учетных дейст­вий или расчетов. Тем на менее, использование этого типа данных может выхо­дить далеко за рамки простой фиксации изменений внесенных в регистры и журналы расчетов. Структура каждого конкретного вида документа определяется при его соз­дании в конфигураторе. У любого вида документа существует два обязательных реквизита, которые создаются автоматически — дата и номер документа. Дру­гие реквизиты документа определяются в конфигураторе конкретно для каждо­го создаваемого вида документа.

В документах выделяются две основные структурные части: шапка доку­мента и многострочная табличная часть, поэтому реквизиты документа можно подразделить на «Реквизиты шапки» и «Реквизиты табличной части».

Как правило, в шапке содержатся реквизиты, которые являются общими для всего документа. Реквизиты шапки принадлежат всему документу в целом и принимают только одно значение.

Например, в случае расчета заработной платы, документ «Больничный лист» в заголовочной части может содержать процент оплаты, сведения о со­труднике.

Многострочная (табличная) часть документа представляет собой список од­нотипных строк. Реквизиты табличной части принадлежат строке документа, т. е. каждая строка содержит свои собственные значения этих реквизитов.

Например, в уже упоминавшемся больничном листе табличная часть — это набор данных за прошлые расчетные периоды, предназначенные для расчета средней заработной платы.

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

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

Пример:

* В форме редактирования документа «Накладная» мы имеем непосредст­венный доступ к текущему документу (накладной). Значит, чтобы изме­нить номер накладной, запишем:

НомерДок = 12345678;

* В форме редактирования документа «Приказ на зачисление» мы имеем непосредственный доступ к реквизитам этого документа. Значит, чтобы за­писать имя нового сотрудника, пишем:

ФИО = Иванов И.И.;

Значение документа может быть получено из других источников, например как реквизит другого документа. В этом случае обращение к атрибутам и мето­дам такого документа представляет собой сложное выражение, где имена рек­визитов разделяются точкой.

Пример:

* Допустим, у документа «Счет» есть реквизит «Накладная», который имеет тип «Документ.РасхНакл». Номер накладной можно получить следующим образом:

НомерРасхНакл=Документ.Счет.Накладная.НомерДок;

* Допустим, значение реквизита «Приказ» справочника «ПриказыНаДоплату» имеет тип «Документ.При­казНаДоплату». Тогда номер приказа можно получить следующим образом:

Спр = СоздатьОбъект(Справочник.ПриказыНаДоплату);

// ...

Номер = Спр.Приказ.НомерДок;

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

При создании ссылки на объект типа «Документ» при помощи функции СоздатьОбъект в качестве имени документа может выступать ключевое слово Документ или полное имя вида документа.

Полное имя вида документа записывается следующим образом:

Документ.Имя_Документа

где Имя_Документа — имя вида документа, как он объявлен в конфигу­раторе.

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

Англоязычный синоним ключевого слова Документ — Document.

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

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

Пример:

*

Док = СоздатьОбъект(Документ);

Док1 = СоздатьОбъект(Документ.БольничныйЛист);

Док2 = СоздатьОбъект(Документ.ПриказНаДоплату);

ДокЗ = СоздатьОбъект(Документ.ПриказПоОтпуску);

Док4 = СоздатьОбъект(Документ.ПрихНакладн);

Док5 = СоздатьОбъект(Документ.Списание);

*

// В модуле формы документа

// меняем номер обрабатываемого документа

НомерДок = 12345;

*

// В других модулях имена атрибутов, процедур и функций документов

// записываются через точку после имени переменной

// со значением типа Документ.

Док = СоздатьОбъект(Документ.ПриказыДоплат);

// создаем новый документ

Док.Новый();

Док.ОбщийРазмер = 12000000;

// меняем номер Документа

Док.НомерДок = 12345;

// меняем дату документа

Док.ДатаДок = '14.04.96';

// создаем новую строку в спецификации документа

Док.НоваяСтрока();

Док.Сотр = СпрСотрудн.ТекущийЭлемент();

Док.Процент = 15;

// ...

// записываем документ

Док.Записать();

Позиция документа Все документы в системе 1С:Предприятие располагаются на временной оси. Основными характеристиками расположения документа на временной оси яв­ляются дата и время документа. Дата документа доступна через атрибут ДатаДок, а работа со временем документа осуществляется при помощи методов УстановитьВремя, ПолучитьВремя и предопределенной процедуры ПриИзмененииВремениДокумента. Кроме даты и времени в системе 1С:Предприятие существует понятие позиции документа.

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

Многие методы могут в качестве парамера воспринимать кроме документа или даты позицию документа.

См. также:

СформироватьПозициюДокумента, РазобратьПозициюДОкумента, ПолучитьПозициюТА, ПолучитьПозицию, ВыбратьДокументы, ВыбратьПодчиненныеДокументы, ВыбратьПоЗначению, РассчитатьРегистрыНа, РассчитатьРегистрыПо, УстановитьТАна, УстановитьТАпо, ВыбратьДвижения, ВыбратьДвиженияСОстатками, ВыполнитьЗапрос, Рассчитать, ВыбратьОперации, ВыбратьОперацииСПроводками, ВыбратьПоЗначению

Атрибуты документов

НомерДок

Номер документа

Синтаксис:

НомерДок

Англоязычный синоним:

DocNum

Описание:

При помощи атрибута НомерДок можно получать и задавать значение но­мера выбранного документа.

Пример:

Основание = Вид() + № + СокрП(НомерДок) + от + ДатаДок;

ДатаДок

Дата документа

Синтаксис:

ДатаДок

Англоязычный синоним:

DocDate

Описание:

Атрибут ДатаДок задает значение даты выбранного документа.

Пример:

Процедура ВводНового()

   // устанавливаем дату документа

   ДатаДок=РабочаяДата();

   Подразделение = Константа.АУП;

   Валюта = Константа.ДефВалютаЗакупки;

   Валюта.ИспользоватьДату(ДатаДок);

   Дата_Курса = ДатаДок;

   Курс = Валюта.Текущ_курс;

   Фирма = Константа.ДефФирма;

КонецПроцедуры

Реквизит

Значение реквизита документа.

Синтаксис:

Реквизит Идентификатор реквизита документа, как он задан в конфигураторе.
Описание:

Атрибут Реквизит задает значение реквизита текущего документа. В тексте программного модуля используется идентификатор конкретного рекви­зита документа, созданного в конфигураторе. Реквизиты многострочной части документа имеют смысл только при выбранной строке многострочной части документа.

Пример:

// предопределенная процедура ввода нового документа

// ТипСотр, Оклад — реквизиты документа

Процедура ВводНового()

   // Установим дату документа

   ДатаДок = РабочаяДата();

   ТипСотр = Перечисление.ТипСотрудника.Штатный;

   Оклад = Сотр.Оклад.Получить(ДатаДок);

   ПризнакНакладной = Перечисление.ПризнРасхНакл.Продажа;

КонецПроцедуры

НомерСтроки

Синтаксис:

НомерСтроки

Англоязычный синоним:

LineNum

Описание:

Атрибут НомерСтроки задает числовое значение номера строки много­строчной части выбранного документа. Данный атрибут имеет смысл только при выбранной строке. Присвоение строке нового номера передвигает строку в многострочной части документа.

Пример:

Процедура ОбработкаПроведения()

   Регистр.ТовЗап.Склад = Склад;

   ВыбратьСтроки();

   Пока ПолучитьСтроку() 0 Цикл

      Регистр.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

КонецПроцедуры

Операция

Атрибут «Операция» предназначен для обращения к бухгалтерской операции документа.

Синтаксис:

Операция

Англоязычный синоним:

Operation

Описание:

Атрибут «Операция» документа используется только в случае, если уста­новлена компонента «Бухгалтерский учет» и только для тех видов документов, для которых в конфигурации установлен признак «Бухгалтерский учет». Он предназначен для обращения к операции документа. Данный атрибут не используется как самостоятельное значение, а позволяет обращаться к атрибутам и методам операции. Описание атрибутов и методов операции см. в разделе «Работа с операциями и проводками».

Пример:

* В форме документа устанавливается содержание операции.

Процедура ПриЗаписи()

   Операция.Содержание = Износ за + Формат(ДатаДок, Д ММММГГТГ);

КонецПроцедуры

Методы документов

Вид

Название вида документа.

Синтаксис:

Вид()

Англоязычный синоним:

Kind

Возвращаемое значение:

Строковое значение, содержащее название вида документа, как он задан в конфи гураторе.

Описание:

Метод Вид возвращает название вида документа, как он задан в конфигура­торе.

Пример:

Если (Док.Вид() = ДоплатаПроцентом) ИЛИ (Док.Вид() = ДоплатаСуммой) Тогда

   Сотр = Док.Сотрудник;

Иначе

   Предупреждение(Это не доплата!);

КонецЕсли;

ПредставлениеВида

Определить пользовательское представление вида документа.

Синтаксис:

ПредставлениеВида()

Англоязычный синоним:

KindPresent

Возвращаемое значение:

Строковое значение, содержащее пользовательское представление вида до­кумента (синоним документа или, если он пустой, то идентификатор).

Описание:

Метод ПредставлениеВида позволяет получить пользовательское пред­ставление вида документа, как оно задано в конфигураторе.

Пример:

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

Состояние(ВыбДокум.ПредставлениеВида());

УстановитьАтрибут

Установить значение реквизита по имени идентификатора.

Синтаксис:

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

Англоязычный синоним:

SetAttrib

Параметры:

ИмяРеквизита Строковое выражение, содержащее имя реквизи­та, как оно задано в конфигураторе.
3начение Выражение, содержащее устанавливаемое значе­ние реквизита.
Описание:

Метод УстановитьАтрибут позволяет установить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

Док.УстановитьАтрибут(ЦенаРозн, ЦенаТов);

ПолучитьАтрибут

Получить значение реквизита но имени идентификатора.

Синтаксис:

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

Англоязычный синоним:

GetAttrib

Параметры:

ИмяРеквизита Строковое выражение, содержащее имя реквизи­та, как оно задано в конфигураторе.
Возвращаемое значение:

Значение реквизита ИмяРеквизита.

Описание:

Метод ПолучитьАтрибут позволяет получить значение реквизита по име­ни идентификатора, как оно задано в конфигураторе.

Пример:

ЦенаДок = Док.ПолучитьАтрибут(Цена);

Выбран

Возвратить флаг выбора документа.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Числовое значение: 1 — если документ выбран, 0 — если документ не вы­бран.

Описание:

Метод Выбран позволяет проверить сам факт позиционирования объекта типа «документ».

Пример:

Док = СоздатьОбъект(Документ.ПрихНакл);

// позиционируем документ по номеру

Док.НайтиПоНомеру(1, 0);

Если Док.Выбран() = 1 Тогда

    // если документ найден

    // открываем выборку строк спецификации документа

    Док.ВыбратьСтроки();

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

    Если Док.КоличествоСтрок() 0 Тогда

       Пока Док.ПолучитьСтроку() = 1 Цикл

          Док.УдалитьСтроку();

       КонецЦикла;

    КонецЕсли;

КонецЕсли;

Проведен

Возвратить флаг проводки документа.

Синтаксис:

Проведен()

Англоязычный синоним:

IsTransacted

Возвращаемое значение:

Числовое значение: 1 — если документ проведен, 0 — если документ не про­веден.

Описание:

Метод Проведен позволяет проверить сам факт проведения документа.

Пример:

Процедура ПолучитьПроведенные()

   Док = СоздатьОбъект(Документ);

   // Откроем выборку документов

   Док.ВыбратьДокументы(ДатаНачала, ДатаКонца);

   // Цикл выбора документов

   Пока Док.ПолучитьДокумент() 0 Цикл

      Если Док.Проведен() 0 Тогда

         // для проведенных документов выведем сообщение

         Сообщить(Строка(Док.Вид())+ № +Док.НомерДок+ от +Док.ДатаДок);

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры

ТекущийДокумент

Определить значение текущего документа.

Синтаксис:

ТекущийДокумент()

Англоязычный синоним:

CurrentDocument

Возвращаемое значение:

Значение текущего документа.

Описание:

Метод ТекущийДокумент возвращает значение позиционированного теку­щего документа (в целом, как объекта). Данный метод применяется, например, если нужно документ передать как параметр в вызове какого-либо метода или присвоить какому-либо реквизиту.

Пример:

Если Режим = Подробный Тогда

   // используем объект типа «документ» неопределенного вида

   Док = СоздатьОбъект(Документ);

   // Откроем выборку документов

   Док.ВыбратьДокументы(ДатаНачала, ДатаОкончания);

   // Цикл выбора документов

   Пока Док.ПолучитьДокумент() 0 Цикл

      // присвоим переменной ТекДок значение найденного документа

      ТекДок = Док.ТекущийДокумент();

      // ...

   КонецЦикла;

КонецЕсли;

Выбрать

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

Синтаксис:

Выбрать(Подсказка, ФормаЖурнала, КомуПодч)

Англоязычный синоним:

Choose

Параметры:

Подсказка Текст заголовка окна диалога ввода. Может исполь­зоваться в качестве подсказки конечному пользова­телю.
ФормаЖурнала Строковое выражение идентификатора той формы журнала документа (как он объявлен в конфигура­торе), которая должна использоваться для выбора. Если это значение пустое, то используется форма журнала по умолчанию.. Можно указывать имя объекта в следующем виде:

· Журнал.ХХХХХ, где ХХХХХ — имя вида со­ответствующего объекта, как он задан в конфи­гураторе, например: Справочник.Товары;

· Журнал.Подчиненные;

· ЖурналОпераций;

· ЖурналОпераций.YYYYY, где YYYYY — имя формы журнала операций, как оно задано в конфигураторе;
КомуПодч Необязательный параметр. Используется при от­крытии выбора по журналу подчиненных докумен­тов, т.е когда второй параметр ФормаЖурнала имеет значение Журнал.Подчиненные. В дан­ном случае в этом параметре передается документ-владелец, по которому следует построить журнал подчиненных документов.
Возвращаемое значение:

Числовое значение: 1 — если документ выбран; 0 — если не выбран.

Описание:

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

Пример:

Док = СоздатьОбъект(Документ.НаклПрих);

// вызываем диалог выбора документа

Если Док.Выбрать(Найди документ) 0 Тогда

   // удаляем выбранный документ

   Док.Удалить();

КонецЕсли;

См. также: ВидыДляВыбора

ВидыДляВыбора

Установка выбираемых видов для объекта типа «документ» неопре­деленного вида.

Синтаксис:

ВидыДляВыбора(СписокВидов)

Англоязычный синоним:

KindsForChoice

Параметры:

СписокВидов Необязательный параметр. Строковое выражение содержащее список видов выбираемых докумен­тов, разделенных запятыми.
Возвращаемое значение:

Строковое значение, содержащее текущий список видов выбираемых доку­ментов, разделенных запятыми (на момент до исполнения метода).

Описание:

Метод ВидыДляВыбора устанавливает выбираемые виды для объекта-документ неопределенного вида. Данный метод обычно используется до начала интерактивного позиционирования документа, например, при помощи метода Выбрать.

Данный метод может использоваться только для объектов типа «документ» неопределенного вида — либо созданных функцией СоздатьОбъект, либо оп­ределенных в конфигураторе как реквизиты диалога или другого объекта. Если метод ВидыДляВыбора применен к реквизиту диалога типа «документ» неоп­ределенного вида, то интерактивный выбор будет производиться только среди установленных видов документов.

Пример:

// данная процедура присваивает некоторому реквизиту НаОсновании

// значение конкретного документа

Процедура УстДокОснования()

   // Создадим объект типа «документ» неопределенного вида

   Дкм = СоздатьОбъект(Документ);

   Дкм.ВидыДляВыбора(РасходнаяНакл, Счет);

   // Вызываем диалог выбора документа

   Если Дкм.Выбрать(Выберите документ основания, ) 0 Тогда

      НаОсновании = Дкм.ТекущийЭлемент();

   КонецЕсли;

КонецПроцедуры

См. также: Выбрать

Итог

Итоговое значение реквизита документа.

Синтаксис:

Итог(ИмяРеквизита)

Англоязычный синоним:

Total

Параметры:

ИмяРеквизита Строковое выражение, содержащее имя реквизита табличной части документа, для которого в кон­фигураторе установлено свойство «Итог по ко­лонке».
Возвращаемое значение:

Числовое значение — сумма по всем строкам табличной части документа для реквизита ИмяРеквизита.

Описание:

Метод Итог позволяет определить сумму значений по всем строкам таб­личной части документа для реквизита ИмяРеквизита.

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

Пример:

Процедура ВычСреднего()

   // вычислим среднюю сумму по наряду

   Сумма = Итог(Сумма);

   Штук = Итог(Штук);

   Если Штук 0 Тогда

      Средн = Сумма / Штук;

   Иначе;

      Средн = 0;

   КонецЕсли;

КонецПроцедуры

КоличествоСтрок

Определить количество строк в документе.

Синтаксис:

КоличествоСтрок()

Англоязычный синоним:

LinesCnt

Возвращаемое значение:

Числовое значение — количество строк в документе.

Описание:

Метод КоличествоСтрок позволяет определить количество строк в много­строчной части документа.

Пример:

Сообщить(Документ: + Вид() + № + НомерДок + от + ДатаДок +

                    в документе + КоличествоСтрок() + строк);

НайтиДокумент

Найти документ по значению.

Синтаксис:

НайтиДокумент(Документ)

Англоязычный синоним:

FindDocument

Параметры:

Документ Выражение, содержащее значение типа «Документ».
Возвращаемое значение:

Число 1 — если действие выполнено (документ найден);

Число 0 — если действие не выполнено.

Описание:

Метод НайтиДокумент выполняет поиск документа по значению, заданно­му параметром Документ. Данный метод используется для позиционирова­ния объекта на конкретный документ.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Процедура УдалДок(Докум)

   Док = СоздатьОбъект(Документ.НаклПрих);

   // позиционируем созданный объект на заданном документе

   Док.НайтиДокумент(Докум);

   Если Док.Выбран() 0 Тогда

      // если документ найден, то удалим его

      Док.Удалить();

   Иначе

      Предупреждение (Неверно задан документ!);

   КонецЕсли;

КонецПроцедуры

НайтиПоНомеру

Найти документ по номеру.

Синтаксис:

НайтиПоНомеру(Номер, Дата, ИдентВида)

Англоязычный синоним:

FindByNum

Параметры:

Номер Строковое выражение, содержащее значение номера иско­мого документа.
Дата Выражение типа «дата».
ИдентВида Необязательный параметр. Строковое выражение, содер­жащее идентификатор вида документа или идентификатор Нумератора.
Возвращаемое значение:

Число 1 — если действие выполнено (документ найден);

Число 0 — если действие не выполнено.

Описание:

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

Метод может быть использован для объекта Документ общего вида, тогда для поиска нужно указать в параметре ИдентВида идентификатор вида документа или идентификатор Нумератора.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Если ВвестиЧисло(Ном, Введите номер приказа, 5, 0) = 1 Тогда

   Док=СоздатьОбъект(Документ.ПриказыУвольнения);

   // позиционируем документ по заданному номеру

   Док.НайтиПоНомеру(Строка(Ном), Дата(0));

   Если Док.Выбран() = 1 Тогда

      Документ=Док.ТекущийДокумент();

      // ...

   КонецЕсли;

КонецЕсли;

Получить Строку ПоНомеру

Получить строку документа по номеру.

Синтаксис:

ПолучитьСтрокуПоНомеру(Номер)

Англоязычный синоним:

GetLineByNum

Параметры:

Номер Выражение, содержащее номер искомой строки.
Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено.

Описание:

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

Пример:

Процедура УдалЗаданнойСтроки(Док, Стр)

   Если Док.Выбран() = 1 Тогда

      // если переданный параметр содержит значение документа, то

      // найдем в нем строку

      Док.ПолучитьСтрокуПоНомеру(Стр);

      // удалим найденную строку спецификации документа

      Док.УдалитьСтроку();

   Иначе

      Предупреждение(Документ не выбран!);

   КонецЕсли;

КонецЕсли;

ВыбратьДокументы

Открыть выборку документов.

Синтаксис:

ВыбратьДокументы(НачалоВыборки, КонецВыборки)

Англоязычный синоним:

SelectDocuments

Параметры:

НачалоВыборки Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого уста­навливается начало выборки документов. Если дан­ный параметр опущен, то выборка начинается с само­го первого существующего в системе документа.
КонецВыборки Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором уста­навливается конец выборки документов. Если дан­ный параметр опущен, то выборка заканчивается самым последним существующим в системе докумен­том.
Возвращаемое значение:

Число 1 — если действие выполнено и в выборке есть хотя бы один доку­мент;

Число 0 — если действие не выполнено или в выборке нет ни одного доку­мента.

Описание:

Метод ВыбратьДокументы открывает выборку документов в интервале с НачалоВыборки по КонецВыборки.

Непосредственно сама выборка осуществляется при помощи метода ПолучитьДокумент в порядке возрастания даты и времени записи документов (если не задан обратный порядок методом ОбратныйПорядок).

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Если Режим = Подробный Тогда

   Док = СоздатьОбъект(Документ);

   // открываем выборку документов

   Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

   // цикл получения документов

   Пока Док.ПолучитьДокумент() 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ВыбратьПодчиненныеДокументы

Открыть выборку подчиненных документов.

Синтаксис:

ВыбратьПодчиненныеДокументы(НачалоВыборки, КонецВыборки, Докум)

Англоязычный синоним:

SelectChildDocs

Параметры:

НачалоВыборки Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого уста­навливается начало выборки документов. Если дан­ный параметр опущен, то выборка начинается с само­го первого существующего в системе документа.
КонецВыборки Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором уста­навливается конец выборки документов. Если дан­ный параметр опущен, то выборка заканчивается самым последним существующим в системе докумен­том.
Докум Выражение типа «документ», содержащее значение документа-владельца, подчиненные которому будут включаться в выборку.
Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы один доку­мент; 0 — если действие не выполнено или в выборке нет ни одного документа.

Описание:

Метод ВыбратьПодчиненныеДокументы открывает выборку всех доку­ментов, подчиненных заданному документу Докум в интервале с НачалоВыборки по КонецВыборки. Непосредственно сама выборка осуществляется при помощи метода ПолучитьДокумент в порядке возраста­ния даты и времени записи документов (если не задан обратный порядок мето­дом ОбратныйПорядок).

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

//Проверка того, что по Счету были документы отгрузки

ДокТест = СоздатьОбъект(Документ);

// открываем выборку документов

ДокТест.ВыбратьПодчиненныеДокументы('01.01.80', '31.12.99', ПоСчету);

// получение документа

Если ДокТест.ПолучитьДокумент() = 1 Тогда

   Предупреждение(По данному Счету были отгрузки!);

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ВыбратьПоЗначению

Открыть выборку документов по значению.

Синтаксис:

ВыбратьПоЗначению(НачалоВыборки, КонецВыборки, ИмяОтбора, 3нач)

Англоязычный синоним:

SelectByValue

Параметры:

НачалоВыборки Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого уста­навливается начало выборки документов. Если дан­ный параметр опущен, то выборка начинается с само­го первого существующего в системе документа.
КонецВыборки Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором уста­навливается конец выборки документов. Если дан­ный параметр опущен, то выборка заканчивается самым последним существующим в системе докумен­том.
ИмяОтбора Строковое выражение, которое содержит либо назва­ние «общего реквизита» документов, либо название «графы отбора» журналов, как они заданы в конфи­гураторе.
3нач Значение отбора, по которому строится выборка до­кументов.
Возвращаемое значение:

Число 1 — если действие выполнено и в выборке есть хотя бы один доку­мент; 0 — если действие не выполнено или в выборке нет ни одного документа.

Описание:

Метод ВыбратьПоЗначению открывает выборку документов в интервале с НачалоВыборки по КонецВыборки, для которых реквизит отбора ИмяОтбора имеет конкретное заданное значение 3нач.

Непосредственно сама выборка осуществляется при помощи метода ПолучитьДокумент в порядке возрастания даты и времени записи документов (если не задан обратный порядок методом ОбратныйПорядок).

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Если Режим = Подробный Тогда

   Док = СоздатьОбъект(Документ);

   // открываем выборку документов

   Док.ВыбратьПоЗначению(ДатаНачало, ДатаКонец, Автор, Сидоров);

   // цикл получения документов

   Пока Док.ПолучитьДокумент() 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ВыбратьПоНомеру

Открыть выборку документов по номеру.

Синтаксис:

ВыбратьПоНомеру(Номер, Дата, ИдентВида)

Англоязычный синоним:

SelectByNum

Параметры:

Номер Строковое выражение, содержащее значение номера иско­мых документов.
Дата Выражение типа «дата».
ИдентВида Необязательный параметр. Строковое выражение, содер­жащее идентификатор вида документа или идентификатор Нумератора.
Возвращаемое значение:

Число 1 — если действие выполнено и в выборке есть хотя бы один доку­мент; 0 — если действие не выполнено или в выборке нет ни одного документа.

Описание:

Метод ВыбратьПоНомеру открывает выборку всех документов с данным номером одного вида или одного нумератора (например, для поиска всех доку­ментов с совпадающими номерами).

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

Метод может быть использован для объекта Документ общего вида, тогда для поиска нужно указать в параметре ИдентВида идентификатор вида документа или идентификатор Нумератора.

Непосредственно сама выборка осуществляется при помощи метода ПолучитьДокумент в порядке возрастания даты и времени записи документов (если не задан обратный порядок методом ОбратныйПорядок).

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Если Режим = Подробный Тогда

   Док = СоздатьОбъект(Документ);

   // открываем выборку документов

   Док.ВыбратьПоНомеру(Ав-0005, '01.01.98', АктПереоценки);

   // цикл получения документов

   Пока Док.ПолучитьДокумент() 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ВыбратьПоПоследователыюсти

Открыть выборку документов по заданной последовательности.

Синтаксис:

ВыбратьПоПоследовательности(НачПериода, КонПериода , Последоват)

Англоязычный синоним:

SelectBySequence

Параметры:

НачПериода Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого ус­танавливается начало выборки документов. Если данный параметр опущен, то выборка начинается с самого первого существующего в системе доку­мента.
КонПериода Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором устанавливается конец выборки документов. Если данный параметр опущен, то выборка заканчива­ется самым последним существующим в системе документом.
Последоват Строковое выражение, содержащее идентифика­тор используемой Последовательности.
Возвращаемое значение:

Число 1 — если действие выполнено и в выборке есть хотя бы один доку­мент; 0 — если действие не выполнено или в выборке нет ни одного документа.

Описание:

Метод ВыбратьПоПоследовательности открывает выборку документов по заданной последовательности.

Непосредственно сама выборка осуществляется при помощи метода ПолучитьДокумент в порядке возрастания даты и времени записи документов (если не задан обратный порядок методом ОбратныйПорядок).

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Если Режим = Подробный Тогда

   Док = СоздатьОбъект (Документ);

   // открываем выборку документов

   Док.ВыбратьПоПоследовательности(НачД, ПолучитьДокументТА(), Упр);

   // цикл получения документов

   Пока Док.ПолучитьДокумент() 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

См. также: ПолучитьДокумент, ОбратныйПорядок

ОбратныйПорядок

Установить порядок выборки документов.

Синтаксис:

ОбратныйПорядок(Режим)

Англоязычный синоним:

BackwardOrder

Параметры:

Режим Необязательный параметр. Числовое выражение: 1 — выбирать документы в обратном порядке даты и времени; 0 — выбирать документы в порядке возрас­тания даты и времени. Значение по умолчанию — 1.
Возвращаемое значение:

Текущее значение порядка выборки документов (на момент до исполнения метода): 1 — обратный порядок выборки документов; 0 — выборка документов в порядке возрастания даты и времени.

Описание:

Метод ОбратныйПорядок устанавливает порядок выборки документов. Данный метод обычно используется до вызова одного из методов: ВыбратьДокументы, ВыбратьПодчиненныеДокументы, ВыбратьПоЗначению, который фактически открывает выборку. Дальнейшая выборка при помощи ПолучитьДокумент будет происходить в заданном по­рядке выборки.

По умолчанию, выборка документов выполняется в порядке возрастания даты и времени записи документов. Поэтому реально имеет смысл применять данный метод только в том случае, если надо получить обратный порядок вы­борки.

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

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Если Режим = Подробный Тогда

   Док = СоздатьОбъект(Документ);

   // устанавливаем обратный порядок выборки документов

   Док = ОбратныйПорядок(1);

   // открываем выборку документов

   Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

   // цикл получения документов

   Пока Док.ПолучитьДокумент() 0 Цикл

      ТекДок = Док.ТекущийДокумент();

   КонецЦикла;

КонецЕсли;

УстановитьФильтр

Назначить фильтр выборки документов.

Синтаксис:

УстановитьФильтр(Проведенные, НеПроведенные, НеИмеющиеПризнаковУчета,

Оперативные, Расчетные, Бухг)

Англоязычный синоним:

SetFilter

Параметры:

Проведенные Числовое выражение: 0 — не вклю­чать в выборку проведенные доку­менты; 1 — включать.
НеПроведенные Числовое выражение: 0 — не вклю­чать в выборку непроведенные до­кументы; 1 — включать.
НеИмеющиеПризнаковУчета Числовое выражение: 0 — не вклю­чать в выборку документы не имеющие признаков учета; 1 — включать.
0перативные Числовое выражение: 0 — не вклю­чать в выборку оперативные доку­менты; 1 — данный флаг не влияет на выборку; 2 — если оперативный документ, то включается в выборку.
Расчетные Числовое выражение: 0 — не вклю­чать в выборку расчетные докумен­ты; 1 — данный флаг не влияет на выборку; 2 — если расчетный доку­мент, то включается в выборку.
Бухг Числовое выражение: 0 — не вклю­чать в выборку бухгалтерские доку­менты; 1 — данный флаг не влияет на выборку; 2 — если бухгалтерский документ, то включается в выборку.
Описание:

Метод УстановитьФильтр назначает фильтр выборки документов.

Примеры:

· Док.УстановитьФильтр(1, 1, 1, 1, 1, 1) — в выборку включаются все документы;

· Док.УстановитьФильтр(1, 0, 1, 1, 1, 1) — в выборку включаются все проведенные документы;

· Док.УстановитьФильтр(1, 1, 0, 1, 0, 1) — в выборку включаются все документы, имеющие признак оперативный или бухгалтерский или оба, но не имеют признака расчетный;

· Док.УстановитьФильтр(1, 1, 1, 2, 1, 2) — в выборку включаются все документы, имеющие признаки и оперативный и бухгалтерский и те, которые не имеют признаков учета;

· Док.УстановитьФильтр(1, 1, 1, 2, 0, 2) — в выборку включаются все документы, имеющие признаки и оперативный и бухгалтерский, но не имеют признака расчета, и те, которые не имеют признаков учета;

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

Пример:

Док = СоздатьОбъект(Документ);

// устанавливаем фильтр выборки документов

Док.УстановитьФильтр(1, 0, 0, 1, 0, 0);

// открываем выборку документов

Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

// цикл получения документов

Пока Док.ПолучитьДокумент() 0 Цикл

   ТекДок = Док.ТекущийДокумент();

КонецЦикла;

ПолучитьДокумент

Получить из выборки следующий документ.

Синтаксис:

ПолучитьДокумент()

Англоязычный синоним:

GetDocument

Возвращаемое значение:

Числовое значение: 1 — если следующий документ выбран успешно; 0 — ес­ли документ не найден (отсутствует).

Описание:

Метод ПолучитьДокумент выбирает следующий документ в последова­тельности выборки, открытой перед этим при помощи метода ВыбратьДокументы. Данный метод используется для организации цикла по документам.

Данный метод может использоваться только для позиционируемых объек­тов, созданных функцией СоздатьОбъект.

Пример:

Если Режим = Подробный Тогда

   Док = СоздатьОбъект(Документ);

   // Откроем выборку документов

   Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

   // Цикл выбора документов

   Пока Док.ПолучитьДокумент() 0 Цикл

   // присвоим переменной ТекДок значение найденного документа

      ТекДок = Док.ТекущийДокумент();

      // ...

   КонецЦикла;

КонецЕсли;

См. также: ВыбратьДокументы

ВыбратьСтроки

Открыть выборку строк многострочной части документа.

Синтаксис:

ВыбратьСтроки()

Англоязычный синоним:

SelectLines

Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы одна строка; 0 — если действие не выполнено или в выборке нет ни одной строки.

Описание:

Метод ВыбратьСтроки открывает выборку строк многострочной части до­кумента. Непосредственно сама выборка осуществляется при помощи метода ПолучитьСтроку в порядке возрастания номеров строк.

Пример:

Процедура ОбработкаПроведения()

   Регистр.ТовЗап.Склад = Склад;

   // откроем выборку строк спецификации документа

   ВыбратьСтроки();

   // цикл получения строк спецификации документа

   Пока ПолучитьСтроку() 0 Цикл

      Регистр.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

КонецПроцедуры

ПолучитьСтроку

Получить из выборки следующую строку табличной части документа.

Синтаксис:

ПолучитьСтроку()

Англоязычный синоним:

GetLine

Возвращаемое значение:

Число: 1 — если следующая строка табличной части документа выбрана ус­пешно; 0 — если следующая строка документа не найдена (отсутствует).

Описание:

Метод ПолучитьСтроку выбирает следующую строку документа в после­довательности выборки, открытой перед этим при помощи метода ВыбратьСтроки. Данный метод используется для организации цикла по стро­кам документа.

Пример:

Процедура ОбработкаПроведения()

   Регистр.ТовЗап.Склад = Склад;

   // открываем выборку строк спецификации документа

   ВыбратьСтроки();

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

   Пока ПолучитьСтроку() 0 Цикл

      Регистр.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар=Товар;

      Регистр.ТовЗап.Количество=Количество;

      Регистр.ТовЗап.Стоимость=Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

КонецПроцедуры

Новый

Начать ввод нового документа.

Синтаксис:

Новый()

Англоязычный синоним:

New

Описание:

Метод Новый инициализирует создание нового документа. Собственно за­пись нового документа в информационную базу происходит при вызове метода Записать. После инициализации создания нового документа, как правило производится заполнение его реквизитов с последующим вызовом метода Записать.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

// данная процедура создает документ с № 1, в котором записывает

// все имеющиеся в справочнике должности

Процедура Оприходовать()

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

   Док = СоздатьОбъект(Документ.Приказы);

   // найдем документ с № 1

   Док.НайтиПоНомеру(1, 0);

   Если Док.Выбран() = 0 Тогда

      // если документа с № 1 не существует, то создадим его

      Док.Новый();

      Док.НомерДок = 1;

      Док.ДатаДок='01.01.80';

      // запишем все должности в документ

      Спр.ВыбратьЭлементы();

      Пока Спр.ПолучитьЭлемент() 0 Цикл

         Если (Док.Выбран() = 1) Тогда

            Док.НоваяСтрока();

            Док.Должность = Спр.ТекущийЭлемент();

         КонецЕсли;

      КонецЦикла;

      // запишем новый документ на диск

      Док.Записать();

   КонецЕсли;

КонецПроцедуры

ПрефиксНомера

Установить текущий префикс номера для документа.

Синтаксис:

ПрефиксНомера(Префикс)

Англоязычный синоним:

NumPrefix

Параметры:

Префикс Необязательный параметр. Строковое выражение — новый префикс номера для документа.
Возвращаемое значение:

Строковое значение текущего префикса документа (на момент до исполне­ния метода).

Описание:

Метод ПрефиксНомера устанавливает новый префикс для автоматического создания номера документа.

Данный метод может использоваться только для объектов, созданных Функцией СоздатьОбъект и в основном предназначен для использования при создании новых документов из языка с помощью метода Новый.

Пример:

ПрефиксНомера(Сч-);

См. также: ПрефиксАвтоНумерации, УстановитьНовыйНомер

УстановитьНовыйНомер

Установить новый номер с префиксом номера для документа.

Синтаксис:

УстановитьНовыйНомер(Префикс)

Англоязычный синоним:

SetNewNum

Параметры:

Префикс Строковое выражение — префикс номера докумен­та.
Описание:

Метод УстановитьНовыйНомер устанавливает новый номер документа с заданным префиксом Префикс. Данный метод производит корректное пере­присвоение номера документа (с автоинкрементацией и резервированием номе­ра на время ввода).

Пример:

УстановитьНовыйНомер(01-);

См. также: ПрефиксАвтоНумерации, ПрефиксНомера

НазначитьТип

Назначить тип для реквизита неопределенного вида.

Синтаксис:

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

Англоязычный синоним:

SetType

Параметры:

ИмяРеквизита Строковое выражение — название реквизита доку­мента неопределенного типа, как он назван в конфи­гураторе.
ИмяТипа Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту до­кумента. Например:

Строка, Число, Справочник.Товары, Документ.РасходнаяНакладная ит.п.
Длина Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
Точность Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.
Описание:

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

Пример:

Накладная.НазначитьТип(ТМЦ, Справочник.Товары);

Записать

Записать документ.

Синтаксис:

Записать()

Англоязычный синоним:

Write

Описание:

Метод Записать выполняет запись в базу данных текущего нового или из­мененного документа.

Замечание. Если этот метод применяется в Модуле формы документа непо­средственно к документу локального контекста, то данный метод отраба­тывает те же действия, как интерактивное нажатие пользователем кнопки с формулой #Записать.

Пример:

Док.СоздатьОбъект(Документ.Заказ);

Док.АвтоВремяТекущее();

Док.Новый();

Док.УстановитьНовыйНомер(Прг-);

Док.Клиент = Константа.ОсновнойКлиент;

Док.Количество = 5;

Док.Записать();

Док.Провести(1, Программно);

Удалить

Удалить документ.

Синтаксис:

удалить(Режим)

Англоязычный синоним:

Delete

Параметры:

Режим Необязательный параметр. Числовое выражение: 1 — непосредственное удаление; 0 — пометка на удаление. Значение по умолчанию — 1.
Описание:

Метод Удалить удаляет (или делает пометку на удаление) текущий доку­мент. Данный метод разрешено применять только для тех документов, которые либо не проведены, либо они лежат за точкой ТА, т. е. предполагается, что пред­варительно интерактивно сдвинули ТА назад.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Замечание: Непосредственное удаление объекта следует применять очень ак­куратно, так как это действие может нарушить ссылочную целостность информации. Данный режим не рекомендуется использовать, если на данный объект могут быть ссылки в других объектах, например в рекви­зитах существующих документов.

Пример:

Док = СоздатьОбъект(Документ.Приказы);

Если Док.Выбрать(Найди документ) 0 Тогда

   Док.Удалить(1);

КонецЕсли;

См. также: ПометкаУдаления, СнятьПометкуУдаления

ПометкаУдаления

Прочитать флаг пометки удаления документа.

Синтаксис:

ПометкаУдаления()

Англоязычный синоним:

DeleteMark

Возвращаемое значение:

Число: 1 — если на документе стоит пометка удаления; 0 — если нет пометки удаления.

Описание:

Метод ПометкаУдаления позволяет прочитать значение пометки удаления документа.

Пример:

Процедура УсловноеУдаление(Докум)

   Док = СоздатьОбъект(Документ);

   Если Докум.Выбран() 0 Тогда

      // позиционируем документ на переданном значении

      Док.НайтиДокумент(Докум);

      Если Док.Выбран() 0 Тогда

         Если Вопрос(Удалять??? , 1) = 1 Тогда

            Если Док.ПометкаУдаления() = 1 Тогда

               Предупреждение(Уже помечен на удаление!);

            Иначе

               // удаляем документ

               Док.Удалить(0);

            КонецЕсли;

         КонецЕсли;

      Иначе

         Предупреждение(Нечего удалять! );

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: Удалить, СнятьПометкуУдаления

СнятьПометкуУдаления

Снять пометку удаления документа.

Синтаксис:

СнятьПометкуУдаления()

Англоязычный синоним:

ClearDeleteMark

Описание:

Метод СнятьПометкуУдаления снимает пометку удаления текущего до­кумента.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Процедура Восстановление(Докум)

   Док = СоздатьОбъект(Документ);

   Если Докум.Выбран() 0 Тогда

      // позиционируем документ на переданном значении

      Док.НайтиДокумент(Докум);

      Если Док.Выбран() 0 Тогда

         Если Док.ПометкаУдаления() = 1 Тогда

            // восстанавливаем

            Спр.СнятьПометкуУдаления();

         КонецЕсли;

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры _________ _______

См. также: Удалить, ПометкаУдаления

НоваяСтрока

Добавить новую строку в документ.

Синтаксис:

НоваяСтрока()

Англоязычный синоним:

NewLine

Описание:

Метод НоваяСтрока добавляет новую строку с очередным порядковым номером в многострочную часть документа.

Пример:

Процедура ОбработкаПодбора(Выб, КонФормы)

   Кол=0;

   Если ВвестиЧисло(Кол, Введите количество, 10, 0) = 1 Тогда

      // добавим новую строку в спецификацию

      НоваяСтрока();

      Работа = Выб;

      Количество = Кол;

      АктивизироватьСтроку();

   КонецЕсли;

КонецПроцедуры

УдалитьСтроку

Удалить строку документа.

Синтаксис:

УдалитьСтроку()

Англоязычный синоним:

DeleteLine

Описание:

Метод УдалитьСтроку удаляет текущую строку из многострочной части Документа.

Пример:

Процедура УдалЗаданнойСтроки(Док, Стр)

   Если Док.Выбран() = 1 Тогда

      // если переданный параметр содержит значение документа, то

      // найдем в нем строку

      Док.ПолучитьСтрокуПоНомеру(Стр);

      // удалим найденную строку спецификации документа

      Док.УдалитьСтроку();

      Предупреждение(Документ не выбран!);

   КонецЕсли;

КонецЕсли;

УдалитьСтроки

Удалить все строки документа.

Синтаксис:

УдалитьСтроки()

Англоязычный синоним:

DeleteLines

Описание:

Метод УдалитьСтроки удаляет сразу все строки из многострочной части документа.

Пример:

УдалитьСтроки();

СортироватьСтроки

Сортировать многострочную часть документа по реквизитам.

Синтаксис:

СортироватьСтроки(Колонки)

Англоязычный синоним:

SortLines

Параметры:

Колонки                                Перечисленные через запятую реквизиты много­строчной части документа, по которым следует сортировать. Знаки +, -, предшествующие на­званию реквизита указывают направление сорти­ровки по реквизиту. Знак * — сортировать по внутреннему значению реквизита.
Описание:

Метод СортироватьСтроки позволяет сортировать многострочную часть документа по реквизитам.

Пример:

Док = СоздатьОбъект(Документ.Приказы);

Если Док.Выбрать(Найди документ) 0 Тогда

   Док.СортироватьСтроки(+Сумма, -НДС);

   Док.Записать ();

КонецЕсли;

ПолучитьПозицию

Получить позицию документа.

Синтаксис:

ПолучитьПозицию()

Англоязычный синоним:

GetPosition

Возвращаемое значение:

32-х символьное строковое значение позиции документа.

Описание:

Метод ПолучитьПозицию возвращает позицию документа.

Замечание. Позиция может существовать только у записанного документа.

Пример:

ПозицияДокумента = ВыбДокумент.ПолучитьПозицию();

ПринадлежитПоследовательности

Определить, принадлежит ли последовательности данный документ.

Синтаксис:

ПринадлежитПоследовательности(Последов, НовоеЗначение)

Англоязычный синоним:

BelongToSequence

Параметры:

Последов Строковое выражение, определяющая Последова­тельность.
НовоеЗначение Необязательный параметр. Число:

1 — документ принудительно устанавливается как принадлежащий последовательности; 0 — документ принудительно устанавливается как не принадлежащий последовательности.

Использование этого параметра разрешено только при проведении документа (в Модуле документа).
Возвращаемое значение:

Число: 1 — если документ принадлежит последовательности; 0 — если не при­надлежит.

Описание:

Метод ПринадлежитПоследовательности позволяет определить, при­надлежит ли документ заданной последовательности.

Пример:

Если Док.ПринадлежитПоследовательности(«УпрУчет») = 1 Тогда

   Если Последовательность.УпрУчет.Сравнить(Док) = 1 Тогда

      Последовательность.УпрУчет.Установить(Док);

   КонецЕсли;

КонецЕсли;

ИспользоватьЖурнал

Использовать журнал для отбора документов и доступа к графам.

Синтаксис:

ИспользоватьЖурнал(Журнал, ФлагОгрПросм)

Англоязычный синоним:

UseJournal

Параметры:

Журнал Идентификатор журнала, который предполагается использовать для отбора документов и доступа к графам.
ФлагОгрПросм Необязательный параметр. Число: 1 — если выборка ограничивается документами, входящими в указан­ный журнал; 0 — если метод используется только для использования граф методом Графа. Значение по умолчанию 1.
Описание:

Метод ИспользоватьЖурнал позволяет при переборе документов коман­дой Выбрать использовать журнал для отбора документов и доступа к графам журнала.

Пример:

Док = СоздатьОбъект(Документ.НаклПрих);

Док.ИспользоватьЖурнал(Приходные);

См. также: Графа

Графа

Выдает значение графы журнала для текущего документа.

Синтаксис:

Графа(Графа)

Англоязычный синоним:

Column

Параметры:

Графа Идентификатор графы журнала, который задан методом ИспользоватьЖурнал.
Возвращаемое значение:

Значение заданной графы журнала для текущего документа.

Описание:

Метод Графа позволяет получить значение заданной графы журнала для текущего документа. Данный метод работает только в том случае, если ранее Применен метод ИспользоватьЖурнал.

Пример:

Док = СоздатьОбъект(Документ.НаклПрих);

Док.ИспользоватьЖурнал(Приходные, 0);

док.НайтиДокумент(ВыбДок);

Цена = Док.Графа(Цена);

См. также: ИспользоватьЖурнал

Блокировка

Установить/прочитать режим блокировки.

Синтаксис:

Блокировка(ВклВыкл)

Англоязычный синоним:

Locking

Параметры:

ВклВыкл Необязательный параметр. Число: 1 — включить; 0 — выключить.
Возвращаемое значение:

Если при вызове метода параметр ВклВыкл не задан, то возвращается режим блокировки до выполнения метода. Число: 1 — заблокирован; 0 — свобо­ден.

Если при вызове метода параметр ВклВыкл задан, то возвращается ре­зультат выполнения метода блокировки. Число: 1 — успешно; 0 — не получи­лось.

Описание:

Метод Блокировка позволяет установить/прочитать режим блокировки.

Пример:

Блокировка(0);

ПолучитьВремя

Прочитать время документа.

Синтаксис:

ПолучитьВремя(Часы, Минуты, Секунды)

Англоязычный синоним:

GetTime

Параметры:

Часы Идентификатор переменной, в которую метод воз­вращает строковое значение минут записи документа.
Секунды Идентификатор переменной, в которую метод воз­вращает строковое значение секунд записи докумен­та.
Возвращаемое значение:

Строковое значение времени записи документа в виде ЧЧ.ММ.СС.

Описание:

Метод ПолучитьВремя возвращает время документа в переданные для это­го переменные Часы, Минуты, Секунды.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Функция ВремяДокумента(Док)

   Перем Ч;

   Перем М;

   Перем С;

   Если Док.Выбран() 0 Тогда

      Док.ПолучитьВремя(Ч, М, С);

      Возврат Документ записан в + Ч + час + М + мин. + С + с;

   Иначе

      Возврат Документ не выбран!;

   КонецЕсли;

Конецфункции

УстановитьВремя

Установить время документа.

Синтаксис:

УстановитьВремя(Часы, Минуты, Секунды)

Англоязычный синоним:

SetTime

Параметры:

Часы Числовое выражение.
Минуты Числовое выражение.
Секунды Числовое выражение.
Описание:

Метод УстановитьВремя устанавливает время документа в соответствии с заданными параметрами Часы, Минуты, Секунды.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские уста­новки в параметрах системы.

Пример:

Док = СоздатьОбъект(Документ.НаклПрих);

Если Док.Выбрать(Найди документ) 0 Тогда

   Док.УстановитьВремя(13, 0, 0);

КонецЕсли;

См. также: ПриИзмененииВремениДокумента

АвтоВремяНачалоДня

Установить новому документу время на начало дня.

Синтаксис:

АвтоВремяНачалоДня()

Англоязычный синоним:

AutoTimeBegOfDay

Описание:

Метод АвтоВремяНачалоДня устанавливает режим, при котором новому документу записывается время на начало дня.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские уста­новки в параметрах системы.

Пример:

Процедура УстВремяДок(Док, Режим)

   Если Режим = Начало Тогда

      Док.АвтоВремяНачалоДня();

   ИначеЕсли Режим = Конец Тогда

      Док.АвтоВремяКонецДня();

   ИначеЕсли Режим = Текущее Тогда

      Док.АвтоВремяТекущее();

   Иначе

      Док.АвтоВремяОтключить();

   КонецЕсли;

КонецПроцедуры

АвтоВремяКонецДня

Установить новому документу время на конец дня.

Синтаксис:

АвтоВремяКонецДня()

Англоязычный синоним:

AutoTimeEndOfDay

Описание:

Метод АвтоВремяКонецДня устанавливает режим, при котором новому документу записывается время на конец дня.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские уста­новки в параметрах системы.

Пример:

См. предыдущий пример

АвтоВремяТекущее

Установить новому документу текущее время.

Синтаксис:

АвтоВремяТекущее()

Англоязычный синоним:

AutoTimeCurrent

Описание:

Метод АвтоВремяТекущее устанавливает режим, при котором новому до­кументу записывается текущее время.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские уста­новки в параметрах системы.

Пример:

Процедура УстВремяДок(Док, Режим)

   Если Режим = Начало Тогда

      Док.АвтоВремяНачалоДня();

   ИначеЕсли Режим = Конец Тогда

      Док.АвтоВремяКонецДня();

   ИначеЕсли Режим = Текущее Тогда

      Док.АвтоВремяТекущее();

   Иначе

      Док.АвтоВремяОтключить();

   КонецЕсли;

КонецПроцедуры

АвтоВремяПослеТА

Установить новому документу время после ТА.

Синтаксис:

АвтоВремяПослеТА()

Англоязычный синоним:

AutoTimeAfterAP

Описание:

Метод АвтоВремяПослеТА устанавливает режим, при котором, если совпа­дает дата документа с датой ТА, то новому документу автоматически записыва­ется время после ТА. Метод исполняется только если установлена компонента оперативный учет.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские уста­новки в параметрах системы.

Пример:

Процедура УстВремяДок(Док, Режим)

   Если Режим = Начало Тогда

      Док.АвтоВремяНачалоДня();

   ИначеЕсли Режим = Конец Тогда

      Док.АвтоВремяКонецДня();

   ИначеЕсли Режим = Текущее Тогда

      Док.АвтоВремяТекущее();

   ИначеЕсли Режим = ПослеТА Тогда

      Док.АвтоВремяПослеТА();

   Иначе

      Док.АвтоВремяОтключить();

   КокецЕсли;

КонецПроцедуры

АвтоВремяОтключить

Отключает режим автоматической установки времени документа.

Синтаксис:

АвтоВремяОтключить()

Англоязычный синоним:

AutoTimeOff

Описание:

Метод АвтоВремяОтключить отключает режим автоматической установки времени нового документа, при этом новые документы заносятся с временем устанавливаемым при помощи метода УстановитьВремя.

Замечание. Для новых документов в модуле формы доступно использование методов установки признака авто-формирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские уста­новки в параметрах системы.

Пример:

См. предыдущий пример

См. также: УстановитьВремя

Провести

Выполнить проведение документа.

Синтаксис:

Провести(Режим, 3нач)

Англоязычный синоним:

MakeActions

Параметры:

Режим Необязательный параметр. Числовое выраже­ние: 0 — проводить документ без сдвига ТА; 1 — проводить непроведенный документ реальным вре­менем (со сдвигом ТА); 2 — перепроводить прове­денный документ реальным временем (со сдвигом ТА); 3 —проводить любой (непроведенный, прове­денный) документ реальным временем (со сдвигом ТА). Значение по умолчанию — 0.

Данный параметр устанавливает режим прове­дения документа после ТА. Этот метод относится к случаю проведения документа в пределах даты, в которой находится ТА. Дело в том, что при записи документа, документ кроме даты получает еще и время документа. В многопользовательском режиме часто возникает ситуация, когда в момент проведе­ния документа, он уже оказывается не последним в потоке проводимых документов (провели документ с другого рабочего места), в этом случае система 1С:Предприятие дает на выбор два варианта прове­дения:

· провести документ тем временем, каким он был записан, т. е. фактически задним временем (до ТА);

· изменить время документа в рамках текущей даты, чтобы документ стал самым последним и проводился в потоке, т. е. в ТА.
3нач Необязательный параметр. Выражение произволь­ного типа. Значение данного параметра будет пере­дано системой в качестве параметра при запуске предопределенной процедуры ОбработкаПроведения. Использовать данное зна­чение можно, например, для того, чтобы в процеду­ре ОбработкаПроведения правильно отработать режим проведения, т. к. это программный, а не ин­терактивный и не групповой (см. ГрупповаяОбработка) способ проведения. По умолчанию передается пустое значение.
Возвращаемое значение:

Число: 1 — проведение документа завершено успешно; 0 — проведение до­кумента не выполнено.

Описание:

Метод Провести запускает процедуру проведения документа. Возвращае­мое значение можно использовать, например, в качестве условия принятия ре­шения при завершении обработки транзакции.

Замечание. Данный метод нельзя использовать в теле предопределенной про­цедуры ОбработкаПроведения.

Замечание. Если этот метод применяется в Модуле формы документа непо­средственно к документу локального контекста, то данный метод отраба­тывает те же действия, как интерактивное нажатие пользователем кнопки с формулой #Провести. В этом случае, если параметр Режим опу­щен, то документ проводится в режиме, соответствующем установкам сис­темы меню «Сервис» - «Параметры».

Пример:

Док.СоздатьОбъект(Документ.Заказ);

Док.АвтоВремяТекущее();

Док.Новый();

Док.УстановитьНовыйНомер(Прг-);

Док.Клиент = Константа.ОсновнойКлиент;

Док.Количество = 5;

Док.Записать();

Док.Провести(1, Программно);

См. также: ОбработкаПроведения, ГруппроваяОбработка

СделатьНеПроведенным

Отменить проведение документа.

Синтаксис:

СделатьНеПроведенным()

Англоязычный синоним:

UnPost

Описание:

Метод СделатьНеПроведенным отменяет проведение документа. Данный метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

Док.СоздатьОбъект(Документ.Заказ);

Док.НайтиДокумент(Докум);

Док.СделатьНеПроведенным();

См. также: Провести, ПриОтменеПроведенияДокумента

СравнитьТА

Сравнить дату и время документа с Точкой актуальности итогов.

Синтаксис:

СравнитьТА()

Англоязычный синоним:

CompareWithAP

Возвращаемое значение:

Числовое значение:

· 1(плюс единица) — если дата и время документа больше даты и времени Точки актуальности итогов.

· 0 — если дата и время документа равно дате и времени Точки актуаль­ности итогов.

· -1 (минус единица) — если дата и время документа меньше даты и вре­мени Точки актуальности итогов.

· -2 (минус два) в случае, если новый документ, который сравнивается с ТА, еще не записан, то есть он еще не имеет никакой позиции на оси времени.

Описание:

Метод СравнитьТА сверяет дату и время документа с датой и временем Точки актуальности итогов, позволяя определить положение на оси времени момента записи документа по отношению к текущиму положению ТА.

Пример:

Процедура ОбработкаПроведения()

   Если СравнитьТА() 0 Тогда

      // если документ после ТА, вызываем процедуру

      ПроводкаДокументаБудущимЧислом();

   ИначеЕсли СравнитьТА() 0 Тогда

      // если документ до ТА, вызываем процедуру

      ПроводкаДокументаЗаднимЧислом();

   Иначе

      // если документ в ТА, вызываем процедуру

      ПроводкаДокумента();

   КонецЕсли;

КонецПроцедуры

СуществуетОперация

Устанавливает (возвращает) признак существования операции у до­кумента.

Синтаксис:

СуществуетОперация(Признак)

Англоязычный синоним:

OperExist

Параметры:

Признак Числовое выражение: 1 — существует операция, 0 — не существует операции.
Возвращаемое значение:

Числовое значение — текущее значение признака: 1 — у документа сущест­вует операция; 0 — у документа не существует операции.

Описание:

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

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

Пример:

* Для накладной операция будет записываться только если отгрузка ведется с основного склада.

Процедура ПриЗаписи()

   Если Склад = ОснСклад Тогда

      СуществуетОперация(1);

   Иначе

      СуществуетОперация(0);

   КонецЕсли;

КонецПроцедуры

ВыгрузитьТабличнуюЧасть

Выгрузить многострочную часть документа в таблицу значений.

Синтаксис:

ВыгрузитьТабличнуюЧасть(3нач, Реквизиты)

Англоязычный синоним:

UnloadTable

Параметры:

3нач Идентификатор переменной, содержащей значе­ние типа «Таблица значений» или «Список зна­чений», куда нужно выгрузить данные из много­строчной части документа. Если переданное зна­чение пустое, то система сама создаст объект типа «Таблица значений». Колонки совмещаются по идентификаторам.
Реквизиты Необязательный параметр. Список реквизитов многострочной части документа через запятую. Данный параметр указывает, какие реквизиты выгружать, если не указано то все. Для номера строки документа в таблице значений создается отдельная колонка с идентификатором НомерСтрокиДокумента. При задании какие колонки выгружать, для выгрузки номера строки надо указать колонку НомерСтроки.
Описание:

Метод ВыгрузитьТабличнуюЧасть выгружает многострочную часть до­кумента в таблицу значений или список значений. Если в качестве значения для выгрузки задан список значений, то система выгружает данные из много­строчной части документа последовательно по реквизитам.

Пример:

ВыбДокум.ВыгрузитьТабличнуюЧасть(ТаблЗнач, Товар, Сумма, НДС, Цена);

ЗагрузитьТабличнуюЧасть

Загрузить многострочную часть документа из таблицы значений.

Синтаксис:

ЗагрузитьТабличнуюЧасть(ТаблЗнач)

Англоязычный синоним:

LoadTable

Параметры:

ТаблЗнач Таблица значений, откуда загружается много­строчная часть документа. Колонки совмещаются по идентификаторам.
Описание:

Метод ЗагрузитьТабличнуюЧасть загружает многострочную часть доку­мента из таблицы значений.

Пример:

ВыбДокум.ЗагрузитьТабличнуюЧасть(ТаблЗнач);

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

Описанные в данном разделе методы доступны только в контексте Модуля формы документа (см. «Виды программных модулей»).

ПриЗаписиПерепроводить

Установить режим обязательного перепроведения документа при за­писи.

Синтаксис:

ПриЗаписиПерепроводить(Режтл)

Англоязычный синоним:

ReMakeActionsWhenWrite

Параметры:

Режим Числовое выражение: 1 — устанавливает флаг обязательного перепроведения при записи уже проведенного документа; 0 — снимает флаг обяза­тельного перепроведения при записи уже прове­денного документа.
Описание:

Метод ПриЗаписиПерепроводить устанавливает режим обязательного пе­репроведения при записи ранее проведенного документа (интерактивный отказ от проведения документа или ошибка модуля приведет к отмене записи отре­дактированного документа).

Данный метод доступен только в контексте Модуле формы документа (см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы Пример:

Процедура ПриОткрытии()

   ПриЗаписиПерепроводить(1);

КонецПроцедуры

ПроводитьПослеТА

Установить режим проведения документа после ТА.

Синтаксис:

ПроводитьПослеТА(ФлагДляНеПровДокумента, ФлагДляПровДокумента)

Англоязычный синоним:

PostingAfterTA

Параметры:

ФлагДляНеПровДокумента Режим проведения документа после ТА. Число: -1 (минус единица) — проводить документ всегда задним числом; 0 — при проведении запрашивать режим проведе­ния документа; 1 — проводить документ в реальном потоке времени, т. е. при про­ведении время документа автоматически устанавливается на время после ТА.
ФлагДляПровДокумента Режим перепроведения документа после ТА. Числовое выражение: -1 (минус еди­ница) — проводить документ всегда зад­ним числом; 1 — проводить документ в потоке.
Возвращаемое значение:

Текущее значение режим перепроведения документа в зависимости от про-веденности.

Описание:

Метод ПроводитьПослеТА устанавливает режим проведения документа после ТА. Этот метод относится к случаю проведения документа в пределах даты, в которой находится ТА. Дело в том, что при записи документа, документ кроме даты получает еще и время документа. В многопользовательском режиме часто возникает ситуация, когда в момент проведения документа, он уже ока­зывается не последним в потоке проводимых документов (провели документ с другого рабочего места), в этом случае система ЮПредприятие дает на выбор три варианта проведения:

· провести документ тем временем, каким он был записан, т. е. фактически задним временем (до ТА);

· изменить время документа (в рамках текущей даты), чтобы документ стал самым последним и проводился в потоке, т. е. после ТА;

· запросить у пользователя, в каком режиме провести документ.

Данный метод доступен только в контексте Модуле формы документа (см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы документа.

Пример:

Процедура ПриОткрытии()

   ПроводитьПослеТА(1, 1);

КонецПроцедуры

АктивизироватьСтроку

Установить курсор на указанной строке многострочной части доку­мента.

Синтаксис:

АктивизироватьСтроку(НомСтроки)

Англоязычный синоним:

ActivateLine

Параметры:

НомСтроки Необязательный параметр. Номер строки, кото­рую следует активизировать. Если параметр опу­щен, то активизируется текущая строка много­строчной части документа.
Описание:

Данный метод в основном предназначен для использования в системной предопределенной процедуре ОбработкаПодбора. Метод АктивизироватьСтроку выполняет визуальную активизацию строки доку­мента в форме редактирования документа после выхода из предопределенной процедуры ОбработкаПодбора.

Данный метод доступен только в контексте Модуле формы документа (см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы документа.

Пример:

Процедура ОбработкаПодбора(Выб, КонтФормы)

   Кол = 0;

   Если ВвестиЧисло(Кол, Введите количество, 10, 0) = 1 Тогда

      НоваяСтрока();

      Товар = Выб;

      УстанЦеныРасх(Контекст);

      Количество = Кол;

      Выч_суммы_накл(Контекст);

      АктивизироватьСтроку();

      Активизировать(Цена);

   КонецЕсли;

КонецПроцедуры

См. также: ОбработкаПодбора

ИзменениеПорядкаСтрок

Установить режим изменения порядка строк в форме документа.

Синтаксис:

ИзменениеПорядкаСтрок(Разрешить)

Англоязычный синоним:

ChangeLinesOrder

Параметры:

Разрешить Необязательный параметр. Число: 1 — разрешить изменение порядка строк в документе; 0 — запре­тить. Если параметр не задан, то режим не меня­ется.
Возвращаемое значение:

Режим изменения порядка строк до исполнения метода. Число: 1 — разре­шено изменение порядка строк в документе; 0 — запрещено.

Описание:

Метод ИзменениеПорядкаСтрок позволяет установить режим изменения порядка строк в форме документа.

Данный метод доступен только в контексте Модуле формы документа (см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы документа.

Пример:

ИзменениеПорядкаСтрок(0);

Модифицированность

Возвратить признак изменения реквизитов текущей формы докумен­та.

Синтаксис:

Модифицированность()

Англоязычный синоним:

Modify

Возвращаемое значение:

Числовое значение: 1 — если реквизиты текущей формы документа были изменены; 0 — если нет.

Описание:

Метод Модифицированность возвращает признак изменения реквизитов формы (в режиме исполнения он отображается символом (*) в заголовке окна формы).

Данный метод доступен только в Модуле формы документа(см. «Виды про­граммных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы докумен­та.

Пример:

Изм = Модифицированность();

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

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях формы документов (см. «Виды про­граммных модулей»).

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

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

ВводНового

Предопределенная процедура при вводе нового документа.

Синтаксис:

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

Англоязычный синоним:

InputNew

Параметры:

ПризнКопирования Признак того, что объект введен копировани­ем. Число: 1 — объект введен копированием, 0 — просто новый объект. Данный признак мо­жет быть использован для анализа необходи­мости инициализации реквизитов нового объ­екта.
ОбъектКопирования Объект, который был скопирован.
Описание:

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

Процедуру ВводНового контекста документа можно размещать в Модулях форм документов (см. «Виды программных модулей»).

Пример:

Процедура ВводНового();

   Валюта = Константа.ДефВалютаПродажи;

   Валюта.ИспользоватьДату(ДатаДок);

   Дата_Курса = ДатаДок;

   Если Число(Валюта.Код) = Число(Константа.БазоваяВалюта.Код) Тогда

      //У базовой валюты курс = 1, поэтому отображаем курс Основной валюты

      Константа.ОсновнаяВалюта.ИспользоватьДату(ДатаДок);

      Курс = Константа.ОсновнаяВалюта.Текущ_курс;

   Иначе

      Курс = Валюта.Текущ_курс;

   КонецЕсли;

   Фирма = Константа.ДефФирма;

   Клиент = Константа.ДефПокупатель;

КонецПроцедуры

См. также: СтатусВозврата

ВводНаОсновании

Предопределенная процедура при вводе нового документа на основании.

Синтаксис:

ВводНаОсновании(ДокументОснование)

Англоязычный синоним:

InputCausedBy

Параметры:

ДокументОснование Значение документа, на основании которо­го вводится новый документ.
Описание:

Вызов процедуры ВводНаОсновании производится в системе 1С:Предприятие неявно после выбора пункта меню «Действия» - «Ввести на основании». В этот момент система подставляет фактическое значение пара­метра ДокументОснование, содержащее документ, на котором находился курсор в момент выполнения данной команды.

Данная процедура может использоваться, например, для установки началь­ных значений (по умолчанию) реквизитов нового документа, вводимого на ос­новании другого. Если в данной предопределенной процедуре установить ста­тус возврата — 0 (например, если данному пользователю нельзя вводить новые документы), ввода нового документа и открытие его формы не будет выполне­но.

Процедуру ВводНаОсновании можно размещать только в Модулях форм документов (см. «Виды программных модулей»).

Пример:

Процедура ВводНаОсновании(ДокОснование)

   Если (ДокОснование.Вид() = ПриходнаяРеализ)

         ИЛИ ДокОснование.Вид() = РасходнаяРеализ) Тогда

      ПризнакРеализатора = Перечисление.ПризнакиРеализаторов.Реализатор_Клиент;

      ДатаДок = РабочаяДата();

      Валюта = Константа.БазоваяВалюта;

      Валюта.ИспользоватьДату(ДатаДок);

      Дата_Курса = ДокОснование.Дата_Курса;

      Курс = ДокОснование.Курс;

      НДС = ДокОснование.НДС;

      СН = ДокОснование.СН;

      Фирма = ДокОснование.Фирма;

      Основание = + ДокОснование + от + ДокОснование.ДатаДок;

      ДокОснование.ВыбратьСтроки();

      Пока ДокОснование.ПолучитьСтроку() = 1 Цикл

         НоваяСтрока();

         Товар = ДокОснование.Товар;

         Цена = ДокОснование.Цена;

         Единица = ДокОснование.Единица;

         Коэффициент = ДокОснование.Коэффициент;

         Количество = ДокОснование.Количество;

         Сумма = ДокОснование.Сумма;

      КонецЦикла;

   Иначе

      Предупреждение(Этот Документ можно вводить только на основании

                       |накладных по реализации!);

      ВводНового();

   КонецЕсли;

   Валюта_Прежн = Валюта;

   Курс_Прежн = Курс;

КонецПроцедуры

См. также: СтатусВозврата

ПриЗаписи

Предопределенная процедура при записи документа.

Синтаксис:

ПриЗаписи()

Англоязычный синоним:

OnWrite

Описание:

Вызов предопределенной процедуры ПриЗаписи производится в системе 1С:Предприятие при интерактивной записи документа. Если в данной предо­пределенной процедуре установить статус возврата — 0 (например, если данно-wy пользователю нельзя изменять реквизиты документа), запись документа не будет выполнена.

Данная предопределенная процедура может располагаться в Модулях фор­мы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриЗаписи()

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права изменять документ!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриНачалеРедактированияСтроки

Предопределенная процедура при редактировании существующей строки документа.

Синтаксис:

ПриНачалеРедактированияСтроки()

Англоязычный синоним:

OnStartEditLine

Описание:

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

Данная предопределенная процедура может располагаться в Модулях фор­мы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриНачалеРедактированияСтроки()

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права изменит, документ 1, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриВводеСтроки

Предопределенная процедура при вводе новой строки многострочной части документа.

Синтаксис:

ПриВводеСтроки()

Англоязычный синоним:

OnNewLine

Описание:

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

Данная предопределенная процедура может располагаться в Модулях фор­мы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриВводеСтроки()

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права добавлять строки!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриРедактированииНовойСтроки

Предопределенная процедура при редактировании новой строки мно­гострочной части документа.

Синтаксис:

ПриРедактированииНовойСтроки()

Англоязычный синоним:

OnEditNewLine

Описание:

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

Данная предопределенная процедура может располагаться в Модулях фор­мы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриРедактированииНовойСтроки()

   Количество = 10;

   Коэффициент = 1;

   Скидка=0;

КонецПроцедуры

См. также: СтатусВозврата

ПриОкончанииРедактированияСтроки

Предопределенная процедура при окончании редактирования строки многострочной части документа.

Синтаксис:

ПриОкончанииРедактированияСтроки(НовСтр)

Англоязычный синоним:

OnFinishLineEdit

Параметры:

НовСтр Флаг новой строки. Число: 1 — если произошло окончание ввода новой строки, 0 — если произошло окончание редактирования существующей строки.
Описание:

Вызов предопределенной процедуры ПриОкончанииРедактированияСтроки производится в системе 1С:Предприятие в момент окончания интерактивного редактирования строки многострочной части документа. Данная процедура может использоваться, на­пример, для проверки значений (по умолчанию) реквизитов строки табличной части документа. В данной предопределенной процедуре установка статуса воз­врата не имеет смысла, т. к. отказаться от ввода строки в этот момент уже не­возможно.

Замечание. Данный метод не вызывается при отказе от ввода новой строки по клавише Esc. Однако, метод вызывается при нажатии клавиши Esc во время редактирования существующей строки, но при этом последнее значение текущего редактируемого с клавиатуры поля не доступно, т. к. от его значения в данном случае отказываются, т. е. строка доступна в том виде, в котором она собственно и остается в документе.

Данная предопределенная процедура может располагаться в Модулях фор­мы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриОкончанииРедактированияСтроки()

   Если Количество = 0 Тогда

      Количество = 1;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриУдаленииСтроки

Предопределенная процедура при удалении строки многострочной части документа.

Синтаксис:

ПриУдаленииСтроки()

Англоязычный синоним:

OnDeleteLine

Описание:

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

Данная предопределенная процедура может располагаться только в Моду­лях формы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриУдаленииСтроки()

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права удалять строки!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриИзмененииПорядкаСтрок

Предопределенная процедура при изменении порядка строк много­строчной части документа.

Синтаксис:

ПриИзмененииПорядкаСтрок(Действие)

Англоязычный синоним:

OnChangeLinesOrder

Параметры:

Действие Число: -1 — перемещение строки вверх; 1 — перемещение строки вниз; 0 — перенумерация строк.
Описание:

Вызов предопределенной процедуры ПриИзмененииПорядкаСтрок произ-^дится в системе 1С:Предприятие при интерактивном изменении порядка строк многострочной части документа (перемещения строк вверх-вниз, перену­мерация, сортировка). Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять документ), изменении порядка строк документа не будет выполнено.

Данная предопределенная процедура может располагаться только в Моду­лях формы документов (см. «Виды программных модулей»).

Пример:

Процедура ПриИзмененииПорядкаСтрок()

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права изменять документ!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

Методы контекста Модуля документа

Описанные в данном разделе методы доступны только в контексте Модуля документа (см. «Виды программных модулей»).

ИтогиАктуальны

Возвратить флаг актуальности итогов.

Синтаксис:

ИтогиАктуальны()

Англоязычный синоним:

AreTotalsActual

Возвращаемое значение:

Числовое значение: 1 — итоги актуальны, 0 — нет.

Описание:

Метод ИтогиАктуальны позволяет определить — выполняется ли проведе­ние документа в реальном времени или задним числом (когда нельзя обращать­ся к текущим остаткам регистров).

Данный метод доступен только в контексте Модуля документа в предопре­деленной процедуре ОбработкаПроведения (см. Гл. «Системные предопре­деленные процедуры»).

Пример:

Процедура ОбработкаПроведения()

   // Для расходной накладной ВыбратьСтроки();

   Пока ПолучитьСтроку() 0 Цикл

      Если ИтогиАктуальны() 0 Тогда

         // если итоги актуальны,

         // то текущие стоимости берем из текущих остатков

         Регистр.ОстаткиТоваров.Склад = Скпад;

         Регистр.ОстаткиТоваров.Товар = Товар;

         Регистр.ОстаткиТоваров.ОстаткиПолучить();

         Регистр.ОстаткиТоваров.БазоваяСтоимость =

                 Регистр.ОстаткиТоваров.БазоваяСтоимость * Количество *

                 Коэффициент / Регистр.ОстаткиТоваров.ОстатокТовара;

         Регистр.ОстаткиТоваров.ВалютнаяСтоимость =

                 Регистр.ОстаткиТоваров.ВалютнаяСтоимость * Количество *

                 Коэффициент / Регистр.ОстаткиТоваров.ОстатокТовара;

         Регистр.ОстаткиТоваров.ОстатокТовара = Количество * Коэффициент;

         Регистр.ОстаткиТоваров.ДвижениеРасходВыполнить();

      Иначе

         // если итоги не актуальны,

         //то стоимости берем из врем. расчета Регистра

         Рег = СоздатьОбъект(Регистр.ОстаткиТоваров);

         Рег.ВременныйРасчет();

         РассчитатьРегистрыНа(ТекущийДокумент());

         Рег.Товар = Товар;

         Рег.Склад = Склад;

         Рег.ОстаткиПолучить();

         Регистр.ОстаткиТоваров.БазоваяСтоимость =

                 Рег.БазоваяСтоимость * Количество * Коэффициент /

                 Рег.ОстатокТовара;

         Регистр.ОстаткиТоваров.ВалютнаяСтоимость =

                 Рег.ВалютнаяСтоимость * Количество * Коэффициент /

                 Рег.ОстатокТовара;

         Регистр.ОстаткиТоваров.ОстатокТовара = Количество * Коэффициент;

         Регистр.ОстаткиТоваров.Склад = Склад;

         Регистр.ОстаткиТоваров.Товар = Товар;

         Регистр.ОстаткиТоваров.ДвижениеРасходВыполнить();

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры

ГрупповаяОбработка

Возвратить флаг групповой обработки.

Синтаксис:

ГрупповаяОбработка()

Англоязычный синоним:

IsGroupPrосеssing

Возвращаемое значение:

Число: 1 — групповое обработка, 0 — проведение документа по одному.

Описание:

Метод ГрупповаяОбработка позволяет определить, выполняется ли про­ведение документа группой (при помощи режима «Управление итогами») или по одному (интерактивно).

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. гл. «Системные предопреде­ленные процедуры»).

Пример:

Лроцедура ОбработкаПроведения()

   Если ГрупповаяОбработка() 0 Тогда

      // если групповая проводка документов, то вызываем процедуру

      ПроводкаДокументаГруппой();

   Иначе

      // если не групповая проводка документов, то

      ПроводкаДокументаОдиночного();

   КонецЕсли;

КонецПроцедуры

См. также: ОбработкаПроведения, Провести

НеПроводитьДокумент

Отменить процесс проведения документа.

Синтаксис:

НеПроводитьДокумент()

Англоязычный синоним:

DoNotTransactDoc

Описание:

Метод НеПроводитьДокумент фактически отменяет весь процесс проведе­ния документа (отменяет транзакцию проведения). Вызов данного метода при­водит к тому, что все движения регистров, вызванные в предопределенной про­цедуре ОбработкаПроведения, будут проигнорированы и документ не будет проведен. Метод НеПроводитьДокумент не завершает процедуру ОбработкаПроведения (для завершения процедуры нужно отдельно вызвать Возврат).

Данный метод доступен только в контексте Модуля документа в предопре­деленной процедуре ОбработкаПроведения (см. Гл. «Системные предопре­деленные процедуры»).

По своему действию данный метод полностью аналогичен вызову системной функции СтатусВозврата с параметром 0, т. е. отменить действие.

Пример:

Процедура ОбработкаПроведения();

   Если Число(Клиент.Выбран()) 0 Тогда

      ДвиженияРегистраРеализации();

   Иначе

      Сообщить(Не выбран клиент по реализации!!! Документ не проводится!!!);

      НеПроводитьДокумент();

      Возврат;

   КонецЕсли;

КонецПроцедуры

См. также:

СтатусВозврата

УстановитьРеквизитСправочника

Записать значение периодического реквизита справочника с привяз­кой к документу.

Синтаксис:

УстановитьРеквизитСправочника(ЭлементСправочника, НазваниеРеквизита,

                 3начение, ДатаУстановки, ИмяТипа, Длина, Точность)

Англоязычный синоним:

SetRefField

Параметры:

ЭлементСправочника Выражение, задающее элемент справочника, в котором требуется записать новое значение периодического реквизита.
НазваниеРеквизита Строковое выражение — название периоди­ческого реквизита справочника (как он на­зван в конфигураторе) в котором требуется записать новое значение периодического реквизита.
3начение Новое значение периодического реквизита.
ДатаУстановки Выражение типа «дата», на которую требует­ся установить новое значение периодическо­го реквизита. Этот параметр имеет смысл только для не оперативных документов и позволяет установить значение на другую дату чем дата документа, но тогда с пустым временем.
ИмяТипа Необязательный параметр. Строковое выра­жение — название типа данных (или Вид субконто).
Длина Необязательный параметр. Число — длина числового или строкового значения.
Точность Необязательный параметр. Число знаков после десятичной точки для числового зна­чения.
Описание:

Метод УстановитьРеквизитСправочника записывает новое значение пе­риодического реквизита справочника с привязкой к документу. Использование Данного метода позволяет вносить изменения в справочники с привязкой к проведению документа. Это значит, что при удалении или редактировании или отказе от проведения документа все сделанные им изменения в справочнике будут корректно отменены. Средства языка позволяют выбирать такие движе-иия справочника по документу или определять документ, который произвел изменения в справочнике (см. «Работа с объектом Периодический»).

Параметры ИмяТипа, Длина и Точность следует указывать при уста­новке значения периодического реквизита справочника имеющего неопреде­ленный тип.

Данный метод доступен только в контексте Модуля документа в предопре­деленной процедуре ОбработкаПроведения (см. Гл. «Системные предопре­деленные процедуры»).

Пример:

// при работе в контексте документа, его реквизит Сотрудник

// является переменной типа справочник,

// чтобы установить новое значение периодического

// реквизита Оклад этого элемента

// справочника с привязкой к документу

Процедура ОбработкаПроведения();

   // .....

   Моклад = Константа.МаксимальныйОклад;

   УстановитьРеквизитСправочника(Сотрудник, Оклад, МОклад, ДатаДок);

   // .....

КонецПроцедуры

ОчиститьДвижения

Удалить движения документа.

Синтаксис:

ОчиститьДвижения(ВидыДвижений)

Англоязычный синоним:

ClearActions

Параметры:

ВидыДвижений Необязательный параметр. Строковое выра­жение, в котором через «;» перечислены ви­ды движений. В качастве видов движений можно задавать следующие строковые зна­чения:

· Регистр.ХХХХХХ — движение конкретного регистра, где ХХХХХХ — конкретный вид регистра;

· Операция — бухгалтерская опера­ция;

· Справочник — все изменения пе­риодических реквизитов справочни­ков;

· ЖурналРасчетов — все измененияв журналах расчетов. Если данный параметр не задан, то произво­дится полная очистка всех движений.
Описание:

Метод ОчиститьДвижения удаляет существующие движения документа.

Если метод не вызывается при проведении документа, то существующие движения документа не стираются вообще.

Если метод не вызывается при распроведении документа, то существующие движения после распроведения стираются.

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

· допроводить документ, т. е. доделывать движения в добавок к уже суще­ствующим;

· делать движения, анализируя ранее сделанные и уже существующие;

· выполнять распроведение документа, анализируя существующие движе­ния;

· не очищать существующие движения при перепроведении, если это не нужно.

Замечание. Данный метод доступен только при отключенном в конфигурации флаге «Автоматическое удаление движений».

Замечание. Данный метод доступен только в контексте Модуле формы доку­мента (см. «Виды программных модулей»). Действие данного метода от­носится только к текущему документу, который доступен в локальном контексте Модуля формы документа.

Пример:

Процедура ОбработкаПроведения()

   ОчиститьДвижения(Операция; Справочник; ЖурналРасчетов);

   ДвиженияРегистровНакладных(Контекст);

КонецПроцедуры

// —————————————————————————————————————

Процедура ОбработкаУдаленияПроведения()

   ОчиститьДвижения();

КонецПроцедуры

ПривязыватьСтроку

Записывать номер строки документа в движениях документа.

Синтаксис:

ПривязыватьСтроку(НомерСтроки)

Англоязычный синоним:

LinkLine

Параметры:

НомерСтроки Выражение, содержащее номер строки документа.
Описание:

Метод ПривязыватьСтроку устанавливает, что при выполнении всех по­следующих движений регистров, при записи значений периодических реквизи­тов справочников с привязкой к документу, а также при записи бухгалтерских проводок движения будут записываться с номером строки НомерСтроки.

Метод ПривязыватьСтроку может быть использован как системная про­цедура: тогда он будет устанавливать номер строки для всех регистров по кото­рым выполняются движения, или как метод конкретного регистра: тогда он будет устанавливать номер строки только для данного регистра.

Данный метод доступен только в контексте Модуля документа в предопре­деленной процедуре ОбработкаПроведения.

Пример:

Процедура ОбработкаПроведения()

   ПривязыватьСтроку(НомерСтроки);

   Регистр.ТовЗап.Склад = Склад;

   ВыбратьСтроки();

   Пока(ПолучитьСтроку() 0) Цикл

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

КонецПроцедуры

Предопределенные процедуры Модуля документа

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях документов (см. «Виды программных модулей»).

Данные предопределенные процедуры вызываются как при интерактивном так и при программном возникновении события.

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

ОбработкаПроведения

Предопределенная процедура обработки проведения документа.

Синтаксис:

ОбработкаПроведения(3нач)

Англоязычный синоним:

Posting

Параметры:

3нач Необязательный параметр. Идентификатор перемен­ной, в которую системой будет передано значение па­раметра, если проведение документа запущено про­граммно при помощи метода Провести. Использовать данное значение можно, например, для того, чтобы в процедуре ОбработкаПроведения правильно отрабо­тать режим проведения, т. к. в случае вызова метода Провести это будет программный, а не интерактив­ный и не групповой (см. ГрупповаяОбработка) спо­соб проведения документа.
Описание:

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

Вызов процедуры ОбработкаПроведения производится в системе 1С:Предприятие неявно при выполнении проведения документа в любом ре­жиме (интерактивное проведение документа, групповое проведение, программ­ная инициализация проведения при помощи метода Провести). Если прове­дение документа запущено программно, то система подставляет фактическое значение параметра 3нач, содержащее значение параметра, заданного при вызове метода Провести.

Замечание. В предопределенных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения система 1С:Предприятие сама выпол­няет все действия через транзакцию (см. «Процедуры работы с транзак­циями»), поэтому никаких специальных действий по обработке транзак­ций в этих предопределенных процедурах предпринимать не нужно.

Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя проводить документ), то прове­дение документа не будет выполнено и будет отменена системная транзакция.

Замечание. В предопределенных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения нельзя использовать элементы инте­рактивного управления (например, операторы Предупреждение, Вопрос, ВвестиЧисло и т. п.), т. к. в этом случае при открытой транзакции система ожидает отклика пользователя, а все остальные пользователи ждут завер­шения транзакции (в результате документы у всех остальных пользовате­лей в этот момент не могут проводиться). Если в конфигурации необходимо при проведении документа выдавать пользователю некоторые coofi щения, то следует использовать операторы Сообщить или Состояние

Для корректного выполнения алгоритма проведения документа в Модуле документа доступны методы ИтогиАктуальны и ГрупповаяОбработка, кото­рые позволяют правильно определить режим проведения документа (см. «Рабо­та с документами»).

Данная предопределенная процедура может располагаться только в Моду­лях документов (см. «Виды программных модулей»).

Пример:

Процедура ОбработкаПроведения()

   Регистр.ТовЗап.Склад = Склад;

   ВыбратьСтроки();

   Пока( ПолучитьСтроку() 0) Цикл

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

КонецПроцедуры

См. также: СтатусВозврата, МтогиАктуальны, ГрупповаяОбработка, Провести

ОбработкаУдаленияПроведения

Предопределенная процедура обработки удаления проведения доку­мента.

Синтаксис:

ОбработкаУдаленияПроведения()

Англоязычный синоним:

UnPostingProcess

Описание:

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

Замечание. В предопределенных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения система 1С:Предприятие сама выполняет все действия через транзакцию (см. «Процедуры работы с транзак­циями»), поэтому никаких специальных действий по обработке транзакций в этих предопределенных процедурах предпринимать не нужно.

Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя отменять проведение докумен­та) то отмена проведения документа не будет выполнена и будет отменена сис­темная транзакция.

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

Данная предопределенная процедура может располагаться только в Моду­лях документов (см. «Виды программных модулей»).

Пример:

Процедура ОбработкаУдаленияПроведения()

   // Процедура выполняется при отмене проведения

   // или удалении документа

   // Сотрудник — это реквизит документа

   СпрСотрудники.НайтиЭлемент(Сотрудник);

   // если нашли сотрудника...

   Если СпрСотрудники.Выбран() = 1 Тогда

      // СтРасч — это реквизит документа

      СпрСотрудники.НайтиЭлемент(СтРасч);

      ВозвратРасч = 0;

      Если СпрСотрудники.Выбран() = 1 Тогда

         // если старый расчетчик еще есть — откатим!

         ВозвратРасч = 1;

      КонецЕсли;

      СпрСотрудники.НайтиЭлемент(Сотрудник);

      Если ВозвратРасч = 1 Тогда

         СпрСотрудники.Родитель = СтРасч;

      КонецЕсли;

      СпрСотрудники.Записать();

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, СделатьНеПроведенным, Удалить

АрхивироватьДокумент

Предопределенная процедура обработки архивирования документа.

Синтаксис:

АрхивироватьДокумент()

Англоязычный синоним:

ArchiveDocument

Описание:

Вызов процедуры АрхивироватьДокумент производится в системе 1С:Предприятие неявно в процессе смены расчетного периода журнала расче­тов вперед (т.н. архивация данных расчета), если в журнале расчетов содер­жатся записи, порожденные данным документом.

Тело процедуры должно быть написано разработчиком конфигурации в Модуле документа, вызываемом в конфигураторе: Документ — Редактировать — Модуль документа.

Пример:

Процедура АрхивироватьДокумент()

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

   ЖР = СоздатьОбъект(ЖурналРасчетов.Зарплата);

   Если Окончание ЖР.КонецТекущегоПериода() Тогда

      Зарегистрировать(ТекущийДокумент());

   КонецЕсли;

КонецПроцедуры

Команды организации механизма заполнения документа методом подбора

При вводе документа, процесс заполнения реквизитов многострочной части документа может быть реализован как обычным способом, так и при помощи специального механизма — методом подбора. Этот механизм предназначен для ускорения интерактивного заполнения значений реквизитов документов типа «справочник» и «документ». Реальным примером может служить процесс за­полнения спецификации накладной путем подбора нужных товаров из спра­вочника Товары.

В системе 1С:Предприятие для реализации подбора предназначены сле­дующие системные процедуры:

· ОткрытьПодбор;

· Активизировать;

· АктивизироватьСтроку.

Кроме того, при обработке выбранных в подборе значений участвует сле­дующая системная предопределенная процедура:

· ОбработкаПодбора.


Глава 13 Работа с Журналами документов

Контекст работы с журналами документов Журнал документов — средство для работы со списком документов. В тер­минах языка журнал не является специальным типом данных (он не имеет зна­чения, его нельзя создать при помощи функции СоздатьОбъект).

С журналом в системе связана форма отображения списка документов и программный модуль формы журнала документов (см. «Виды программных модулей»). В локальном контексте этого программного модуля непосредствен­но доступны реквизиты формы журнала. Кроме того, здесь непосредственно доступен атрибут «только для чтения» — ТекущийДокумент, содержащий значение выбранного в журнале документа.

Атрибуты контекста Модуля формы журнала документов

Описанный в данном разделе атрибут можно вызывать только в Модуле формы журнала (см. «Виды программных модулей»).

ТекущийДокумент

Синтаксис:

ТекущийДокумент

Англоязычный синоним:

CurrentDocument

Описание:

Атрибут (только для чтения) ТекущийДокумент содержит значение вы­бранного в журнале документа. Этот атрибут позволяет использовать в про­грамме полученное значение документа. Поскольку данный атрибут фактиче­ски является ссылкой на позиционируемый объект типа «документ», то поэто­му для передачи или запоминания самого значения текущего документа журна­ла рекомендуется использовать конструкцию

ТекущийДокумент.ТекущийДокумент()

Данный атрибут может использоваться только в локальном контексте про­граммного модуля формы журнала документов.

Пример:

// только в модуле Формы журнала документа

// ———————————————————————————————————————

функция Операция()

   Если Число(ТекущийДокумент.Выбран()) 0 Тогда

      Возврат + ТекущийДокумент.ДатаДок + + ТекущийДокумент.Вид;

   Иначе

      Возврат Пусто;

   КонецЕсли;

КонецФункции

//————————————————————————————————————————

Функция ЖурналСумма()

   Если Число(ТекущийДокумент.Выбран()) 0 тогда

      Возврат Константа.МинЗарплата.Получить(ДатаДок);

   Иначе

      Возврат 0;

   КонецЕсли;

КонецФункции

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

Описанные в данном разделе методы доступны только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

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

ВидыОтбора

Установить доступные виды отборов журнала для вызова их в инте­рактивном режиме.

Синтаксис:

ВидыОтбора(СписокИменОтборов)

Англоязычный синоним:

KindsOfSelection

Параметры:

СписокИменОтборов Необязательный параметр. Строковое вы­ражение, содержащее список имен отборов для журнала. Виды указываются через за­пятую. Если вместо списка — символ *, то значит для журнала используются все на­значенные в конфигураторе виды отборов.
Возвращаемое значение:

Строковое значение, содержащее текущий список имен отборов для журна­ла, разделенных запятыми (на момент до исполнения метода).

Описание:

Метод ВидыОтбора устанавливает доступные виды отборов журнала для вызова их в интерактивном режиме.

Данный метод доступен только в контексте Модуля формы журнала доку­ментов (см. «Виды программных модулей»).

Пример:

ВидыОтбора(Склад, Клиент, Автор);

ЗакладкиОтбора

Установить в форме журнала закладки для интерактивного осущест­вления отбора.

Синтаксис:

ЗакладкиОтбора(ИмяОтбора, ФлагОтбораЗначенийВИнтервалеЖурнала,

               ФлагУстановкиЗначенияОтбора, 3начение0тбора)

Англоязычный синоним:

TabCtrlSelection

Параметры:

ИмяОтбора Строковое выражение, содержащее имя отбора.
ФлагОтбораЗначенийВИнтервалеЖурнала Числовое выражение: 1 — текущие значения отбора для закладок вы­бираются только по документам в установленном интервале журнала; 0 — текущие значения отбора для закладок выбираются по всем доку­ментам журнала.
ФлагУстановкиЗначенияОтбора Числовое выражение: 1 — для ото­бражения сразу выбирается отбор по параметру 3начение0тбора; 0 — текущее значение отображаемой закладки отбора устанавливается на первое существующее значение.
3начение0тбора Значение отбора.
Описание:

Метод ЗакладкиОтбора устанавливает в форме журнала закладки для ин­терактивного осуществления отбора.

Данный метод доступен только в контексте Модуля формы журнала доку­ментов (см. «Виды программных модулей»).

Пример:

ЗакладкиОтбора(Склады, 1, 1, Константа.ОснСклад);

УстановитьОтбор

Установить отбор журнала.

Синтаксис:

УстановитьОтбор(ИмяОтбора, 3начение0тбора)

Англоязычный синоним:

SetSelection

Параметры:

ИмяОтбора Строковое выражение — имя отбора. Если это значение пустое, то отбор отключается.
3начениеОтбора Значение отбора.
Описание:

Метод УстановитьОтбор принудительно устанавливает отбор для журна­ла.

Данный метод доступен только в контексте Модуля формы журнала доку­ментов (см. «Виды программных модулей»).

Замечание. Во всех журналах, кроме журнала подчиненных документов, рабо­тает отбор по виду документа. В этом случае синтаксис вызова метода следующий:

УстановитьОтбор(ВедДокумента)

Параметры:

ВидДокумента Строковое выражение — вид документа отбора.
Пример:

Изм = УстановитьОтбор(Склады, Склад1);

ПолучитьОтбор

Возвратить текущее значение отбора журнала.

Синтаксис:

ПолучитьОтбор(ИмяОтбора, 3начение0тбора)

Англоязычный синоним:

GetSelection

Параметры:

ИмяОтбора Имя переменной, куда вернется строковое значе­ние имени отбора.
3начениеОтбора Имя переменной, куда вернется значение отбора.
Возвращаемое значение:

Числовое значение: 1 — есть отбор; 0 — если нет отбора.

Описание:

Метод ПолучитьОтбор возвращает текущее значение отбора журнала. Данный метод доступен только в контексте Модуля формы журнала доку­ментов (см. «Виды программных модулей»).

Пример:

Изм = ПолучитьОтбор();

УстановитьИнтервал

Установить интервал журнала.

Синтаксис:

УстановитьИнтервал(ДатаНач, ДатаКон, ФлагИзменения)

Англоязычный синоним:

SetRange

Параметры:

ДатаНач Выражение типа «дата» — начало интервала журнала.
ДатаКон Выражение типа «дата» — конец интервала журнала.
ФлагИзменения Необязательный параметр. Этим флагом регулирует­ся возможность интерактивного изменения интерва­ла журнала. 1 — пользователь может изменить интер­вал журнала интерактивно, 0 — пользователь не мо­жет интерактивно изменить интервал журнала.
Описание:

Метод УстановитьМнтервал позволяет установить интервал журнала. Данный метод доступен только в контексте Модуля формы журнала доку­ментов (см. «Виды программных модулей»).

Пример:

УстановитьИнтервал(НИ, КИ);

НачалоИнтервала

Возвратить дату начала интервала журнала.

Синтаксис:

НачалоИнтервала()

Англоязычный синоним:

BegOfRange

Возвращаемое значение:

Значение даты начала интервала журнала.

Описание:

Метод НачалоИнтервала позволяет получить дату начала интервала журнала.

Данный метод доступен только в контексте Модуля формы журнала доку­ментов (см. «Виды программных модулей»).

Пример:

НИ = НачалоИнтервала();

КонецИнтервала

Возвратить дату конца интервала журнала.

Синтаксис:

КонецИнтервала()

Англоязычный синоним:

EndOfRange

Возвращаемое значение:

Значение даты конца интервала журнала.

Описание:

Метод КонецИнтервала позволяет получить дату конца интервала журна­ла.

Данный метод доступен только в контексте Модуля формы журнала доку­ментов (см. «Виды программных модулей»).

Пример:

КИ = КонецИнтервала();

ПодчинениеДокументу

Установить документ-владелец для журнала подчиненных документов.

Синтаксис:

ПодчинениеДокументу([Докум], [ФлагАвтоСменыПодчинен])

Англоязычный синоним:

ParentDoc

Параметры:

Докум Необязательный параметр. Выражение типа «документ» — значение документа, подчиненные документы к которому дол­жен отображать журнал.
флагАвтоСменыПодчинен Необязательный параметр. Числовое вы­ражение: 1 — устанавливает способность автоматически обновлять отображение журнала при смене документа-владельца, если такой режим установлен в параметрах системы («Сервис» - «Один журнал»); 0 — снятие режима автоматического обновле­ния отображения журнала.
Возвращаемое значение:

Текущее значение документа, которому подчинен журнал.

Описание:

Метод ПодчинениеДокументу позволяет установить документ-владелец для журнала подчиненных документов.

Данный метод доступен только в контексте Модуля формы журнала подчи­ненных документов (см. «Виды программных модулей»).

Пример:

ПодчинениеДокументу(Док, 1);

Предопределенные процедуры Модуля формы журнала документов

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях формы журналов документов (см. «Виды программных модулей»).

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

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

ПриУстановкеОтбора

Предопределенная процедура при установке отбора.

Синтаксис:

ПриУстановкеОтбора(ИмяРеквизОтбора, 3начение)

Англоязычный синоним:

OnSetSelectInJournal

Параметры:

ИмяРеквизОтбора Строковое значение — название общего рекви­зита документа (как оно задано в конфигураторе), по которому производится отбор (на­пример, Автор).
3начение Значение реквизита отбора. Допустим, у документов существует общий реквизит Автор, по которому решено про­вести отбор, значит в этом параметре будет передано конкретное значение этого реквизи­та, по которому решено провести отбор (на­пример, Сидоров И. А.).
Описание:

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

Данная предопределенная процедура может располагаться в модуле формы журнала и в глобальном программном модуле. Если данная процедура присут­ствует в модуле формы соответствующего журнала, то будет вызвана она, если нет, то будет вызвана процедура из глобального модуля.

Пример:

Процедура ПриУстановкеОтбора(ИмяОтбора, ЗначОтбора) Если

   НазваниеНабораПрав() = Продавец Тогда

      Если (Имя0тбора = Автор) И (ЗначОтбора ТекущПользователь) Тогда

         Предупреждение(У вас нет права просматривать чужие документы!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриУстановкеИнтервала

Предопределенная процедура при установке интервала журнала.

Синтаксис:

ПриУстановкеИнтервала(ДатаНач, ДатаКон)

Англоязычный синоним:

OnSetRange

Параметры:

ДатаНач Дата начала интервала журнала.
ДатаКон Дата конца интервала журнала.
Описание:

Вызов предопределенной процедуры ПриУстановкеИнтервала произво­дится системой 1C:Предприятие неявно при интерактивной попытке устано­вить интервал в журнале документов. Если в данной предопределенной проце­дуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять интервал журнала), установка не будет выполнена.

Пример:

Процедура ПриУстановкеИнтервала(ДатаНач, ДатаКон) Если

   НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права изменять интервал журнала! , 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата


Глава 14 Работа с Регистрами оперативного учета

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

Оборотный регистр — это объект, предназначенный для подсчета оборота «ресурсов» за заданный интервал времени с привязкой к некоторому набору «измерений».

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

Пример:

* Предположим, что в конфигураторе создан регистр остатков «Товарные_Запасы», который должен содержать сведения об остатке каждого то­вара на каждом складе, за каждым материально ответственным лицом. В дальнейшем предполагается получать информацию такого типа: «остаток конкретного товара на конкретном складе», «остаток конкретного товара всего» и т. п. В идеологии системы 1С:Предприятие такой регистр пред­ставляет собой прямоугольную систему координат, измерениями этого ре­гистра являются: «Товар», «Склад», «МОЛ». Регистр имеет один ресурс — «Количество». Содержание данного регистра можно представить в виде следующей таблицы, где по каждому конкретному товару на конкретном складе за конкретным МОЛ числится определенное Количество.

Товар Склад МОЛ Количество
Стол Первый Иванов 10
Стол Первый Петров 20
Стол Второй Иванов 5
Шкаф Первый Петров 7
Шкаф Второй Иванов 2
Шкаф Второй Петров 8
Шкаф Третий Петров 10
Структура каждого конкретного вида регистра определяется при его созда­нии в конфигураторе. Измерения, ресурсы и реквизиты регистров определяют­ся в конфигураторе конкретно для каждого создаваемого вида регистра.

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

Под термином «остаток» ресурса для регистра остатков следует понимать числовое значение, которое имеет ресурс на какой-то момент времени. Именно здесь и проявляется понятие Точки Актуальности (далее ТА). ТА — это тот момент времени (дата+время), на который все необоротные регистры содержат текущие значения своих ресурсов. Другими словами, если просто запросить у регистра остатков значение какого-либо ресурса, то он выдаст его именно на момент ТА. Если необходимо узнать значение ресурса на какой-либо прошед­ший момент времени, то надо либо сдвинуть в прошлое ТА (для этого исполь­зуется интерактивная операция «Управления итогами»), либо при помощи средств встроенного языка следует запустить «временный расчет» регистра. При «временном расчете» регистра остатков можно задать момент времени, на который необходимо получить значение ресурса. В этом случае значение ресур­са рассчитывается, что требует несколько большего времени процессора, чем если получать ресурс на ТА. Однако, «временный расчет» рассчитывается не с начала всех времен, а от начала месяца. Регистры остатков хранят промежуточ­ные значения ресурсов на начало каждого месяца (именно с этим связана про­цедура «переход на новый период»). Таким образом, если при «временном рас­чете» указать момент времени в начале месяца, то, в общем случае, расчет будет выполнен быстрее, чем если указать конец месяца.

Кроме хранения остатка или оборота ресурсов, регистры хранят все «приращения» (приход со знаком «+», расход со знаком «-»), произведенные доку­ментами (это обозначается термином «движения регистра»). Причем, эти «при-оащения» регистров хранятся со ссылками на те документы, которые их вы­звали. Поэтому, во встроенном языке системы 1С:Предприятие есть методы, чтобы получить из регистра все его движения (с привязкой к документам), указав интервал времени, за который они нужны.

Документы, как объекты прикладной задачи, тесно связаны с регистрами. Именно документы, и только они могут изменять значения ресурсов в регист­рах (этот алгоритм прописывается в предопределенной процедуре ОбработкаПроведения для каждого вида документа). Никаким другим способом, кроме как через проведение документов на содержимое регистров повлиять нельзя. Например, нельзя создать отчет, который бы изменял значения, хранящиеся в регистрах. Движения (приращения) регистров выполняются в момент «прове­дения» документа. С другой стороны, документы не порождают в регистрах необратимых действий. Что это значит? Если ранее проведенный документ удалить или сделать его непроведенным, то удалятся и все движения регистров, порожденные им. Если отредактировать (изменить) ранее проведенный доку­мент, то после перепроведения документа все движения регистров, порожден­ные ранее, удалятся и заменятся новыми.

Замечание: Формирование движений документов по регистрам доступно только в Модуле документа в системной предопределенной процедуре ОбработкаПроведения.

Контекст работы с регистрами В синтаксисе языка применение атрибутов и вызов методов регистров мо­жет выполняться двумя способами:

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

Пример:

Флаг = Регистр.ОстаткиТовара.Приход;

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

Регистр.ХХХХХ

где ХХХХХ — вид регистра, объявленный в конфигураторе. Англоязычный синоним ключевого слова Регистр — Register.

Пример:

Рег = СоздатьОбъект(Регистр.ТовЗап);

Атрибуты регистров

Приход

Флаг движения регистра «приход».

Синтаксис:

Приход

Англоязычный синоним:

Income

Описание:

Атрибут Приход содержит значение флага записи движения регистра и ис­пользуется только при обращении к существующим записям движений регист­ров. Данный атрибут только для чтения. Атрибут Приход может принимать числовое значение 1 — если текущее движение регистра приход, 0 — если нет.

Данный атрибут не имеет смысла для оборотных регистров.

Пример:

Рег1 = СоздатьОбъект(Регистр.Взаиморасчеты);

Если Режим = Подробно Тогда

   Рег1.УстановитьФильтр(Клиент);

   Рег1.ВыбратьДвижения(ДатаНачало, );

   Пока Рег1.ПолучитьДвижение()0 Цикл

      Если Число(Рег1.Клиент.Код) Число(Запрос.Клиент.Код) Тогда

         Продолжить;

      КонецЕсли;

      Док = Рег1.ТекущийДокумент();

      Дв_Баз_Сум = Рег1.СуммаБазовая;

      Дв_Вал_Сум = Рег1.СуммаВалютная;

      Если Рег1.Приход = 1 Тогда

         Таб.ВывестиСекцию(Приход);

      Иначе

         Таб.ВывестиСекцию(Расход);

      КонецЕсли;

   КонецЦикла;

КонецЕсли;

Расход

Флаг движения регистра «расход».

Синтаксис:

Расход

Англоязычный синоним:

Outcome

Описание:

Атрибут Расход содержит значение флага записи движения регистра и ис­пользуется только при обращении к существующим записям движений регист­ров. Данный атрибут только для чтения. Атрибут Расход может принимать числовое значение 1 — если текущее движение регистра расход, 0 — если нет.

Данный атрибут не имеет смысла для оборотных регистров.

Пример:

Рег1 = СоздатьОбъект(Регистр.Взаиморасчеты);

Если Режим = Подробно Тогда

   Рег1.УстановитьФильтр(Клиент);

   Рег1.ВыбратьДвижения(ДатаНачало, );

   Пока Рег1.ПолучитьДвижение() 0 Цикл

      Если Число(Рег1.Клиент.Код) Число(Запрос.Клиент.Код) Тогда

         Продолжить;

      КонецЕсли;

      Док = Рег1.ТекущийДокумент();

      Дв_Баз_Сум = Рег1.СуммаБазовая;

      Дв_Вал_Сум = Рег1.СуммаВалютная;

      Если Рег1.Расход = 1 Тогда

         Таб.ВывестиСекцию(Расход);

      Иначе

         Таб.ВывестиСекцию(Приход);

      КонецЕсли;

   КонецЦикла;

КонецЕсли;

Измерение

Установить значение измерения регистра.

Синтаксис:

Измерение

Описание:

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

Пример:

Процедура ОбработкаПроведения()

   // В регистре ТовЗап измерениями являются Склад и Товар

   // ресурсами являются Количество и Стоимость

   Регистр.ТовЗап.Склад = Склад;

   ВыбратьСтроки();

   Пока (ПолучитьСтроку() 0) Цикл

      Регистр.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

КонецПроцедуры

Ресурс

Установить значение ресурса регистра.

Синтаксис:

Ресурс

Описание:

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

Пример:

См. предыдущий пример.

Реквизит

Установить значение реквизита регистра.

Синтаксис:

Реквизит

Описание:

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

Пример:

Процедура ОбработкаПроведения()

   // В регистре ТовЗап измерениями являются Склад и Товар

   // ресурсами являются Количество и Стоимость

   // реквизитом является ВнутрПеремещение

   Регистр.ТовЗап.Склад = Склад;

   Если Вид() = Перемещение Тогда

      Регистр.ТовЗап.ВнутрПеремещение = 1;

   Иначе

      Регистр.ТовЗап.ВнутрПерсмещение = 0;

   КонецЕсли;

   ВыбратьСтроки();

   Пока ПолучитьСтроку() 0 Цикл

      Регистр.ТовЗап.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

КонецПроцедуры

Методы оборотных регистров

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

ИспользоватьПериод

Установить период выборки итогов оборотного регистра.

Синтаксис 1:

ИспользоватьПериод(Дата)

Синтаксис 2:

ИспользоватьПериод(Год, Месяц, День)

Синтаксис 3:

ИспользоватьПериод(Год, НомерНедели)

Синтаксис 4:

ИспользоватьПериод (Год, Месяц, НомерДекады)

Синтаксис 5:

ИспользоватьПериод(Год, Месяц)

Синтаксис 6:

ИспользоватьПериод(Год, НомерКвартала)

Синтаксис 7:

ИспользоватьПериод(Год)

Англоязычный синоним:

UseРег1od

Параметры:

Дата Выражение типа «дата».
Год Числовое выражение, содержащее номера года.
Месяц Числовое выражение, содержащее номер месяца.
День Числовое выражение, содержащее номер дня месяца.
НомерДекады Числовое выражение, содержащее номер декады ме­сяца.
НомерКвартала Числовое выражение, содержащее номер квартала.
Описание:

Метод ИспользоватьПериод устанавливает период выборки итогов обо­ротного регистра. Различный синтаксис вызова данного метода зависит от заданного в конфигураторе интервала оборотного регистра.

Заданный в конфигураторе

Интервал
Используемый синтаксис
День синтаксис 1 и 2.
Неделя синтаксис 1 и 3.
Декада синтаксис 4.
Месяц синтаксис 5.
Квартал синтаксис 6.
Год синтаксис 7.
Данный метод используется до вызова методов оборотных регистров. Даль­нейшая выборка итогов будет происходить по указанному периоду. Если при работе с оборотным регистром этот метод опущен, то по умолчанию использу­ется текущий период, в котором находится ТА.

Пример:

Регистр.ОборотыТоваров.ИспользоватьПериод(1996);

Итог

Возвратить итог одного ресурса оборотного регистра.

Синтаксис:

Итог(Измерен1, Измерен2..., ИмяРесурса)

Англоязычный синоним:

Total

Параметры:

Измерен1, Измерен2... Выражения со значениями измерений регистра.
ИмяРесурса Строковое выражение, содержащее на­звание требуемого ресурса регистра, как оно названо в конфигураторе.
Возвращаемое значение:

Численое значение итога заданного ресурса регистра.

Описание:

Метод Итог возвращает итог по ранее установленному периоду ресурса ИмяРесурса оборотного регистра.

Данный метод используется только для оборотных регистров.

Пример:

Функция ПолучитьИтог(Товар, Склад, Год);

   Регистр.ОборотыТоваров.ИспользоватьПериод(Год);

   Возврат Регистр.ОборотыТоваров.Итог(Товар, Склад, ОборотТовара);

КонецФункции

Итоги

Извлечь все итоги ресурсов оборотного регистра.

Синтаксис:

Итоги(Измерен1, Измерен2...)

Англоязычный синоним:

Totals

Параметры:

Измерен1, Измерен2... Выражения со значениями измерений регистра.
Описание:

Метод Итоги извлекает итоги по всем ресурсам по ранее установленному периоду оборотного регистра. Полученные итоги ресурсов затем можно считы­вать из атрибутов регистра.

Данный метод используется только для оборотного регистра.

Пример:

Регистр.ОборотыТоваров.ИспользоватьПериод(Год);

Регистр.ОборотыТоваров.Итоги(Товар, Склад);

ОбТов = Регистр.ОборотыТоваров.ОборотТовара;

СводныйИтог

Возвратить сводный итог ресурса оборотного регистра.

Синтаксис:

СводныйИтог(Измерен1, Измерен2..., ИмяРесурса)

Англоязычный синоним:

ConsolidatedTotal

Параметры:

Измерен1, Измерен2... Выражения со значениями измерений регистра.
ИмяРесурса Строковое выражение, содержащее на­звание требуемого ресурса регистра, как оно названо в конфигураторе.
Возвращаемое значение:

Численое значение сводного итога заданного ресурса регистра.

Описание:

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

Данный метод используется только для оборотного регистра.

Пример:

Функция ПолучитьСводныйИтог(Товар, Год);

   Регистр.ОборотыТоваров.ИспользоватьПериод(Год);

   Возврат Регистр.ОборотыТоваров.СводныйИтог(Товар, , ОборотТовара);

КонецФункции

СводныеИтоги

Извлечь сводные итоги ресурсов оборотного регистра.

Синтаксис:

СводныеИтоги(Измерен1, Измерен2...)

Англоязычный синоним:

ConsolidatedTotals

Параметры:

Измерен1, Измерен2... Выражения со значениями измерений регистра.
Описание:

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

Данный метод используется только для оборотного регистра.

Пример:

Регистр.ОборотыТоваров.ИспользоватьПериод(Год);

Регистр.ОборотыТоваров.СводниеИтоги(Товар, );

ПолныйОбТов = Регистр.ОборотыТоваров.ОборотТовара;

ИтогиПолучить

Получить все ресурсы по регистру.

Синтаксис:

ИтогиПолучить()

Англоязычный синоним:

TotalsGet

Описание:

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

Данный метод используется только для оборотного регистра.

Пример:

Регистр.ОборотыТоваров.Товар = Конт.Товар;

Регистр.ОборотыТоваров.Склад = Конт.Склад;

Регистр.ОборотыТоваров.ИтогиПолучить();

Сообщить(Оборот товара= + Регистр.ОборотыТоваров.ОборотТовара;

Методы регистров остатков

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

Остаток

Возвратить остаток одного ресурса регистра.

Синтаксис:

Остаток(Измерен1, Измерен2..., ИмяРесурса)

Англоязычный синоним:

Rest

Параметры:

Измерен1, Измерен2... Выражения со значениями измерений регистра.
ИмяРесурса Строковое выражение, содержащее на­звание требуемого ресурса регистра, как оно задано в конфигураторе.
Возвращаемое значение:

Численое значение остатка заданного ресурса регистра.

Описание:

Метод Остаток возвращает остаток ресурса ИмяРесурса по регистру. Данный метод используется только для регистров остатков.

Пример:

Процедура ПолучитьОстаток(Товар, Склад, Ост, Стоим);

   Ост = Регистр.УчетТовара.Остаток(Товар, Склад, ОстаткиТовара);

   Стоим = Регистр.УчетТовара.Остаток(Товар, Склад, СтоимостьТовара);

КонецПроцедуры

СводныйОстаток

Возвратить сводный остаток ресурса по регистру

Синтаксис:

СводныйОстаток(Измерен1, Измерен2..., ИмяРесурса)

Англоязычный синоним:

ConsolidatedRest

Параметры:

Измepeнl, Измepeн2... Выражения со значениями измерений регистра.
ИмяРесурса Строковое выражение, содержащее на­звание требуемого ресурса регистра, как оно названо в конфигураторе.
Возвращаемое значение:

Численное значение сводного остатка заданного ресурса регистра.

Описание:

Метод СводныйОстаток возвращает сводный остаток ресурса ИмяРесурса по регистру. Данный метод работает аналогично методу Остаток, однако здесь могут быть заданы не все значения измерений, а только несколько, но обязательно в правильной последовательности, соответствующей структуре измерений данного регистра, как она задана в конфигураторе. Изме­рения могут задаваться с пропусками (неуказанное значение — просто запятая), фиксируются только указанные измерения.

Данный метод используется только для регистров остатков.

Пример:

* Для регистра с измерениями «Товар», «Склад», «МОЛ» запись

Рег.СводныйОстаток(Тов1, , ОстатокТовара);

означает, что ресурс «ОстатокТовара» будет получен только по одному то­вару (Тов1), но по всем складам и всем МОЛам.

*

Процедура ПолучитьСводныйОстаток(Товар, Ост);

   Ост = Регистр.УчетТовара.СводныйОстаток(Товар, , ОстаткиТовара);

КонецПроцедуры

Остатки

Извлечь все ресурсы по регистру.

Синтаксис:

Остатки(Измерен1, Измерен2...)

Англоязычный синоним:

Rests

Параметры:

Измерен1, Измерен2... Выражения со значениями измерений регистра.
Описание:

Метод Остатки извлекает по переданным в качестве параметров измерени­ям все ресурсы по регистру. Полученные ресурсы затем можно считывать из атрибутов регистра.

Данный метод используется только для регистров остатков.

Пример:

Процедура ПолучитьОстатки(Товар, Склад, ОстатокТовара, Стоимость);

   Регистр.УчетТовара.Остатки(Товар, Склад);

   ОстатокТовара = Регистр.УчетТовара.ОстаткиТовара;

   Стоимость = Регистр.УчетТовара.СтоимостьТовара;

КонецПроцедуры

СводныеОстатки

Извлечь сводные ресурсы по регистру.

Синтаксис:

СводныеОстатки(Измерен1, Измерен2...)

Англоязычный синоним:

ConsolidatedRests

Параметры:

Измерен1, Измерен2... Выражения со значениями измерений регистра.
Описание:

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

Данный метод используется только для регистров остатков.

Пример:

* Для регистра с измерениями «Товар», «Склад», «МОЛ» запись

Рег.СводныеОстатки(Тов1, , );

означает, что ресурсы будут получены только по одному товару (Тов1), но по всем складам и всем МОЛам.

*

Процедура ПолучитьСводныеОстатки(Товар, ОстатокТовара, Стоимость);

   Регистр.УчетТовара.СводныеОстатки(Товар, );

   ОстатокТовара = Регистр.УчетТовара.ОстаткиТовара;

   Стоимость = Регистр.УчетТовара.СтоимостьТовара;

КонецПроцедуры

ОстаткиПолучить

Получить все ресурсы по регистру.

Синтаксис:

ОстаткиПолучить()

Англоязычный синоним:

GetRests

Описание:

Метод ОстаткиПолучить извлекает все ресурсы регистра по измерениям содержащимся в атрибутах. Полученные ресурсы затем можно считывать из атрибутов регистра.

Данный метод используется только для регистров остатков.

Пример:

Регистр.Взаиморасчеты.Клиент = Конт.Клиент;

Регистр.Взаиморасчеты.ОстаткиПолучить();

Сообщить(Долг клиента по заиморасчетам=

         + СокрЛ(Регистр.Взаиморасчеты.СуммаВалютная);

Выбрать ДвиженияСОстатками

Выбрать все движения регистра с остатками.

Синтаксис:

ВыбратьДвиженияСОстатками(КонецВыборки, ГрафаОтбора)

Англоязычный синоним:

SelectActsWithRests

Параметры:

КонецВыборки Выражение типа дата, документ или позиция докумен­та задающее конец временного интервала выбора дви­жений регистра.
ГрафаОтбора Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигу­раторе. Данный параметр устанавливает режим ис­пользования определенной графы отбора.

* — автоматический выбор графы отбора.

Пустая строка — не использовать графу отбора.

По умолчанию устанавливается автоматический выбор графы отбора.
Описание:

Метод ВыбратьДвиженияСОстатками инициирует выбор всех движении регистра в указанном интервале дат. До вызова данной процедуры может быть установлен фильтр (см. УстановитьФильтр), ограничивающий выборку зна­чений из регистра. Если КонецВыборки не указан или равен 0, то конном временного интервала выбора движений регистра считается ТА.

Данный метод отличается от метода ВыбратьДвижения тем, что после получения очередного движения метод Остаток будет выдавать актуальные значения остатков для этого регистра. Но для этого перед вызовом метода ВыбратьДвиженияСОстатками регистру должен быть установлен признак временногоРасчета» (см. ВременныйРасчет) и должен быть выполнен вре­менный расчет (см. РассчитатьРегистрыНа и РассчитатьРегистрыПо) — его дата и будет являться начальной датой выбираемых движений регистра. Данная возможность не может быть использована совместно с дальнейшими «Временными» расчетами.

Собственно выбор первого и последующих движений регистра осуществля­ется методом ПолучитьДвижение.

Данный метод используется только для регистров остатков.

Пример:

Рег = СоздатьОбъект(Регистр.Взаиморасчеты);

Рег.ВременныйРасчет();

Рег.УстановитьФильтр(Клиент, );

РассчитатьРегистрыНа(ДатаНачала);

Рег.ВыбратьДвиженияСОстатками(ДатаКонца);

Пока Рег.ПолучитьДвижение() = 1 Цикл

   Прих = 0;

   Расх = 0;

   Если Рег.Приход = 1 Тогда

      Прих = Рег.Долг;

   Иначе

      Расх = Рег.Долг;

   КонецЕсли;

   ТекущееСальдо = Рег.Остаток(Клиент, Задолженность);

   Док = Рег.ТекущийДокумент();

   Таб.ВывестиСекцию(Документ);

КонецЦикла;

См. также: УстановитьФильтр, ПолучитьДвижение, ВыбратьДвиже­ния, ВременныйРасчет, РассчитатьРегистрыНа, РассчитатьРегистрыПо

Общие методы регистров

Описанные в данном разделе методы используются как для регистров ос­татков так и для оборотных регистров.

Вид

Определить название вида регистра.

Синтаксис:

Вид()

Англоязычный синоним:

Kind

Возвращаемое значение:

Строковое значение, содержащее название вида регистра.

Описание:

Метод Вид позволяет определить название вида регистра, как он задан ь конфигураторе.

Пример:

// отобразим вид регистра в строке состояния

Состояние(Рег1.Вид());

ПредставлениеВида

Определить пользовательское представление вида регистра.

Синтаксис:

ПредставлениеВида()

Англоязычный синоним:

KindPresent

Возвращаемое значение:

Строковое значение, содержащее пользовательское представление вида ре­гистра (синоним регистра или, если он пустой, то идентификатор).

Описание:

Метод ПредставлениеВида позволяет получить пользовательское пред­ставление вида регистра, как оно задано в конфигураторе.

Пример:

// отобразим пользовательское представление в строке состояния Состояние

(Рег1.ПредставлениеВида());

НазначитьТип

Назначить тип для реквизита неопределенного вида.

Синтаксис:

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

Англоязычный синоним:

SetType

Параметры:

ИмяРеквизита Строковое выражение — название реквизита регистра неопределенного типа, как он назван в конфигурато­ре.
ИмяТипа Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту реги­стра. Например:

Строка, Число, Справочник.Товары, Документ.РасходнаяНакладная ит.п.
Длина Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
Точность Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.
Описание:

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

Пример:

Регистр.УчетТМЦ.НазначитьТип(ТМЦ, Справочник.Товары);

УстановитьАтрибут

Установить значение атрибута по имени идентификатора.

Синтаксис:

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

Англоязычный синоним:

SetAttrib

Параметры:

ИмяРеквизита Строковое выражение, содержащее имя атрибута, как оно задано в конфигураторе.
3начение Выражение, содержащее устанавливаемое значе­ние атрибута.
Описание:

Метод УстановитьАтрибут позволяет установить значение атрибута по имени идентификатора, как оно задано в конфигураторе.

Пример;

Рег.УстановитьАтрибут(Сумма, СуммаТов);

ПолучитьАтрибут

Получить значение атрибута по идентификатору.

Синтаксис:

ПолучитьАтрибут(ИмяАтрибута)

Англоязычный синоним:

GetAttrib

Параметры:

ИмяAтpибyтa Строковое выражение, содержащее имя атрибута, как оно задано в конфигураторе.
Возвращаемое значение:

Значение атрибута ИмяАтрибута.

Описание:

Метод ПолучитьАтрибут позволяет получить значение атрибута по иден­тификатору, как оно задано в метаданных.

Пример:

СуммаТов = Рег.ПолучитьАтрибут(Сумма);

ВыбратьДвижения

Выбрать все движения регистра по датам.

Синтаксис:

ВыбратьДвижения(НачалоВыборки, КонецВыборки, ГрафаОтбора)

Англоязычный синоним:

SelectActs

Параметры:

НачалоВыборки Выражение типа дата, документ или позиция доку­мента, задающее начало временного интервала выбо­ра движений регистра.
КонецВыборки Выражение типа дата, документ или позиция доку­мента задающее конец временного интервала выбора движений регистра.
ГрафаОтбора Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфи­гураторе. Данный параметр устанавливает режим использования определенной графы отбора. * — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический вы­бор графы отбора.
Описание:

Метод ВыбратьДвижения инициирует выбор всех движений регистра в указанном интервале дат. До вызова данной процедуры может быть установлен фильтр (см. УстановитьФильтр), ограничивающий выборку значений из регистра. Если КонецВыборки не указан или равен 0, то концом временно­го интервала выбора движений регистра считается ТА.

Собственно выбор первого и последующих движений регистра осуществля­ется функцией ПолучитьДвижение.

Пример:

Рег1 = СоздатьОбъект(Регистр.Взаиморасчеты);

Если Режим = Подробно Тогда

   Рег1.УстановитьФильтр(Клиент);

   Рег1.ВыбратьДвижения(ДатаНачало, );

   Пока Рег1.ПолучитьДвижение() 0 Цикл

      Док = Рег1.ТекущийДокумент();

      Дв_Баз_Сум = Рег1.СуммаБазовая;

      Дв_Вал_Сум = Рег1.СуммаВалютная;

      Если Рег1.Расход = 1 Тогда

         Таб.ВывестиСекцию(Расход2);

      Иначе

         Таб.ВывестиСекцию(Приход2);

      КонецЕсли;

   КонецЦикла;

КонецЕсли;

См. также: ПолучитьДвижение

ВыбратьДвиженияДокумента

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

Синтаксис:

ВыбратьДвиженияДокумента(Документ)

Англоязычный синоним:

SelectDocActs

Параметры:

Документ Значение типа Документ.
Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы один эле­мент; 0 — если действие не выполнено или в выборке нет ни одного элемента.

Описание:

Метод ВыбратьДвиженияДокумента инициирует выбор всех движений регистра по указанному документу Документ.

Собственно выбор первого и последующих движений регистра осуществля­ется функцией ПолучитьДвижение.

Пример:

Процедура Взаиморасчеты(ВыбКлиент, ДатаНачало, ДатаКонец)

   // Создание Таблицы для выходного отчета

   Заг = Неизвестно.;

   Таб = СоздатьОбъект(Таблица);

   Клн = СоздатьОбъект(Справочник.Клиенты);

   Клн.ИспользоватьДату(ДатаКонец);

   Док = СоздатьОбъект(Документ);

   Рег = СоздатьОбъект(Регистр.Взаиморасчеты);

   Рег1 = СоздатьОбъект(Регистр.Взаиморасчеты);

   Рег.ВременныйРасчет();

   РассчитатьРегистрыНа(ДатаКонец);

   Если ВыбКлиент.Выбран() = 0 Тогда

      //Без условий

      Заг = По всем клиентам.;

   ИначеЕсли ВыбКлиент.ЭтоГруппа() = 1 Тогда

      Клн.ВключатьПодчиненные(ВыбКлиент);

      Клн.ИспользоватьРодителя(ВыбКлиент);

      Заг = По клиентам группы + ВыбКлиент.Наименование;

   Иначе

      Предупреждение(Выберите группу клиентов!);

      Возврат;

   КонецЕсли;

   Таб.ВывестиСекцию(Отчет);

   Клн.ВыбратьЭлементы();

   Пока Клн.ПолучитьЭлемент() 0 Цикл

      Если Клн.ЭтоГруппа() = 1 Тогда

         Таб.ВывестиСекцию(Группа);

      Иначе

         Рег.Клиент = Клн.ТекущийЭлемент();

         Рег.ОстаткиПолучить();

         Баз_сум = Рег.СуммаБазовая;

         Вал_сум = Рег.СуммаВалютная;

         Таб.ВывестиСекцию(Клиент);

         // цикл по всем документам

         Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

         Пока Док.ПолучитьДокумент() 0 Цикл

            // отфильтруем документы

            Если (Док.Вид() = Перемещение) ИЛИ (Док.Вид() = Счет) ИЛИ

                 (Док.Вид() = Списание) ИЛИ

                 (Док.Вид() = РучноеИзмОстатка) Тогда

               // Эти Документы не изменяют Взаиморасчеты

               Продолжить;

            КонецЕсли;

            // выберем все движения регистра по документу

            Рег1.ВыбратьДвиженияДокумента(Док.ТекущийДокумент());

            Пока Рег1.ПолучитьДвижение() 0 Цикл

               Если Строка(Рег1.Клиент.Код) Строка(Клн.Код) Тогда

                  // не тот клиент

                  Продолжить;

               КонецЕсли;

               Дв_Баз_Сум = Рег1.СуммаБазовая;

               Дв_Вал_Сум = Рег1.СуммаВалютная;

               Если Рег1.Приход = 1 Тогда

                  Таб.ВывестиСекцию(Приход);

               Иначе

                  Таб.ВывестиСекцию(Расход);

               КонецЕсли;

            КонецЦикла;

         КонецЦикла;

      КонецЕсли;

   КонецЦикла;

   //Вызов выходного отчета в окно просмотра и редактирования.

   Таб.ТолькоПросмотр(1);

   Таб.Опции(0, 0, 4, 0);

   Таб.Показать(Взаиморасчеты с клиентами, );

   ВыбКлиент = 0;

КонецПроцедуры

См. также: ПолучитьДвижение

ОбратныйПорядок

Установить порядок выборки документов.

Синтаксис:

ОбратныйПорядок(Режим)

Англоязычный синоним:

BackwardOrder

Параметры:

Режим Необязательный параметр. Числовое выражение: 1 — выбирать движения документов в обратном по­рядке даты и времени; 0 — выбирать движения до­кументов в порядке возрастания даты и времени.
Возвращаемое значение:

Числовое значение, содержащее текущее значение режима порядка выборки документов (на момент до исполнения метода).

Описание:

Метод ОбратныйПорядок устанавливает порядок выборки движения доку­ментов. Данный метод обычно используется до вызова одного из методов: ВыбратьДвижения, ВыбратьДвиженияСОстатками, который фактически открывает выборку. Дальнейшая выборка при помощи метода ПолучитьДвижение будет происходить в заданном порядке выборки.

По умолчанию, выборка движения документов выполняется в порядке воз­растания даты и времени записи документов. Поэтому реально имеет смысл применять данный метод только в том случае, если надо получить обратный порядок выборки.

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

Пример:

Рег = СоздатьОбъект(Регистр.Взаиморасчеты);

Если Режим = Подробно Тогда

   Рег1.УстановитьФильтр(Клиент);

   // Открываем выборку

   Рег1.ОбратныйПорядок(1);

   Рег1.ВыбратьДвижения(ДатаНачало, );

   // Цикл выбора движений по регистру

   Пока Рег1.ПолучитьДвижение() 0 Цикл

      Если Строка(Рег1.Клиент.Код) Строка(Запрос.Клиент.Код) Тогда

         Продолжить;

      КонецЕсли;

      Док = Рег1.ТекущийДокумент();

      Дв_Баз_Сум = Рег1.СуммаБазовая;

      Дв_Вал_Сум = Рег1.СуммаВалютная;

      Если Рег1.Расход = 1 Тогда

         Таб.ВывестиСекцию(Расход2);

      Иначе

         Таб.ВывестиСекцию(Приход2);

      КонецЕсли;

   КонецЦикла;

КонецЕсли;

ПолучитьДвижение

Выбрать очередное движение регистра.

Синтаксис:

ПолучитьДвижение()

Англоязычный синоним:

GetDocAct

Возвращаемое значение:

Число: 1 — если следующее движение регистра выбрано успешно; 0 — если движение регистра не найдено (отсутствует).

Описание:

Метод ПолучитьДвижение выбирает следующее движение регистра в по­следовательности выборки, открытой перед этим при помощи методов ВыбратьДвиженияДокумента или ВыбратьДвижения или ВыбратьДвиженияСОстатками. Данный метод используется для организации цикла по регистру.

После выполнения даннго метода все атрибуты регистра: измерения, ресур­сы, Приход и Расход содержат значения текущей записи движения регистра.

Данный метод может использоваться только для позиционируемых объек­тов, созданных функцией СоздатьОбъект.

Пример:

Рег1 = СоздатьОбъект(Регистр.Взаиморасчеты);

Если Режим = Подробно Тогда

   Рег1.УстановитьФильтр(Клиент);

   // Открываем выборку

   Рег1.ВыбратьДвижения(ДатаНачало, );

   // Цикл выбора движений по регистру

   Пока Рег1.ПолучитьДвижение() 0 Цикл

      Если Строка(Рег1.Клиент.Код) Строка(Запрос.Клиент.Код) Тогда

         Продолжить;

      КонецЕсли;

      Док = Рег1.ТекущийДокумент();

      Дв_Баз_Сум = Рег1.СуммаБазовая;

      Дв_Вал_Сум = Рег1.СуммаВалютная;

      Если Рег1.Расход = 1 Тогда

         Таб.ВывестиСекцию(Расход2);

      Иначе

         Таб.ВывестиСекцию(Приход2);

      КонецЕсли;

   КонецЦикла;

КонецЕсли;

См. также: ВыбратьДвиженияДокумента, ВыбратьДвижения, ВыбратьДвиженияСОстатками

ТекущийДокумент

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

Синтаксис:

ТекущийДокумент()

Англоязычный синоним:

CurrentDocument

Возвращаемое значение:

Значение документа, который задал движение регистра.

Описание:

Метод ТекущийДокумент возвращает значение документа, который задал движение регистра. Метод используется после получения очередного движения регистра (см. методы ПолучитьДвижение и ПолучитьИтог).

Данный метод может использоваться только для переменных созданных функцией СоздатьОбъект.

Пример:

Рег = СоздатьОбъект(Регистр.Взаиморасчеты);

Рег.ВременныйРасчет();

Рег.УстановитьФильтр(Клиент, );

РассчитатьРегистрыНа(ДатаНачала);

Рег.ВыбратьДвиженияСОстатками(ДатаКонца);

Пока Рег.ПолучитьДвижение() = 1 Цикл

   Прих = 0;

   Расх = 0;

   Если Рег.Приход = 1 Тогда

      Прих = Рег.Долг;

   Иначе

      Расх = Рег.Долг;

   КонецЕсли;

   ТекущееСальдо = Рег.Остаток(Клиент, Задолженность);

   Док = Рег.ТекущийДокумент();

   Таб.ВывестиСекцию(Документ);

КонецЦикла;

См. также: ПолучитьДвижение, НомерСтроки

НомерСтроки

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

Синтаксис:

НомерСтроки()

Англоязычный синоним:

LineNum

Возвращаемое значение:

Число — номер строки документа, выполнившего движение регистра.

Описание:

Метод НомерСтроки возвращает значение номера строки документа, кото­рая задала движение регистра (в случае, когда в Модуле документа перед дви­жением регистра использовали метод ПривязыватьСтроку). Метод использу­ется после получения очередного движения регистра (см. функции ПолучитьДвижение и ПолучитьИтог).

Данный метод может использоваться только для переменных созданных Функцией СоздатьОбъект.

Пример:

Рег = СоздатьОбъект(Регистр.Взаиморасчеты);

Рег.ВременныйРасчет();

Рег.УстановитьФильтр(Клиент);

РассчитатьРегистрыНа(ДатаНачала);

Рег.ВыбратьДвиженияСОстатками(ДатаКонца);

Пока Рег.ПолучитьДвижение() = 1 Цикл

   Прих = 0;

   Расх = 0;

   Если Рег.Приход = 1 Тогда

      Прих = Рег.Долг;

   Иначе

      Расх = Рег.Долг;

   КонецЕсли;

   ТекущееСальдо = Рег.Остаток(Клиент, Задолженность);

   Док = Рег.ТекущийДокумент();

   НомСтр = Рег.НомерСтроки();

   Таб.ВывестиСекцию(Документ);

КонецЦикла;

См. также: ПолучитьДвижение, ТекущийДокумент, ПривязыватьСтроку

ВыбратьИтоги

Выбрать все остатки регистра.

Синтаксис:

ВыбратьИтоги()

Англоязычный синоним:

SelectTotals

Описание:

Метод ВыбратьИтоги инициирует перебор текущих или временных (см. ВременныйРасчет) остатков по регистру, при этом используется фильтр, если он установлен (см. УстановитьФильтр). Открывается выборка остатков по всем записанным значениям измерений.

Собственно выбор первого и последующих остатков регистра осуществляет­ся функцией ПолучитьИтог.

Пример:

Процедура ВыбратьКредит()

   Список = СоздатьОбъект(СписокЗначений);

   Рег = СоздатьОбъект(Регистр.ТоварныйКредит);

   Рег.УстановитьФильтр(Клиент, );

   Рег.ВыбратьИтоги();

   Ном = 0;

   Пока Рег.ПолучитьИтог() = 1 Цикл

      Док = Рег.Документ;

      Список.ДобавитьЗначение(Док, + Док + — Остаток = + Рег.Долг);

      Если Ном = 0 Тогда

         ВыбДок = Док;

      КонецЕсли;

      Ном = Ном + 1;

   КонецЦикла;

   Если Ном 0 Тогда

      Если Список.ВыбратьЗначение(ВыбДок, Выберите кредит) = 1 Тогда

         ДокКредита = ВыбДок;

      КонецЕсли;

   КонецЕсли;

   Возврат;

КонецПроцедуры

См. также: УстановитьФильтр, ПолучитьИтог, ВыбратьДвижения, ВременныйРасчет, РассчитатьРегистрыНа, РассчитатьРегистрыПо

ПолучитьИтог

Выбрать очередной остаток по регистру.

Синтаксис:

ПолучитьИтог()

Англоязычный синоним:

GetTotal

Возвращаемое значение:

Число: 1 — если очередной остаток по регистру выбран успешно; 0 — если очередной остаток по регистру не найден (отсутствует).

Описание:

Метод ПолучитьИтог выбирает очередной остаток по регистру в последо­вательности выборки, открытой перед этим при помощи метода ВыбратьИто­ги. Данный метод используется для организации цикла по регистру — позволя­ет перебрать текущие или временные (см. ВременныйРасчет) остатки по ре­гистру. При этом используется фильтр, если он установлен (см. УстановитьФильтр). Открывается выборка остатков по всем записанным зна­чениям измерений.

Итоги с нулевыми остатками не выдаются. Порядок выдачи для измерений типа «справочник» и «документ» не определен.

После выполнения данного метода все атрибуты регистра: измерения, ре­сурсы, Приход и Расход содержат значения очередной записи остатков реги­стра. Данный метод может использоваться только для позиционируемых объек­тов, созданных функцией СоздатьОбъект.

Пример:

Процедура ВыбратьКредит()

   Список = СоздатьОбъект(СписокЗначений);

   Рег = СоздатьОбъект(Регистр.ТоварныйКредит);

   Рег.УстановитьФильтр(Клиент, );

   Ном = 0;

   Рег.ВыбратьИтоги();

   Пока Рег.ПолучитьИтог() = 1 Цикл

      Док = Рег.Документ;

      Список.ДобавитьЗначение(Док, + Док + — Остаток = + Рег.Долг);

      Если Ном = 0 Тогда

         ВыбДок = Док;

      КонецЕсли;

      Ном = Ном + 1;

   КонецЦикла;

   Если Ном 0 Тогда

      Если Список.ВыбратьЗначение(ВыбДок, Выберите кредит) = 1 Тогда

         ДокКредита = ВыбДок;

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: ВыбратьИтоги

ВыгрузитьИтоги

Выгрузить все итоги регистра с текущим фильтром в таблицу значений.

Синтаксис:

ВыгрузитьИтоги(Та6лЗнач, ВключатьИзмерФильтра, ПредварительноОчищать)

Англоязычный синоним:

RetrieveTotals

Параметры:

ТаблЗнач Объект типа ТаблицаЗначений, куда сис­тема выгрузит все итоги регистра.
ВключатьИзмерФильтра Необязательный параметр. Число: 1 — в получаемую таблицу включаются измере­ния, закрепленные фильтром; 0 — не включаются. Значение по умолчанию — 0.
ПредварительноОчищать Необязательный параметр. Число: 1 — пе­ред выгрузкой таблица значений очищает­ся; 0 — не очищается. Значение по умолча­нию — 1.
Описание:

Метод ВыгрузитьИтоги выгружает все итоги регистра с текущим фильт­ром (см. УстановитьФильтр) в таблицу значений.

Пример:

Функция ВыбратьКредит(ВыбКлиент)

   Список = СоздатьОбъект(ТаблицаЗначений);

   Рег = СоздатьОбъект(Регистр.ТоварныйКредит);

   Рег.УстановитьФильтр(ВыбКлиент, );

   Рег.ВыгрузитьИтоги(Список, 1);

   Возврат Список;

КонецФункции

См. также: УстановитьФильтр

ВременныйРасчет

Установить флаг участия регистра во временном расчете.

Синтаксис:

ВременныйРасчет(Флаг)

Англоязычный термин:

TempCalc

Параметры:

Флаг Необязательный параметр. Числовое выражение. 1 — установить флаг участия регистра во временном расчете; 0 — сбросить флаг участия регистра во временном расчете. Значение по умолчанию — 1.
Возвращаемое значение:

Текущее числовое значение флага участия регистра во временном расчете.

Описание:

Метод ВременныйРасчет устанавливает флаг участия регистра во времен­ном расчете. После такой установки можно выполнять процедуры рассчитатьРегистрыНа и РассчитатьРегистрыПо, тогда у данного регист­ра методы обращения к остаткам будут выдавать рассчитанные значения остат­ков на заданный момент времени.

Замечание. В один момент времени только по одному объекту регистров каж­дого вида могут участвовать во временном расчете.

Пример:

// если итоги не актуальны, то стоимости берем из временного расчета

// регистра УчетРеализации

Рег = СоздатьОбъект(Регистр.УчетРеализации);

Рег.ВременныйРасчет();

РассчитатьРегистрыНа(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;

См. также: РассчитатьРегистрыНа, РассчитатьРегистрыПо

УстановитьФильтр

Назначить фильтр для оптимизации действий с регистром.

Синтаксис:

УстановитьФильтр(Измер1, Измер2..., Рекв1, Рекв2, ...)

Англоязычный синоним:

SetFilter

Параметры:

Измер1 , Измер2 Выражения со значениями измерений регистра.
Рекв1, рекв2 Необязательные параметры. Выражения со значениями реквизитов регистра. Заданные значения реквизитов будут влиять только на отбор движе­ний регистра.
Описание:

Метод УстановитьФильтр назначает фильтр для оптимизации действий с регистром (временные расчеты, выбор движений и итогов).

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

Пример:

* Для регистра с измерениями «Товар», «Склад», «МОЛ» запись

Рег.УстановитьФильтр(Тов1, , );

означает, что расчеты будут проводиться только по одному товару (Тов1), но по всем складам и МОЛам.

*

Рег = СоздатьОбъект(Регистр.Взаиморасчеты);

Рег.ВременныйРасчет();

Рег.УстановитьФильтр(Клиент, );

РассчитатьРегистрыНа(ДатаНачала);

Рег.ВыбратьДвиженияСОстатками(ДатаКонца);

Пока Рег.ПолучитьДвижение() = 1 Цикл

   Прих = 0;

   Расх = 0;

   Если Рег.Приход = 1 Тогда

      Прих = Рег.Долг;

   Иначе

      Расх = Рег.Долг;

   КонецЕсли;

   ТекущееСальдо = Рег.Остаток(Клиент, Задолженность);

   Док = Рег.ТекущийДокумент();

   Таб.ВывестиСекцию(Документ);

КонецЦикла;

См. также: ВременныйРасчет

УстановитьЗначениеФильтра

Установить значение фильтра для оптимизации расчетов.

Синтаксис:

УстановитьЗначениеФильтра(ИзмерИлиРеквизит, 3начен, Вариант)

Англоязычный синоним:

SetFilterValue

Параметры:

ИзмерИлиРеквизит Идентификатор измерения или реквизита.
3начен Значение или список значений.
Вариант Необязательный параметр. Число: 0 — не фильт­ровать; 1 — фильтровать по значению; 2 — искать вхождение. Значение по умолчанию 1.

Для варианта «2»:

- если параметр 3начен — это группа справоч­ника, то осуществляется проверка вхождения в группу;

- если параметр 3начен — это простой элемент справочника или другой тип значения, то осуще­ствляется просто фильтрация по значению;

- для списка значений осуществляется проверка вхождения в список;

- если пустое значение или пустой список значе­ний, то условие не проверяется.
Описание:

Метод УстановитьЗначениеФильтра назначает фильтр для оптимизации расчетов. В качестве фильтра для измерения или реквизита регистра может задаваться либо конкретное значение, либо список значений либо группа для справочника.

Пример:

* Для регистра с измерениями «Товар», «Склад», «МОЛ» запись

Рег.УстановитьЗначениеФильтра(Товар, ВыбГруппаТоваров, 2);

означает, что расчеты будут проводиться по товарам из группы ВыбГруппа­Товаров.

Методы контекста Модуля документа

Следующие методы доступны только в контексте Модуля документа в сис­темной предопределенной процедуре ОбработкаПроведения.

Замечание. Перечисленные в этом разделе методы можно применять только к регистрам, непосредст­венно доступным в контексте Модуля документа, т. е. нельзя создать объ­ект типа «регистр» с помощью функции СоздатьОбъект и к нему при­менять метод из данного раздела.

ПривязыватьСтроку

Записать номер строки документа в движении регистра.

Синтаксис:

ПривязыватьСтроку(НомерСтроки)

Англоязычный синоним:

LinkLine

Параметры:

НомерСтроки Выражение, содержащее номер строки документа

Описание:

Метод ПривязыватьСтроку устанавливает, что при выполнении всех по­следующих движений регистров, движения будут записываться с номером строки НомерСтроки.

Метод ПривязыватьСтроку может быть использован как системная про­цедура: тогда он будет устанавливать номер строки для всех регистров по кото­рым выполняются движения, или как метод конкретного регистра: тогда он будет устанавливать номер строки только для данного регистра.

Данный метод доступен только в контексте Модуля документа в предопре­деленной процедуре ОбработкаПроведения (см. Гл. «Работа с Документа­ми»).

Пример:

Процедура ОбработкаПроведения()

   Регистр.ТовЗап.Склад = Склад;

   ВыбратьСтроки();

   Пока(ПолучитьСтроку() 0) Цикл

      Регистр.ТовЗап.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

КонецПроцедуры

ДвижениеПриход

Выполнить запись прихода в регистр по параметрам.

Синтаксис:

ДвижениеПриход (Измерен1, Измерен2 ... , Ресурс1, Ресурс2 ...)

Англоязычный синоним:

ActIncome

Параметры:

Измерен1, Измерен2 Выражения со значениями измерений регистра.
Ресурс1, Ресурс2 Выражения со значениями ресурсов регистра.
Описание:

Метод ДвижениеПриход выполняет запись прихода в регистр для текущего документа. Измерения регистра, по которым записывается приход передаются параметрами Измерение1, Измерение2, ... Величина приращений прихо­дуемых ресурсов регистра передаются параметрами Ресурс1, Ресурс2...

Данный метод доступен только в контексте Модуля документа в предопре­деленной процедуре ОбработкаПроведения (см. Гл. «Работа с Документа­ми»).

Данный метод используется только для регистров остатков.

Пример:

Процедура ОбработкаПроведения();

   ВыбратьСтроки();

   Пока ПолучитьСтроку() 0 Цикл

      Регистр.ТовЗап.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.ДвижениеПриход(Склад, Товар, Количество, Стоимость);

   КонецЦикла;

КонецПроцедуры;

См. также: ОбработкаПроведения

ДвижениеРасход

Выполнить запись расхода в регистр по параметрам.

Синтаксис:

ДвижениеРасход(Измерен1, Измерен2..., Ресурс1, Ресурс2...)

Англоязычный синоним:

ActOutcome

Параметры:

Измерен1, Измерен2 Выражения со значениями измерений регистра.
Ресурс1 , Ресурс2 Выражения со значениями ресурсов регистра.
Описание:

Метод ДвижениеРасход выполняет запись расхода в регистр для текущего документа. Измерения регистра, по которым записывается расход передаются Измервн1, Измерен2, .. Величина приращений расходуемых ресурсов регистра передаются параметрами Ресурс1, Ресурс2...

Данный метод доступен только в контексте Модуля документа в предопре­деленной процедуре ОбработкаПроведения (см. Гл. «Работа с Документа­ми»).

Данный метод используется только для регистров остатков.

Пример:

Процедура ОбработкаПроведения();

   ВыбратьСтроки();

   Пока( ПолучитьСтроку() 0) Цикл

      Регистр.ТовЗап.ДвижениеРасход(Склад, Товар, Количество, Стоимость);

   КонецЦикла;

КонецПроцедуры

См. также: ОбработкаПроведения

ДвижениеПриходВыполнить

Выполнить запись прихода в регистр по атрибутам.

Синтаксис:

ДвижениеПриходВыполнить()

Англоязычный синоним:

DoActIncome

Описание:

Метод ДвижениеПриходВыполнить выполняет запись прихода в регистр для текущего документа. Значения измерений регистра, по которым записыва­ется приход, а также величины приращений приходуемых ресурсов регистра определяются текущими значениями атрибутов регистра.

Данный метод доступен только в контексте Модуля документа в предопре­деленной процедуре ОбработкаПроведения (см. Гл. «Работа с Документа­ми»).

Данный метод используется только для регистров остатков.

Пример:

Процедура ОбработкаПроведения();

   Регистр.ТовЗап.Склад = Склад;

   ВыбратьСтроки();

   Пока(ПолучитьСтроку() 0) Цикл

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеПриходВыполнить();

   КонецЦикла;

КонецПроцедуры;

См. также: ОбработкаПроведения

ДвижениеРасходВыполнить

Выполнить запись расхода в регистр по атрибутам.

Синтаксис:

ДвижениеРасходВыполнить()

Англоязычный синоним:

DoActOutcome

Описание:

Метод ДвижениеРасходВыполнить выполняет запись расхода в регистр для текущего документа. Значения измерений регистра, по которым записыва­ется приход, а также величины приращений приходуемых ресурсов регистра определяются текущими значениями атрибутов регистра.

Данный метод доступен только в контексте Модуле документа в предопре­деленной процедуре ОбработкаПроведения (см. Гл. «Работа с Документа­ми»).

Данный метод используется только для регистров остатков.

Пример:

Процедура ОбработкаПроведения()

   Регистр.ТовЗап.Склад = Склад;

   ВыбратьСтроки();

   Пока(ПолучитьСтроку() 0) Цикл

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

КонецПроцедуры

См. также: ОбработкаПроведения

Движение

Выполнить запись движения в оборотный регистр по параметрам.

Синтаксис:

Движение(Измерен1, Измерен2..., Ресурс1 , Ресурс2...)

Англоязычный синоним:

Act

Параметры:

Измерен1 , Измерен2 Выражения со значениями измерений регистра.
Ресурс1, Ресурс2 Выражения со значениями ресурсов регистра.
Описание:

Метод Движение выполняет запись движения в оборотный регистр для те­кущего документа. Измерения регистра, по которым записывается движение передаются в параметрах Измерен1, Измерен2, .. Величины приращений ресурсов регистра передаются параметрами Ресурс1, Ресурс2...

Данный метод доступен только в контексте Модуля документа в предопре­деленной процедуре ОбработкаПроведения (см. Гл. «Работа с Документа­ми»).

Данный метод используется только для оборотных регистров.

Пример:

Процедура ОбработкаПроведения();

   ВыбратьСтроки();

   Пока ПолучитьСтроку() 0 Цикл

      Регистр.ОборотыТоваров.Движение(Товар, Склад, ОборотТовара);

   КонецЦикла;

КонецПроцедуры

См. также: ОбработкаПроведения

ДвижениеВыполнить

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

Синтаксис:

ДвижениеВыполнить()

Англоязычный синоним:

DoAct

Описание:

Метод ДвижениеВыполнить выполняет запись прихода в регистр для те­кущего документа. Значения измерений регистра, по которым записывается движение, а также величины приращений ресурсов регистра определяются те­кущими значениями атрибутов регистра.

Данный метод доступен только в контексте Модуля документа в предопре­деленной процедуре ОбработкаПроведения (см. Гл. Работа с Документа­ми).

Данный метод используется только для оборотных регистров.

Пример:

Процедура ОбработкаПроведения();

   Регистр.ТовЗап.Склад = Склад;

   ВыбратьСтроки();

   Пока (ПолучитьСтроку() 0) Цикл

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Оборот = Оборот;

      Регистр.ТовЗап.ДвижениеВыполнить();

   КонецЦикла;

КонецПроцедуры;

См. также: ОбработкаПроведения

Системные процедуры работы с регистрами

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

РассчитатьРегистрыНа

Рассчитать все временные регистры на начало события.

Синтаксис:

РассчитатьРегистрыНа(ГраницаРасчета, ГрафаОтбора)

Англоязычный синоним:

CalcRegsOnBeg

Параметры:

ГраницаРасчета Выражение со значением типа дата, документ или позиция документа.
ГpaфaOтбopa Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в кон­фигураторе. Данный параметр устанавливает режим использования определенной графы отбора. * — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора.
Описание:

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

Применение данной процедур в тексте любого программного модуля непо­средственное, т. е. просто имя процедуры с параметрами (без предварительной ссылки на объект).

Пример:

// если итоги не актуальны, то стоимости берем из временного расчета

// регистра УчетРеализации

Рег = СоздатьОбъект(Регистр.УчетРеализации);

Рег.ВременныйРасчет();

РассчитатьРегистрыНа(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;

РассчитатьРегистрыПо

Рассчитать все регистры на конец события.

Синтаксис:

РассчитатьРегистрыПо(ГраницаРасчета, ГрафаОтбора)

Англоязычный синоним:

CalcRegsOnEnd

Параметры:

ГраницаРасчета Выражение со значением типа дата, документ или позиция документа.
ГрафаОтбора Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в кон­фигураторе. Данный параметр устанавливает режим использования определенной графы отбора. * — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора.
Описание:

Процедура РассчитатьРегистрыПо рассчитывает все регистры, у которых установлен флаг участия во временном расчете (см. ВременныйРасчет), на момент окончания события. Если при вызове метода в параметре передана дата, то расчет временных регистров производится на конец указанной даты. Если при вызове метода в параметре передан документ, то расчет временных регист­ров производится на момент после проведения данного документа.

Применение данной процедуры в тексте любого программного модуля непо­средственное, т. е. просто имя процедуры с параметрами (без предварительной ссылки на объект).

Пример:

// если итоги не актуальны, то стоимости берем из временного расчета

// регистра УчетРеализации

Рег = СоздатьОбъект(Регистр.УчетРеализации);

Рег.ВременныйРасчет();

РассчитатьРегистрыПо(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;

Вспомогательный объект Регистры В системе 1С:Предприятие есть возможность создавать вспомогательные объекты типа «Регистры». Использование этих объектов дает возможность пре­одолеть ограничение на выполнение временного расчета в один момент време­ни только по одному регистру каждого вида. Система позволяет выполнять параллельно временные расчеты одних и тех же регистров, но для разных объ­ектов «Регистры». Дело в том, что регистры одного объекта воспринимаются системой независимо от регистров другого объекта.

Во всех программных модулях доступ к атрибутам и методам объекта типа «Регистры» может выполняться при помощи переменной со ссылкой на объект, который создается функцией СоздатьОбъект. Чтобы вызвать атрибут или метод объекта, имя этого атрибута или метода (с указанием необходимых пара­метров) пишется через точку после имени объекта. При создании объекта типа «Регистры» используется ключевое слово Регистры. Англоязычный синоним ключевого слова Регистры — Registers.

Пример:

СпецРег = СоздатьОбъект(Регистры);

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

Атрибуты объекта Регистры

ИдентификаторРегистра

Регистр конфигурации.

Синтаксис:

ИдентификаторРегистра

Описание:

Атрибут ИдентификаторРегистра предоставляет доступ к регистру конфигурации конкретного вида. В тексте программного модуля используется название конкретного регистра, как он назван в конфигураторе.

Пример:

СпецРег = СоздатьОбъект(Регистры);

СпецРег.УчетТоваров.СводныйОстаток(ВыбТовар, ВыбСклад, Количество)

Методы объекта Регистры

ПолучитьАтрибут

Получить значение атрибута по идентификатору.

Синтаксис:

ПолучитьАтрибут(ИмяАтрибута)

Англоязычный синоним:

GetAttrib

Параметры:

ИмяАтрибута Строковое выражение, содержащее идентифика­тор регистра конфигурации.
Возвращаемое значение:

Значение атрибута ИмяАтрибута.

Описание:

Метод ПолучитьАтрибут позволяет получить значение регистра по иден­тификатору, как он задан в метаданных.

Пример:

СпецРег = СоздатьОбъект(Регистры);

Рег = СпецРег.ПолучитьАтрибут(ОстаткиТоваров);

РассчитатьРегистрыНа

Рассчитать все временные регистры на начало события.

Синтаксис:

РассчитатьРегистрыНа(ГраницаРасчета, ГрафаОтбора)

Англоязычный синоним:

CalcRegsOnBeg

Параметры:

ГраницаРасчета Выражение со значением типа дата, документ или позиция документа.
ГрафаОтбора Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в кон­фигураторе. Данный параметр устанавливает режим использования определенной графы отбора. * — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора.
Описание:

Процедура РассчитатьРегистрыНа рассчитывает для объекта типа «Реги­стры» все регистры, у которых установлен флаг участия во временном расчете (см. ВременныйРасчет), на момент начала события. Если при вызове метода в параметре передана дата, то расчет временных регистров производится на нача­ло указанной даты. Если при вызове метода в параметре передан документ, то расчет временных регистров производится на момент до проведения данного документа.

Пример:

// если итоги не актуальны, то стоимости берем из временного расчета

// регистра УчетРеализации

СпецРег = СоздатьОбъект(Регистры);

Рег = СпецРег.УчетРеализации;

Рег.ВременныйРасчет();

СпецРег.РассчитатьРегистрыНа(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;

РассчитатьРегистрыПо

Рассчитать все регистры на конец события.

Синтаксис:

РассчитатьРегистрыПо(ГраницаРасчета, ГрафаОтбора)

Англоязычный синоним:

CalcRegsOnEnd

Параметры:

ГраницаРасчета Выражение со значением типа дата, документ или позиция документа.
ГрафаОтбора Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в кон­фигураторе. Данный параметр устанавливает режим использования определенной графы отбора * — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора.
Описание:

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

Пример:

// если итоги не актуальны, то стоимости берем из временного расчета

// регистра УчетРеализации

СпецРег = СоздатьОбъект(Регистры);

Рег = СпецРег.УчетРеализации;

Рег.ВременныйРасчет();

СпецРег.РассчитатьРегистрыПо(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;

Актуальность

Устанавливает флаг актуальности временного расчета.

Синтаксис:

Актуальность(ФлагАктуальности)

Англоязычный синоним:

Actual

Параметры:

ФлагАктуальности Необязательный параметр. Число: 1 — временный расчет поддерживать в актуальном состоянии; 0 — не поддерживать актуальность временного расче­та. Если параметр не задан, то метод просто воз­вращает текущий флат актуальности не меняя его.
Возвращаемое значение:

Текущее состояние флага актуальности временного расчета. Число: 1 — временный расчет поддерживается в актуальном состоянии; 0 — не поддержива­ется.

Описание:

Метод Актуальность устанавливает для объекта типа «Регистры» флаг ак­туальности временного расчета. Если флаг установлен, то все последующие движения регистров будут изменять итоги временного расчета, а значит итоги регистров временного расчета будут все время (при проведении документа) находиться в актуальном состоянии.

Внимание. Данный метод можно использовать только в модуле проведения документа.

Пример:

// стоимости берем из временного расчета

// регистра УчетРеализации

СпецРег = СоздатьОбъект(Регистры);

СпецРег.Актуальность(1);

Рег = СпецРег.УчетРеализации;

Рег.ВременныйРасчет();

СпецРег.РассчитатьРегистрыНа(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;


Глава 15 Служебные типы данных компоненты «Бухгалтерский учет»

Тип данных «ПланСчетов» Тип данных «ПланСчетов» является служебным типом данных. Он предна­значен для идентификации Плана счетов, созданного в метаданных. В основ­ном он используется для передачи в качестве параметра различным процедурам и функциям компоненты «Бухгалтерский учет» и для выбора плана счетов в формах. Тип значения «ПланСчетов» не поддерживает никаких данных в ин­формационной базе, а список возможных значений этого типа данных опреде­лен планами счетов созданными в конфигурации.

Значения типа «ПланСчетов» могут выступать как реквизиты диалога фор­мы, как реквизиты документов, справочников и т. д.

Для получения значения такого типа данных используется глобальный ат­рибут ПланыСчетов, который имеет в свою очередь набор атрибутов типа «ПланСчетов» соответсвующих имеющимся в конфигурации планам счетов. Кроме того, глобальный атрибут ПланыСчетов имеет методы для обхода всех существующих планов счетов.

Методы типа данных «ПланСчетов»

Выбран

Проверяет наличие значения.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Числовое значение: 1 — значение не пусто; 0 — значение пусто.

Описание:

Данный метод позволяет определить — пусто значение типа «ПланСчетгт или нет.

Пример:

* ИспПланСчетов — является реквизитом диалога формы, имеет тип «План Счетов».

Если ИспПланСчетов.Выбран() = 1 Тогда

   БухИтоги.ИспользоватьПланСчетов(ИспПланСчетов);

КонецЕсли;

ПорядковыйНомер

Получить порядковый номер плана счетов.

Синтаксис:

ПорядковыйНомер()

Англоязычный синоним:

Number

Возвращаемое значение:

Числовое значение: порядковый номер плана счетов среди планов счетов конфигурации.

Описание:

Метод ПорядковыйНомер позволяет определить порядковый номер плана счетов среди планов счетов, созданных в конфигурации.

Пример:

Если ИспПланСчетов.Выбран() = 1 Тогда

   Сообщить(План счетов + ИспПланСчетов.ПорядковыйНоиер());

КонецЕсли;

Идентификатор

Определить строку-идентификатор плана счетов как он задан в ме­таданных.

Синтаксис:

Идентификатор()

Англоязычный синоним:

Identifier

Возвращаемое значение:

Строка-идентификатор плана счетов как он задан в метаданных.

Описание:

Метод Идентификатор позволяет определить строку-идентификатор плана счетов как он задан в метаданных.

Пример:

Если ИспПланСчетов.Выбран() = 1 Тогда

   Сообщить(Идентификатор(ИспПланСчетов));

КонецЕсли;

Атрибут глобального контекста «ПланыСчетов»

ПланыСчетов

Атрибут глобального контекста для получения существующих значе­ний типа «ПланСчетов».

Синтаксис:

ПланыСчетов

Англоязычный синоним:

Charts0fAccounts

Описание:

Атрибут ПланыСчетов не имеет самостоятельного смысла, а служит для получения конкретных значений типа «ПланСчетов». Атрибут всегда использу­ется с доступными ему атрибутами и методами.

Атрибуты и методы:

Для получения конкретного значения типа «План счетов» следует через точку указать атрибут — идентификатор плана счетов.

Для получения количества существующих в конфигурации планов счетов следует через точку вызвать метод КоличествоЗначений.

Для получения значения типа «План счетов» по его номеру в метаданных, следует через точку вызвать метод ЗначениеПоНомеру(Число), где Число — номер плана счетов в метаданных.

Пример:

Сч = СоздатьОбъект(Счет);

// ...

Если Сч.ПланСчетов() = ПланыСчетов.РабПлан Тогда

   // ...

КонецЕсли;

Для Инд = 1 По ПланыСчетов.КоличествоЗначений() Цикл

   ПлСч = ПланыСчетов.ЗначениеПоНомеру(Инд);

КонецЦикла;

Методы глобального атрибута «ПланыСчетов»

Значения типа «ПланСчетов» могут выступать как реквизиты диалога формы, как реквизиты документов, справочников и т. д.

Для получения значений типа «ПланСчетов» используется глобальный ат­рибут ПланыСчетов, который имеет в свою очередь набор атрибутов типа «План Счетов» соответсвующих имеющимся в конфигурации планам счет Кроме того, глобальный атрибут ПланыСчетов имеет методы для обхода в существующих планов счетов.

КоличествоЗначений

Получить общее количество планов счетов.

Синтаксис:

КоличествоЗначений()

Англоязычный синоним:

Count

Возвращаемое значение:

Числовое значение: количество планов счетов конфигурации.

Описание:

Метод КоличествоЗначений применяется к атрибуту глобального контек­ста ПланыСчетов и позволяет определить общее количество планов счетов созданных в конфигурации.

Пример:

Для Инд=1 По ПланыСчетов.КоличествоЗначений() Цикл

   ПлСч = ПланыСчетов.ЗначениеПоНомеру(Инд);

КонецЦикла;

ЗначениеПоНомеру

Определить план счетов, по номеру в списке планов счетов конфигу­рации.

Синтаксис:

ЗначениеПоНомеру(Номер)

Англоязычный синоним:

ValueByIndex

Параметры:

Номер Числовое выражение. Номер позиции плана сче­тов, заданный в Конфигураторе.
Возвращаемое значение:

Значение типа «План Счетов», соответствующее номеру заданной позиции.

Описание:

Метод ЗначениеПоНомеру применяется к атрибуту глобального контекста ПланыСчетов и позволяет определить план счетов, соответствующий номеру в списке планов счетов конфигурации.

Пример:

Для Инд = 1 По ПланыСчетов.КоличествоЗначений() Цикл

   ПлСч = ПланыСчетов.ЗначениеПоНомеру(Инд);

КонецЦикла

ЗначениеПоИдентификатору

Определить план счетов, по идентификатору.

Синтаксис:

ЗначениеПоИдентификатору(Идентификатор)

Англоязычный синоним:

ValueByIdentifier

Параметры:

Идентификатор Строковое выражение. Идентификатор пла­на счетов, заданный в конфигураторе.
Возвращаемое значение:

Значение плана счетов, соответствующее идентификатору в метаданных. Если не найдено — то пустое значение.

Описание:

Метод ЗначениеПоИдентификатору применяется к атрибуту глобального контекста ПланыСчетов и позволяет определить план счетов, соответствующий идентификатору плана счетов конфигурации.

Пример:

ПлСч = ПланыСчетов.ЗначениеПоИдентификатору(Основной);

Тип данных «ВидСубконто» Тип данных «ВидСубконто» является служебным типом данных. Он пред­назначен для идентификации самого Вида субконто. созданного в метаданных. В основном он используется для передачи в качестве параметра различным процедурам и функциям компоненты «Бухгалтерский учет» и для выбора вида субконто в формах. Тип данных «ВидСубконто» не поддерживает никаких дан­ных в информационной базе, а список возможных значений этого типа данных определен видами субконто, созданными в конфигурации.

Значения типа «ВидСубконто» могут выступать как реквизиты диалога формы, как реквизиты документов, справочников и т. д.

Для получения значения такого типа используется глобальный атрибут ВидыСубконто, который имеет в свою очередь набор атрибутов типа «Вид­Субконто» соответсвующих имеющимся видам субконто. Кроме того, глобаль­ный атрибут ВидыСубконто имеет методы для обхода всех существующих видов субконто.

Методы типа данных «ВидСубконто»

Выбран

Проверяет наличие значения.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Числовое значение:

1 — значение не пусто;

0 — значение пусто.

Описание:

Данный метод позволяет определить — пусто значение типа «ВидСубконто» или нет.

Пример:

* ВыбВидСубк1 — является реквизитом диалога формы типа «ВидСубкон­то».

Если ВыбВидСубк1.Выбран() = 1 Тогда

   БухИтоги.ИспользоватьСубконто(ВыбВидСубк1);

КонецЕсли;

ПорядковыйНомер

Получить порядковый номер вида субконто.

Синтаксис:

ПорядковыйНомер()

Англоязычный синоним:

Number

Возвращаемое значение:

Числовое значение: порядковый номер вида субконто среди видов.

Описание:

Метод ПорядковыйНомер позволяет определить порядковый номер вида субконто среди видов субконто, созданных в конфигурации.

Пример:

Если ВыбВидСубк1.Выбран() = 1 Тогда

   Сообщить(Вид номер + ВыбВидСубк1.ПорядковыйНомер());

КонецЕсли;

ТипСубконто

Получить тип субконто.

Синтаксис:

ТипСубконто()

Англоязычный синоним:

SubcontoType

Возвращаемое значение:

Строковое значение, описывающее тип субконто, например Справочник.Контрагенты.

Описание:

Метод ТипСубконто позволяет определить тип субконто, как он определен в конфигурации.

Пример:

Сообщить(Тип субконто + ВыбВидСубк1.ТипСубконто());

Идентификатор

Определить строку-идентификатор вида субконто как он задан в метаданных.

Синтаксис:

Идентификатор()

Англоязычный синоним:

Identifier

Возвращаемое значение:

Строка-идентификатор вида субконто как он задан в метаданных.

Описание:

Метод Идентификатор позволяет определить строку-идентификатор ви­да субконто как он задан в метаданных.

Пример:

Для Н=1 По ВидыСубконто.КоличествоЗначений() Цикл

   Сообщить(Идентификатор(ВидыСубконто.ЗначениеПоНомеру(Н)));

КонецЦикла;

Атрибут глобального контекста «ВидыСубконто»

ВидыСубконто

Атрибут глобального контекста для получения существующих значе­ний типа ВидСубконто.

Синтаксис:

ВидыСубконто

Англоязычный синоним:

SubcontoKinds

Описание:

Атрибут ВидыСубконто не имеет самостоятельного смысла, а служит для получения конкретных значений типа «Вид субконто». Атрибут всегда исполь­зуется с доступными ему атрибутами и методами.

Атрибуты и методы:

Для получения конкретного значения типа «Вид субконто» следует через точку указать атрибут-идентификатор вида субконто.

Для получения количества существующих в конфигурации видов субконто следует через точку вызвать метод КоличествоЗначений.

Для получения значения типа «Вид субконто» по его номеру в метаданных следует через точку вызвать метод ЗначениеПоНомеру(Число), где Число — номер вида субконто в метаданных.

Пример:

Сч = СоздатьОбъект(Счет);

Если Сч.ВидСубконто(1) = ВидыСубконто.Материалы Тогда

   // ...

КонецЕсли;

Для Инд = 1 По ВидыСубконто.КоличествоЗначений() Цикл

   ВидСк = ВидыСубконто.ЗначениеПоНомеру(Инд);

   // ...

КонецЦикла;

Методы глобального атрибута «ВидыСубконто»

Для получения значений типа «ВидСубконто» используется глобальный ат­рибут ВидыСубконто, который имеет в свою очередь набор атрибутов типа «ВидСубконто» соответсвующих имеющимся видам субконто. Кроме того, гло­бальный атрибут ВидыСубконто имеет методы для обхода всех существующих видов субконто.

КоличествоЗначений

Получить общее количество видов субконто.

Синтаксис:

КоличествоЗначений()

Англоязычный синоним:

Count

Возвращаемое значение:

Числовое значение: количество видов субконто конфигурации.

Описание:

Метод КоличествоЗначений применяется к атрибуту глобального контек­ста ВидыСубконто и позволяет определить общее количество видов субконто, созданных в конфигурации.

Пример:

Для Инд = 1 По ВидыСубконто.КоличествоЗначений() Цикл

   ВидСк = ВидыСубконто.ЗначениеПоНомеру(Инд);

КонецЦикла;

ЗначениеПоНомеру

Определить вид субконто, по номеру в списке видов субконто кон­фигурации.

Синтаксис:

ЗначениеПоНомеру(Номер)

Англоязычный синоним:

ValueByIndex

Параметры:

Номер Числовое выражение. Номер позиции вида суб­конто, заданный в конфигураторе.
Возвращаемое значение:

Значение типа «ВидСубконто», соответствующее номеру заданной позиции.

Описание:

Метод ЗначениеПоНомеру применяется к атрибуту глобального контекста ВидыСубконто и позволяет определить вид субконто, соответствующий номе­ру в списке видов субконто конфигурации.

Пример:

Для Инд = 1 По ВидыСубконто.КоличествоЗначений() Цикл

   ВидСк = ВидыСубконто.ЗначениеПоНомеру(Инд);

КонецЦикла;

ЗначениеПоИдентификатору

Определить вид субконто, по идентификатору видов субконто кон­фигурации.

Синтаксис:

ЗначениеПоИдентификатору(Идентификатор)

Англоязычный синоним:

ValueByIdentifier

Параметры:

Идентификатор Строковое выражение. Идентификатор вида субконто, заданный в конфигураторе.
Возвращаемое значение:

Значение типа «ВидСубконто», соответствующее идентификатору в мета­данных. Если не найдено — то пустое значение.

Описание:

Метод ЗначениеПоИдентификатору применяется к атрибуту глобального контекста ВидыСубконто и позволяет определить вид субконто, соответст­вующий идентификатору видов субконто конфигурации.

Пример:

ВидСк = ВидыСубконто.ЗначениеПоИдентификатору(Контрагент);


Глава 16 Работа с бухгалтерскими счетами

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

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

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

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

Заметим, что бухгалтерские счета внесенные в конфигураторе в метаданные не могут изменять свои основные реквизиты (код, наименование, настройки аналитического, валютного и количественного учета).

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

Если счет входит (согласно локальному контексту) в набор непосредственно Доступных модулю значений агрегатных типов данных (см. «Виды программ-йьгх модулей»), то доступ к атрибутам и вызов метода для этого счета — просто имя этого атрибута или метода с указанием необходимых параметров.

Пример:

* Модуль формы счета выполняется в контексте «Счет». Поэтому в модуп возможен непосредственный доступ к текущему счету. Например, для пои сваивания счету наименования запишем:

Наименование = Основные средства;

Значение счета может быть получено из других источников, например, как реквизит документа. В этом случае обращение к атрибутам и методам такого документа представляет собой сложное выражение, где имена реквизитов раз­деляются точкой.

Пример:

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

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

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

При создании ссылки на объект типа «Счет» при помощи функции СоздатьОбъект в качестве типа объекта указывается слово Счет и может быть через точку указан вид — идентификатор плана счетов.

Полное имя типа счет записывается следующим образом:

Счет.ВидСчета

где ВидСчета — идентификатор плана счетов.

Применение ключевого слова Счет (без вида счета) используется для ор­ганизации доступа ко всем планам счетов.

Англоязычный синоним ключевого слова Счет — Account.

Замечание: Следует обратить особое внимание, что переменная типа «Счет», созданная функцией СоздатьОбъект — это ссылка на список счетов, в отличие от переменных, содержащих само значение объекта (например, переменной может быть присвоено значение некоторого реквизита доку­мента, который имеет тип «Счет»). Использование ссылки на список сче­тов, созданной при помощи функции СоздатьОбъект, существенно от­личается от работы со значением типа «Счет». Только при работе со объ­ектом-ссылкой на список счетов разрешено изменять позицию (найти-выбрать...) текущего счета в списке (т. е. осуществлять позиционирование по списку счетов), создавать новые, изменять и удалять существующие счета, С другой стороны, ссылка на список счетов не содержит собственно значения конкретного счета, которое можно присвоить чему-либо. Одна­ко. его всегда можно получить, используя функцию ТекущийСчет.

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

Пример:

*

Сч = СоздатьОбъект(Счет);

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

Сч2 = СоздатьОбъект(Счет.РабПлан);

*

//В модуле формы счета // меняем наименование счета

Наименование = Новый счет;

*

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

// создаем новый счет Сч1.Новый();

Сч1.Код = 12.01;

Сч1.Записать();

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

Код

Полный код счета.

Синтаксис:

Код

Англоязычный синоним:

Code

Описание:

Код счета в общем случае представляет собой символьную строку вида:

Код счета.Код субсчета.Код субсчета ...

Общая длина кода счета в системе 1С:Предприятие ограничена 255 симво­лами. В это значение входят: код счета первого уровня, коды субсчетов всех нижележащих уровней и разделители номеров счета и субсчетов (точка). При помощи атрибута Код можно получать и задавать код счета.

Пример:

* При показе готового табличного документа (в данном примере это отчет «Карточка счета») в заголовке окна выдается наименование отчета и код счета, по которому построен отчет.

// Формирование отчета Карточка счета

Табл = СоздатьОбъект(Таблица);

// ...

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

// ...

// Показ готового отчета

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

Наименование

Наименование счета.

Синтаксис:

Наименование

Англоязычный синоним:

Description

Описание:

Наименование счета представляет собой произвольную строку символов. Наименование, как правило, разъясняет назначение счета. Максимальная длина наименования счета задается при редактировании свойств планов счетов в Конфигураторе.

При помощи атрибута Наименование можно получать и задавать наимено­вание счета.

Пример:

* При показе готового табличного документа (в данном примере это отчет «Карточка счета») в заголовке окна выдается наименование отчета, код и наименование счета, по которому построен отчет.

// Формирование отчета Карточка счета

Табл = СоздатьОбъект(Таблица);

// ...

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

// ...

// Показ готового отчета

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

Валютный

Признак ведения валютного учета.

Синтаксис:

Валютный

Англоязычный синоним:

IsCurrency

Значение:

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

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

Описание:

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

Пример:

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

Количественный

Признак ведения количественного учета.

Синтаксис:

Количественный

Англоязычный синоним:

IsAmount

Значение:

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

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

Описание:

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

Пример:

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

Забалансовый

Признак забалансовости счета.

Синтаксис:

Забалансовый

Англоязычный синоним:

IsSingle

Значение:

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

0 — выбранный счет является балансовым счетом.

Описание:

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

Пример:

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

Активный

Тип остатка по счету (активный, пассивный, активно-пассивный).

Синтаксис:

Активный

Англоязычный синоним:

IsActive

Значение:

1 — счет является активным;

2 — счет является пассивным;

3 — счет является активно-пассивным;

Описание:

Атрибут содержит тип остатка счета. Счет может являться активным, (ос­татки должны быть дебетовыми), пассивным (остатки должны быть кредитов выми), активно-пассивным (остатки могут быть дебетовыми и кредитовыми).

Данный признак влияет на способ отражения остатков по счету в итогах. Например, для активного счета, превышение кредитового оборота над дебето­вым приведет к отрицательному дебетовому остатку, а для активно-пассивного — к положительному кредитовому.

По умолчанию все счета считаются активно-пассивными.

Пример:

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

Реквизит

Возвращает или задает значение дополнительного реквизита счета.

Синтаксис:

Реквизит Идентификатор дополнительного реквизита счета, как он задан в конфигураторе.
Описание:

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

Атрибут Реквизит позволяет обращаться к значениям дополнительных реквизитов выбранного счета. Для обращения к конкретному реквизиту должен быть указан его идентификатор, заданный для этого реквизита в конфигурато­ре.

Пример:

* Для счетов определен реквизит Ответственный типа Справочник.Сотрудники.

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

Сч.ВыбратьСчета();

Пока Сч.ПолучитьСчет() = 1 Цикл

   Сч.Ответственный = ВыбСотр;

   Сообщить(Сч.Ответственный.Наименование);

   Сч.Записать();

КонецЦикла

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

ВыбратьСчета

Метод открывает выборку счетов из текущего плана счетов для по­следующей обработки.

Синтаксис:

ВыбратьСчета()

Англоязычный синоним:

SelectAccounts

Возвращаемое значение:

Число: 1 — если действие выполнено и в выборке есть хотя бы один счет; 0 — если действие не выполнено или в выборке нет ни одного счета.

Описание:

Метод ВыбратьСчета открывает выборку счетов для текущего плана сче­тов. Вызов данного метода позволяет затем перебрать счета. Непосредственно извлечение счетов из выборки осуществляется при помощи метода ПолучитьСчет. Счета извлекаются в порядке возрастания кода счета.

Пример:

Процедура Сформировать()

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

   Сч.ВыбратьСчета();

   Пока Сч.ПолучитьСчет() = 1 Цикл

      Сообщить(Сч.Код);

   КонецЦикла;

КонецПроцедуры

ПолучитьСчет

Получить из выборки следующий счет. Выборка должна быть пред­варительно открыта при помощи метода ВыбратьСчета.

Синтаксис:

ПолучитьСчет([Режим])

Англоязычный синоним:

GetAccount

Параметры:

Режим Необязательный параметр. Числовое выраже­ние — признак выборки подчиненных счетов. Может принимать значения: 0 — не включать подчиненные счета; 1 — включать подчиненные счета. По умолчанию — 1.
Возвращаемое значение:

Число: 1 — следующий счет выбран успешно; 0 — следующий счет не вы­бран (отсутствует).

Описание:

Метод ПолучитьСчет выбирает очередной счет из выборки, содержащей счета из плана счетов. Перед применением метода ПолучитьСчет выборка должна быть открыта при помощи метода ВыбратьСчета. Счета извлекаются в порядке возрастания кода счета.

Метод ПолучитьСчет используется для организации цикла по счетам. Ус­ловием цикла может служить равенство 1 возвращаемого значения метода: цикл выполняется, пока метод ПолучитьСчет возвращает 1.

Метод возвращает 0, когда очередной счет не выбран. Это происходит, если при предыдущем применении метода был выбран последний счет выборки.

Пример:

Процедура Сформировать()

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

   Сч.ВыбратьСчета();

   Пока Сч.ПолучитьСчет() = 1 Цикл

      Сообщить(Сч.Код);

   КонецЦикла;

КонецПроцедуры

УстановитьАтрибут

Установить значение реквизита по имени идентификатора.

Синтаксис:

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

Англоязычный синоним:

SetAttrib

Параметры:

ИмяРеквизита Строковое выражение, содержащее имя реквизи­та, как оно задано в конфигураторе.
3начение Выражение, содержащее устанавливаемое значение реквизита.
Описание:

Метод УстановитьАтрибут позволяет установить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

Счт.УстановитьАтрибут(ЦенаРозн, ЦенаТов);

ПолучитьАтрибут

Получить значение реквизита по имени идентификатора.

Синтаксис:

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

Англоязычный синоним:

GetAttrib

Параметры:

ИмяРеквизита Строковое выражение, содержащее имя реквизи­та, как оно задано в конфигураторе.
Возвращаемое значение:

Значение реквизита ИмяРеквизита.

Описание:

Метод ПолучитьАтрибут позволяет получить значение реквизита по име­ни идентификатора, как оно задано в конфигураторе.

Пример:

ЦенаТов = Счт.ПолучитьАтрибут(ЦенаРозн);

Выбрать

Выбрать счет из плана счетов в диалоге.

Синтаксис:

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

Англоязычный синоним:

Choose

Параметры:

Подсказка Необязательный параметр. Символьное выраже­ние — текст заголовка окна диалога выбора счета. Может использоваться в качестве подсказки.
ФормаСписка Необязательный параметр. Символьное выраже­ние — идентификатор формы списка плана счетов (как он указан в конфигураторе), которая должна использоваться для выбора. Если значение пустое, то используется форма списка для выбора по умол­чанию.
Возвращаемое значение:

Число: 1 — счет выбран; 0 — счет не выбран.

Описание:

Метод Выбрать вызывает на экран диалог, содержащий план счетов. Поль­зователь должен интерактивно выбрать требуемый счет.

Если счет выбран, метод возвращает 1 и позиционирует объект на выбран­ном счете.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

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

Сч.Выбрать(Выберите счет, ДляВыбораВДиалоге);

НайтиПоКоду

Выполняет поиск счета в плане счетов по коду счета.

Синтаксис:

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

Англоязычный синоним:

FindByCode

Параметры:

КодСчета Символьное выражение — код счета, как он указан в плане счетов.
Возвращаемое значение:

Число: 1 — счет найден; 0 — счет не найден.

Описание:

Метод НайтиПоКоду выполняет поиск счета в плане счетов по коду счета, который передается методу в качестве параметра.

Если счет найден, метод возвращает 1 и позиционирует объект на выбран­ном счете.

Пример:

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

Сч.НайтиПоКоду(01.01);

НайтиСчет

Метод выполняет поиск счета в плане счетов по значению типа «Счет».

Синтаксис:

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

Англоязычный синоним:

FindAccount

Параметры:

Счет Значение типа «Счет».
Возвращаемое значение:

Число: 1 — счет найден; 0 — счет не найден.

Описание:

Метод НайтиСчет выполняет поиск счета по значению, заданному пара­метром Счет, и позиционирует объект на выбранном счете.

Пример:

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

Сч.НайтиСчет(ВыбСчет);

Выбран

Проверяет факт выбора счета.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Числ: 1 — если счет выбран (спозиционирован); 0 — если не выбран.

Описание:

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

Пример:

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

Сч.НайтиПоКоду (76.02);

Если Сч.Выбран() = 1 Тогда

   Сообщить(Счет найден);

КонецЕсли;

ЗаданВКонфигурации

Определяет, задан текущий счет в конфигурации или в информаци­онной базе.

Синтаксис:

ЗаданВКонфигурации()

Англоязычный синоним:

DefinedInConfiguration

Возвращаемое значение:

Число: 1 — если счет задан в конфигурации; 0 — если счет введен в инфор­мационной базе.

Описание:

Метод ЗаданВКонфигурации определяет, задан текущий счет в конфигу­рации или в информационной базе.

Пример:

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

Сч.НайтиПоКоду(76.02);

Если Сч.ЗаданВКонфигурации() = 1 Тогда

   Сообщить(Счет задан в Конфигурации );

КонецЕсли;

Вид

Позволяет определить, к какому плану счетов относится указанный счет.

Синтаксис:

Вид()

Англоязычный синоним:

Kind

Возвращаемое значение:

Символьная строка — идентификатор плана счетов, к которому относится данный счет.

Описание:

Метод Вид позволяет определить план счетов, к которому относится дан­ный счет. Метод возвращает идентификатор плана счетов в виде строки симво­лов. Метод ПланСчетов позволяет получить значение типа «План счетов» к которому относится выбранный счет.

Пример:

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

Сч.НайтиПоКоду(76.02);

Сообщить(Вид - + Сч.Вид());

ПредставлениеВида

Определить пользовательское представление вида плана счетов.

Синтаксис:

ПредставлениеВида()

Англоязычный синоним:

KindPresent

Возвращаемое значение:

Строковое значение, содержащее пользовательское представление вида пла­на счетов (синоним вида плана счетов или, если он пустой, то идентификатор вида).

Описание:

Метод ПредставлениеВида позволяет получить пользовательское пред­ставление вида плана счетов, как оно задано в конфигураторе.

Пример:

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

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

Состояние(Сч.ПредставлениеВида());

ПланСчетов

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

Синтаксис:

ПланСчетов()

Англоязычный синоним:

ChartOfAccounts

Возвращаемое значение:

Значение типа «План счетов».

Описание:

Метод выдает план счетов (значение типа «План счетов»), которому при­надлежит счет.

Пример:

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

Сч.НайтиПоКоду(76.02);

Сообщить(План счетов - + Сч.ПланСчетов());

// Выдает План счетов - Основной

ЭтоГруппа

Определяет, является ли данный счет группой.

Синтаксис:

ЭтоГруппа()

Англоязычный синоним:

IsGroup

Возвращаемое значение:

Число: 1 — счет является группой; 0 — счет не является группой.

Описание:

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

Данная функция определяет, является счет группой (может иметь субсчета) или нет.

Пример:

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

Сч.НайтиПоКоду(76.02);

Если Сч.ЭтоГруппа() = 1 Тогда

   Сообщить(Найдена группа);

КонецЕсли;

Уровень

Возвращает уровень вложенности текущего счета.

Синтаксис:

Уровень()

Англоязычный синоним:

Level

Возвращаемое значение:

Число — уровень вложенности счета: 1 — счета верхнего уровня.

Описание:

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

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

##.#.###

означает, что к счету могут быть открыты 2 уровня субсчетов. Метод Уровень() возвращает уровень вложенности текущего счета. Для счета верхнего уровня метод возвратит 1, для счета второго уровня — 2, и так далее.

Пример:

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

Сч.НайтиПоКоду(76.02);

Сообщить(Уровень счета - + Сч.Уровень());

//Возвращает — 2

ТекущийСчет

Возвращает текущее значение счета.

Синтаксис:

ТекущийСчет()

Англоязычный синоним:

CurAccount

Возвращаемое значение:

Значение типа «Счет».

Описание:

Объекты созданные функцией СоздатьОбъект не содержат собственно значения типа «Счет», так как они могут быть спозиционированы на разные счета. Метод ТекущийСчет позволяет получить значение типа «Счет» у такого объекта в соответвии с его текущей позицией. Данный метод применяется, на­пример, если нужно счет передать как параметр в вызове какого-либо метода, или присвоить какому-либо реквизиту, или занести в проводку.

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

Пример:

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

Сч.НайтиПоКоду(76.02);

Если Сч.Выбран() = 1 Тогда

   Операция.Дебет.Счет = Сч.ТекущийСчет();

КонецЕсли;

ПометкаУдаления

Проверяет наличие пометки на удаление для текущего счета.

Синтаксис:

ПометкаУдаления()

Англоязычный синоним:

DeleteMark

Возвращаемое значение:

1 — счет помечен на удаление;

0 — счет не помечен на удаление.

Описание;

Метод используется для проверки, помечен ли на удаление текущий счет.

Пример:

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

Сч.НайтиПоКоду(76.02);

Если Сч.ПометкаУдаления() = 1 Тогда

   Сообщить(Счет помечен на удаление);

КонецЕсли;

ВыборГруппы

Устанавливает или сбрасывает признак выбора группы.

Синтаксис:

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

Англоязычный синоним:

SelectGroup

Параметры:

ПризнакВыбораГруппы Необязательный параметр. Числовое вы­ражение: 1 — выбирать группы; 0 — не вы­бирать группы.
Возвращаемое значение:

Текущее числовое значение режима выборки групп (на момент до исполне­ния метода).

Описание:

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

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

По умолчанию выбор группы разрешен, за исключением счетов дебета и кредита в проводках операции.

Режим, устанавливаемый данным методом для элементов диалога, влияет на интерактивный выбор пользователем значения типа «Счет» из списка счетов (плана счетов). Такой выбор производится вызовом метода Выбрать или нажа­тием кнопки выбора, если объект является элементом диалога. Установка ре­жима позволяет разрешить или запретить пользователю выбирать счета-группы (счета, которые могут иметь субсчета). Это имеет смысл для установки режима сразу на все значения реквизита табличной части документа.

Пример:

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

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

Сч.Выбрать(Выберите конкретный счет);

ПринадлежитГруппе

Определяет, является ли текущий счет субсчетом для счета, указан­ного в качестве параметра метода.

Синтаксис:

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

Англоязычный синоним:

BelongsToGroup

Параметры:

Счет Значение типа «Счет» — счет, к субсчетам которого проверяется принадлежность те­кущего счета.
Возвращаемое значение:

Число: 1 — текущий счет является субсчетом для счета, указанного в каче­стве параметра; 0 — текущий счет не является субсчетом для счета, указанного в качестве параметра.

Описание:

Метод ПринадлежитГруппе позволяет проверить, является ли текущий счет субсчетом для счета, переданного в качестве параметра метода. Проверка выполняется по всем вышестоящим уровням счета.

Пример:

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

Сч.НайтиПоКоду(76.02);

Если Сч.ПринадлежитГруппе(СчетПоКоду(76)) = 1 Тогда

   Сообщить(Счет принадлежит группе);

КонецЦикла;

КоличествоСубконто

Определяет количество субконто у текущего счета.

Синтаксис:

КоличествоСубконто()

Англоязычный синоним:

SubcontoCount

Возвращаемое значение:

Число — количество видов субконто у текущего счета.

Описание:

Максимальное количество видов субконто, которое можно «прикрепить» к счету, устанавливается в конфигураторе при редактировании свойств планов счетов. Количество субконто, которое реально прикреплено к счету, не может превышать установленного максимального количества.

Метод КоличествоСубконто служит для определения количества видов субконто, прикрепленных к текущему счету в плане счетов.

Необходимо обратить внимание, что все виды субконто, прикрепленные к счету в плане счетов, имеют порядковые номера. Эти номера выдаются в назва­ниях колонок видов субконто в окне редактирования плана счетов; «Субкон­то1», «Субконто2» ... «Субконто6».

При задании видов субконто для счета их обязательно «выстраивать» по порядку один за другим: например, к счету могут быть прикреплены субконто таким образом, что их порядковые номера будут 1 и 2. Метод КоличествоСубконто возвращает общее количество видов субконто, прикре­пленное к счету (в данном примере — 2), а не максимальное количество воз­можных видов субконто у счета.

Пример:

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

Сч.НайтиПоКоду(76.02);

Для Инд = 1 По Сч.КоличествоСубконто() Цикл

   Сообщить(Субконто + Сч.ВидСубконто(Инд));

КонецЦикла;

ВидСубконто

Устанавливает/возвращает вид субконто счета.

Синтаксис:

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

Англоязычный синоним:

SubcontoKind

Параметры:

НомерСубконто Числовое выражение — порядковый номер суб­конто счета.
ВидСубконто Необязательный параметр. Значение типа «Вид субконто», которое должно быть установлено.
ТолькоОбороты Необязательный параметр. Числовое значение: 1 или 0. Данный параметр снимает или устанавли­вает флаг «Только обороты» для данного субкон-то счета. Если параметр не используется, то флаг «Только обороты» не меняется.
Возвращаемое значение:

Значение типа «Вид субконто».

Описание:

К любому счету или субсчету в плане счетов может быть «прикреплено» до 5 видов субконто. Максимальное количество видов субконто, которое можно «прикрепить» к счету, устанавливается в конфигураторе при редактировании свойств планов счетов. Количество субконто, которое реально прикреплено к счету, не превышает установленного максимального количества. Все виды суб­конто, прикрепленные к счету в плане счетов, имеют порядковые номера. Эти номера выдаются в названии колонок для видов субконто в окне редактирова­ния плана счетов; «Субконто!», «Субконто2» ... «Субконто5».

Метод ВидСубконто при использовании его без второго параметра воз­вращает значение типа «ВидСубконто», имеющего порядковый номер, передан­ный в качестве первого параметра.

Метод ВидСубконто при вызове со вторым параметром устанавливает у счета вид субконто, имеющего порядковый номер, переданный в качестве пер­вого параметра.

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

Пример:

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

Сч.НайтиПоКоду(76.02);

Для Инд = 1 По Сч.КоличествоСубконто() Цикл

   Сообщить(Субконто + Сч.ВидСубконто(Инд));

КонецЦикла;

ТолькоОбороты

Устанавливает/возвращает значение флага «Только обороты» суб­конто счета.

Синтаксис:

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

Англоязычный синоним:

TurnoversOnly

Параметры:

НомерСубконто Числовое выражение — порядковый номер суб­конто счета.
ТолькоОбороты Необязательный параметр. Числовое значение: 1 или 0. Данный параметр снимает или устанавли­вает флаг «Только обороты» для данного субкон­то счета. Если параметр не используется, то флаг «Только обороты» не меняется.
Возвращаемое значение:

Значение флага «Только обороты» на момент до использования метода: 1 — флаг установлен; 0 — флаг не установлен.

Описание:

К любому счету или субсчету в плане счетов может быть «прикреплено» до 5 видов субконто. Максимальное количество видов субконто, которое можно «прикрепить» к счету, устанавливается в конфигураторе при редактировании свойств планов счетов. Все виды субконто, прикрепленные к счету в плане сче­тов, имеют порядковые номера. Для субконто может быть установлен флаг «Только обороты», который устанавливает для данного субконто использование только для оборотов по счету, а не для остатков.

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

Пример:

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

Сч.НайтиПоКоду(76.02);

Для Инд = 1 По Сч.КоличествоСубконто() Цикл

   Сообщить(Субконто + Сч.ВидСубконто(Инд) +

         ?(Сч.ТолькоОбороты(Инд) = 1, (об.), ));

КонецЦикла;

УчетПоСумме

Устанавливает/возвращает значение флага «Учет по сумме» субкон­то счета.

Синтаксис:

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

Англоязычный синоним:

AccountingBySum

Параметры:

НомерСубконто Числовое выражение — порядковый номер суб­конто счета.
УчетПоСумме Необязательный параметр. Числовое значение: 1 или 0. Данный параметр снимает или устанавли­вает флаг «Учет по сумме» для данного субконто счета. Если параметр не используется, то флаг «Учет по сумме» не меняется.
Возвращаемое значение:

Значение флага «Учет по сумме» на момент до использования метода: 1 — флаг установлен; 0 — флаг не установлен.

Описание:

Все виды субконто, прикрепленные к счету в плане счетов, имеют порядко­вые номера. Для субконто может быть установлен флаг «Учет по сумме», кото­рый устанавливает для данного субконто счета режим использования учета по сумме.

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

Пример:

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

Сч.НайтиПоКоду(76.02);

Для Инд = 1 По Сч.КоличествоСубконто() Цикл

   Сообщить(Субконто + Сч.ВидСубконто(Инд) +

        ? (Сч.УчетПоСумме(Инд) = 1, (об.), ));

КонецЕсли;

УчетПоВалютнойСумме

Устанавливает/возвращает значение флага «Учет по валютной сум­ме» субконто счета.

Синтаксис:

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

Англоязычный синоним:

AccountingByCurrencySum

Параметры:

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

Значение флага «Учет по валютной сумме» на момент до использования метода: 1 — флаг установлен; 0 — флаг не установлен.

Описание:

Все виды субконто, прикрепленные к счету в плане счетов, имеют порядко­вые номера. Для субконто может быть установлен флаг «Учет по валютной сумме», который устанавливает для данного субконто счета режим использова­ния учета по валютной сумме.

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

Пример:

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

Сч.НайтиПоКоду(76.02);

Для Инд = 1 По Сч.КоличествоСубконто() Цикл

   Сообщить(Субконто + Сч.ВидСубконто(Инд) +

        ?(Сч.УчетПоВалютнойСумме(Инд) = 1, (об.), ));

КонецЕсли;

УчетПоКоличеству

Устанавливает/возвращает значение флага «Учет по количеству» субконто счета.

Синтаксис:

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

Англоязычный синоним:

AccountingByAmount

Параметры:

НомерСубконто Числовое выражение — порядковый номер суб­конто счета.
УчетПоКоличеству Необязательный параметр. Числовое значение: 1 или 0. Данный параметр снимает или устанавли­вает флаг «Учет по количеству» для данного суб­конто счета. Если параметр не используется, то флаг «Учет по количеству» не меняется.
Возвращаемое значение:

Значение флага «Учет по количеству» на момент до использования мето­да: 1 — флаг установлен; 0 — флаг не установлен.

Описание:

Все виды субконто, прикрепленные к счету в плане счетов, имеют порядко­вые номера. Для субконто может быть установлен флаг «Учет по количеству», который устанавливает для данного субконто счета режим использования учета по количеству.

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

Пример:

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

Сч.НайтиПоКоду(76.02);

Для Инд = 1 По Сч.КоличествоСубконто() Цикл

   Сообщить(Субконто + Сч.ВидСубконто(Инд) +

           ?(Сч.УчетПоКоличеству(Инд) = 1, (об.), ));

КонецЕсли;

ИспользоватьДату

Установить дату выборки периодических реквизитов счета.

Синтаксис:

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

Англоязычный синоним:

UseDate

Параметры:

Дата Необязательный параметр. Выражение типа «да­та».
Возвращаемое значение:

Текущее значение используемой даты (на момент до исполнения метода). Описание:

Метод ИспользоватьДату устанавливает для объекта типа «Счет» дату, на которую будут в дальнейшем выбираться (или записываться) значения перио­дических реквизитов счета.

Данный метод, используется обычно, если нужно обращаться сразу к не-сколькитм периодическим реквизитам спозиционированного объекта. Для оди­ночных обращений рекомендуется использовать методы периодического рекви­зита счета Получить(Дата) и Установить(Дата, 3начение) .

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

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

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

Пример:

* Выведем список счетов со значением периодического реквизита СтатусУчета.

Процедура Сформировать()

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

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

   Сч.ВыбратьСчета();

   Пока Сч.ПолучитьСчет() = 1 Цикл

      Сообщить(Статус учета + Сч.Код + - + Сч.СтатусУчета);

   КонецЦикла;

КонецПроцедуры

ИспользоватьПланСчетов

Устанавливает план счетов, который будет использован объектом.

Синтаксис:

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

Англоязычный синоним:

UseChartOfAccounts

Параметры:

ПланСчетов Значение типа «План Счетов».
Возвращаемое значение:

Значение типа «План Счетов». Текущее значение на момент до исполнения метода.

Описание:

Данный метод выдает и устанавливает для объекта план счетов, который будет использован им в дальнейшем для поиска, выбора, обхода счетов.

Метод ИспользоватьПланСчетов имеет смысл использовать в том случае, если объект создан функцией СоздатьОбъект для работы с разными планами счетов — СоздатьОбъект(Счет). Если объект был создан для работы с конкретным планом счетов, то все операции поиска и обхода счетов будут ра­ботать только с этим планом счетов.

Пример:

Процедура Сформировать()

   Сч = СоздатьОбъект(Счет);

   Сч.ИспользоватьПланСчетов(ПланыСчетов.Основной);

   Сч.ВыбратьСчета();

   Пока Сч.ПолучитьСчет() = 1 Цикл

      Сообщить(Счет + Сч.Код);

   КонецЦикла;

КонецПроцедуры

Родитель

Выдает счет вышестоящего уровня.

Синтаксис:

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

Англоязычный синоним:

Параметры:

НомерУровня                Необязательный параметр. Число — номер уровня. Определяет какого уровня вышестоящий счет должен быть выдан. Если параметр не указан -выдается непосредственный родитель.

Возвращаемое значение:

Значение типа «Счет». Счет вышестоящего уровня данного счета.

Описание:

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

Пример:

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

Сч.НайтиПоКоду(76.02);

Сообщить(Родитель + Сч.Родитель());

//Возвращает Родитель 76

ИспользоватьРодителя

Устанавливает/выдает значение родителя (счета вышестоящего уровня), используемого для выборки счетов.

Синтаксис:

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

Англоязычный синоним:

UseParent

Параметры:

Родитель Значение типа «Счет», устанавливаемое в качестве используемого родителя. Необязательный параметр. Если параметр не указан — значение используемого родителя не изменяется.
ФлагИзменения Необязательный параметр. Этим флагом регулирует­ся возможность интерактивного изменения родителя. 1 — пользователь может изменить родителя интерак­тивно, 0 — пользователь не может интерактивно изме­нить родителя.
Возвращаемое значение:

Значение типа «Счет». Текущее значение используемого родителя на мо­мент до исполнения метода.

Описание:

При наличии в плане счетов нескольких уровней счетов-субсчетов при пе­реборе или выборе счета существует возможность отбирать только счета подчи­ненные некоторому счету. Метод ИспользоватьРодителя устанавливает зна­чение, которе будет затем использовано методами перебора и выбора счета.

Пример:

Процедура Сформировать ()

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

   Сч.ИспользоватьРодителя(СчетПоКоду(01));

   Сч.ВыбратьСчета();

   Пока Сч.ПолучитьСчет(0) = 1 Цикл

      Сообщить(Сч.Код);

   КонецЦикла;

КонецПроцедуры

КодСубсчета

Выдает код счета без кодов счетов вышестоящих уровней.

Синтаксис:

КодСубсчета()

Англоязычный синоним:

SubAccountCode

Возвращаемое значение:

Строковое значение — код счета без кодов счетов вышестоящих уровней.

Описание:

При наличии в плане счетов нескольких уровней счетов-субсчетов атрибут Код объекта типа «Счет» содержит полный код счета с учетом всех выше­стоящих счетов через разделитель (точку). Метод КодСубсчета выдает собст­венно код даного счета без кодов счетов вышестоящих уровней.

Пример:

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

Сч.НайтиПоКоду(76.02);

Сообщить(Код счета + Сч.Код); //Возвращает 76.02

Сообщить(Код Субсчета + Сч.КодСубсчета); //Возвращает 76

Блокировка

Установить/прочитать режим блокировки.

Синтаксис:

Блокировка(ВклВыкл)

Англоязычный синоним:

Locking

Параметры:

ВклВыкл Необязательный параметр. Число: 1 — включить; 0 — выключить.
Возвращаемое значение:

Если при вызове метода параметр ВклВыкл не задан, то возвращается Режим блокировки до выполнения метода. Число: 1 — заблокирован; 0 — свобо­ден.

Если при вызове метода параметр ВклВыкл задан, то возвращается ре­зультат выполнения метода блокировки. Число: 1 — успешно; 0 — не получи­лось.

Описание:

Метод Блокировка позволяет установить/прочитать режим блокировки.

Пример:

Блокировка(0);

Новый

Создает новый счет.

Синтаксис:

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

Англоязычный синоним:

New

Параметры:

ЕстьСубсчета Числовое выражение — признак наличия субсчетов у создаваемого счета. Может принимать значения:

0 — счет не будет иметь субсчета;

1 — счет будет иметь субсчета.

По умолчанию 0;
Описание:

Создает новый счет. При добавлении нового счета необходимо указать, бу­дет ли счет иметь субсчета. То есть будет он являться собственно счетом или группой.

Если счет будет иметь субсчета, то такой счет нельзя будет указать в каче­стве корреспондирующего счета при вводе проводок — необходимо будет ука­зывать субсчета этого счета. Иначе, если счет не будет иметь субсчетов, его можно указывать при вводе проводок.

Однако, если для счета, для которого было указано отсутствие субсчетов, все-таки введен субсчет, то система 1С:Предприятие выполнит следующее:

· Будет создан новый счет (группа) с тем же кодом;

· Код данного счета будет дополнен субсчетом 0;

В дальнейшем код субсчета 0 можно будет изменить на другой.

Замечание. Метод Новый сам по себе не выполняет запись нового счета в ин­формационную базу, для внесения нового счета в список счетов, следует выполнить метод Записать.

Пример:

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

Сч.Новый();

Сч.Код = 76.02;

Сч.Записать();

НазначитьТип

Назначить тип для реквизита неопределенного вида.

Синтаксис:

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

Англоязычный синоним:

SetType

Параметры:

ИмяРеквизита Строковое выражение — название реквизита счета неопределенного типа, как он назван в конфигурато­ре.
ИмяТипа Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту счета. Например:

Строка, Число, Справочник.Товары, Документ. РасходнаяНакладная и т. п.
Длина Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
Точность Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.
Описание:

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

Пример:

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

Записать

Записывает изменения счета.

Синтаксис:

Записать()

Англоязычный синоним:

Write

Описание:

Метод Записать выполняет запись (обновление) счета. Все изменения сделанные в существующем счете, или созданном счете будут занесены в информационную базу только после вызова метода Записать.

Замечание. Если этот метод применяется в Модуле формы счета непосредст­венно к счету локального контекста, то данный метод отрабатывает те же действия, как интерактивное нажатие пользователем кнопки с формулой #Записать.

Пример:

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

Сч.НайтиПоКоду(76.02);

Сч.Наименование = Прочие взаиморасчеты;

Сч.Записать();

Удалить

Удаляет счет из плана счетов.

Синтаксис:

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

Англоязычный синоним:

Delete

Параметры:

Режим Числовое выражение: 1 — непосредственное уда­ление; 0 — пометка на удаление. По умолчанию 1;
Описание:

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

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

Пример:

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

Сч.НайтиПоКоду(76.02);

Сч.Удалить(0);

СнятьПометкуУдаления

Снять пометку удаления счета.

Синтаксис:

СнятьПометкуУдаления()

Англоязычный синоним:

ClearDeleteMark

Описание:

Метод СнятьПометкуУдаления снимает пометку удаления текущего сче­та.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Пример:

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

Сч.НайтиПоКоду(76.02);

Сч.СнятьПометкуУдаления();

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

Описанные в данном разделе методы доступны только в контексте Модуля формы списка счетов (см. «Виды программных модулей»).

ИспользоватьДату

Установить дату выборки периодических реквизитов формы списка счетов.

Синтаксис:

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

Англоязычный синоним:

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С:Предприятие неявно при возникновении соответствующего собы­тия. Описание предопределенных процедур также см. гл. «Системные предо­пределенные процедуры».

ПриВводеСтроки

Предопределенная процедура при вводе новой строки списка счетов

Синтаксис:

ПриВводеСтроки()

Англоязычный синоним:

OnNewLine

Описание:

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

Данная предопределенная процедура может располагаться в Модуле формы списка счетов (см. «Виды программных модулей»).

Пример:

Процедура ПриВводеСтроки()

   Если НазваниеНабораПрав() = Оператор Тогда

      Предупреждение(У вас нет права добавлять счета!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриРедактированииНовойСтроки

Предопределенная процедура при редактировании новой строки спи­ска счетов.

Синтаксис:

ПриРедактированииНовойСтроки()

Англоязычный синоним:

OnEditNewLine

Описание:

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

Данная предопределенная процедура может располагаться в Модуле формы списка счетов (см. «Виды программных модулей»).

Пример:

Процедура ПриРедактированииНовойСтроки()

   СтатусСчета = ОснСтатусСчетов;

КонецПроцедуры

ПриНачалеРедактированияСтроки

Предопределенная процедура при начале редактирования сущест­вующей строки списка счетов.

Синтаксис:

ПриНачалеРедактированияСтроки()

Англоязычный синоним:

OnStartEditLine

Описание:

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

Данная предопределенная процедура может располагаться в Модуле формы списка счетов (см. «Виды программных модулей»).

Пример:

Процедура ПриНачалеРедактированияСтроки()

   Если НазваниеНабораПрав() = Оператор Тогда

      Предупреждение(У вас нет права менять счета!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриВыбореРодителя

Предопределенная процедура выбора родительской группы счета.

Синтаксис:

ПриВыбореРодителя(Счет)

Англоязычный синоним:

OnSetParent

Параметры:

Счет Значение счета, который интерактивно установ­лен в качестве родителя.
Описание:

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

Данная предопределенная процедура может располагаться только в Модуле формы списка счетов.

Пример:

Процедура ПриВыбореРодителя(Родитель)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если Родитель = ЗапрещеннаяГруппа Тогда

         Предупреждение(Вам запрещено изменять счет!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриЗаписи

Предопределенная процедура при записи строки списка счетов.

Синтаксис:

ПриЗаписи(СписокПериодРекв)

Англоязычный синоним:

OnWrite

Параметры:

СписокПериодРекв Строковое значение — список разделенных запя­тыми изменяемых периодических реквизитов счета. В данный параметр система 1С:Предприятие передает перечень периодиче­ских реквизитов, которые были интерактивно выбраны пользователем для обновления в окне диалога выбора.
Описание:

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

Формальный параметр СписокПериодРекв используется в теле проце­дуры для обработки ситуаций изменений периодических реквизитов счета.

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

Пример:

Процедура ПриЗаписи(СписокРекв)

   Если Валютный = 1 Тогда

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

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

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

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

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

ВводНового

Предопределенная процедура при вводе нового счета.

Синтаксис:

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

Англоязычный синоним:

InputNew

Параметры:

ПризнКопирования Признак того, что объект введен копированием. Число: 1 — объект введен копированием, 0 — просто новый объект. Данный признак может быть использован для анализа необходимости инициализации реквизитов нового объекта.
ОбъектКопирования Объект, который был скопирован.
Описание:

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

Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю нельзя вводить новые счета), ввода нового счета и открытие формы счета не будет выполнено.

Процедура ВводНового контекста справочников должна находиться в мо­дуле: формы счета (см. «Виды программных модулей»).

Пример:

Процедура ВводНового()

   Если НазваниеНабораПрав() = Оператор Тогда

      Предупреждение(У вас нет права добавлять счета!, 2);

      СтатусВозврата(0);

   КонецЕсли;

   СтатусСчета = ОснСтатусСчетов;

КонецПроцедуры

См. также: СтатусВозврата

ПриЗаписи

Предопределенная процедура при записи счета.

Синтаксис:

ПриЗаписи(СписокПериодРекв)

Англоязычный синоним:

OnWrite

Параметры:

СписокПериодРекв Строковое значение — список разделенных запя­тыми изменяемых периодических реквизитов счета. В данный параметр система 1С:Предприятие передает перечень периодиче­ских реквизитов, которые были интерактивно выбраны пользователем для обновления в окне диалога выбора.
Описание:

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

Формальный параметр СписокПериодРекв используется в теле проце­дуры для обработки ситуаций с изменениями периодических реквизитов счета.

Процедура ПриЗаписи контекста справочников должна находиться в моду­ле формы счета (см. «Виды программных модулей»).

Пример:

Процедура ПриЗаписи(СписокРекв)

   Если Валютный = 1 Тогда

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата


Глава 17 Работа с операциями и проводками

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

Контекст работы с операциями и проводками Для манипулирования данными операций и проводок из встроенного языка 1С:Предприятия используется агрегатный объект типа «Операция». Так как проводки в системе 1С:Предприятие принадлежат операциям, то управление и операциями и проводками выполняется объектом «Операция».

Во-первых, объект «Операция» используется для формирования и анализа проводок формируемых документом. Для этого у агрегатного объекта «Доку­мент» существует атрибут Операция типа «Операция», который обеспечивает доступ к операции данного документа.

Во-вторых, объект «Операция» непосредственно доступен в контекстах формы операции, формы журнала операции и формы журнала проводок. То есть в модулях указанных форм обращение к атрибутам и методам текущего объекта выполняется напрямую. В форме журнала операций текущим объектом является операция, на которой в данный момент стоит курсор в форме журна­ла. В форме журнала проводок текущим объектом является операция, которой принадлежит проводка, на которой в данный момент стоит курсор в форме журнала.

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

В этом варианте использования становятся доступны методы перебора опе­раций и проводок различных операций, а также добавления и удаления опера­ции.

Метод записи операции доступен также при проведении документа.

Как уже отмечалось, доступ к проводкам также осуществляется объектом «Операция». Методы и атрибуты объекта «Операция» осуществляют доступ к данным как собственно операции, так и к данным проводок. Операция содержит набор методов для перебора и позиционирования на конкретные проводки. При этом одна из проводок операции может быть текущей. Все обращения к атри­бутам и методам данных проводки будут относится именно к текущей провод­ке. Если текущей проводки нет, то обращение к атрибутам и методам проводки недоступно.

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

С точки зрения чтения, все операции используются практически одинаково. Однако изменения (создание новых, запись, удаление) операций сильно отли­чается для операций двух типов.

«Ручные» операции — это операции, введенные пользователем вручную или записанные объектом типа «Операции», созданным функцией СоздатьОбъект. Все изменения из встроенного языка этих операций производятся объек­тами типа «Операции», созданными функцией СоздатьОбъект. Такие опера­ции принадлежат документам специального вида «Операция», который не име­ет большинства свойств обычных документов и используется только для отра­жении в журналах документов «Ручных» операций. Вид документа «Операция» создается системой автоматически при внесении в конфигурацию первого объ­екта метаданных типа «План счетов».

Операции принадлежащие документам — это операции, которые создаются документами различных видов, которым установлен признак «Бухгалтерский учет» (кроме вида «Операция»). Эти операции могут записываться только при записи документов или при проведении документов. Наличие операции у кон-кертного документа регламентируется в метаданных в настройках вида доку­мента. Операция для документа конкретного вида может создаваться либо при записи (режим «Всегда»), либо создаваться выборочно (режим «Выборочно») (при помощи метода документа СуществуетОперация), либо только при про­ведении документа (режим «только при проведении»). В первых двух случаях изменение реквизитов самой операции может производиться в модуле формы документа и при записи они автоматически будут записаны в операцию при­надлежащую документу. Однако проводки в операцию принадлежащую доку­менту могут быть записаны в любом случае только в процессе проведения до­кумента (предопределенной процедуре ОбработкаПроведения). При этом в процессе проведения документа для записи операции следует вызвать метод операции Записать. Операция созданная документом в процессе проведения при перепроведении документа сначала уничтожается, а при выполнении про­цедуры ОбработкаПроведения записывается заново. Если документ делается не проведенным, то проводки из операции удаляются, а сама операция уничто­жается, если она была записана в режиме «только при проведении».

Атрибуты объекта «Операция»

ДатаОперации

Дата операции.

Синтаксис:

ДатаОперации

Англоязычный синоним:

OperDate

Значение:

Значение типа «Дата».

Описание:

Атрибут ДатаОперации содержит дату бухгалтерской операции. Так как каждая бухгалтерская операция принадлежит документу (причем только одно­му, а операция введенная вручную также принадлежит специальному докумен­ту «Операция»), значение атрибута совпадает со значением атрибута ДатаДок документа, которому принедлежит операция. Наличие данного атрибута у оп-реации упрощает обращение к дате документа, которому принадлежит опера­ция.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Сообщить(Опер.ДатаОперации);

Содержание

Содержание операции.

Синтаксис:

Содержание

Англоязычный синоним:

Description

Значение:

Значение типа «Строка».

Описание:

Атрибут Содержание служит для обращения к содержанию операции. Содержание операции представляет собой произвольную символьную стро­ку. Максимальная длина содержания задается в конфигураторе при редактиро­вании свойств объекта метаданных «Операция».

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Сообщить(Опер.Содержание);

СуммаОперации

Сумма операции.

Синтаксис:

СуммаОперации

Англоязычный синоним:

OperSum

Значение:

Значение типа «Число».

Описание:

Атрибут СуммаОперации служит для обращения к сумме операции. Сумма операции является положительным или отрицательным числом. Сумма операции предназначена лишь для иллюстрирования денежного выра­жения операции и не влияет на бухгалтерские итоги. Длина и точность суммы операции задается конфигураторе при редактировании свойств объекта мета­данных «Операция».

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Сообщить(Опер.СуммаОперации);

РеквизитОперации

Возвращает или задает значение дополнительного реквизита опера­ции.

Синтаксис:

РеквизитОперации Идентификатор дополнительного реквизита операции, как он задан в конфигураторе.
Значение:

Тип значения определяется типом реквизита заданным в метаданных.

Описание:

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

Атрибут Реквизит позволяет обращаться к значению дополнительного реквизита операции. Для обращения к конкретному реквизиту должен быть указан его идентификатор, заданный для этого реквизита в конфигураторе.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Сообщить(Опер.ПризнакУчета);

Документ

Документ, которому принадлежит операция.

Синтаксис:

Документ

Англоязычный синоним:

Document

Значение:

Значение типа документ.

Описание:

Атрибут Документ является атрибутом «только для чтения», то есть ему нельзя присваивать никакого значения. Он служит для обращения к документу, котрому принадлежит операция. Так, как любая операция принадлежит доку­менту (операция введенная «вручную» принадлежит документу специального вида «Операция») доступ к некоторым свойствам операции, например, номеру возможен только посредством обращения к атрибуту Документ.

Атрибут Документ предназначен только для доступа к атрибутам и рекви­зитам документа, которому принадлежит операция. Для получения значения типа «Документ» используется метод ТекущийДокумент.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Сообщить(Опер.Документ.НомерДок);

Сумма

Сумма выбранной проводки (корреспонденции) операции.

Синтаксис:

Сумма

Англоязычный синоним:

Sum

Значение:

Значение типа «Число».

Описание:

Атрибут Сумма служит для обращения к сумме выбранной проводки (кор­респонденции) операции.

Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Опера­ции» и «Журнал проводок» текущая проводка определяется положением кур­сора.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Сумма + Опер.Сумма);

КонецЦикла;

Валюта

Валюта выбранной проводки или корреспонденции операции.

Синтаксис:

Валюта

Англоязычный синоним:

Currency

Значение:

Значение типа «Справочник», вид которого определен в настройке валют­ного учета в конфигурации.

Описание:

Атрибут Валюта служит для обращения к валюте выбранной проводки или корреспонденции операции.

Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Опера­ции» и «Журнал проводок» текущая проводка определяется положением кур­сора.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДоку мент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Валюта + Опер.Валюта + Вал.сумма= + Опер.ВалСумма);

КонецЦикла;

ВалСумма

Валютная сумма выбранной проводки или корреспонденции опера­ции.

Синтаксис:

ВалСумма

Англоязычный синоним:

CurSum

Значение:

Значение типа «Число».

Описание:

Атрибут ВалСумма служит для обращения к сумме в валюте выбранной проводки или корреспонденции операции.

Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Опера­ции» и «Журнал проводок» текущая проводка определяется положением кур­сора.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Валюта + Опер.Валюта + Вал.сумма= + Опер.ВалСумма);

КонецЦикла;

Количество

Количество выбранной проводки или корреспонденции операции.

Синтаксис:

Количество

Англоязычный синоним:

Amount

Значение:

Значение типа «Число».

Описание:

Атрибут Количество служит для обращению к количеству выбранной про­водки или корреспонденции операции.

Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Опера­ции» и «Журнал проводок» текущая проводка определяется положением кур­сора.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Количество =+0пер.Количество);

КонецЦикла;

РеквизитПроводки

Обращение к дополнительному реквизиту проводки.

Синтаксис:

РеквизитПроводки Идентификатор дополнительного реквизита проводки, как он задан в конфигураторе.
Описание:

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

Атрибут РеквизитПроводки позволяет обращаться к значениям допол­нительных реквизитов проводки. Для обращения к конкретному реквизиту должен быть указан его идентификатор, заданный для этого реквизита в кон­фигураторе.

Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Опера­ции» и «Журнал проводок» текущая проводка определяется положением кур­сора.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Количество = + Опер.Количество);

КонецЦикла;

Дебет

Обращение к дебету проводки (корреспонденции).

Синтаксис:

Дебет

Англоязычный синоним:

Debit

Описание:

Атрибут Дебет служит для обращения к дебетовой части текущей проводки (корреспонденции) операции. Данный атрибут возвращает агрегатный объект специального типа «Дебет», который используется только для доступа к дан­ным дебетовой части конкретной проводки (корреспонденции) операции и не используется отдельно.

Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Опера­ции» и «Журнал проводок» текущая проводка определяется положением кур­сора.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Проводка + Опер.Дебет.Счет + - + Опер.Кредит.Счет);

КонецЦикла;

Кредит

Обращение к кредиту проводки (корреспонденции).

Синтаксис:

Кредит

Англоязычный синоним:

Credit

Описание:

Атрибут Кредит служит для обращения к кредитовой части текущей про­водки (корреспонденции) операции. Данный атрибут возвращает агрегатный объект специального типа «Кредит», который используется только для доступа к данным кредитовой части конкретной проводки (корреспонденции) операции и не используется отдельно.

Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Опера­ции» и «Журнал проводок» текущая проводка определяется положением кур­сора.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Проводка + Опер.Дебет.Счет + - + Опер.Кредит.Счет);

КонецЦикла;

Атрибуты объектов «Дебет» и «Кредит»

Счет

Счет дебета/кредита проводки (корреспонденции) операции.

Синтаксис:

Счет

Англоязычный синоним:

Account

Значение:

Значение типа «Счет».

Описание:

Атрибут Счет служит для доступа к счету дебета/кредита проводки или корреспонденции операции.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Проводка + Опер.Дебет.Счет.Наименование + - +

                          Опер.Кредит.Счет.Наименование);

КонецЦикла;

Субконто

Субконто дебета/кредита проводки (корреспонденции) операции.

Синтаксис:

Субконто Идентификатор вида субконто, как он задан в конфигураторе.
Описание:

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

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Если Опер.Дебет.Счет=СчетПоКоду(60) Тогда

      Сообщить(Субконто + Опер.Дебет.Организация);

   КонецЕсли;

КонецЦикла;

Методы объектов «Дебет» и «Кредит»

Субконто

Обращение к субконто дебета/кредита проводки (корреспонденции) операции.

Синтаксис:

Субконто(ПорядковыйНомерСубконто | ВидСубконто, Субконто)

Англоязычный синоним:

Subconto

Параметры:

ПорядковыйНомерСубконто Необязательный параметр. Числовое вы­ражение — порядковый номер субконто. По умолчанию 1.
ВидСубконто Значение типа «Вид субконто».
Су6конто Необязательный параметр. Значение суб­конто. Если параметр не задан — значе­ние не изменяется.
Возвращаемое значение:

Если указан порядковый номер вида субконто или вид субконто, метод воз­вращает значение субконто.

Описание:

К любому счету или субсчету в плане счетов может быть «прикреплено» до 5 видов субконто. Максимальное количество видов субконто, которое можно «прикрепить» к счету, устанавливается в конфигураторе при редактировании свойств планов счетов. Количество субконто, которое реально прикреплено к счету, не превышает установ­лен­ного максимального количества.

Все виды субконто, прикрепленные к счету в плане счетов, имеют порядко­вые номера. Эти номера выдаются в названии колонок для видов субконто в окне редактирования плана счетов; «Субконто1», «Субконто2» ... «Субконто5».

Метод Субконто дебета/кредита проводки служит для получения и уста­новки значения субконто по его номеру или виду соотвественно в дебете или в кредите проводки (коррепспонденции) операции.

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

Если при использовании метода Субконто первым параметром передается порядковый номер субконто или вид субконто, то метод возвратит значение субконто, имеющего этот номер.

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

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Для Инд = 1 По Опер.Дебет.Счет.КоличествоСубконто() Цикл

      Сообщить(Субконто + Опер.Дебет.Субконто(Инд));

   КонецЦикла;

КонецЦикла;

ПредставлениеСубконто

Представление субконто дебета/кредита проводки (корреспонден­ции) операции.

Синтаксис:

ПредставлениеСубконто(ПорядковыйНомерСубконто | ВидСубконто, Режим)

Англоязычный синоним:

SubcontoPresentation

Параметры:

ПорядковыйНомерСубконто Необязательный параметр. Числовое вы­ражение — порядковый номер субконто. По умолчанию 1.
ВидСу6конто Идентификатор вида субконто.
Режим Необязательный параметр. Числовое вы­ражение — признак полноты выдачи представления субконто. Может прини­мать значения: 0 — полное представле­ние; 1 — краткое представление. По умолчанию 0;
Возвращаемое значение:

Символьная строка — представление субконто.

Описание:

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

Представление может быть настроено в конфигурации для видов субконто типа «Справочник» или «Документ». Формат представления определяется в конфигураторе при редактировании свойств вида субконто.

Метод ПредставлениеСубконто позволяет получить представление для субконто дебета/кредита текущей проводки (корреспонденции).

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Для Инд = 1 По Опер.Дебет.Счет.КоличествоСубконто() Цикл

      Сообщить(Субконто + Опер.Дебет.ПредставлениеСубконто(Инд));

   КонецЦикла;

КонецЦикла;

Методы объекта «Операция»

ВыбратьОперации

Открывает выборку операций за период.

Синтаксис:

ВыбратьОперации(НачалоПериода, КонецПериода)

Англоязычный синоним:

SelectOpers

Параметры:

НачалоПериода Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого уста­навливается начало выборки операций.
КонецПериода Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором уста­навливается конец выборки операций.
Возвращаемое значение:

Число: 1 — действие выполнено и в выборке есть хотя бы одна операция;

0 — действие не выполнено или в выборке нет ни одной операции.

Описание:

Метод ВыбратьОперации открывает выборку, содержащую операции за указанный период.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Сообщить(Операция + Опер.Содержание);

КонецЦикла;

ВыбратьОперацииСПроводками

Открывает выборку оперций с проводками за указанный период.

Синтаксис 1:

ВыбратьОперацииСПроводками(НачалоПериода, КонецПериода, Фильтр, Валюта,

                           ПланСчетов, РазделительУчета)

Синтаксис 2:

ВыбратьОперацииСПроводками(НачалоПериода, КонецПериода, Счет, КорСчет,

                           Флаг, Валюта, ПланСчетов, РазделительУчета)

Англоязычный синоним:

SelectOpersAndEntries

Параметры:

НачалоПериода Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого ус­танавливается начало выборки операций.
КонецПериода Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором устанавливается конец выборки операций.
Фильтр Необязательный параметр. Строка — условие от­бора проводок.
ПланСчетов Необязательный параметр. Значение типа «План Счетов». Если параметр не указан — по всем пла­нам счетов.
РазделительУчета Необязательный параметр. Значение разделителя учета. Если параметр не указан — по всем значе­ниям разделителя учета.
Счет Необязательный параметр. Счет — счет, по кото­рому будут отбираться проводки.
КорСчет Необязательный параметр. Счет — корреспонди­рующий счет, по которому будут отбираться про­водки. Параметр имеет смысл, если указан пара­метр Счет.
Флаг Необязательный параметр. Число — признак вида оборота. Параметр может принимать значения:

1 — отбирать проводки только по дебету счета;

2 — отбирать проводки только по кредиту счета;

3 — отбирать проводки и по дебету, и по кредиту.

По умолчанию 3.
Валюта Необязательный параметр. Значание типа «спра­вочник» (вида справочника используемого для валютного учета) — признак отбора проводок по валюте.
Возвращаемое значение:

Число: 1 — действие выполнено и в выборке есть хотя бы одна проводка;

0 — действие не выполнено или в выборке нет ни одной проводки.

Описание:

Метод ВыбратьОперацииСПроводками служит для выбора проводок опе­раций за период. Параметрами могут являеться различные условия отбора про­водок.

После вызова данного метода метод ПолучитьПроводку выбирает очеред­ную проводку из выборки удовлетворяющую заданным условиям, а метод ПолучитьОперацию выбирает первую проводку слудующей операции удовле­творяющую заданным условиям.

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

В параметре Фильтр задаются критерии отбора проводок для включения в выборку. Если параметр не заполнен, в выборку включаются все проводки. В общем случае в параметре Фильтр могут находиться одна или несколько корреспонденции счетов или символьных строк, разделяемых точкой с запятой «;». Символьные строки представляют собой наборы символов, заключенные в кавычки (при передаче строки в явном виде в параметре внутри строки двой­ные кавычки задаются двумя символами двойных кавычек). Корреспонденции имеют вид:

n — проводки со счетом n;

n, m — проводки в дебет счета n с кредита счета m.

Здесь в качестве n и m может указываться звездочка («*»), она обозначает любой счет. Например, *,51 — все проводки с кредита 51 счета.

В выборку включаются все проводки, удовлетворяющие следующим усло­виям:

Если в параметре Фильтр указаны корреспонденции счетов, то проводка должна соответствовать одной из этих корреспонденции.

Если параметре Фильтр указаны строки символов, то в проводке должна содержаться хотя бы одна из этих строк — либо в содержании операции, либо представлениях значений субконто и реквизитов проводки и операции.

Примеры:

50 — все проводки со счетом 50;
50, * — все проводки в дебет 50 счета;
* , 51 — все проводки с кредита 51 счета;
50, 51 — все проводки в дебет 50 счета с кредита 51;
51; 52 — все проводки со счетом 51 или счетом 52;
46, 68.2 — все проводки в дебет 46 счета с кредита 68.2;
бумага — все проводки, содержащие в содержании операции или в суб­конто или в реквизитах слово «бумага»;
бумага; картон — все проводки, содержащие в содержании операции или в субконто или в реквизитах слово «бумага» или слово «картон»;
*, 46; бумага — все проводки по кредиту 46 счета, содержащие в содер­жании операции или в субконто или в реквизитах слово «бумага»;
Кроме того, в обоих вариантах задаются дополнительные условия: валюта, план счетов, разделитель учета.

Параметр Валюта является значением типа «Справочник» вида, опреде­ленного при настройке валютного учета в метаданных. Если параметр указан, в отбор будут включены проводки только по указанной валюте. При этом пустое значение типа «Справочник» соответствующего вида считается указанием отбора по пустой валюте. Для того, чтобы отбор по валюте не производился нужно либо опустить данный параметр, либо передать туда значение иного ти­па,  например,  пустую сроку.

Параметр ПланСчетов является значением типа «План Счетов». Если параметр указан, в отбор будут включены проводки только по указанному пла­ну счетов.

Параметр РазделительУчета является значением объекта метаданных, выбранного в качестве разделителя учета.

Если указан параметр РазделительУчета, в отбор будут включены проводки с указанным значением разделителя учета.

Параметры Счет и КорСчет задают условние отбора проводок по сче­там.

Если указан параметр Счет, будут отбраны проводки только по указан­ному счету. Дополнительным условие отбора является значением параметра Флаг.

Если указаны параметр Счет и КорСчет, будут отобораны проводки только по указанной креспонденции счетов.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.ВыбратьОперацииСПроводками(ДатаНач, ДатаКон, 50, 51; По Чеку );

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Сумма + Опер.Сумма);

КонецЦикла;

ИспользоватьСубконто

Задает фильтр по субконто для функции ВыбратьОперацииСПроводками.

Синтаксис:

ИспользоватьСубконто(ВидСубконто, Субконто)

Англоязычный синоним:

UseSubconto

Параметры:

ВидСубконто Значение типа «ВидСубконто» — отбор проводок будет выполнен только для субконто указанного вида.
Субконто Значение субконто — отбор проводок будет вы­полнен только для указанного субконто. Кроме того, в качестве значения данного параметра можно передавать «Список значений».
Описание:

Метод ИспользоватьСубконто устанавливает фильтр по субконто, кото­рый используется при отборе проводок методом ВыбратьОперацииСПроводками.

Метод ИспользоватьСубконто может вызываться последовательно не­сколько раз. В этом случае фильтры, устанавливаемые этой функцией, сумми­руются.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.ИспользоватьСубконто(ВидыСубконто.Организации, ВыбОрг);

Опер.ВыбратьОперацииСПроводками(ДатаНач, ДатаКон, 60);

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Сумма + Опер.Сумма);

КонецЦикла;

ИспользоватьКорСубконто

Задает фильтр по корреспондирующим субконто для функции

ВыбратьОперацииСПроводками.

Синтаксис:

ИспользоватьКорСубконто(ВидСубконто, Субконто)

Англоязычный синоним:

UseCorSubconto

Параметры:

ВидСубконто Значение типа «ВидСубконто» — отбор проводок будет выполнен только для корреспондирующих субконто указанного вида.
Субконто Значение субконто — отбор проводок будет вы­полнен только для указанного корреспондирую­щего субконто. Кроме того, в качестве значения данного параметра можно передавать «Список значений».
Описание:

Метод ИспользоватьКорСубконто устанавливает фильтр по корреспон­дирующим субконто, который используется при отборе проводок методом ВыбратьОперацииСПроводками.

Метод ИспользоватьКорСубконто может вызываться последовательно несколько раз. В этом случае фильтры, устанавливаемые этой функцией, сум­мируются.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.ИспользоватьСубконто(ВидыСубконто.Организации, ВыбОрг);

Опер.ИспользоватьКорСубконто(ВидыСубконто.Товары, ВыбТовар);

Опер.ВыбратьОперацииСПроводками(ДатаНач, ДатаКон, 60);

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Сумма + Опер.Сумма);

КонецЦикла;

ВыбратьПоЗначению

Открывает выборку операций или проводок, отобранных по значе­нию отбора.

Синтаксис:

ВыбратьПоЗначению(НачалоПериода, КонецПериода , ВидОтбора, 3начение0тбора)

Англоязычный синоним:

SelectByValue

Параметры:

НачалоПериода Необязательный параметр. Выражение типа дата, документ или позиция документа, с которого уста­навливается начало выборки операций.
КонецПериода Необязательный параметр. Выражение типа дата, документ или позиция документа, на котором уста­навливается конец выборки операций.
ВидОтбора Необязательный параметр. Символьная строка — название вида отбора (см. ниже).
3начение0тбора Необязательный параметр. Значение отбора вида, указанного в параметре ВидОтбора.
Возвращаемое значение:

Число: 1 — действие выполнено и в выборке есть хотя бы одна операция или проводка; 0 — действие не выполнено или в выборке нет ни одной опера­ции или проводки.

Описание:

Метод ВыбратьПоЗначению открывает выборку, содержащую операции или проводки за указанный период.

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

Параметр ВидОтбора должен содержать название вида отборав виде символьной строки.

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

СуммаОперации

(OperSum)
Отбор по сумме операции. Доступно если в метаданных включен отбор по сумме опера­ции.
Содержание

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

Счет (Account) Отбор по счету дебета или счету кредита проводки. Доступно если в метаданных вклю­чен отбор по счетам проводок.
СчетДт (AccountDt) Отбор по счету дебета проводки. Доступно если в метаданных включен отбор по дебе­ту/кредиту счетов проводок.
СчетКт (AccountKt) Отбор по счету кредита проводки. Доступно если в метаданных включен отбор по дебе­ту/кредиту счетов проводок.
Валюта (Currency) Отбор по валюте проводки. Доступно если в метаданных включен отбор по валюте прово­док.
ВидСубконто Отбор по виду субконто. Идентификатор вида субконто должен быть указан так, как он задан в метаданных. Доступно если в метаданных включен отбор по этому виду субконто.
РеквизитПроводки Отбор по дополнительному реквизиту проводки. Идентификатор реквизита должен быть указан так, как он задан в метаданных. Доступно если в метаданных включен отбор по этому реквизиту проводки.
Параметр 3начениеОтбора задает значение отбора.

После выполнения данного метода обход операций (проводок) осуществля­ется методами ПолучитьОперацию и ПолучитьПроводку.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.ВыбратьПоЗначению(ДатаНач, ДатаКон, Счет, СчетПоКоду(60));

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Сумма + Опер.Сумма);

КонецЦикла;

ПолучитьОперацию

Извлекает операции из выборки, открытой при помощи метода

ВыбратьОперции.

Синтаксис:

ПолучитьОперацию()

Англоязычный синоним:

GetOper

Возвращаемое значение:

Число: 1 — операция выбрана успешно; 0 — операция не выбрана (отсутст­вует).

Описание:

Метод ПолучитьОперацию выбирает очередную операцию из выборки, от­крытой при помощи метода ВыбратьОперации.

Метод ПолучитьОперацию используется для организации цикла по опера­циям. Условием цикла может служить равенство 1 возвращаемого значения метода: цикл выполняется, пока метод ПолучитьОперацию возвращает 1.

Метод возвращает 0, когда очередная операция не выбрана. Это происходит, если при предыдущем применении метода была выбрана последняя операция выборки.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Сообщить(Операция + Опер.Содержание);

КонецЦикла;

НайтиОперацию

Позиционирует объект по значению типа «Документ».

Синтаксис:

НайтиОперацию([Документ])

Англоязычный синоним:

FindOper

Параметры:

Документ Значение типа «Документ».
Возвращаемое значение:

Число: 1 — действие выполнено, операция найдена; 0 — действие не выпол­нено, операция не найдена.

Описание:

Метод НайтиОперацию осуществляет поиск операции по значению типа «Документ».

В системе 1С:Предприятие каждая операция принадлежит документу. При­чем операция принадлажит только одному документу, а у документа может существовать только одна операция. Операции введенные вручную принадле­жат документам специального вида «Операция».

Поэтому не существует возможности передачи такого значения как «Опера­ция». Для «идентификации» операции фактически используется значение до­кумента, которому она принадлежит. Поэтому для позиционировании объекта «Операция» непосредственно на конкретную операцию используется значение типа «Документ».

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Выбрана

Определяет выбрана ли в данный момент операция.

Синтаксис:

Выбрана()

Англоязычный синоним:

Selected

Возвращаемое значение:

Число: 1 — операция выбрана; 0 — операция не выбрана.

Описание:

При использовании объекта «Операция» созданного функцией СоздатьОбъект метод Выбрана определяет спозиционирован ли объект в на­стоящий момент на некоторой операции или нет.

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

При использовании в форме журнала операций (проводок) метод определя­ет спозиционирован ли курсор.

При использовании в форме операции метод определяет, записана новая операция или нет.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Если Опер.Выбрана() = 0 Тогда

   Сообщить(Операция не найдена);

КонецЕсли;

УстановитьАтрибут

Установить значение реквизита по имени идентификатора.

Синтаксис:

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

Англоязычный синоним:

SebAttrib

Параметры:

ИмяРеквизита Строковое выражение, содержащее имя реквизи­та, как оно задано в конфигураторе.
3начение Выражение, содержащее устанавливаемое значе­ние реквизита.
Описание:

Метод УстановитьАтрибут позволяет установить значение реквизита по имени идентификатора, как оно задано в конфигураторе.

Пример:

Опер.УстановитьАтрибут(ЦенаРозн, ЦенаТов);

ПолучитьАтрибут

Получить значение реквизита по имени идентификатора.

Синтаксис:

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

Англоязычный синоним:

GetAttrib

Параметры:

ИмяРеквизита Строковое выражение, содержащее имя реквизи­та, как оно задано в конфигураторе.
Возвращаемое значение:

Значение реквизита ИмяРеквизита.

Описание:

Метод ПолучитьАтрибут позволяет получить значение реквизита по име­ни идентификатора, как оно задано в конфигураторе.

Пример:

ЦенаТов = Опер.ПолучитьАтрибут(ЦенаРозн);

ВыбратьПроводки

Открывает выборку проводок текущей операции.

Синтаксис:

ВыбратьПроводки()

Англоязычный синоним:

Select Entries

Возвращаемое значение:

Число: 1 — действие выполнено и в выборке есть хотя бы одна проводка;

0 —действие не выполнено или в выборке нет ни одной проводки.

Описание:

Метод ВыбратьПроводки открывает выборку проводок текущей операции. Данный метод предназначен для организации перебора проводок операции и используется вмесет с методом ПолучитьПроводку.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Проводка + Опер.Дебет.Счет + - + Опер.Кредит.Счет);

КонецЦикла;

ПолучитьПроводку

Получить проводку из выборки, открытой методом

ВыбратьПроводки.

Синтаксис:

ПолучитьПроводку()

Англоязычный синоним:

GetEntry

Возвращаемое значение:

Число: 1 — следующая проводка выбрана успешно; 0 — следующая проводка не выбрана (отсутствует).

Описание:

Метод ПолучитьПроводку выбирает очередную проводку из выборки, со­держащей проводки текущей операции. Перед применением метода ПолучитьПроводку выборка должна быть открыта при помощи метода ВыбратьПроводки.

Метод ПолучитьПроводку используется для организации цикла по про­водкам текущей операции. Условием цикла может служить равенство 1 воз­вращаемого значения метода: цикл выполняется, пока метод ПолучитьПроводку возвращает 1.

Метод возвращает 0, когда очередная проводка не выбрана. Это происходит, если при предыдущем применении метода была выбрана последняя проводка выборки.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Проводка + Опер.Дебет.Счет + - + Опер.Кредит.Счет);

КонецЦикла;

ПроводкаВыбрана

Определяет выбрана ли проводка операции.

Синтаксис:

ПроводкаВыбрана()

Англоязычный синоним:

EntrySelected

Возвращаемое значение:

Число: 1 — проводка выбрана; 0 — проводка не выбрана.

Описание:

Метод ПроводкаВыбрана позволяет определить, спозиционирована ли в настоящий момент некоторая проводка в операции или нет, то есть можно ли обращаться к атрибутам и методам проводки.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Опер.ПолучитьПроводку();

Если Опер.ПроводкаВыбрана() = 0 Тогда

   Сообщить(Нет проводок в операции);

КонецЕсли;

КоличествоПроводок

Оперделяет количество проводок в операции включая и проводки и корреспонденции.

Синтаксис:

КоличествоПроводок()

Англоязычный синоним:

EntriesCount

Возвращаемое значение:

Целое число — количество проводок в текущей операции.

Описание:

Метод позволяет опеределить полное количество проводок и корреспонден­ции в операции.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Для Инд = 1 До Опер.КоличествоПроводок() Цикл

   Опер.ПолучитьПроводкуПоНомеру(Инд);

КонецЦикла;

ПолучитьПроводкуПоНомеру

Выбрать в качестве текущей проводку по ее номеру и номеру коррес­понденции.

Синтаксис 1:

ПолучитьПроводкуПоНомеру(АбсолютныиНомерПроводки)

Синтаксис 2:

ПолучитьПроводкуПоНомеру(НомерПроводки, НомерКорреспонденции)

Англоязычный синоним:

GetEntryByNumber

Параметры:

АбсолютныйНомерПроводки Необязатальный параметр. Число — абсо­лютный номер проводки в операции (вклю­чая проводки и корреспонденции). Если не задан –1.
НомерПроводки Необязатальный параметр. Число — номер проводки в операции.
НомерКорреспонденции Необязатальный параметр. Число — номер корреспонденции в проводке. Параметр име­ет смысл, если указан параметр НомерПроводки.
Возвращаемое значение:

Число: 0 — проводка не найдена; 1 — проводка найдена.

Описание:

Метод ПолучитьПроводкуПоНомеру выбирает в качестве текущей про­водку или корреспонденцию проводки.

Если передан один параметр, то он воспринимается, как абсолютный номер проводки (корреспонденции) в операции среди всех проводок и корреспонден­ции. Если передано два параметра, то первый из них — это номер проводки, а второй — номер корреспонденции в проводке.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ПолучитьПроводкуПоНомеру(3, 2);

Для Инд = 1 До Опер.КоличествоПроводок() Цикл

   Опер.ПолучитьПроводкуПоНомеру(Инд);

КонецЦикла;

Пров

Обращение к данным проводки по номеру.

Синтаксис:

Пров(НомерПроводки, НомерКорреспонденции)

Англоязычный синоним:

Entry

Параметры:

НомерПроводки Необязатальный параметр. Число — номер проводки в операции. Если параметр не за­дан, то используется текущая проводка.
НомерКорреспонденции Необязатальный параметр. Число — номер корреспонденции в проводке. Параметр име­ет смысл, если указан параметр НомерКорреспонденции.
Возвращаемое значение:

Ссылка на указанную проводку.

Описание:

Метод Пров является специальным методом, позволяющим обратиться не­посредственно к данным проводки операции по номеру, без установки текущей проводки. Возвращаемое методом значение является ссылкой на проводку. Оно не может использоваться как значение, а предназначено только для доступа к атрибутам проводки. В основном метод Пров имеет смысл применять в форму­лах типовых операций.

Метод Пров позволяет обратится к атрибутам проводки Сумма, СуммаВал, Количество, Валюта, Дебет, Кредит, Реквизит.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Сообщить(Пров(2, 3).Дебет.Счет);

НомерПроводки

Определяет номер текущей проводки.

Синтаксис:

НомерПроводки()

Англоязычный синоним:

EntryNumber

Возвращаемое значение:

Число — номер проводки.

Описание:

Для текущей проводки (корреспонденции) возвращает ее номер (не абсо­лютный, а именно номер проводки без учета корреспонденции).

Пример:

Опер = СоздатьОбъект (Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Для Инд = 1 До Опер.КоличествоПроводок() Цикл

   Опер.ПолучитьПроводкуПоНомеру(Инд);

   Сообщить(Проводка + Опер.НомерПроводки() +

            Корр. + Опер.НомерКорреспонденции());

КонецЦикла;

ПланСчетов

Выдает план счетов текущей проводки.

Синтаксис:

ПланСчетов()

Англоязычный синоним:

ChartOfAccounts

Возвращаемое значение:

Значение типа «План Счетов».

Описание:

Для текущей проводки возвращает ее план счетов.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Для Инд = 1 До Опер.КоличествоПроводок() Цикл

   Опер.ПолучитьПроводкуПоНомеру(Инд);

   Сообщить(Проводка + Опер.НомерПроводки() + Корр. +

            Опер.НомерКорреспонденции() + Пл.сч. + Опер.ПланСчетов());

КонецЦикла;

НомерКорреспонденции

Определяет номер текущей корреспонденции в операции.

Синтаксис:

НомерКорреспонденции()

Англоязычный синоним:

CorrespondenceNumber

Возвращаемое значение:

Число — номер текущей корреспонденции в проводке.

Описание:

Для текущей проводки (корреспонденции) возвращает ее номер корреспон­денции, если проводка не сложная — 1.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Для Инд = 1 До Опер.КоличествоПроводок() Цикл

   Опер.ПолучитьПроводкуПоНомеру(Инд);

   Сообщить(Проводка + Опер.НомерПроводки() +

            Корр. + Опер.НомерКорреспонденции());

КонецЦикла;

СложнаяПроводка

Определяет является ли текущая проводка сложной.

Синтаксис:

СложнаяПроводка()

Англоязычный синоним:

ComplexEntry

Возвращаемое значение:

Число: 1 — текущая проводка является сложной; 0 — текущая проводка не является сложной.

Описание:

Для текущей проводки (корреспонденции) определяется является ли она сложной. Под сложной проводкой понимается проводка, состоящая из несколь­ких корреспонденции.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Для Инд = 1 До Опер.КоличествоПроводок() Цикл

   Опер.ПолучитьПроводкуПоНомеру(Инд);

   Если Опер.СложнаяПроводка() = 1 Тогда

      Сообщить(Проводка сложная);

   КонецЕсли;

КонецЦикла;

НомерСтрокиДокумента

Выдает номер строки документа, по которой сформирована текущая проводка.

Синтаксис:

НомерСтрокиДокумента()

Англоязычный синоним:

DocLineNum

Возвращаемое значение:

Число — номер строки документа, сформировавшей данную проводку.

Описание:

При добавлении проводок в операцию в процессе проведения документа существует возможность привязать каждую проводку к определенной строке документа. Это позволяет в дальнейшем получить из документа по номеру строки дополнительную информацию о проводке. Для того, что в проводке был простален номер строки документа следует в модуле документа перед добавле­нием проводки в операцию использовать метод ПривязыватьСтроку.

Метод НомерСтрокиДокумента выдает для текущей проводки номер стро­ки документа, который был привязан в момент добавления проводки.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Номер строки + Опер.НомерСтрокиДокумента());

КонецЦикла;

ПредставлениеПроводки

Получить представление для текущей проводки.

Синтаксис:

ПредставлениеПроводки(ПоСубконто)

Англоязычный синоним:

Entry Presentation

Параметры:

ПоСубконто Необязательный параметр. Флаг включения в пред­ставление проводки представления субконто провод­ки. Число:

0 — не включать представление субконто;

1 — включать представление субконто;

2 — включать развернутое представление субконто. Значение по умолчанию: 0.

Возвращаемое значение:

Строка — представление для текущей проводки.

Описание:

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

Метод ПредставлениеПроводки позволяет получить представление для текущей проводки.

Параметр метода позволяет указать, включать ли в представление проводки и представление субконто проводки. Представление субконо содержит инфор­мацию из реквизитов значения субконто. Представление может быть задано в конфигураторе при редактировании свойств вида субконто.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Проводка + Опер.ПредставлениеПроводки(1));

КонецЦикла;

ПредставлениеСубконто

Получить представление для субконто текущей проводки.

Синтаксис:

ПредставлениеСубконто()

Англоязычный синоним:

SubcontoPresentation

Возвращаемое значение:

Символьная строка — представление субконто текущей проводки.

Описание:

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

Представление может быть задано в конфигураторе при редактировании свойств вида субконто.

Метод ПредставлениеСубконто позволяет получить представление для всех субконто текущей проводки.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДокумент);

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Сообщить(Субконто + Опер.ПредставлениеСубконто());

КонецЦикла;

НазначитьТип

Назначить тип для реквизита неопределенного вида.

Синтаксис:

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

Англоязычный синоним:

SetType

Параметры:

ИмяРеквизита Строковое выражение — название реквизита опера­ции или проводки неопределенного типа, как он на­зван в конфигураторе.
ИмяТипа Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту опе­рации или проводки. Например:

Строка, Число, Справочник.Товары, Документ.РасходнаяНакладная ит.п.
Длина Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
Точность Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.
Описание:

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

Пример:

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

Новая

Создать новую операцию.

Синтаксис:

Новая()

Англоязычный синоним:

New

Описание:

Метод Новая используется для создания операций из встроенного языка, не принадлежащих документу какого либо вида.

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

Метод Новая может быть вызван только для объектов типа «Операция» созданных функцией СоздатьОбъект.

После вызова метода Новая могут быть заданы значения реквизитов операции и добавлены проводки. После этого для записи операции должен быть вызван метод Записать.

Пример:

* Создание и запись новой операции созданной в модуле отчета или обработки

Опер = СоздатьОбъект(Операция);

Опер.Новая();

Опер.Дата = РабочаяДата();

Опер.Содержание = Выдача денег из кассы;

Опер.Записать();

ЗаписатьПроводки

Записать в информационную базу уже добавленные и заполненные проводки операции.

Синтаксис:

ЗаписатьПроводки()

Англоязычный синоним:

WriteEntries

Описание:

Метод ЗаписатьПроводки выполняет запись в информационную базу уже добавленных и заполненных проводок операции. Метод может использоваться только для атрибута «Операция» документа в момент проведения (в процедуре ОбработкаПроведения). При этом происходит обновление бухгалтерских итогов. Это позволяет при проведении документа обращаться к бухгалтерским итогам уже измененным проводками, записанными этим документом. После выполнения метода ЗаписатьПроводки и до окончания процедуры ОбработкаПроведение уже невозможно изменять или удалять проводки, до­бавленные до вызова этого метода.

Данный метод имеет смысл использовать, только в том случае, если сущест­вует необходимость обращения к итогам, измененным проводками записывае­мой операции.

Замечание. При записи сложной проводки, если у главной корреспонденции сложной проводки не указана сумма (равна 0), то она автоматически вы­числяется на основании подчиненных корреспонденции.

Пример:

Процедура СписаниеСчетаНаСч20(Счт)

   // создаем и формируем проводки

КонецПроцедуры



Процедура СписаниеСчета20На40()

   // создаем и формируем проводки

КонецПроцедуры



Процедура ОбработкаПроведения()

   Сч20 = СчетПоКоду(20);

   Cч40 = CчeтПoKoдy(40);

   СписаниеСчетаНаСч20(СчетПоКоду(25));

   СписаниеСчетаНаСч20(СчетПоКоду(26));

   Операция.ЗаписатьПроводки();

   СписаниеСчета20На40();

   Операция.Содержание = Закрытие фин. результатов за +

                         Формат(ДатаДок, Д ММММГГГГ);

   Операция.Записать();

КонецПроцедуры

Записать

Записать измененную или новую операцию.

Синтаксис:

Записать()

Англоязычный синоним:

Write

Описание:

Метод Записать выполняет запись новой или измененной операции.

Он может быть использован в следующих ситуациях:

· метод Записать может быть вызван для записи новой или измененной ручной операции (принадлежащей документу специального вида «Опе­рация»). Такие операции могут создаваться и редактироваться пользо­вателем вручную или из встроенного языка объектом «Операция», соз­данным функцией СоздатьОбъект.

· метод Записать может быть вызван для записи операции созданной при проведении документа в предопределенной процедуре ОбработкаПроведения. Данный метод должен быть вызван после за­полнения операции содержанием реквизитов и проводками.

· этот метод может применяться в Модуле формы операции непосредст­венно к операции локального контекста, в этом случае данный метод отрабатывает те же действия, как интерактивное нажатие пользователем кнопки с формулой #3аписать.

Замечание. При записи сложной проводки, если у главной корреспонденции сложной проводки не указана сумма (равна 0), то она автоматически вы­числяется на основании подчиненных корреспонденции.

Пример:

* Создание и запись новой операции созданной в модуле отчета или обработки.

Опер = СоздатьОбъект(Операция);

Опер.Новая();

Опер.Дата = РабочаяДата();

Опер.Содержание = Деньги по чеку;

Опер.НоваяПроводка();

Опер.Дебет.Счет = СчетПоКоду(50);

Опер.Кредит.Счет = СчетПоКоду(51);

Опер.Сумма = 1000000;

Опер.Записать();

* Запись операции в модуле документа в процессе проведения

Процедура ОбработкаПроведения()

   Операция.Содержание = Выдача денег из кассы;

   Операция.НоваяПроводка();

   Операция.Дебет.Счет = СчетПоКоду(71);

   Операция.Дебет.Сотрудники = Сотрудник;

   Операция.Кредит.Счет = СчетПоКоду(50);

   Операция.Сумма = СуммаВыдачи;

   Операция.Записать();

КонецПроцедуры

Удалить

Удаление операции.

Синтаксис:

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

Англоязычный синоним:

Delete

Параметры:

Режим Необязательный параметр. Числовое выражение:
1 — непосредственное удаление; 0 — пометка на удаление. Значение по умолчанию — 1.

Описание:

Метод Удалить удаляет (или помечает на удаление) текущую операцию.

Замечание. Непосредственное удаление объекта следует применять только в особых случаях, так как могут существовать ссылки на удаляемое значе­ние в документах, справочниках и т. д. и непосредственное удаление может повлечет нарушение ссылочной целостности.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.

Если метод Удалить применен к операции принадлежащей документу не специального вида «Операция», то происходит удаление (или пометка) всего документа.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДок);

Опер.Удалить(0);

ПометкаУдаления

Проверяет наличие пометки на удаление текущей операции.

Синтаксис:

ПометкаУдаления()

Англоязычный синоним:

DeleteMark

Возвращаемое значение:

Число: 1 — операция помечена на удаление; 0 — операция не помечена на удаление.

Описание:

Метод используется для проверки, помечена ли на удаление текущая опера­ция или документ, которому принадлежит операция.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Если Опер.ПометкаУдаления() = 1 Тогда

      Сообщить(Опер.Документ);

   КонецЕсли;

КонецЦикла;

СнятьПометкуУдаления

Снять пометку удаления операции.

Синтаксис:

СнятьПометкуУдаления()

Англоязычный синоним:

ClearDeleteMark

Описание:

Метод СнятьПометкуУдаления снимает пометку удаления текущей опе­рации.

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект. Если метод СнятьПометкуУдаления применен к операции принадлежащей документу не специального вида «Операция», то происходит снятие пометки удаления всего документа.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Если Опер.ПометкаУдаления() = 1 Тогда

      Опер.СнятьПометкуУдаления();

   КонецЕсли;

КонецЦикла;

ПолучитьВремя

Возвращает время текущей операции.

Синтаксис:

ПолучитьВремя(Часы, Минуты, Секунды)

Англоязычный синоним:

GetTime

Параметры:

Часы Необязательный параметр. Идентификатор пере­менной, в которую метод возвращает число — час времени операции.
Минуты Необязательный параметр. Идентификатор пере­менной, в которую метод возвращает число — ми­нуты времени операции.
Секунды Необязательный параметр. Идентификатор пере­менной, в которую метод возвращает число — се­кунды времени операции.
Возвращаемое значение:

Строковое значение времени в виде ЧЧ.ММ.СС.

Описание:

Метод ПолучитьВремя возвращает время операции. Время записывается в переменные, передаваемые как параметры при вызове метода.

Пример:

Перем Час;

Перем Минута;

Перем Секунда;

Опер = СоздатьОбъект(Операция);

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Опер.ПолучитьВремя(Час, Минута, Секунда);

КонецЦикла;

УстановитьВремя

Задает время текущей операции.

Синтаксис:

УстановитьВремя(Часы, Минуты, Секунды)

Англоязычный синоним:

SetTime

Пареметры:

Часы Необязательный параметр. Число — час операции.
Минуты Необязательный параметр. Число — минуты опе­рации.
Секунды Необязательный параметр. Число — секунды опе­рации.
Описание:

Метод УстановитьВремя изменяет время операции.

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

Пример:

Перем Час;

Перем Минута;

Перем Секунда;

Опер = СоздатьОбъект(Операция);

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Опер.ПолучитьВремя(Час, Минута, Секунда);

   Опер.УстановитьВремя(Час + 1, Минута, Секунда);

КонецЦикла;

ПолучитьДокумент

Возвращает значение типа «Документ» содержащий документ, кото­рому принадлежит операция.

Синтаксис:

ПолучитьДокумент()

Англоязычный синоним:

GetDocument

Возвращаемое значение:

Значение типа «Документ».

Описание:

Метод ПолучитьДокумент возвращает значение типа «Документ» содер-жащий документ, которому принадлежит операция. Его следует использовать, если нужно передать какому либо методу или запомнить в переменную значе­ние типа документ операции. Для доступа к данным документа непосредствен­но из объекта типа «Операция» следует использовать атрибут объекта «Доку­мент».

Пример:

Опер = СоздатьОбъект(Операция);

Док = СоздатьОбъект(Документ);

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Сообщить(Номер = Опер.Документ.Номер);

   Док.НайтиДокумент(Опер.ПолучитьДокумент());

КонецЦикла;

ВключитьПроводки

Включает/выключает проводки операции.

Синтаксис:

ВключитьПроводки(Флаг)

Англоязычный синоним:

EntriesOn

Пареметры:

Флаг Необязательный параметр. 1 — включить провод­ки операции. 0 — выключить проводки операции. Если параметр не передан — состояние не изменя­ется.
Возвращаемое значение:

Состояние на момент вызова метода. 1 — проводки операции включены; 0 — проводки операции выключениы.

Описание:

Для каждой бухгалтерской операции может быть выполнено выключение проводок. Это значит, что проводки остаются, но исключаются из итогов. Эти действия могут выполняться пользователем интерактивно и методом ВключитьПроводки для объекта типа «Операция».

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект. Изменяется состояние всех выбранной проводок операции одноврменно.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.ВыбратьОперации(ДатаНач, ДатаКон);

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Опер.ВключитьПроводки(0);

КонецЦикла;

НоваяПроводка

Создать новую проводку.

Синтаксис:

НоваяПроводка()

Англоязычный синоним:

NewEntry

Описание:

Метод создает новую проводку для текущей операции. Новая проводка ста­новится текущей.

Во-первых, метод может быть вызван для объекта «Операция», созданного функцией СоздатьОбъект, при создании или изменении операции принад­лежащей документу специального вида «Операция».

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

Созданная проводка будет записана и повлечет изменения в бухгалтерских итогах после вызова метода операции Записать.

Пример:

* Создание и запись новой операции созданной в модуле отчета или обработки

Опер = СоздатьОбъект(Операция);

Опер.Новая();

Опер.Дата = РабочаяДата();

Опер.Содержание = Деньги по чеку;

Опер.НоваяПроводка();

Опер.Дебет.Счет = СчетПоКоду(5 0);

Опер.Кредит.Счет = СчетПоКоду(51);

Опер.Сумма = 1000000;

Опер.Записать();

* Запись операции в модуле документа в процессе проведения

Процедура ОбработкаПроведения()

   Операция.Содержание = Выдача денег из кассы;

   Операция.НоваяПроводка();

   Операция.Дебет.Счет = СчетПоКоду(71);

   Операция.Дебет.Сотрудники = Сотрудник;

   Операция.Кредит.Счет = СчетПоКоду(50);

   Операция.Сумма = СуммаВыдачи;

   Операция.Записать();

КонецПроцедуры

НоваяКорреспонденция

Создает новую корреспонденцию проводки.

Синтаксис:

НоваяКорреспонденция()

Англоязычный синоним:

NewCorrespondence

Описание:

Метод НоваяКорреспонденция создает новую корреспонденцию для про­водки. Метод должен использоваться после того, как новая проводка создана с использованием метода НоваяПроводка.

Данный метод предназначен для формирования сложных проводок, состоя­щих из нескольких корреспонденции.

Для проводки может быть создано практически неограниченное число кор­респонденции путем последовательного вызова метода НоваяКорреспонденция. После создания корреспонденции изменение атри­бутов проводки вызывает изменение атрибутов новой корреспонденции.

Пример:

Процедура ОбработкаПроведения()

   Операция.Содержание = Выдача денег из кассы;

   Операция.НоваяПроводка();

   Операция.Кредит.Счет = СчетПоКоду(50);

   Операция.Сумма = Итог(СуммаВыдачи);

   ВыбратьСтроки();

   Пока ПолучитьСтроку() = 1 Цикл

      Операция.НоваяКорреспонденция();

      Операция.Дебет.Счет = СчетПоКоду(71);

      Операция.Дебет.Сотрудники = Сотрудник;

      Операция.Сумма = СуммаВыдачи;

   КонецЦикла;

   Операция.Записать();

КонецПроцедуры

ПроверитьПроводку

Проверить проводку на соответствие корректным проводкам.

Синтаксис:

ПроверитьПроводку()

Англоязычный синоним:

CheckEntry

Возвращаемое значение:

Число: 1 — проводка соответствует корректным проводкам; 0 — не соответ­ствует.

Описание:

Метод ПроверитьПроводку проверяет проводку на соответствие коррект­ным проводкам.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДок);

Пока Опер.КоличествоПроводок() 0 Цикл

   Опер.ПолучитьПроводкуПоНомеру(1);

   Если Опер.ПроверитьПроводку() = 0 Тогда

      Опер.УдалитьПроводку();

   КонецЕсли;

КонецЦикла;

Опер.Записать();

УдалитьПроводку

Удалить проводку.

Синтаксис:

УдалитьПроводку()

Англоязычный синоним:

DeleteEntry

Описание:

Метод удаляет текущую проводку или корреспонденцию операции. Метод может быть вызван объектом «Операция», созданным функцией СоздатьОбъект, при создании или изменении операции принадлежащей до­кументу специального вида «Операция».

Собственно изменение в составе проводок будут записаны и повлекут из-менния в бухгалтерских итогах после вызова метода операции Записать.

Пример:

Опер = СоздатьОбъект(Операция);

Опер.НайтиОперацию(ВыбрДок);

Пока Опер.КоличествоПроводок() 0 Цикл

   Опер.ПолучитьПроводкуПоНомеру(1);

   Опер.УдалитьПроводку();

КонецЦикла;

Опер.Записать();

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

БИ

Значение, содержащее агрегатный объект типа «БухгалтерскиеИтоги»

Синтаксис:

БИ

Англоязычный синоним:

AT

Описание:

Данный объект включается в контекст формы операции для облегчения доступа в итогам при работе с типовыми операциями. Это позволяет обращать­ся в формулах типовых операций к этому объекту для получения итогов.

Пример:

* Формула суммы проводки типовой опеарции

БИ.ПериодМ(ДатаОперации);

БИ.СКД(Дебет.Счет)

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

ПоТиповойОперации

Определяет, вводится ли новая операция с использованием типовой, и какая типовая операция используется.

Синтаксис:

ПоТиповойОперации (Переменная)

Англоязычный синоним:

ByTemplateOper

Параметры:

Переменная Необязательный параметр. Имя переменной, в которую будет записано наименование типовой операции.
Возвращаемое значение:

Число: 1 — если при вводе операции вручную использована типовая опера-ци; 0 — если при вводе операции вручную не использовалась типовая операция.

Описание:

Определяет, вводится ли новая операция с использованием типовой. Если указан параметр Переменная, в переменную будет записано имя типовой операции;

Пример:

Процедура ПриОткрытии()

   Если ПоТиповойОперации() = 0 Тогда

      ИспользоватьВалюту(Константа.ОснВалюта);

   КонецЕсли;

КонецПроцедуры;

ИспользоватьВалюту

Установка валюты используемой по умолчанию.

Синтаксис:

МспользоватьВалюту(Валюта)

Англоязычный синоним:

UseCurrency

Параметры:

Валюта Необязательный параметр. Значение типа «Спра­вочник», имеющий вид, определенный при на­стройке валютного учета. Если параметр не задан, установка не изменяется.
Возвращаемое значение:

Значение установки используемой валюты на момент до вызова метода.

Описание:

Данный метод устанавливает в форме используемую по умолчанию валюту. Она будет автоматически подставляться в валюту вводимых проводок, если в проводках используются валютные счета. После автоматической подстановки пользователь может изменить валюту по своему усмотрению.

Пример:

Процедура ПриОткрытии()

   ИспользоватьВалюту(Константа.ОснВалюта);

КонецПроцедуры;

ИспользоватьКорСчет

Установка корреспондирующего счета используемого по умолчанию.

Синтаксис:

ИспользоватьКорСчет(Счет)

Англоязычный синоним:

UseCorAccount

Параметры:

Счет Необязательный параметр. Значение типа «Счет». Если параметр не задан, установка не изменяется.
Возвращаемое значение:

Значение установки используемого по умолчанию корреспондирующего счета на момент до вызова метода.

Описание:

Данный метод устанавливает в форме используемый по умолчанию коррес­пондирующий счет. Он будет автоматически подставляться проводку взамен не указанных пользователем счетов. Эта возможность может быть использована, например, для ввода первоначальных остатков для автоматической простановки счета, корреспондирующего с введенным.

Пример:

Процедура ПриОткрытии()

   ИспользоватьКорСчет(Константа.СчетПервОстатков);

КонецПроцедуры;

ИспользоватьСубконто

Установка субконто используемого по умолчанию.

Синтаксис:

ИспользоватьСубконто(ВидСубконто, Субконто)

Англоязычный синоним:

UseSubconto

Параметры:

ВидСубконто Значение типа «ВидСубконто».
Субконто Необязательный параметр. Значение субконто. Если параметр не задан, установка не изменяется.
Возвращаемое значение:

Значение установки используемого по умолчанию субконто на момент до вызова метода.

Описание:

Данный метод устанавливает в форме используемые по умолчанию значе­ния субконто разных видов. Они будут автоматически подставляться субконто проводок, если в проводках используются счета с этими видами субконто. По­сле автоматической подстановки пользователь может изменить субконто по своему усмотрению.

Пример:

Процедура ПриОткрытии()

   ИспользоватьСубконто(ВидыСубконто.Склады, Константа.ОснСклад);

КонецПроцедуры;

ИзменениеПорядкаСтрок

Установить режим изменения порядка строк в форме операции.

Синтаксис:

ИзменениеПорядкаСтрок(Разрешить)

Англоязычный синоним:

ChangeLinesOrder

Параметры:

Разрешить Необязательный параметр. Число: 1 — разрешить изменение порядка строк в операции; 0 — запретить. Если параметр не задан, то режим не меняется.
Возвращаемое значение:

Режим изменения порядка строк до исполнения метода. Число: 1 — разре­шено изменение порядка строк в операции; 0 — запрещено.

Описание:

Метод ИзменениеПорядкаСтрок позволяет установить режим изменения порядка строк в форме операции.

Пример:

ИзменениеПорядкаСтрок(0);

Предопределенные процедуры модуля формы операции

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в модуле формы операции (см. «Виды программ­ных модулей»).

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

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

ВводНового

Предопределенная процедура при вводе новой операции.

Синтаксис:

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

Англоязычный синоним:

InputNew

Параметры:

ПризнКопирования Признак того, что объект введен копированием. Число: 1 — объект введен копированием, 0 — просто новый объект. Данный признак может быть использован для анализа необходимости инициализации реквизитов нового объекта.
ОбъектКопирования Объект, который был скопирован.
Описание:

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

Процедура ВводНового должна размещаться в модуле формы операции (см. «Виды программных модулей»).

Пример:

Процедура ВводНового()

   ИспользоватьВалюту(Константа.ОснВалюта);

КонецПроцедуры

См. также: СтатусВозврата

ВводНаОсновании

Предопределенная процедура при вводе новой операции на основании.

Синтаксис:

ВводНаОсновании(ДокОснование)

Англоязычный синоним:

InputCausedBy

Параметры:

ДокОснование Значение документа, на основании которого вво­дится новая операция.
Описание:

Вызов процедуры ВводНаОсновании производится в системе 1С:Предприятие неявно после выбора пункта «Ввести на основании» из меню «Действия» главного меню системы 1С:Предприятие при работе с журналом операций или в других случаях, когда форма открывается для ввода на основа­нии. В этот момент система подставляет фактическое значение параметра ДокОснование, содержащее объект типа «Документ», на которой находился курсор в момент выполнения данной команды.

Данная процедура может использоваться, например, для установки началь­ных значений (по умолчанию) реквизитов новой операции, вводимых на осно­вании выбранного документа

Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю нельзя вводить новые операции), ввода новой операции и открытие формы не будет выполнено.

Процедуру ВводНаОсновании можно размещать только в модуле формы операции (см. «Виды программных модулей»).

Пример:

Процедура ВводНаОсновании(ДокОсн)

   Если ДокОсн.Вид() = ПлатПор Тогда

      ИспользоватьСубконто(ВидыСубконто.Организации, ДокОсн.Получатель);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриЗаписи

Предопределенная процедура вызывается при записи операции.

Синтаксис:

ПриЗаписи()

Англоязычный синоним:

OnWrite

Описание:

Вызов предопределенной процедуры ПриЗаписи производится в системе 1С:Предприятие при записи операции в форме операции. Если в данной предо­пределенной процедуре установить статус возврата — 0 (например, если не пра­вильно заполнены реквизиты операции), запись операции не будет выполнена.

Данная предопределенная процедура может располагаться в модулях формы операции (см. «Виды программных модулей»).

Пример:

Процедура ПриЗаписи()

   Если ПустаяСтрока(Содержание) = 1 Тогда

      Предупреждение(Не заполнено содержание операции!);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриНачалеРедактированияСтроки

Предопределенная процедура вызывается при редактировании суще­ствующей проводки или корреспонденции операции.

Синтаксис:

ПриНачалеРедактированияСтроки()

Англоязычный синоним:

OnStartEditLine

Описание:

Вызов предопределенной процедуры ПриНачалеРедактированияСтроки производится в системе 1С:Предприятие в момент начала интерактивного ре­дактирования существующей проводки или корреспонденции операции.

Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю нельзя редактировать проводки опера­ции), то проводка не будет изменена.

Данная предопределенная процедура может располагаться в модуле формы операции (см. «Виды программных модулей»).

Пример:

Процедура ПриНачалеРедактированияСтроки()

   Если НазваниеНабораПрав() = Оператор Тогда

      Предупреждение(У вас нет права изменять проводки!);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриВводеСтроки

Предопределенная процедура при вводе новой проводки или коррес­понденции операции.

Синтаксис:

ПриВводеСтроки()

Англоязычный синоним:

OnNewLine

Описание:

Вызов предопределенной процедуры ПриВводеСтроки производится в сис­теме ЮПредприятие при интерактивном вводе новой проводки или коррес­понденции операции. Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю редактировать опера­ции), то новая строка не будет инициирована.

Данная предопределенная процедура может располагаться в модуле формы операции (см. «Виды программных модулей»).

Пример:

Процедура ПриНачалеРедактированияСтроки()

   Если НазваниеНабораПрав() = Оператор Тогда

      Предупреждение(У вас нет права добавлять проводки!);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриРедактированииНовойСтроки

Предопределенная процедура при редактировании новой проводки или корреспонденции операции.

Синтаксис:

ПриРедактированииНовойСтроки()

Англоязычный синоним:

OnEditNewLine

Описание:

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

Данная предопределенная процедура может располагаться в модуле формы операции (см. «Виды программных модулей»).

Пример:

Процедура ПриРедактированияНовойСтроки()

   Фирма = Константа.ОснФирма;

КонецПроцедуры

См. также: СтатусВозврата

ПриУдаленииСтроки

Предопределенная процедура при удалении проводки или коррес­понденции операции.

Синтаксис:

ПриУдаленииСтроки()

Англоязычный синоним:

OnDeleteLine

Описание:

Вызов предопределенной процедуры ПриУдаленииСтроки производится в системе 1С:Предприятие при интерактивном удалении проводки или коррес­понденции операции.

Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю нельзя редактировать проводки опера­ции), удаление проводки или корреспонденции операции не будет выполнено.

Данная предопределенная процедура может располагаться только в модуле формы операции (см. «Виды программных модулей»).

Пример:

Процедура ПриНачалеРедактированияСтроки()

   Если НазваниеНабораПрав() = Оператор Тогда

      Предупреждение(У вас нет права изменять проводки!);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриИзмененииПорядкаСтрок

Предопределенная процедура при изменении порядка строк опера­ции.

Синтаксис:

ПриМзмененииПорядкаСтрок(Действие)

Англоязычный синоним:

OnChangeLinesOrder

Параметры:

Действие      Число: 1 — перемещение строки вниз; -1 (минус единица) — перемещение строки вверх.
Описание:

Вызов предопределенной процедуры ПриИзмененииПорядкаСтрок произ­водится системой 1С:Предприятие неявно при интерактивной попытке пере­мещения строк вверх-вниз и перенумерации (до выполнения действия).

Если в данной предопределенной процедуре установлен статус возврата 0 (например, если данному пользователю нельзя устанавливать данное значение отбора проводок), установка отбора не будет выполнена.

Данная предопределенная процедура может располагаться только в модуле формы операции (см. «Виды программных модулей»).

Пример:

Процедура ПриИзмененииПорядкаСтрок(Направление)

   СтатусВозврата(0);

КонецПроцедуры

См. также: СтатусВозврата



ПриУстановкеИнтервала Предопределенная процедура при установке интервала журнала.

Синтаксис:

ПриУстановкеИнтервала(ДатаНач, ДатаКон)

Англоязычный синоним:

OnSetRange

Параметры:

ДатаНач Дата начала интервала журнала.
ДатаКон Дата конца интервала журнала.
Описание:

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

Пример:

Процедура ПриУстановкеИнтервала(ДатаНач, ДатаКон)

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права изменять интервал журнала!, 2);

      СтатусВозврата(0);

   КюнецЕсли;

КонецПроцедуры

См. также: СтатусВозврата


ПриПоказеПроводокПоДокументу Предопределенная процедура при показе проводок по документу (операции).

Синтаксис:

ПриПоказеПроводокПоДокументу(Документ)

Англоязычный синоним:

OnShowEntrysByDoc

Параметры:

Документ Документ по которому выводятся проводки.
Описание:

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

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

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

Если в данной предопределенной процедуре установлен статус возврата 0, то проводки операции показываться не будут (например, если пользователю запрещен просмотр проводок).

Пример:

Процедура ПриПоказеПроводокПоДокументу(ТекДок)

   Если ТекДок.Операция.Фирма ТекФирма Тогда

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата


ВыбранаПоДт, ВыбранаПоКт ВыбранаПоДт — определение, выбран ли итог по дебету;

ВыбранаПоКт — определение, выбран ли итог по кредиту.

Синтаксис:

ВыбранаПоДт()

ВыбранаПоКт()

Англоязычный синоним:

SelectedByDt

SelectedByKt

Возвращаемое значение:

Число: 0 —данный итог по дебету(кредиту) не выбран; 1 —данный итог по дебету(кредиту) выбран.

Описание:

Данные функция используются при обходе результатов запроса с детализа­цией периода по операциям и проводкам. Они показывают для текущей опера­ции (проводки) попала ли она в запрос по дебетовой (кредитовой) корреспон­денции.

Пример:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, 50, , , , Проводки);

БухИтоги.ВыбратьСчета();

БухИтоги.ВыбратьПериоды();

КолПрих=0;

КолРасх=0;

Пока БухИтоги.ПолучитьПериод() = 1 Цикл

   Если БухИтоги.ВыбранаПоДт() = 1 Тогда

      КолПрих = КолПрих + 1;

   КонецЕсли;

   Если БухИтоги.ВыбранаПоКт() = 1 Тогда

      КолРасх = КолРасх + 1;

   КонецЕсли;

КонецЦикла;


Удалить Удалить корректную проводку.

Синтаксис:

Удалить()

Англоязычный синоним:

Delete

Возвращаемое значение:

Число: 1 — корректная проводка успешно удалена; 0 — не удалена.

Описание:

Метод Удалить удаляет корректную проводку.

Пример:

КП = СоздатьОбъект(КорректныеПроводки);

КП.ВыбратьКорректныеПроводки();

Пока КП.ПояучитьКорректнуюПроводку() = 1 Цикл

   Если КП.Комментарий = НДС с комисс. вознаграждения Тогда

      КП.Удалить();

      Прервать;

   КонецЕсли;

КонецЦикла;


ПриУстановкеПредставления Предопределенная процедура, вызываемая при установке режима представления журнала расчетов (по всем объектам расчетов, по од­ному объекту расчета, по одному документу расчета).

Синтаксис:

ПриУстановкеПредставления(Режим}

Англоязычный синоним:

OnSetPresentation

Параметры:

Режим Числовое значение — режим представления записей журнала расчетов, устанавливаемый пользователем.
Описание:

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

Параметр Режим может принимать следующие значения:

1. Записи по всем объектам расчета.

2. Записи по одному объекту расчета.

3. Записи по одному документу-основанию.

Данная предопределенная процедура может располагаться только в модуле формы журнала расчетов.

Пример:

Процедура ПриУстановкеПредставления(Режим)

   Если НазваниеНабораПрав() = Расчетчик Тогда

      Если (Режим = 1) Тогда

         Предупреждение(Недостаточно прав!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, УстановитьПредставление


ПолучитьРасчет Получает ссылку на вид расчета.

Синтаксис:

ПолучитьРасчет(Номер)

Англоязычный синоним:

GetCalculation

Параметры:

Номер Номер вида расчета в списке видов расчета данной группы.
Возвращаемое значение:

Агрегатный объект типа «Вид Расчета».

Описание:

Метод позволяет получить ссылку на вид расчета, входящий в данную группу под определенным номером. Обычно применяется в цикле с методом Количество.

Пример:

См. предыдущий пример.

См. также: Количество


Применять Устанавливает необходимость применять или не применять все пра­вила перерасчетов при вводе новых записей в журнал расчетов.

Синтаксис:

Применять(ФлагПрименения)

Англоязычный синоним:

Use

Параметры:

ФлагПрименения Число: 1 — применять; 0 — не применять.
Возвращаемое значение:

Текущее значение флага применения (до исполнения метода).

Описание:

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

Пример:

ПравилоПерерасчета.Применять(1);


СледующаяДата Выбирает следующий день праздников в выборке.

Синтаксис:

СледующаяДата()

Англоязычный синоним:

NextDate

Возвращаемое значение:

Число: 1 — получена очередна язапись; 0 — не обнаружено очередной записи, т. е. конец выборки.

Описание:

Выбирает следующий день праздников (позиционируется на очередной за­писи выборки) в порядке дат.

Пример:

// Праздничные дни

Празд = СоздатьОбъект(Праздники);

Празд.ВыбратьДаты(ДатаНачала, ДатаОкончания);

Пока Празд.СледующаяДата() = 1 Цикл

   // ...

КонецЦикла;

См. также: ВыбратьДаты


Проверить Проверяет, является ли последовательность непрерывной от ГП до заданного документа.

Синтаксис:

Проверить(Докум)

Англоязычный синоним:

Validate

Параметры:

Докум Выражение типа «дата», «документ» или «пози­ция документа», от которой проверяется непре­рывность последовательности.
Возвращаемое значение:

Число: 1 если последовательность непрерывна; 0 если есть проведенные до­кументы между ГП и документом.

Описание:

Метод Проверить проверяет, есть ли между ГП и данной точкой проведен­ные документы входящие в даную последовательность (т. е. является ли после­довательность непрерывной от ГП до этой точки).

Пример:

Если Последовательность.УправленческийУчет.Проверить(Док) = 1 Тогда

   Последовательность.УправленческийУчет.Установить(Док);

КонецЕсли;


Удалить Удалить периодическое значение.

Синтаксис:

Удалить()

Англоязычный синоним:

Delete

Возвращаемое значение:

Число: 1 — если вызов метода закончился успешно, 0 — если нет.

Описание:

Метод Удалить удаляет периодическое значение на заданную дату. До вы­зова данного метода атрибут ДатаЗнач должен содержать дату удаляемого пе­риодического значения..

Пример:

Процедура ЧисткаКурсов()

   Вал = СоздатьОбъект(Справочник.Валюты);

   // Позиционируем созданный объект Вал по известному коду

   Вал.НайтиПоКоду(1);

   Если Вал.Выбран() = 1 Тогда

      Доллар = Вал.ТекущийЭлемент();

   Иначе

      Предупреждение(Не найдена валюта!);

      Возврат;

   КонецЕсли;

   ПерВал = СоздатьОбъект(Периодический);

   ПерВал.ИспользоватьОбъект(Текущ_курс.Доллар);

   ПерВал.ВыбратьЗначения();

   Пока ПерВал.ПолучитьЗначение() = 1 Цикл

      Курс = ПерВал.Значение;

      ДатаКурса = ПерВал.ДатаЗнач;

      Если Курс 1000 Тогда

         ПерВал.Удалить();

      КонецЕсли;

   КонецЦикла;

КонецПроцедуры


Выгрузить Выгрузить список значений в другой список значений или таблицу значений.

Синтаксис:

Выгрузить(Знач, НачПоз, Колич)

Англоязычный синоним:

Unload

Параметры:

Знач Значение типа «Таблица значений» или «Список значений», в которое нужно выгрузить данные. При выгрузке в таблицу значений, в ней добавля­ется новая колонка. Если переданное значение пустое, тогда система сама создаст объект типа «Список значений».
НачПоз Необязательный параметр. Номер начальной по­зиции, с которой надо начинать выгрузку. Значе­ние по умолчанию 1.
Колич Необязательный параметр. Количество выгру­жаемых значений, если не указан то все.
Описание:

Метод Выгрузить позволяет выгрузить список значений в другой список значений или таблицу значений. При выгрузке в таблицу значений, в ней до­бавляется новая колонка.

Пример:

СтарСписок.Выгрузить(НовСписок);


Пример использования объекта Таблица Значений Пример:

Функция ВыбратьОплаты(ВыбДок)

   ТЗ = СоздатьОбъект(ТаблицаЗначений);

   ТЗ.НоваяКолонка(ДатаДок, Дата, , , Дата, 15);

   ТЗ.НоваяКолонка(Номер, Строка, 20, , Номер, 15);

   ТЗ.НоваяКолонка(Сумма, Число, 18, 2, Сумма, 20);

   ТЗ.НоваяКолонка(РасчетныйСчет, Справочник.БанковскиеСчета, , ,

                   Расч.счет, 30);

   ТЗ.НоваяКолонка(ПодчДок, Документ, , , );

   ТЗ.ВидимостьКолонки(ПодчДок, 0);

   Док = СоздатьОбъект(Документ);

   Док.ВыбратьПодчиненныеДокументы(, , ВыбДок);

   Пока Док.ПолучитьДокумент() = 1 Цикл

      Если Док.Вид() = ОплатаПоставщикам Тогда

         ТЗ.НоваяСтрока();

         ТЗ.ДатаДок = Док.ДатаДок;

         ТЗ.Номер = Док.НомерДок;

         ТЗ.Сумма = Док.Итог(Сумма);

         ТЗ.РасчетныйСчет = Док.РасчетныйСчет;

         ТЗ.ПодчДок = Док.ТекущийДокумент();

      КонецЕсли;

   КонецЦикла;

   ВыбСтрока = 0;

   Если ТЗ.ВыбратьСтроку(ВыбСтрока, Выберите оплату) = 1 Тогда

      Возврат ТЗ.ПолучитьЗначение(ВыбСтрока, ПодчДок);

КонецФункции


ПриОткрытии Предопределенная процедура при открытии формы отчета (обработ­ки).

Синтаксис:

ПриОткрытии(ФлагЧтенияНастройки)

Англоязычный синоним:

OnOpen

Параметры:

ФлагЧтенияНастройки Числовое значение — признак считывания сохраненной настройки отчета (обработки). Может принимать значения:

1 — при открытии формы была восстановле­на последняя сохраненная настройка отчета (обработки);

0 — при открытии формы настройка не вос­становлена.
Описание:

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

Набор параметров формирования отчета или выполнения обработки назы­вается настройкой отчета (обработки). Последняя сохраненная настройка авто­матически восстанавливается системой 1С:Предприятие, при вызове отчета (обработки).

Вызов предопределенной процедуры ПриОткрытии производится самой системой 1С:Предприятие неявно при интерактивном открытии отчета (обра­ботки). Параметр ФлагЧтенияНастройки позволяет определить, была ли при открытии отчета (обработки) восстановлена сохраненная настройка.

Если в данной предопределенной процедуре установить статус возврата 0 (например, если данному пользователю запрещено формировать выбранный отчет), открытие формы не будет выполнено.

Пример:

Процедура ПриОткрытии(ФлагСохрНастр)

   Если ФлагСохрНастр = 0 Тогда

      ВыбВалюта = Константа.ОснВалюта;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата


ПриВыбореЯчейкиТаблицы Предопределенная процедура обработки ячейки таблицы в режиме ввода данных.

Описание:

ПриВыбореЯчейкиТаблицы(ИмяИлиАдрес, Значение)

Англоязычный синоним:

OnSelectSheetCell

Параметры:

ИмяИлиАдрес Здесь в процедуру системой передается строковое зна­чение имени области таблицы, если выбранная ячейка помечена в таблице как отдельная область, или адрес ячейки в формате «R1C1:R2C2».
Значение Здесь в процедуру системой передается значение даной ячейки, а если диаграмма — значение выбранного эле­мента.
Описание:

Вызов процедуры ПриВыбореЯчейкиТаблицы на исполнение производится в системе 1С:Предприятие по двойному щелчку мыши или по нажатию клави­ши «Enter» на выбранной ячейке в таблице

Внимание! Данная предопределенная процедура вызывается в модуле формы при выборе ячейки только для таблиц в режиме ввода данных.

Замечание ПриВыбореЯчейкиТаблицы — предопределенная процедура. Она не является встроенной процедурой языка. Для нее определено только на­звание и синтаксис. Тело процедуры должно быть написано пользовате­лем, осуществляющим конфигурирование, в программном модуле формы, в которой используется таблица в режиме ввода данных.

Пример:

Процедура ПриВыбореЯчейкиТаблицы(ИмяЯчейки, Знач)

   // Тело процедуры

   // ...

КонецПроцедуры


Записать Записать текст в файл с указанным именем.

Синтаксис:

Записать(ИмяФайла)

Англоязычный синоним:

Write

Параметры:

ИмяФайла Строковое выражение — имя файла.
Описание:

Метод Записать записывает текст в файл с именем ИмяФайла.

Пример:

ТекстДок = СоздатьОбъект(Текст);

ТекстДок.Открыть(catalog.txt);

ТекстДок.Записать(price.txt);


ПолучитьАтрибут Возвращает значение атрибута запроса по его имени.

Синтаксис:

ПолучитьАтрибут(ИмяАтрибута)

Англоязычный синоним;

SetAttrib

Параметры:

ИмяАтрибута Строковое выражение, содержащее значение лю­бого атрибута запроса.
Возвращаемое значение:

Значение атрибута запроса.

Описание:

Метод ПолучитьАтрибут возвращает значение атрибута запроса по его имени.

Пример:

// Текст запроса

ТекстЗапроса =

|ВидРаб = Документ.Наряд.ВидРаботы;

|Сотр = Документ.Наряд.Сотрудник;

|Группировка ВидРаб

|Упорядочить По ВидРаб.Код, ВидРаб.Стоимость;

|Группировка Сотр;

|;

// ...

// Фрагмент заполнения таблицы

// Выбираем значение ВидРаб

Запрос.ПолучитьАтрибут(ВидРаб);

// Выбираем сотрудника

Запрос.ПолучитьАтрибут(Сотр);


Функция Вычисляет функцию и включает ее результат в запрос.

Синтаксис:

Функция ИмяФункции = ТипФункции (Параметр|УточненныйПараметр)

                 [Когда (Условие)];

Англоязычный синоним:

Function ИмяФункции= ТипФункции (Параметр|УточненныйПараметр)

                 [When (Условие)];

Параметры:

ИмяФункции Имя, которое присваивается функции. По этому имени можно в дальнейшем обращаться к значению вычисленной функции из вызы­вающего программного модуля как к атрибуту запроса. Данную внутреннюю переменную заранее объявлять не нужно. Она фактически неявно объявляется в операторе Функция.
TипФyнкции Ключевое слово одной из встроенных функ­ций языка. Может быть одним из приведен­ных ниже.
Параметр Имя объявленной ранее внутренней перемен­ной, значение которой используется как пара­метр встроенной функции ТипФункции. В функциях: Сумма, Среднее, Максимум, Минимум в качестве данного параметра воз­можно использование арифметического выра­жения в терминах встроенного языка 1С:Предприятие.
УточненныйПараметр Конкретизация объявленной ранее внутренней переменной, значение которой используется как аргумент встроенной функции ТипФункции.
Когда Необязательное добавочное ключевое слово, использование которого в команде означает, что вычисление функции следует производить только при условии, когда заданное логиче­ское выражение Условие истинно.
Условие Логическое выражение встроенного языка 1С:Предприятие. В логическом выражении могут участвовать как внутренние, так и внешние переменные запроса (см. описание метода Условие). Используется только после ключевого слова Когда.
Описание:

Оператор Функция вычисляет функцию ТипФункции и присваивает ее значение внутренней переменной ИмяФункции.

Типы применяемых функций предопределены и могут быть следующими:

Тип

Функции
Англояз. Синоним Выполняемое действие
Сумма Sum Вычисляет сумму выбранных по запросу зна­чений параметра.1
Среднее Avg Вычисляет среднее из выбранных по запросу значений параметра.
Минимум Min Вычисляет минимум из выбранных по запросу значений параметра.
Максимум Мах Вычисляет максимум из выбранных по запро­су значений параметра.
Счётчик Count Подсчитывает количество записей, вошедших в выборку.
НачОст BegRest Вычисляет начальный остаток для выбранных по запросу значений параметра.2
КонОст EndRest Вычисляет конечный остаток для выбранных по запросу значений параметра.2
Приход Debit Вычисляет приход для выбранных но запросу значений параметра.2
Расход Credit Вычисляет расход для выбранных по запросу значений параметра.2
СНД IDB Вычисляет сальдо начальное дебетовое для выбранных по запросу значений параметра.3
СКД FDB Вычисляет сальдо конечное дебетовое для выбранных по запросу значений параметра.3
СНК ICD Вычисляет сальдо начальное кредитовое для выбранных по запросу значений параметра.3
СКК FCD Вычисляет сальдо конечное кредитовое для выбранных по запросу значений параметра.3
ДО TD Вычисляет дебетовые обороты для выбранных по запросу значений параметра.
КО TC Вычисляет кредитовые обороты для выбран­ных по запросу значений параметра.3
КорДО CorTD Вычисляет дебетовые обороты между коррес­пондирующим счетам или субконто для вы­бранных по запросу значений параметра.3, 4
КорКО CorTC Вычисляет кредитовые обороты между кор­респондирующим счетам или субконто для выбранных по запросу значений параметра.3, 4
1Замечание: Для ресурсов оборотных регистров допускается вызывать только тип функции Сумма.

2Замечание: Типы функций НачОст, КонОст, Приход, Расход можно ис­пользовать только с параметрами, указывающими на ресурсы регистров остатков. Для ресурсов регистров остатков другие типы функций вызы­вать нельзя.

3Замечание: Функции СНД, СНК, СКД, СКК, ДО, КО, КорДО, КорКО можно использовать только с реквизитами проводки: Сумма, Количество или ВалСумма.

4Замечание: Функции КорДО и КорКО накапливают значения только тогда когда в запросе есть обращение к реквизитам проводок Счет, КорСчет Субконто или КорСубконто.

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

Замечание: В функциях: Сумма, Среднее, Максимум, Минимум в качест­ве аргумента возможно использование арифметического выражения в терминах встроенного языка.

Пример:

...

|КолВо = Документ.ВидДокумента.Количество;

|Цена = Документ.ВидДокумента.Цена;

|Функция Сум = Сумма(КолВо * Цена);

|Функция Макс = Максимум(Окр(КолВо) * Окр(Цена));

|Функция Средн = Среднее(ФункцияОпределеннаяВМодуле(КолВо, Цена));

...

Пример:

// Создание объекта типа Запрос

Запрос = СоздатьОбъект(Запрос);

ТекстЗапроса =

//{{ЗАПРОС(Функции)

|Период с ДатаНач по ДатаКон;

|Оклад = Справочник.Сотрудники.Оклад;

|Подр = Справочник.Сотрудники.Подразделение;

|Ктг = Справочник.Сотрудники.Категория;

|Группировка Подр без групп;

|Группировка Ктг без групп;

|Функция Всего = Сумма(Оклад);

|Условие((Ктг.Выбран() = 1) И (Подр.Выбран() = 1));

|//}}ЗАПРОС

;

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

// ...

Итог = Запрос.Всего;

// ...

Оператор Функция предназначен для вычисления и накопления некоторых численных значений в процессе формирования выборки по запросу.

Кроме того, при формировании временного набора данных запрос специ­ально формирует итоговые записи, в которые заносит накопленные значения вычисленных функций для каждой вложенной Группировки (подробнее об этом см. главу данной книги «Структура запросов и методика их использова­ния»).

Операторы функций в запросе можно опускать, тогда запрос просто не бу­дет ничего вычислять, а просто во временный набор данных заносятся записи со значениями Группировок. Однако это справедливо только для работы запро­сов по справочникам и по документам. При работе запроса по регистрам следу­ет помнить, что в этом случае обязательно наличие Функций, причем только в том случае, когда их вычисленные значения отличны от нуля (хотя бы одной из заданных Функций), найденные объекты включаются во временный набор данных, формируемый запросом. Если при работе запроса по регистрам в тек­сте запроса операторы функций опущены, то программа не выдаст никакого сообщения об ошибке, добросовестно пройдет по всем Группировкам, не вы­числит никаких значений Функций и, значит, ничего не запишет во временном файле.

При создании в тексте запроса внутренней переменной, которую вы предпо­лагаете использовать в качестве параметра оператора Функция, надо учитывать, что тип этой внутренней переменной должен быть «число», т. к. функции в языке запросов обрабатывают только численные значения.

В тексте запроса, при описании оператора Функция можно использовать необязательное ключевое слово Когда, использование которого в операторе означает, что вычисление функции следует производить только при условии, что значение логического выражения, заданного в параметре ключевого слова является ИСТИНА. Синтаксис применяемого логического выражения полно­стью аналогичен синтаксису разрешенному к применению в операторах Условие.

Следует понимать, что не все функции внутри конкретной группировки за­проса могут иметь четко интерпретируемый смысл. Например, для группиров­ки по документу движения регистра следующие функции

|Функция ПрихКол = Приход(Количество);

|Функция РасхКол = Расход(Количество);

имеют четкий смысл — приращения, сделанные документом при движении регистра. С другой стороны, в той же группировке следующие функции:

|Функция НачКол = НачОст(Количество);

|Функция КонКол = КонОст(Количество);

явно не имеют смысла (в запросах по регистрам, обычно задают период за­проса при помощи оператора ПериодC. Функция НачКол в данном примере должна по смыслу показывать остаток ресурса Количество на начальную дату запроса. Внутри группировки по документу вопрос: «Какой начальный остаток ресурса на дату 10.01.97?» по документу, проведенному, например, 13.01.97, не имеет смысла). Поэтому в таких ситуациях функция будет иметь нулевое значение.

Пример:

Запрос = СоздатьОбъект(Запрос);

Текст3апроса=

'//{{ЗАПРОС(Функции)

|Период с ДатаОтчета;

|Товар = Регистр.КвотыТоваров.Товар;

|Отдел = Регистр.КвотыТоваров.Отдел;

|Сотрудник = Регистр.КвотыТоваров.Сотрудник;

|Партнер = Регистр.КвотыТоваров.Партнер;

|Док = Регистр.КвотыТоваров.ТекущийДокумент;

|Количество = Регистр.КвотыТоваров.КвотаТовара;

|Группировка Товар;

|Группировка Отдел;

|Группировка Сотрудник;

|Группировка Партнер;

|Группировка Док;

|Функция НачКол = НачОст(Количество);

|Функция ПрихКол = Приход(Количество);

|Функция РасхКол = Расход(Количество);

|Функция КонКол = КонОст(Количество);

|// Следующие Функции вычисляем только при определенных

|// условиях, чтобы получить отфильтрованные итоги

|Функция ПрихКолТов = Приход(Количество) Когда (Док.ФлагТовара = 1);

|Функция РасхКолТов = Расход(Количество) Когда (Док.ФлагТовара = 1);

|Функция ПрихКолОтд = Приход(Количество) Когда (Док.ФлагОтдела = 1);

|Функция РасхКолОтд = Расход(Количество) Когда (Док.ФлагОтдела = 1);

|Функция ПрихКолСотр = Приход(Количество) Когда (Док.ФлагСотрудника = 1);

|Функция РасхКолСотр = Расход(Количество) Когда (Док.ФлагСотрудника = 1);

|//}}ЗАПРОС

;

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

Способы оптимизации формирования отчетов Процесс получения отчетов с использованием запросов можно условно раз­делить на две фазы: сначала формируется запрос, затем полученные данные выводятся в Таблицу. В данном разделе речь пойдет о второй фазе получения отчета — выводе данных в Таблицу.

Рассмотрим следующий пример. Допустим, требуется вывести в отчет пол­ный перечень товаров со всеми их реквизитами. Для этого сначала формирует­ся запрос с одной Группировкой — Товар, затем полученные данные выво­дятся в Таблицу. Ниже приведены три варианта вывода данных в Таблицу.

Вариант 1

В программном модуле текст вывода данных в Таблицу следующий

Пока Запрос.Группировка(Товар) = 1 Цикл

   Таб.ВывестиСекцию(Товар);

КонецЦикла;

Секция Товар в Таблице имеет следующий формат:

Запрос.Товар.Наименование Запрос.Товар.Артикул
Запрос.Товар.Цена Запрос.Товар.Валюта
В первом варианте отображаемые реквизиты товара полностью вычисляют­ся в ячейках Таблицы, причем доступ к каждому реквизиту товара происходит по полному пути: Запрос-Товар-Реквизит. Данный вариант вывода данных в Таблицу самый медленный.

Вариант 2

В программном модуле текст вывода данных в Таблицу следующий

Пока Запрос.Группировка(Товар) = 1 Цикл

   ПечНаим = Запрос.Товар.Наименование;

   ПечАртикул = Запрос.Товар.Артикул;

   ПечЦена = Запрос.Товар.Цена;

   ПечВалюта = Запрос.Товар.Валюта;

   Таб.ВывестиСекцию(Товар1);

КонецЦикла;

Секция Товар1 в Таблице имеет следующий формат:

ПечНаим ПечАртикул
ПсчЦена ПечВалюта
Во втором варианте отображаемые реквизиты товара вычисляются в про­граммном модуле, а в ячейках Таблицы размещены простые выражения — ссылки на идентификаторы программного модуля. Доступ к каждому реквизи­ту товара происходит по полному пути: Запрос-Товар-Реквизит. В данном ва­рианте фаза вывода данных в Таблицу работает быстрее первого варианта (вы­игрыш ~20%), т. к. в программном модуле выражения вычисляются существен­но быстрее, чем выражения, помещенные в ячейках Таблицы (программный модуль при загрузке компилируется, а выражения в ячейках таблицы интер­претируются каждый раз при выводе секций).

Вариант 3

В программном модуле текст вывода данных в Таблицу следующий

Пока Запрос.Группировка(Товар) = 1 Цикл

   Тов = Запрос.Товар;

   ПечНаим = Тов.Наименование;

   ПечАртикул = Тов.Артикул;

   ПечЦена = Тов.Цена;

   ПечВалюта = Тов.Валюта;

   Таб.ВывестиСекцию(Товар1);

КонецЦикла;

Секция Товар1 в Таблице имеет следующий формат:

ПечНаим ПечАртикул
ПсчЦена ПечВалюта
В третьем варианте отображаемые реквизиты товара вычисляются в про­граммном модуле, а в ячейках Таблицы размещены простые выражения — ссылки на идентификаторы программного модуля. Доступ к каждому реквизи­ту товара происходит по сокращенному пути — через промежуточную перемен­ную: Товар — Реквизит. В данном варианте фаза вывода данных в Таблицу работает быстрее, чем во втором варианте (выигрыш ~20%) и существено бы­стрее, чем в первом варианте (выигрыш ~40%), т. к. вычисление значений рек­визитов объектов через «одну точку» выполняется быстрее, чем через «две (и более) точки».

Кратко суть этого раздела можно выразить так: при реализации больших отчетов, которые рассчитаны на отображение более сотни строк, следует при­держиваться следующих правил:

· не размещайте сложных выражений в ячейках Таблицы. Лучше вычис­лить необходимые значения непосредственно в программном модуле;

· если необходимо получить несколько реквизитов одного объекта, кото­рый сам является составной частью другого объекта, то следует восполь­зоваться промежуточной переменной, в которую сначала можно записать значение всего объекта «целиком», а затем уже от нее получать требуе­мые данные.


УстановитьКартинку

Переустановить объект типа Картинка.

Синтаксис:

УстановитьКартинку(Объект)

Англоязычный синоним:

SetPicture

Параметры:

Объект Выражение, имеющее значение оъекта типа «Картин­ка» встроенного языка или OLE-объект типа I Picture.
Описание:

Метод УстановитьКартинку переписывает (копирует) значение источни­ка Объект в текущий объект. (Данный метод копирует все содержимое од­ного объекта в другой, в отличие от оператора присваивания (=), который пе­редает значение ссылки на уже существующий объект). Например:

А = СоздатьОбъект(Картинка);

В = А;

// в этом случае переменные А и В ссылаются на один и тот же объект

Рассмотрим другой вариант:

А = СоздатьОбъект(Картинка);

В = СоздатьОбъект(Картинка);

А.Загрузить(с:\BMP\Boris.bmp);

В.УстановитьКартинку(А);

// в этом случае переменные А и В ссылаются на два

// разных объекта, хотя и содержат одно и то же

Пример:

// Допустим в Форме диалога у нас есть элемент типа картинка

// с идентификатором Кино.

// Сделаем анимацию изображения в этой форме

Перем фото[5];

// создадим объекты и загрузим в них картинки

Для Н = 1 По 5 Цикл

   Фото[Н] = СоздатьОбъект(Картинка);

   Фото[Н].Загрузить(с:\BMP\Foto + Строка(Н)+ .bmp);

КонецЦикла;

// Теперь запустим анимацию

Для Раз = 1 По 100 Цикл

   Для Н = 1 По 5 Цикл

      Кино.УстановитьКартинку(Фото[H]);

   КонецЦикла;

КонецЦикла;


Пример использования Предположим, что проектируется отчет о продаже товара. Внешний вид от­чета визуально настроен. Мы предполагаем, что будет построена объемная гис­тограмма с одной точкой («Продано на сумму») и количеством серий равным количеству товаров.

Фрагментом модуля отчета, является процедура ПостроитьДиаграмму. Вызов этой процедуры находится в закладке «Текст» свойств внедренного в табличный документ, объекта «Диаграмма», он выглядит так:

ПостроитьДиаграмму(Таб.ТекущийОбъект, Запрос)

Параметрами процедуры являются:

· Объект «Диаграмма», переданный как текущий объект табличного доку­мента (подробнее см. в главе Работа с таблицами);

· запрос к базе данных, сформированный и выполненный ранее.

Пример:

Процедура ПостроитьДиаграмму(Диаграмма, Запрос)

   //На время наполнения данными, запретим перерисовку

   Диаграмма.Обновление(0);

   // задаем текст заголовка

   Диаграмма.Заголовок = Пример использования диаграммы;

   // задаем текст метки точки

   Диаграмма.УстановитьИмяТочки(1, Продано на сумму);

   СчетчикСерий = 1;

   Пока Запрос.Группировка(Товар) = 1 Цикл

      ПродСумма = Запрос.СуммаПродано;

      // задаем очередное значение

      Диаграмма.Значение(1, СчетчикСерий, ПродСумма);

      // задаем метку очередной серии

      Диаграмма.УстановитьИмяСерии(СчетчикСерий, Запрос.Товар.Наименование)

      СчетчикСерий = СчетчикСерий + 1;

   КонецЦикла;

   // После заполнения данных, включим перерисовку

   Диаграмма.Обновление(1);

КонецПроцедуры


СвободноеМестоНаДиске Определить размер свободного дискового пространства.

Синтаксис:

СвободноеМестоНаДиске(ИмяДиска)

Англоязычный синоним:

GetDiskFreeSpace

Параметры:

ИмяДиска Строковое выражение с именем диска.
Возвращаемое значение:

Численое значение — размер свободного дискового пространства в байтах.

Описание:

Метод СвободноеМестоНаДиске возвращает численое значение размера

свободного дискового пространства.

Пример:

* В данном примере приведена процедура определения свободного дискового пространства диска С:

Процедура РазмД()

   Рез = ФС.СвободноеМестоНаДиске(С:);

КонецПроцедуры


Функции, применяемые в выражениях
Функция Параметр(ы) Возвращаемое значение
DATE() Тип даты. Системная дата.
DAY(Date) Тип даты. Число. Номер дня в месяце.
DTOC(Date) Тип даты. Строка. Представление даты в формате ММ/ДД/ГГ
DTOS(Date) Тип даты. Строка. Представление даты в формате ГГГГММДД
IIF(Log, IfTrue, IfFalse) Log — выраже­ние булева ти­па.

IfTrue, IfFalse — тип определяется во время исполне­ния. Должны иметь одинако­вую длину и тип.
Тип совпадает с типом IfTrue и IfFalse.

Возвращает IfTrue, если значе­ние вычисленного выражения Log равно истине, и IfFalse в про­тивном случае.
LTRIM(String) String — строка. Строка. Исходная строка без ве­дущих пробелов.
Month(Date) Date — дата. Число. Номер месяца в году.
STOD(String) String — строка. Пред­ставление даты в формате ГГГГММДД Тип даты. Преобразованное в дату значение исходной строки.
STR(Number, Length, Decim) Number — чис­ло. Преобра­зуемое число.

Length — число. Количество символов в воз­вращаемой строке, включая дес. точку.

Decim — число. Желаемое кол-во знаков после точки.
Строка. Результат преобразования числа в строковое представление.
SUBSTR(String, StartPos, Num) String — строка. Исход­ная строка.

StartPos — число. Началь­ная позиция.

Num — число. Кол-во симво­лов.
Строка. Подстрока, состоящая из Num символов от начальной пози­ции исходной строки.
TIME() Строка. Системное время в пред­ставлении ЧЧ:ММ:СС
TRIM(String) String — строка. Строка. Исходная строка без за­ключительных пробелов.
UPPER(String) String — строка. Строка. Преобразование к верхне­му регистру
VAL(String) String — строка. Число. Преобразование строки в число
YEAR(Date) Date — дата. Число. Год.

ДлинаПредставленияЗначения Возвращает длину представления значения.

Синтаксис:

ДлинаПредставленияЗначения(Мин, Макс, ДлПоУмолч)

Англоязычный синоним:

ValuePresentLen

Параметры:

Мин Необязательный параметр. Метод не будет воз­вращать значение меньше указанной в данном параметре величины.
Макс Необязательный параметр. Метод не будет воз­вращать значение больше указанной в данном параметре величины.
ДлПоУмолч Необязательный параметр. Метод будет возвра­щать данную величину для метаданных, для которых длина представления не определена. Параметр задает длину для типов данных, таких как Справочник неопределенного типа и анало­гичных, у которых не определена длина.
Возвращаемое значение: возвращает длину представления значения.

Описание:

Метод ДлинаПредставленияЗначения для типизированных объектов ти­па Реквизит и аналогичных, выдает длину представления значения. Данный метод может использоваться, например, для определения ширины столбца в универсальных отчетах, выводящих данные объектов различных видов.

Пример:

Ширина =

   Метаданные.Документ(1).РеквизитШапки(2).ДлинаПредставленияЗначения(5, 50, 30)


Работа системы 1С:Предприятие в качестве DDE сервера Другим способом обращения к данным 1С:Предприятие а из внешних про­грамм является режим DDE. Основное преимущество данного режима является динамическое обновление получаемых из 1С:Предприятие данных.

Система 1С:Предприятие является DDE сервером и предоставляет свой сер­вис в получении данных и уведомлении DDE клиента об их изменении.

В качестве DDE сервера 1С:Предприятие может возвращать значение неко­торого выражения, записанного на встроенном языке 1С:Предприятие. Возвра­щаемое значение является строкой. Для того, чтобы рассматривать результат выражения в качестве числа или даты, например в ячейке MS Excel, может потребоваться задание формата значения.

Для доступа к 1С:Предприятие посредством DDE следует использовать DDE-объект с именем 1CV7|DDE.

Пример:

* Ниже приведены примеры размещения в ячейках MS Excel DDE связей с программой 1С:Предприятие. Первое выражение в примере обращается к стандартной функции встроенного языка 1С:Предприятие. Второе выраже­ние в примере обращается к функции, записанной в глобальном модуле конфигурации программы 1С:Предприятие.

='1CV7'|DDE!'РабочаяДата()'

='1CV7'|DDE!'СуммаПоНарядам()'

Замечание 1: Для правильной интерпретации значения выражения в качестве числа или даты в MS Excel, нужно в операционной системе установить соответствующий формат представления даты и числа, как он принят в 1С:Предприятие.

Замечание 2: Не рекомендуется обращаться посредством DDE к функциям 1С:Предприятие, которые могут выполняться продолжительное время. Это связано с тем, что обращение к данной функции будет выполняться достаточно часто при обновлениях DDE связей.





    Бухгалтерия: Автоматизация - Система 1С