Основная страница

Глава 14-2
Работа с Регистрами оперативного учета


 

Методы контекста Модуля документа

Следующие методы доступны только в контексте Модуля документа в системной предопределенной процедуре ОбработкаПроведения.

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

ПривязыватьСтроку

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

Синтаксис:

ПривязыватьСтроку(<НомерСтроки>)

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

LinkLine

Параметры:

<НомерСтроки> Выражение, содержащее номер строки документа

Описание:

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

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

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Работа с Документами»).

Пример:

Процедура ОбработкаПроведения()

   Регистр.ТовЗап.Склад = Склад;

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

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

      Регистр.ТовЗап.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

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

ДвижениеПриход

Выполнить запись прихода в регистр по параметрам.

Синтаксис:

ДвижениеПриход (<Измерен1>, <Измерен2> ... , <Ресурс1>, <Ресурс2> ...)

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

ActIncome

Параметры:

<Измерен1>, <Измерен2>

Выражения со значениями измерений регистра.

<Ресурс1>, <Ресурс2>

Выражения со значениями ресурсов регистра.

Описание:

Метод ДвижениеПриход выполняет запись прихода в регистр для текущего документа. Измерения регистра, по которым записывается приход передаются параметрами <Измерение1>, <Измерение2>, ... Величина приращений приходуемых ресурсов регистра передаются параметрами <Ресурс1>, <Ресурс2>...

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Работа с Документами»).

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

Пример:

Процедура ОбработкаПроведения();

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

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

      Регистр.ТовЗап.ПривязыватьСтроку(НомерСтроки);

      Регистр.ТовЗап.ДвижениеПриход(Склад, Товар, Количество, Стоимость);

   КонецЦикла;

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

См. также: ОбработкаПроведения

ДвижениеРасход

Выполнить запись расхода в регистр по параметрам.

Синтаксис:

ДвижениеРасход(<Измерен1>, <Измерен2>..., <Ресурс1>, <Ресурс2>...)

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

ActOutcome

Параметры:

<Измерен1>, <Измерен2>

Выражения со значениями измерений регистра.

<Ресурс1 >, <Ресурс2>

Выражения со значениями ресурсов регистра.

Описание:

Метод ДвижениеРасход выполняет запись расхода в регистр для текущего документа. Измерения регистра, по которым записывается расход передаются <Измервн1>, <Измерен2>, .. Величина приращений расходуемых ресурсов регистра передаются параметрами <Ресурс1>, <Ресурс2>...

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Работа с Документами»).

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

Пример:

Процедура ОбработкаПроведения();

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

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

      Регистр.ТовЗап.ДвижениеРасход(Склад, Товар, Количество, Стоимость);

   КонецЦикла;

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

См. также: ОбработкаПроведения

ДвижениеПриходВыполнить

Выполнить запись прихода в регистр по атрибутам.

Синтаксис:

ДвижениеПриходВыполнить()

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

DoActIncome

Описание:

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

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Работа с Документами»).

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

Пример:

Процедура ОбработкаПроведения();

   Регистр.ТовЗап.Склад = Склад;

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

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

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеПриходВыполнить();

   КонецЦикла;

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

См. также: ОбработкаПроведения

ДвижениеРасходВыполнить

Выполнить запись расхода в регистр по атрибутам.

Синтаксис:

ДвижениеРасходВыполнить()

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

DoActOutcome

Описание:

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

Данный метод доступен только в контексте Модуле документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Работа с Документами»).

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

Пример:

Процедура ОбработкаПроведения()

   Регистр.ТовЗап.Склад = Склад;

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

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

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Количество = Количество;

      Регистр.ТовЗап.Стоимость = Стоимость;

      Регистр.ТовЗап.ДвижениеРасходВыполнить();

   КонецЦикла;

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

См. также: ОбработкаПроведения

Движение

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

Синтаксис:

Движение(<Измерен1>, <Измерен2>..., <Ресурс1> , <Ресурс2>...)

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

Act

Параметры:

<Измерен1 >, <Измерен2>

Выражения со значениями измерений регистра.

<Ресурс1>, <Ресурс2>

Выражения со значениями ресурсов регистра.

Описание:

Метод Движение выполняет запись движения в оборотный регистр для текущего документа. Измерения регистра, по которым записывается движение передаются в параметрах <Измерен1>, <Измерен2>, .. Величины приращений ресурсов регистра передаются параметрами <Ресурс1>, <Ресурс2>...

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. «Работа с Документами»).

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

Пример:

Процедура ОбработкаПроведения();

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

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

      Регистр.ОборотыТоваров.Движение(Товар, Склад, ОборотТовара);

   КонецЦикла;

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

См. также: ОбработкаПроведения

ДвижениеВыполнить

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

Синтаксис:

ДвижениеВыполнить()

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

DoAct

Описание:

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

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. "Работа с Документами").

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

Пример:

Процедура ОбработкаПроведения();

   Регистр.ТовЗап.Склад = Склад;

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

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

      Регистр.ТовЗап.Товар = Товар;

      Регистр.ТовЗап.Оборот = Оборот;

      Регистр.ТовЗап.ДвижениеВыполнить();

   КонецЦикла;

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

