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

         

КонДата


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

Синтаксис:

КонДата

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

EndDate

Описание:

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

Пример:

БухИтоги.ВыполнитьЗапрос(Дата1, Дата2, , , , , "Месяц");

БухИтоги.ВыбратьСчета();

Пока БухИтоги.ПолучитьСчет() = 1 цикл

   БухИтоги.ВыбратьПериоды();

   Пока БухИтоги.ПопучитьПериод() = 1 цикл

      Сообщить("С " + БухИтоги.НачДата.Код + " по " + БухИтоги.КонДата +

           " ДО = " + БухИтоги.ДО());

   КонецЦикла;

КонецЦикла;



КонецИнтервала


Возвратить дату конца интервала журнала.



Синтаксис:

КонецИнтервала()

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

EndOfRange

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

Значение даты конца интервала журнала.

Описание:

Метод КонецИнтервала позволяет получить дату конца интервала журна­ла.

Данный метод доступен только в контексте Модуля формы журнала доку­ментов (см. «Виды программных модулей»).

Пример:

КИ = КонецИнтервала();



КонецИнтервала


Возвратить дату конца интервала журнала операций.

Синтаксис:

КонецИнтервала()

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

EndOfRange

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

Значение типа «Дата» — конечная дата интервала журнала операций.

Описание:

Метод КонецИнтервала позволяет получить конечную дату интервала журнала операций.

Данный метод доступен только в контексте модуля формы журнала опера­ций (см. «Виды программных модулей»).

Пример:

КИ = КонецИнтервала();



КонецИнтервала


Возвратить дату конца интервала журнала проводок.

Синтаксис:

КонецИнтервала()

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

EndOfRange

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

Значение типа «Дата» — конечная дата интервала журнала проводок.

Описание:

Метод КонецИнтервала позволяет получить конечную дату интервала журнала проводок.

Данный метод доступен только в контексте модуля формы журнала проводок (см. «Виды программных модулей»).

Пример:

КИ = КонецИнтервала();



КонецПериода


Возвращает дату конца периода формирования запроса.

Синтаксис:

КонецПериода()

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

EndOfPeriod

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

Значение типа «дата» — конец периода формирования запроса.

Описание:

Метод КонецПериода возвращает дату конца периода запроса. Если в тексте запроса (см. «Язык запросов») указана одна из предопреде­ленных группировок типа период ("Год" , "Месяц" , "День" и т. д.), то при обработке этой и вложенных в нее группировок метод КонецПериода будет возвращать конец периодов текущих значений этих группировок.

Пример:

ДатаКонца = Запрос.КонецПериода();



КонецПериодаБИ


Возвращает дату конца периода бухгалтерских итогов.

Синтаксис:

КонецПериодаБИ()

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

EndOfРег1odBT()

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

Значение типа «Дата» — дата конца периода бухгалтерских итогов.

Описание:

Метод КонецПериодаБИ возвращает дату конца периода бухгалтерских итогов, заданную в режиме «Настройка параметров системы».

Пример:

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



КонецПериодаПоДате


Возвращает дату окончания произвольного расчетного периода.

Синтаксис:

КонецПериодаПоДате(<Дата>)

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

PeriodEndByDate

Параметры:

<Дата>

Любая дата, которая попадает в требуемый период.

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

Значение типа «дата» — окончание расчетного периода журнала расчетов.

Описание:

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

Пример:

См. предыдущий пример.

См. также: НачалоПериодаПоДате



КонецРассчитанногоПериодаБИ


Возвращает последнюю дату рассчитанных бухгалтерских итогов.

Синтаксис:

КонецРассчитанногоПериодаБИ()

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

EndOfCalculatedРег1odBT()

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

Значение типа «Дата» — последняя дата рассчитанных бухгалтерских ито­гов.

Описание:

