КонДата
Конечная дата периода, за который извлекаются результаты запроса.
Синтаксис:
КонДата
Англоязычный синоним:
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;
Спр.Записать();
Контекст выполнения программного модуля
Каждый программный модуль связан с остальной частью конфигурации задачи. Эта связь называется контекстом выполнения модуля. Следует различать два вида контекста:
глобальный контекст задачи;
локальный контекст выполнения конкретного модуля.
Глобальный контекст образуется:
значениями системных атрибутов, системными процедурами и функциями;
значениями заданных в конфигураторе констант, перечислений, регистров, видов расчета, групп видов расчета;
переменными, процедурами и функциями глобального программного модуля, объявленными с ключевым словом Экспорт.
Глобальный контекст виден всем программным модулям и определяет общую языковую среду конфигурации.
Локальный контекст модуля образуется тем конкретным местом конфигурации задачи, для которого использован программный модуль. Локальный контекст виден только конкретному программному модулю и определяет для модуля набор непосредственно доступных модулю значений агрегатных типов данных, их атрибутов и методов (см. «Виды программных модулей»). Однако, контекст модуля можно передать как объект в виде параметра при вызове процедур и функций (см. «Передача локального контекста программного модуля в качестве параметра»). Кроме того, контекст модуля определяет тот набор методов, которые доступны только в данном контексте (см. «Атрибуты и методы контекста Модуля формы», «Методы контекста Модуля формы элемента справочника» и т. п.). Локальный контекст предназначен для того, чтобы дать возможность управлять частными аспектами поведения задачи, присущими данному модулю.