См. также: ОбработкаПроведения

Системные процедуры работы с регистрами

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

РассчитатьРегистрыНа

Рассчитать все временные регистры на начало события.

Синтаксис:

РассчитатьРегистрыНа(<ГраницаРасчета>, <ГрафаОтбора>)

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

CalcRegsOnBeg

Параметры:

<ГраницаРасчета>

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

<ГpaфaOтбopa>

Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора. "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора.

Описание:

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

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

Пример:

// если итоги не актуальны, то стоимости берем из временного расчета

// регистра УчетРеализации

Рег = СоздатьОбъект("Регистр.УчетРеализации");

Рег.ВременныйРасчет();

РассчитатьРегистрыНа(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;

РассчитатьРегистрыПо

Рассчитать все регистры на конец события.

Синтаксис:

РассчитатьРегистрыПо(<ГраницаРасчета>, <ГрафаОтбора>)

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

CalcRegsOnEnd

Параметры:

<ГраницаРасчета>

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

<ГрафаОтбора>

Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора. "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора.

Описание:

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

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

Пример:

// если итоги не актуальны, то стоимости берем из временного расчета

// регистра УчетРеализации

Рег = СоздатьОбъект("Регистр.УчетРеализации");

Рег.ВременныйРасчет();

РассчитатьРегистрыПо(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;

Вспомогательный объект Регистры

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

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

Пример:

СпецРег = СоздатьОбъект("Регистры");

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

Атрибуты объекта Регистры

<ИдентификаторРегистра>

Регистр конфигурации.

Синтаксис:

<ИдентификаторРегистра>

Описание:

Атрибут <ИдентификаторРегистра> предоставляет доступ к регистру конфигурации конкретного вида. В тексте программного модуля используется название конкретного регистра, как он назван в конфигураторе.

Пример:

СпецРег = СоздатьОбъект("Регистры");

СпецРег.УчетТоваров.СводныйОстаток(ВыбТовар, ВыбСклад, "Количество")

Методы объекта Регистры

ПолучитьАтрибут

Получить значение атрибута по идентификатору.

Синтаксис:

ПолучитьАтрибут(<ИмяАтрибута>)

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

GetAttrib

Параметры:

<ИмяАтрибута>

Строковое выражение, содержащее идентификатор регистра конфигурации.

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

Значение атрибута <ИмяАтрибута>.

Описание:

Метод ПолучитьАтрибут позволяет получить значение регистра по идентификатору, как он задан в метаданных.

Пример:

СпецРег = СоздатьОбъект("Регистры");

Рег = СпецРег.ПолучитьАтрибут("ОстаткиТоваров");

РассчитатьРегистрыНа

Рассчитать все временные регистры на начало события.

Синтаксис:

РассчитатьРегистрыНа(<ГраницаРасчета>, <ГрафаОтбора>)

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

CalcRegsOnBeg

Параметры:

<ГраницаРасчета>

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

<ГрафаОтбора>

Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора. "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора.

Описание:

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

Пример:

// если итоги не актуальны, то стоимости берем из временного расчета

// регистра УчетРеализации

СпецРег = СоздатьОбъект("Регистры");

Рег = СпецРег.УчетРеализации;

Рег.ВременныйРасчет();

СпецРег.РассчитатьРегистрыНа(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;

РассчитатьРегистрыПо

Рассчитать все регистры на конец события.

Синтаксис:

РассчитатьРегистрыПо(<ГраницаРасчета>, <ГрафаОтбора>)

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

CalcRegsOnEnd

Параметры:

<ГраницаРасчета>

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

<ГрафаОтбора>

Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора.

Описание:

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

Пример:

// если итоги не актуальны, то стоимости берем из временного расчета

// регистра УчетРеализации

СпецРег = СоздатьОбъект("Регистры");

Рег = СпецРег.УчетРеализации;

Рег.ВременныйРасчет();

СпецРег.РассчитатьРегистрыПо(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;

Актуальность

Устанавливает флаг актуальности временного расчета.

Синтаксис:

Актуальность(<ФлагАктуальности>)

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

Actual

Параметры:

<ФлагАктуальности>

Необязательный параметр. Число: 1 — временный расчет поддерживать в актуальном состоянии; 0 — не поддерживать актуальность временного расчета. Если параметр не задан, то метод просто возвращает текущий флат актуальности не меняя его.

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

Текущее состояние флага актуальности временного расчета. Число: 1 — временный расчет поддерживается в актуальном состоянии; 0 — не поддерживается.

Описание:

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

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

Пример:

// стоимости берем из временного расчета

// регистра УчетРеализации

СпецРег = СоздатьОбъект("Регистры");

СпецРег.Актуальность(1);

Рег = СпецРег.УчетРеализации;

Рег.ВременныйРасчет();

СпецРег.РассчитатьРегистрыНа(ТекущийДокумент());

Рег.Товар = Товар;

Рег.Клиент = Клиент;

Рег.ОстаткиПолучить();

ТекОстаток = Рег.ОстатокТовара;

ТекСтоимость = Рег.Стоимость;

ТекПродСтоимость = Рег.ПродСтоимость;







Перейти  к оглавлению: Описание встроенного языка