Метод КонецРассчитанногоПериодаБИ возвращает последнюю дату рас­считанных бухгалтерских итогов, заданную в режиме «Управление бухгалтер­ских итогов» при работе в режиме «1С:Предприятие».

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

Пример:

Если Дата2 > КонецРассчитанногоПериодаБИ() Тогда

   Сообщить("Период не рассчитан!");

   Возврат;

КонецЕсли;



КонецСтандартногоИнтервала


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

Синтаксис:

КонецСтандартногоИнтервала(<Вариант>)

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

EndOfStandardRange

Параметры:

<Вариант>

Необязательный параметр. Выражение со значени­ем типа строка или дата. Возможные строковые значения параметра: "День", "Месяц", "Квартал", "Год", "Day", "Month", "Quarter", "Year". Значением типа «дата» задается конкретная дата конца интервала журнала документов. Если пара­метр не задан, то установка сделанная в параметрах системы не меняется, а только возвращается теку­щий вариант.

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

Возвращает текущий установленный вариант.

Описание:

Функция КонецСтандартногоИнтервала устанавливает вариант задания конца стандартного интервала отображения журнала документов. Вариант мо­жет изменяться при помощи главного меню Сервис-Параметры-Общие.

Пример:

КонецСтандартногоИнтервала("Месяц");



КонецТекущегоПериода


Возвращает дату окончания текущего расчетного периода.

Синтаксис:

КонецТекущегоПериода();

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

CurrentPeriodEnd

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

Значение типа «дата» — окончание текущего расчетного периода журнала расчетов.

Описание:

Возвращает дату окончания текущего расчетного периода журнала расчетов. Текущий расчетный период — это отрезок времени, обсчитываемый журналом расчетов в настоящее время. См. описание метода НачалоТекущегоПериода.

Пример:

// ЖРЗарп = СоздатьОбъект("ЖурналРасчета.Зарплата");

Календ = СоздатьОбъект("Календарь.Служащие");

НормаОтработки = Календ.Дней(ЖРЗарп.НачалоТекущегоПериода(),

                              ЖРЗарп.КонецТекущегоПериода());

См. также: НачалоТекущегоПериода, ПериодДействия, ПериодРегистрации



КонГода


Определить дату конца года.

Синтаксис:

КонГода(<Дата>)

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

EndOfYear

Параметры:

<Дата>

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

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

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

Описание:

Функция КонГода определяет дату конца года для указанной даты.

Пример:

ПатаКонцаГода = КонГода(РабочаяДата());



Конкретизация переменной


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

Синтаксис:

<ВнутренняяПеременная>[.<Путь>]+;

Параметры:

<ВнутренняяПеременная>

Идентификатор объявленной ранее внутренней переменной.

<Путь>

Доступный атрибут внутренней пере­менной или конкретизации переменной (см. «Атрибуты, доступные при описа­нии внутренних переменных»).

Пример:

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

" //{{ЗАПРОС(ОбработкаДок)

|Период с '01.10.96' по '05.10.96';

|ОбрабатыватьДокументы Все;

|Тов = Справочник.Товары.ТекущийЭлемент, Документ.РасхНакл.Товар;

|  // используем конкретизацию внутренней переменной Тов

|Группировка Тов Упорядочить По Тов.Наименование;

|Группировка Документ;

|Группировка СтрокаДокумента;

|"//}}ЗАПРОС

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

   Возврат;

КонецЕсли;

Внимание! Запрос не манипулирует величинами типа «Строка неограничен­ной длины».



КонКвартала


Определить дату конца квартала.

Синтаксис:

КонКвартала(<Дата>)

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

EndOfQuart

Параметры:

<Дата>

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

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

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

Описание:

Функция КонКвартала определяет дату конца квартала для указанной да­ты.

Пример:

ДатаКонцаКвартала = КонКвартала(РабочаяДата());



КонМесяца


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

Синтаксис:

КонМесяца(<Дата>)

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

EndOfMonth

Параметры:

<Дата>

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

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

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

Описание:

Функция КонМесяца определяет дату конца месяца для указанной даты.

Пример:

ДатаКонцаМесяца = КонМесяца(РабочаяДата());



КонНедели


Определить дату конца недели.

Синтаксис:

КонНедели(<Дата>)

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

EndOfWeek

Параметры:

<Дата>

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

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

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

Описание:

Функция КонНедели определяет дату конца недели для указанной даты.

Пример:

ДатаКонцаНедели = КонНедели(РабочаяДата());



КонПериода


Выдает конечную дату установленного в данный момент периода основных итогов.

Синтаксис:

КонПериода()

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

EndOfPeriod

Возвращаемое значение: Конечная дата периода.

Описание:

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

Пример:

Сообщить(ПериодСтр(БухИтоги.НачПериода(), БухИтоги.КонПериода());



Константы


Язык содержит следующие типы констант:

Числовая константа описывается следующей синтаксической диаграммой:

[+|-][0-9]+

| [0-9]*.[0-9]+

Пример:

-17

43.712

.43842

Строковая константа — это строка, заключенная в двойные кавычки.

Пример:

"Это текстовая константа" // ОК

"Это ошибочная константа

и должна находиться на одной строке" // Ошибка

Константа типа "дата" задается в виде строки, заключенной в одинарные кавычки, в формате 'ДД.ММ.ГГ' или 'ДД.ММ.ГГГГ'.

Пример:

'21.05.96'

'25.09.1964'



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


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

Пример:

'12.04.95'      '01.01.1996'



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


Обращение к бухгалтерским итогам выполняется посредством агрегатного объекта типа «БухгалтерскиеИтоги» (Англоязычный синоним: BookkeepingTotals). Объект такого типа должен быть создан при помощи функции СоздатьОбъект

БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги");

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

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

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

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

Объект «БухгалтерскиеИтоги» может работать в 3-х различных режимах:

работа с основными итогами;

работа с временными итогами;

работа в режиме запроса;

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

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



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


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

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

Пример:

* Модуль формы счета выполняется в контексте «Счет». Поэтому в модуп возможен непосредственный доступ к текущему счету. Например, для пои сваивания счету наименования запишем:

Наименование = "Основные средства";

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

Пример:

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

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

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

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

Полное имя типа счет записывается следующим образом:

Счет.<ВидСчета>

где <ВидСчета> — идентификатор плана счетов.

Применение ключевого слова "Счет" (без вида счета) используется для ор­ганизации доступа ко всем планам счетов.

Англоязычный синоним ключевого слова Счет — Account.




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

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

Пример:

*

Сч = СоздатьОбъект("Счет");

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

Сч2 = СоздатьОбъект("Счет.РабПлан");

*

//В модуле формы счета // меняем наименование счета

Наименование = "Новый счет";

*

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

// создаем новый счет Сч1.Новый();

Сч1.Код = "12.01";

Сч1.Записать();


Контекст работы с диаграммами


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

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

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

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

ПостроитьДиаграмму(Таб.ТекущийОбъект);

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

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

См. также: ТекущийОбъект



Контекст работы с документами


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

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

Пример:

* В форме редактирования документа «Накладная» мы имеем непосредст­венный доступ к текущему документу (накладной). Значит, чтобы изме­нить номер накладной, запишем:

НомерДок = "12345678";

* В форме редактирования документа «Приказ на зачисление» мы имеем непосредственный доступ к реквизитам этого документа. Значит, чтобы за­писать имя нового сотрудника, пишем:

ФИО = "Иванов И.И.";

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

Пример:

* Допустим, у документа «Счет» есть реквизит «Накладная», который имеет тип «Документ.РасхНакл». Номер накладной можно получить следующим образом:

НомерРасхНакл=Документ.Счет.Накладная.НомерДок;

* Допустим, значение реквизита «Приказ» справочника «ПриказыНаДоплату» имеет тип «Документ.При­казНаДоплату». Тогда номер приказа можно получить следующим образом:

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

// ...

Номер = Спр.Приказ.НомерДок;

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

При создании ссылки на объект типа «Документ» при помощи функции СоздатьОбъект в качестве имени документа может выступать ключевое слово Документ или полное имя вида документа.




Полное имя вида документа записывается следующим образом:

Документ.<Имя_Документа>

где <Имя_Документа> — имя вида документа, как он объявлен в конфигу­раторе.

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

Англоязычный синоним ключевого слова Документ — Document.

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

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

Пример:



*

Док = СоздатьОбъект("Документ");

Док1 = СоздатьОбъект("Документ.БольничныйЛист");

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

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

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

Док5 = СоздатьОбъект("Документ.Списание");

*

// В модуле формы документа

// меняем номер обрабатываемого документа

НомерДок = "12345";

*

// В других модулях имена атрибутов, процедур и функций документов

// записываются через точку после имени переменной

// со значением типа "Документ".

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

// создаем новый документ

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

Док.ОбщийРазмер = 12000000;

// меняем номер Документа

Док.НомерДок = "12345";

// меняем дату документа

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

// создаем новую строку в спецификации документа

Док.НоваяСтрока();

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

Док.Процент = 15;

// ...

// записываем документ

Док.Записать();


Контекст работы с Файлами


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

Англоязычный синоним ключевого слова ФС — FS.

Пример:

* Здесь приведены примеры различных способов вызова методов объекта «ФС».

ФС.УдалитьФайл("Текст1.txt");

ВАКФайлы = СоздатьОбъект("ФС");

ВАКФайлы.УдалитьФайл("Текст3.txt");



Контекст работы с календарями


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

"Календарь".

Англоязычный синоним ключевого слова "Календарь" — "Calendar".

Пример:

// Рассчитать продолжительность месяца в часах по календарю "Служащие"

Календ = СоздатьОбъект("Календарь.Служащие");

Час = Календ.Часов('01.01.96', '31.01.96');

// Рассчитать продолжительность текущего расчетного

// периода журнала расчетов Зарплата по календарю Служащие

Календ = СоздатьОбъект("Календарь.Служащие");

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

Час = Календ.Часов(ЖР.НачалоТекущегоПериода(), ЖР.КонецТекущегоПериода());

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

Пример:

Процедура ПровестиРасчет()

   // ВнСовместитель — реквизит журнала расчетов

   // Категории — периодический реквизит справочника ВнутренниеСовместители

   // Календарь — реквизит справочника Категории

   Календ = ВнСовместитель.Категория.Получить(ДатаОкончания).Календарь;

   // размер оклада

   Оклад = ВнСовместитель.Оклад.Получить(ДатаОкончания) *

                       ВнСовместитель.Ставка.Получить(ДатаОкончания);

   Дней = Календ.Дней(ДатаНачала, ДатаОкончания);

   ВсегоДней = Календ.Дней(НачалоПериодаПоДате(ДатаНачала),

                           КонецПериодаПоДате(ДатаНачала));

   Если ВсегоДней > 0 Тогда

      Если Документ.Вид() = "НачалоМесяца" Тогда

         Результат = Окр(Оклад * Дней / ВсегоДней);

      Иначе

         Результат = -Окр(Оклад*Дней/ВсегоДней);

      КонецЕсли;

   Иначе

      Результат = 0;

      Сообщить("Неправильно указан календарь (" + Объект.Наименование + ")");

      Сообщить("Возможно, не задана категория работника");

   КонецЕсли;

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



Контекст работы с картинками


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

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

Англоязычный синоним ключевого слова Картинка — Picture.

Пример:

Фото=СоздатьОбъект("Картинка");



Контекст работы с метаданными


Работа с метаданными выполняется через глобальный атрибут «Метадан­ные», имеющий тип «Метаданные». Объект типа «Метаданные» нельзя создать, используя метод СоздатьОбъект.

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

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

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

Англоязычный синоним ключевого слова Метаданные — Metadata.

Пример:

ВыбМетодУдаления = Метаданные.НепосредедственноеУдалениеОбъектов;



Контекст работы с объектом «КорректныеПроводки»


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

Для создания объекта типа «КорректныеПроводки» в качестве параметра функции СоздатьОбъект передается ключевое слово «КорректныеПроводки».

Англоязычный синоним ключевого слова КорректныеПроводки — CorrectEntries.

Пример:

КП = СоздатьОбъект("КорректныеПроводки");



Контекст работы с объектом Периодический


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

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

Англоязычный синоним ключевого слова Периодический — Periodic.

Пример:

ВремРеквизиты = СоздатьОбъект("Периодический");



Контекст работы с операциями и проводками


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

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

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

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

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

Метод записи операции доступен также при проведении документа.

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




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

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

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

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


Контекст работы с перечислениями


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

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

Перечисление.<Имя_Переч>.<Значение_Переч>,

где <Имя_Переч> — имя вида перечисления, <Значение_Переч> — кон­кретное значение данного вида перечисления.

Англоязычный синоним ключевого слова Перечисление — Enum.

Пример:

Если Док.Сотрудник.Тип = Перечисление.ТипСотрудника.Штатный Тогда

   Льготы = 1;

Иначе

   Льготы = 0;

КонецЕсли;

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

Перечисление конкретного вида в качестве своих атрибутов имеет конкрет-йьте значения перечислений. Кроме того, этот объект имеет методы КоличествоЗначений, ЗначениеПоНомеру и ЗначениеПоИдентификатору которые позволяют получить доступ к конкретному значению перечисления.

Конкретное значение перечисления имеет методы Вид, ПредставлениеВида, Выбран, ПорядковыйНомер, Идентификатор.



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


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



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


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

Последовательность.<ХХХХХ>

где <ХХХХХ> — идентификатор последовательности, объявленный в кон­фигураторе.

Англоязычный синоним ключевого слова Последовательность — Sequence.

Пример:

Последовательность.УправленческийУчет.Установить(ТекущийДокумент())



Контекст работы с правилами перерасчета


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

Полное имя правила перерасчета записывается следующим образом:

ПравилоПерерасчета.<ХХХХХ>,

где <ХХХХХ> — идентификатор Правила Перерасчета, объявленный в кон­фигураторе.

Англоязычный синоним ключевого слова ПравилоПерерасчета — RecalculationRule.

Пример:

КолПериодов = ПравилоПерерасчета.Главное.КоличествоПериодов;

ВР = ВидРасчета.ПоОкладу;

ЗависитОтОклада = ПравилоПерерасчета.ПересчДоплат.ИмеетВедущий(ВР);



Контекст работы с праздниками


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

Англоязычный синоним ключевого слова "Праздники" — "Holidays".



Контекст работы с регистрами


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

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

Пример:

Флаг = Регистр.ОстаткиТовара.Приход;

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

Регистр.<ХХХХХ>

где <ХХХХХ> — вид регистра, объявленный в конфигураторе. Англоязычный синоним ключевого слова Регистр — Register.

Пример:

Рег = СоздатьОбъект("Регистр.ТовЗап");



Контекст работы с таблицами


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

Для создания объекта типа «Таблица» в качестве параметра функции СоздатьОбъект передается ключевое слово "Таблица".

Англоязычный синоним ключевого слова Таблица — Table.

Пример:

// Подготовка к заполнению выходных форм

Таб = СоздатьОбъект("Таблица");

Пока Запрос.Группировка("Сотр") = 1 Цикл

   // Заполнение полей Сотр

   Таб, ВывестиСекцию("РЛ<");

   Пока Запрос.Группировка("Расч") = 1 Цикл

      // Заполнение полей Расч

      Таб.ВывестиСекцию("ОТ");

   КонецЦикла;

   Таб.ВывестиСекцию("РЛ>");

КонецЦикла;

// Вывод заполненной формы

Таб.Опции(0, 0, 0, 0);

Таб.ТолькоПросмотр(1);

Таб.Показать("Результат");

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



Контекст работы с Таблицей Значений


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

Чтобы вызвать метод объекта, имя метода (с указанием необходимых пара­метров) пишется через точку после имени объекта.

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

Англоязычный синоним ключевого слова ТаблицаЗначений — ValueTable.

Пример:

МояТаблицаЗначений = СоздатьОбъект("ТаблицаЗначений");



Контекст работы с текстом


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

При создании переменной типа «Текст» функции СоздатьОбъект в каче­стве параметра передается ключевое слово "Текст".

Англоязычный синоним ключевого слова Текст — Text.

Пример:

МойОтчет = СоздатьОбъект("Текст");

ТекстДок = СоздатьОбъект("Текст");

ТекстДок.Открыть("List.txt");



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


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

Англоязычный синоним ключевого слова ВидРасчета — CalculationKind.

Англоязычный синоним ключевого слова ГруппаРасчетов — CalculationGroup.

Пример:

*

// Узнаем, входит ли вид расчета ОплатаПоОкладу

//в группу ОблагаютсяНалогом

Проверка =

    ВидРасчета.ОплатаПоОкладу.ВходитВГруппу(ГруппаРасчетов.ОблагаютсяНалогом);

*

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

Сообщить(ВидРасчета.Доплата.Наименование);

Кроме того, объекты типа «вид расчета» могут сохраняться в базе данных, т. е. реквизиты справочников, документов, журналов расчета могут иметь тип «ВидРасчета» и хранить ссылки на объекты этого типа.

В глобальном контексте программы 1С:Предприятие есть атрибут «ВидРас­чета». Этот объект имеет метод ПолучитьАтрибут, который позволяет полу­чить доступ к объекту вида расчета конкретного вида по его имени. Т.е. допус­тимы следующие синтаксические конструкции:

Проверка =

   ВидРасчета.ОплатаПоОкладу.ВходитВГруппу(ГруппаРасчетов.ОблагаетсяНалогом);

Проверка =

   ВидРасчета.ПолучитьАтрибут("ОплатаПоОкладу").

                  ВходитВГруппу(ГруппаРасчетов.ОблагаютсяНалогом);



Контекст работы с внешними приложениями


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

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

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

Зарегистрированный OLE идентификатор внешнего приложения — это уникальный идентификатор программного продукта, который записывается в регистрационную базу Windows при инсталляции программы.

Примеры OLE идентификаторов:

Excel

"Excel.Application"

LotusApproach

"Approach.Application"

MSGraph

"MSGraph.Application"

PowerPoint

"PowerPoint.Application"

Пример:

// Создаем объект Excel (запускаем программу Excel)

Ехсеl = СоздатьОбъект("Excel.Application");

// делаем окно программы Excel видимым и активным

Excel.Visible = l;



Контекст работы с XBase


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

Русскоязычное написание ключевого слова XBase отсутствует.

Пример:

ДБФ = СоздатьОбъект("XBase");

ИмяФайла = "";

ИмяПути = "";

ФС.ВыбратьФайл(0, ИмяФайла, ИмяПути, , "*.*", , );

ПутьДБ = ИмяПути + ИмяФайла;

ДБФ.ОткрытьФайл(ПутьДБ);

Если ДБФ.Открыта() = 1 Тогда

   Предупреждение("База открыта", 2);

   ДБФ.Первая();

   ФИО = ДБФ.FIO;      // Подразумевается, что поле FIO имеется в открытой БД

   Предупреждение("Первым в " + ПутьДБ + " упомянут т." + ФИО, 5);

Иначе

   Предупреждение("НЕ смогли открыть Базу!", 2);

КонецЕсли;



Контекст работы с записями журнала расчетов


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

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

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

Запись журнала расчетов как агрегатный объект не имеет методов.

Пример:

Процедура ПриРасчете(Объект)

   // определим, что считаем?

   Если ТипЗначения(Объект) = 12 Тогда

      // имеем дело с документом

      Если Объект.Автор <> Расчетчик Тогда

         // если автор данного документа не есть текущий расчетчик

         // запретим расчет чужого документа!

         СтатусВозврата(0);

      КонецЕсли;

   ИначеЕсли ТипЗначения(Объект) = 11 Тогда

      // а это — элемент справочника

      Если Объект.Владелец <> Расчетчик Тогда

         // если рассчитываемый объект лежит в папке текущего

         // расчетчика — считать можно, иначе — нет

         СтатусВозврата(0);

      КонецЕсли;

   Иначе

      // иначе — считаем одну запись

      Если (Объект.Документ.Автор <> Расчетчик) ИЛИ

           (Объект.Объект.Владелец <> Расчетчик) Тогда

         // не дадим считать запись чужого документа или объекта

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

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



Контекст работы с запросами


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

При создании объекта типа «Запрос» в качестве параметра функции СоздатьОбъект используется ключевое слово Запрос .

Англоязычный синоним ключевого слова Запрос — Query.

Пример:

Запрос = СоздатьОбъект("Запрос");



Контекст работы с журналами документов


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

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



Контекст работы с журналами операций


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

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



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


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

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



Контекст работы с журналом расчета


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

Пример:

// Запись рассчитанного значения в атрибут Результат журнала расчетов

Результат = Объект.Оклад * Дни / ВсегоДней;

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

Англоязычный синоним ключевого слова ЖурналРасчетов — CalcJournal.

Пример:

// Рассчитаем все записи журнала расчетов Зарплата

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

ЖР.ВыбратьПериод(НачалоТекущегоПериода());

Пока ПолучитьЗапись() = 1 Цикл

   ЖР.Рассчитать();

КонецЦикла;



Контекст работы со Списком Значений


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

Чтобы вызвать метод объекта, имя метода (с указанием необходимых пара­метров) пишется через точку после имени объекта.

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

Англоязычный синоним ключевого слова СписокЗначений — ValueList.

Пример:

МойСписок = СоздатьОбъект("СписокЗначений");



Контекст работы со справочниками


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

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

Пример:

* В форме редактирования элемента справочника «Сотрудники» мы имеем непосредственный доступ к текущему элементу (сотруднику) справочника. Значит, чтобы изменить имя текущего сотрудника, просто укажем:

Наименование = "Сидоров С.С.";

Значение элемента или группы справочника может быть получено из дру­гих источников, например как реквизит какого-либо документа. Чтобы полу­чить доступ к атрибуту, вызвать метод такой переменной со значением типа «Справочник», имя этого атрибута, метода (с указанием необходимых парамет­ров) пишется через точку после имени реквизита.

Пример:

* Если в документе значение реквизита "Сотрудники" имеет тип «Спра­вочник», имя сотрудника можно узнать следующим образом:

ИмяСотр = Док.Сотрудники.Наименование;

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

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




Справочник.Имя_Справочника

где <Имя_Справочника> — название справочника, определенное в конфи­гураторе.

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

Пример:

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

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

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

СпрЗ.Вид("Валюты");

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

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

Пример:

*

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

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

Наименование = "Администрация";

*

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

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

// при редактирования одного элемента справочника

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

Наименование = "Бухгалтерия";

*

// В других программных модулях

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

Спр.Новый();

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

Спр.Наименование = "Авто-Элемент";

Спр.Код = 1032;

Спр.Размер = 10045;

Спр.Записать();


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


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

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

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

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

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

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

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

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

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