Регистры — это специфический инструмент системы 1С:Предприятие, средство накопления сводной информации. Регистры являются внутренним инструментом конфигурации, к которым нет непосредственного доступа через интерфейс пользователя. Информация о результатах хозяйственных операций, которая появляется при оформлении документов, накапливается в регистрах при «проведении» документов, а отображение информации, содержащейся в регистрах, осуществляется при помощи формирования отчетов. Информация из регистров используется для анализа хозяйственной деятельности за прошедший период.
При создании регистра определяется, как будет обрабатываться, группироваться и сохраняться сводная информация. Регистры могут быть двух видов: оборотные регистры и регистры остатков.
Регистр остатков — это объект, предназначенный для ведения остатков «ресурсов» на момент времени с привязкой к некоторому набору «измерений».
Оборотный регистр — это объект, предназначенный для подсчета оборота «ресурсов» за заданный интервал времени с привязкой к некоторому набору «измерений».
Ресурсами регистра могут являться любые категории учета, которые могут быть представлены в числовом виде, такие как: «количество товара», «долг клиента», «сумма наличных» и т. п. Измерения регистра — это оси координат, на пересечении которых регистр хранит конкретные значения ресурсов. Кроме того, при записи движения регистра можно задавать «реквизиты» регистра. Значения реквизитов регистра просто сопровождают запись о движении регистра (подобно комментарию) для возможности в дальнейшем производить фильтрацию движений при выборке.
Пример:
* Предположим, что в конфигураторе создан регистр остатков «Товарные_Запасы», который должен содержать сведения об остатке каждого товара на каждом складе, за каждым материально ответственным лицом. В дальнейшем предполагается получать информацию такого типа: «остаток конкретного товара на конкретном складе», «остаток конкретного товара всего» и т. п. В идеологии системы 1С:Предприятие такой регистр представляет собой прямоугольную систему координат, измерениями этого регистра являются: «Товар», «Склад», «МОЛ». Регистр имеет один ресурс — «Количество». Содержание данного регистра можно представить в виде следующей таблицы, где по каждому конкретному товару на конкретном складе за конкретным МОЛ числится определенное Количество.
Товар |
Склад |
МОЛ |
Количество |
Стол |
Первый |
Иванов |
10 |
Стол |
Первый |
Петров |
20 |
Стол |
Второй |
Иванов |
5 |
Шкаф |
Первый |
Петров |
7 |
Шкаф |
Второй |
Иванов |
2 |
Шкаф |
Второй |
Петров |
8 |
Шкаф |
Третий |
Петров |
10 |
Структура каждого конкретного вида регистра определяется при его создании в конфигураторе. Измерения, ресурсы и реквизиты регистров определяются в конфигураторе конкретно для каждого создаваемого вида регистра.
В отличие от документов и справочников, которые представлены конкретными объектами в информационной базе, регистр является механизмом для работы с итогами. Вследствие этого атрибуты регистра не являются свойствами некоторого объекта, а используются лишь как служебные переменные для манипуляции измерениями, ресурсами и реквизитами регистра при помощи соответствующих методов. Для каждого метода определяется, каким образом он использует атрибуты регистров. Следует обратить внимание, что ресурсы регистров принимают различное смысловое значение в зависимости от конкретной операции, выполняемой с регистром. Например, при записи движения регистра при помощи методов: ДвижениеПриходВыполнить, Движение РасходВыполнить и т. п. в ресурс регистра следует записывать приращение, которое будет изменять содержимое регистра, а при считывании итогов регистра (Остатки, ОстаткиПолучить и т. п.) ресурсы регистра содержат остаток (итоговые значения) содержимого регистров.
Под термином «остаток» ресурса для регистра остатков следует понимать числовое значение, которое имеет ресурс на какой-то момент времени. Именно здесь и проявляется понятие Точки Актуальности (далее ТА). ТА — это тот момент времени (дата+время), на который все необоротные регистры содержат текущие значения своих ресурсов. Другими словами, если просто запросить у регистра остатков значение какого-либо ресурса, то он выдаст его именно на момент ТА. Если необходимо узнать значение ресурса на какой-либо прошедший момент времени, то надо либо сдвинуть в прошлое ТА (для этого используется интерактивная операция «Управления итогами»), либо при помощи средств встроенного языка следует запустить «временный расчет» регистра. При «временном расчете» регистра остатков можно задать момент времени, на который необходимо получить значение ресурса. В этом случае значение ресурса рассчитывается, что требует несколько большего времени процессора, чем если получать ресурс на ТА. Однако, «временный расчет» рассчитывается не с начала всех времен, а от начала месяца. Регистры остатков хранят промежуточные значения ресурсов на начало каждого месяца (именно с этим связана процедура «переход на новый период»). Таким образом, если при «временном расчете» указать момент времени в начале месяца, то, в общем случае, расчет будет выполнен быстрее, чем если указать конец месяца.
Кроме хранения остатка или оборота ресурсов, регистры хранят все «приращения» (приход со знаком «+», расход со знаком «-»), произведенные документами (это обозначается термином «движения регистра»). Причем, эти «при-оащения» регистров хранятся со ссылками на те документы, которые их вызвали. Поэтому, во встроенном языке системы 1С:Предприятие есть методы, чтобы получить из регистра все его движения (с привязкой к документам), указав интервал времени, за который они нужны.
Документы, как объекты прикладной задачи, тесно связаны с регистрами. Именно документы, и только они могут изменять значения ресурсов в регистрах (этот алгоритм прописывается в предопределенной процедуре ОбработкаПроведения для каждого вида документа). Никаким другим способом, кроме как через проведение документов на содержимое регистров повлиять нельзя. Например, нельзя создать отчет, который бы изменял значения, хранящиеся в регистрах. Движения (приращения) регистров выполняются в момент «проведения» документа. С другой стороны, документы не порождают в регистрах необратимых действий. Что это значит? Если ранее проведенный документ удалить или сделать его непроведенным, то удалятся и все движения регистров, порожденные им. Если отредактировать (изменить) ранее проведенный документ, то после перепроведения документа все движения регистров, порожденные ранее, удалятся и заменятся новыми.
Замечание: Формирование движений документов по регистрам доступно только в Модуле документа в системной предопределенной процедуре ОбработкаПроведения.
В синтаксисе языка применение атрибутов и вызов методов регистров может выполняться двумя способами:
· Средства языка предоставляют возможность непосредственного доступа к атрибутам и методам регистров, объявленных в конфигураторе в любом программном модуле (все объявленные в конфигураторе регистры принадлежат глобальному контексту конфигурации). Во всех текстах программных модулей доступ к атрибутам, вызовы методов регистров можно записывать просто через точку после полного имени регистра.
Пример:
Флаг = Регистр.ОстаткиТовара.Приход;
· Во всех программных модулях доступ к атрибутам и методам регистров __ может выполняться при помощи переменной со ссылкой на объект типа регистр. Объект создается функцией СоздатьОбъект, ссылка на который присваивается переменной. Чтобы вызвать атрибут или метод объекта, имя этого атрибута или метода (с указанием необходимых параметров) пишется через точку после имени объекта При создании объекта типа регистр, в качестве названия регистра обязательно должно выступать полное имя конкретного регистра, как оно объявлено в конфигураторе. Вид регистра записывается через точку после ключевого слова Регистр, т. е. полное имя регистра записывается следующим образом:
Регистр.<ХХХХХ>
где <ХХХХХ> — вид регистра, объявленный в конфигураторе. Англоязычный синоним ключевого слова Регистр — Register.
Пример:
Рег = СоздатьОбъект("Регистр.ТовЗап");
Флаг движения регистра «приход».
Синтаксис:
Приход
Англоязычный синоним:
Income
Описание:
Атрибут Приход содержит значение флага записи движения регистра и используется только при обращении к существующим записям движений регистров. Данный атрибут только для чтения. Атрибут Приход может принимать числовое значение 1 — если текущее движение регистра приход, 0 — если нет.
Данный атрибут не имеет смысла для оборотных регистров.
Пример:
Рег1 = СоздатьОбъект("Регистр.Взаиморасчеты");
Если Режим = "Подробно" Тогда
Рег1.УстановитьФильтр(Клиент);
Рег1.ВыбратьДвижения(ДатаНачало, );
Пока Рег1.ПолучитьДвижение()>0 Цикл
Если Число(Рег1.Клиент.Код) <> Число(Запрос.Клиент.Код) Тогда
Продолжить;
КонецЕсли;
Док = Рег1.ТекущийДокумент();
Дв_Баз_Сум = Рег1.СуммаБазовая;
Дв_Вал_Сум = Рег1.СуммаВалютная;
Если Рег1.Приход = 1 Тогда
Таб.ВывестиСекцию("Приход");
Иначе
Таб.ВывестиСекцию("Расход");
КонецЕсли;
КонецЦикла;
КонецЕсли;
Флаг движения регистра «расход».
Синтаксис:
Расход
Англоязычный синоним:
Outcome
Описание:
Атрибут Расход содержит значение флага записи движения регистра и используется только при обращении к существующим записям движений регистров. Данный атрибут только для чтения. Атрибут Расход может принимать числовое значение 1 — если текущее движение регистра расход, 0 — если нет.
Данный атрибут не имеет смысла для оборотных регистров.
Пример:
Рег1 = СоздатьОбъект("Регистр.Взаиморасчеты");
Если Режим = "Подробно" Тогда
Рег1.УстановитьФильтр(Клиент);
Рег1.ВыбратьДвижения(ДатаНачало, );
Пока Рег1.ПолучитьДвижение() > 0 Цикл
Если Число(Рег1.Клиент.Код) <> Число(Запрос.Клиент.Код) Тогда
Продолжить;
КонецЕсли;
Док = Рег1.ТекущийДокумент();
Дв_Баз_Сум = Рег1.СуммаБазовая;
Дв_Вал_Сум = Рег1.СуммаВалютная;
Если Рег1.Расход = 1 Тогда
Таб.ВывестиСекцию("Расход");
Иначе
Таб.ВывестиСекцию("Приход");
КонецЕсли;
КонецЦикла;
КонецЕсли;
Установить значение измерения регистра.
Синтаксис:
<Измерение>
Описание:
Атрибут <Измерение> задает значение выбранного измерения регистра. В тексте программного модуля используется название конкретного измерения регистра, как он назван в конфигураторе.
Пример:
Процедура ОбработкаПроведения()
// В регистре "ТовЗап" измерениями являются "Склад" и "Товар"
// ресурсами являются "Количество" и "Стоимость"
Регистр.ТовЗап.Склад = Склад;
ВыбратьСтроки();
Пока (ПолучитьСтроку() > 0) Цикл
Регистр.ПривязыватьСтроку(НомерСтроки);
Регистр.ТовЗап.Товар = Товар;
Регистр.ТовЗап.Количество = Количество;
Регистр.ТовЗап.Стоимость = Стоимость;
Регистр.ТовЗап.ДвижениеРасходВыполнить();
КонецЦикла;
КонецПроцедуры
Установить значение ресурса регистра.
Синтаксис:
<Ресурс>
Описание:
Атрибут <Ресурс> задает значение выбранного ресурса регистра. В тексте программного модуля используется название конкретного ресурса регистра, как он назван в конфигураторе.
Пример:
См. предыдущий пример.
Установить значение реквизита регистра.
Синтаксис:
<Реквизит>
Описание:
Атрибут <Реквизит> задает значение выбранного реквизита регистра. В тексте программного модуля используется название конкретного реквизита регистра, как он назван в конфигураторе.
Пример:
Процедура ОбработкаПроведения()
// В регистре "ТовЗап" измерениями являются "Склад" и "Товар"
// ресурсами являются "Количество" и "Стоимость"
// реквизитом является "ВнутрПеремещение"
Регистр.ТовЗап.Склад = Склад;
Если Вид() = "Перемещение" Тогда
Регистр.ТовЗап.ВнутрПеремещение = 1;
Иначе
Регистр.ТовЗап.ВнутрПерсмещение = 0;
КонецЕсли;
ВыбратьСтроки();
Пока ПолучитьСтроку() > 0 Цикл
Регистр.ТовЗап.ПривязыватьСтроку(НомерСтроки);
Регистр.ТовЗап.Товар = Товар;
Регистр.ТовЗап.Количество = Количество;
Регистр.ТовЗап.Стоимость = Стоимость;
Регистр.ТовЗап.ДвижениеРасходВыполнить();
КонецЦикла;
КонецПроцедуры
Описанные в данном разделе методы используются только для оборотных регистров.
Установить период выборки итогов оборотного регистра.
Синтаксис 1:
ИспользоватьПериод(<Дата>)
Синтаксис 2:
ИспользоватьПериод(<Год>, <Месяц>, <День>)
Синтаксис 3:
ИспользоватьПериод(<Год>, <НомерНедели>)
Синтаксис 4:
ИспользоватьПериод (<Год>, <Месяц>, <НомерДекады>)
Синтаксис 5:
ИспользоватьПериод(<Год>, <Месяц>)
Синтаксис 6:
ИспользоватьПериод(<Год>, <НомерКвартала>)
Синтаксис 7:
ИспользоватьПериод(<Год>)
Англоязычный синоним:
UseРег1od
Параметры:
<Дата> |
Выражение типа «дата». |
<Год> |
Числовое выражение, содержащее номера года. |
<Месяц> |
Числовое выражение, содержащее номер месяца. |
<День> |
Числовое выражение, содержащее номер дня месяца. |
<НомерДекады> |
Числовое выражение, содержащее номер декады месяца. |
<НомерКвартала> |
Числовое выражение, содержащее номер квартала. |
Описание:
Метод ИспользоватьПериод устанавливает период выборки итогов оборотного регистра. Различный синтаксис вызова данного метода зависит от заданного в конфигураторе интервала оборотного регистра.
Заданный в конфигураторе |
Используемый синтаксис |
День |
синтаксис 1 и 2. |
Неделя |
синтаксис 1 и 3. |
Декада |
синтаксис 4. |
Месяц |
синтаксис 5. |
Квартал |
синтаксис 6. |
Год |
синтаксис 7. |
Данный метод используется до вызова методов оборотных регистров. Дальнейшая выборка итогов будет происходить по указанному периоду. Если при работе с оборотным регистром этот метод опущен, то по умолчанию используется текущий период, в котором находится ТА.
Пример:
Регистр.ОборотыТоваров.ИспользоватьПериод(1996);
Возвратить итог одного ресурса оборотного регистра.
Синтаксис:
Итог(<Измерен1>, <Измерен2>..., <ИмяРесурса>)
Англоязычный синоним:
Total
Параметры:
<Измерен1>, <Измерен2>... |
Выражения со значениями измерений регистра. |
<ИмяРесурса> |
Строковое выражение, содержащее название требуемого ресурса регистра, как оно названо в конфигураторе. |
Возвращаемое значение:
Численое значение итога заданного ресурса регистра.
Описание:
Метод Итог возвращает итог по ранее установленному периоду ресурса <ИмяРесурса> оборотного регистра.
Данный метод используется только для оборотных регистров.
Пример:
Функция ПолучитьИтог(Товар, Склад, Год);
Регистр.ОборотыТоваров.ИспользоватьПериод(Год);
Возврат Регистр.ОборотыТоваров.Итог(Товар, Склад, "ОборотТовара");
КонецФункции
Извлечь все итоги ресурсов оборотного регистра.
Синтаксис:
Итоги(<Измерен1>, <Измерен2>...)
Англоязычный синоним:
Totals
Параметры:
<Измерен1>, <Измерен2>... |
Выражения со значениями измерений регистра. |
Описание:
Метод Итоги извлекает итоги по всем ресурсам по ранее установленному периоду оборотного регистра. Полученные итоги ресурсов затем можно считывать из атрибутов регистра.
Данный метод используется только для оборотного регистра.
Пример:
Регистр.ОборотыТоваров.ИспользоватьПериод(Год);
Регистр.ОборотыТоваров.Итоги(Товар, Склад);
ОбТов = Регистр.ОборотыТоваров.ОборотТовара;
Возвратить сводный итог ресурса оборотного регистра.
Синтаксис:
СводныйИтог(<Измерен1>, <Измерен2>..., <ИмяРесурса>)
Англоязычный синоним:
ConsolidatedTotal
Параметры:
<Измерен1>, <Измерен2>... |
Выражения со значениями измерений регистра. |
<ИмяРесурса> |
Строковое выражение, содержащее название требуемого ресурса регистра, как оно названо в конфигураторе. |
Возвращаемое значение:
Численое значение сводного итога заданного ресурса регистра.
Описание:
Метод СводныйИтог возвращает сводный итог ресурса <ИмяРесурса> оборотного регистра. Данный метод работает аналогично методу Итог, однако здесь могут быть заданы не все значения измерений, а только несколько, но обязательно в правильной последовательности, соответствующей структуре измерений данного регистра, как она задана в конфигураторе. Измерения могут задаваться с пропусками (неуказанное значение — просто запятая), фиксируются только указанные измерения.
Данный метод используется только для оборотного регистра.
Пример:
Функция ПолучитьСводныйИтог(Товар, Год);
Регистр.ОборотыТоваров.ИспользоватьПериод(Год);
Возврат Регистр.ОборотыТоваров.СводныйИтог(Товар, , "ОборотТовара");
КонецФункции
Извлечь сводные итоги ресурсов оборотного регистра.
Синтаксис:
СводныеИтоги(<Измерен1>, <Измерен2>...)
Англоязычный синоним:
ConsolidatedTotals
Параметры:
<Измерен1>, <Измерен2>... |
Выражения со значениями измерений регистра. |
Описание:
Метод СводныеИтоги извлекает по переданным в качестве параметров измерениям сводные итоги всех ресурсов оборотного регистра. Полученные ресурсы затем можно считывать из атрибутов регистра. Метод работает аналогично процедуре Итоги, однако здесь могут быть заданы не все значения измерений, а только несколько, но обязательно в правильной последовательности, соответствующей структуре измерений данного регистра, как она задана в конфигураторе. Измерения могут задаваться с пропусками (неуказанное значение -просто запятая), фиксируются только указанные измерения.
Данный метод используется только для оборотного регистра.
Пример:
Регистр.ОборотыТоваров.ИспользоватьПериод(Год);
Регистр.ОборотыТоваров.СводниеИтоги(Товар, );
ПолныйОбТов = Регистр.ОборотыТоваров.ОборотТовара;
Получить все ресурсы по регистру.
Синтаксис:
ИтогиПолучить()
Англоязычный синоним:
TotalsGet
Описание:
Метод ИтогиПолучить извлекает все итоги ресурсов оборотного регистра по измерениям, содержащимся в атрибутах. Полученные ресурсы затем можно считывать из атрибутов регистра.
Данный метод используется только для оборотного регистра.
Пример:
Регистр.ОборотыТоваров.Товар = Конт.Товар;
Регистр.ОборотыТоваров.Склад = Конт.Склад;
Регистр.ОборотыТоваров.ИтогиПолучить();
Сообщить("Оборот товара=" + Регистр.ОборотыТоваров.ОборотТовара;
Описанные в данном разделе методы используются только для регистров остатков.
Возвратить остаток одного ресурса регистра.
Синтаксис:
Остаток(<Измерен1>, <Измерен2>..., <ИмяРесурса>)
Англоязычный синоним:
Rest
Параметры:
<Измерен1>, <Измерен2>... |
Выражения со значениями измерений регистра. |
<ИмяРесурса> |
Строковое выражение, содержащее название требуемого ресурса регистра, как оно задано в конфигураторе. |
Возвращаемое значение:
Численое значение остатка заданного ресурса регистра.
Описание:
Метод Остаток возвращает остаток ресурса <ИмяРесурса> по регистру. Данный метод используется только для регистров остатков.
Пример:
Процедура ПолучитьОстаток(Товар, Склад, Ост, Стоим);
Ост = Регистр.УчетТовара.Остаток(Товар, Склад, "ОстаткиТовара");
Стоим = Регистр.УчетТовара.Остаток(Товар, Склад, "СтоимостьТовара");
КонецПроцедуры
Возвратить сводный остаток ресурса по регистру
Синтаксис:
СводныйОстаток(<Измерен1>, <Измерен2>..., <ИмяРесурса>)
Англоязычный синоним:
ConsolidatedRest
Параметры:
<Измepeнl>, <Измepeн2>... |
Выражения со значениями измерений регистра. |
<ИмяРесурса> |
Строковое выражение, содержащее название требуемого ресурса регистра, как оно названо в конфигураторе. |
Возвращаемое значение:
Численное значение сводного остатка заданного ресурса регистра.
Описание:
Метод СводныйОстаток возвращает сводный остаток ресурса <ИмяРесурса> по регистру. Данный метод работает аналогично методу Остаток, однако здесь могут быть заданы не все значения измерений, а только несколько, но обязательно в правильной последовательности, соответствующей структуре измерений данного регистра, как она задана в конфигураторе. Измерения могут задаваться с пропусками (неуказанное значение — просто запятая), фиксируются только указанные измерения.
Данный метод используется только для регистров остатков.
Пример:
* Для регистра с измерениями «Товар», «Склад», «МОЛ» запись
Рег.СводныйОстаток(Тов1, , "ОстатокТовара");
означает, что ресурс «ОстатокТовара» будет получен только по одному товару (Тов1), но по всем складам и всем МОЛам.
*
Процедура ПолучитьСводныйОстаток(Товар, Ост);
Ост = Регистр.УчетТовара.СводныйОстаток(Товар, , "ОстаткиТовара");
КонецПроцедуры
Извлечь все ресурсы по регистру.
Синтаксис:
Остатки(<Измерен1>, <Измерен2>...)
Англоязычный синоним:
Rests
Параметры:
<Измерен1>, <Измерен2>... |
Выражения со значениями измерений регистра. |
Описание:
Метод Остатки извлекает по переданным в качестве параметров измерениям все ресурсы по регистру. Полученные ресурсы затем можно считывать из атрибутов регистра.
Данный метод используется только для регистров остатков.
Пример:
Процедура ПолучитьОстатки(Товар, Склад, ОстатокТовара, Стоимость);
Регистр.УчетТовара.Остатки(Товар, Склад);
ОстатокТовара = Регистр.УчетТовара.ОстаткиТовара;
Стоимость = Регистр.УчетТовара.СтоимостьТовара;
КонецПроцедуры
Извлечь сводные ресурсы по регистру.
Синтаксис:
СводныеОстатки(<Измерен1>, <Измерен2>...)
Англоязычный синоним:
ConsolidatedRests
Параметры:
<Измерен1>, <Измерен2>... |
Выражения со значениями измерений регистра. |
Описание:
Метод СводныеОстатки извлекает по переданным в качестве параметров измерениям все ресурсы по регистру. Полученные ресурсы затем можно считывать из атрибутов регистра. Метод работает аналогично процедуре Остатки, однако здесь могут быть заданы не все значения измерений, а только несколько, но обязательно в правильной последовательности, соответствующей структуре измерений данного регистра, как она задана в конфигураторе. Измерения могут задаваться с пропусками (неуказанное значение — просто запятая), фиксируются только указанные измерения.
Данный метод используется только для регистров остатков.
Пример:
* Для регистра с измерениями «Товар», «Склад», «МОЛ» запись
Рег.СводныеОстатки(Тов1, , );
означает, что ресурсы будут получены только по одному товару (Тов1), но по всем складам и всем МОЛам.
*
Процедура ПолучитьСводныеОстатки(Товар, ОстатокТовара, Стоимость);
Регистр.УчетТовара.СводныеОстатки(Товар, );
ОстатокТовара = Регистр.УчетТовара.ОстаткиТовара;
Стоимость = Регистр.УчетТовара.СтоимостьТовара;
КонецПроцедуры
Получить все ресурсы по регистру.
Синтаксис:
ОстаткиПолучить()
Англоязычный синоним:
GetRests
Описание:
Метод ОстаткиПолучить извлекает все ресурсы регистра по измерениям содержащимся в атрибутах. Полученные ресурсы затем можно считывать из атрибутов регистра.
Данный метод используется только для регистров остатков.
Пример:
Регистр.Взаиморасчеты.Клиент = Конт.Клиент;
Регистр.Взаиморасчеты.ОстаткиПолучить();
Сообщить("Долг клиента по заиморасчетам="
+ СокрЛ(Регистр.Взаиморасчеты.СуммаВалютная);
Выбрать все движения регистра с остатками.
Синтаксис:
ВыбратьДвиженияСОстатками(<КонецВыборки>, <ГрафаОтбора>)
Англоязычный синоним:
SelectActsWithRests
Параметры:
<КонецВыборки> |
Выражение типа дата, документ или позиция документа задающее конец временного интервала выбора движений регистра. |
<ГрафаОтбора> |
Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора. "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора. |
Описание:
Метод ВыбратьДвиженияСОстатками инициирует выбор всех движении регистра в указанном интервале дат. До вызова данной процедуры может быть установлен фильтр (см. УстановитьФильтр), ограничивающий выборку значений из регистра. Если <КонецВыборки> не указан или равен 0, то конном временного интервала выбора движений регистра считается ТА.
Данный метод отличается от метода ВыбратьДвижения тем, что после получения очередного движения метод Остаток будет выдавать актуальные значения остатков для этого регистра. Но для этого перед вызовом метода ВыбратьДвиженияСОстатками регистру должен быть установлен признак временногоРасчета» (см. ВременныйРасчет) и должен быть выполнен временный расчет (см. РассчитатьРегистрыНа и РассчитатьРегистрыПо) — его дата и будет являться начальной датой выбираемых движений регистра. Данная возможность не может быть использована совместно с дальнейшими «Временными» расчетами.
Собственно выбор первого и последующих движений регистра осуществляется методом ПолучитьДвижение.
Данный метод используется только для регистров остатков.
Пример:
Рег = СоздатьОбъект("Регистр.Взаиморасчеты");
Рег.ВременныйРасчет();
Рег.УстановитьФильтр(Клиент, );
РассчитатьРегистрыНа(ДатаНачала);
Рег.ВыбратьДвиженияСОстатками(ДатаКонца);
Пока Рег.ПолучитьДвижение() = 1 Цикл
Прих = 0;
Расх = 0;
Если Рег.Приход = 1 Тогда
Прих = Рег.Долг;
Иначе
Расх = Рег.Долг;
КонецЕсли;
ТекущееСальдо = Рег.Остаток(Клиент, "Задолженность");
Док = Рег.ТекущийДокумент();
Таб.ВывестиСекцию("Документ");
КонецЦикла;
См. также: УстановитьФильтр, ПолучитьДвижение, ВыбратьДвижения, ВременныйРасчет, РассчитатьРегистрыНа, РассчитатьРегистрыПо
Описанные в данном разделе методы используются как для регистров остатков так и для оборотных регистров.
Определить название вида регистра.
Синтаксис:
Вид()
Англоязычный синоним:
Kind
Возвращаемое значение:
Строковое значение, содержащее название вида регистра.
Описание:
Метод Вид позволяет определить название вида регистра, как он задан ь конфигураторе.
Пример:
// отобразим вид регистра в строке состояния
Состояние(Рег1.Вид());
Определить пользовательское представление вида регистра.
Синтаксис:
ПредставлениеВида()
Англоязычный синоним:
KindPresent
Возвращаемое значение:
Строковое значение, содержащее пользовательское представление вида регистра (синоним регистра или, если он пустой, то идентификатор).
Описание:
Метод ПредставлениеВида позволяет получить пользовательское представление вида регистра, как оно задано в конфигураторе.
Пример:
// отобразим пользовательское представление в строке состояния Состояние
(Рег1.ПредставлениеВида());
Назначить тип для реквизита неопределенного вида.
Синтаксис:
НазначитьТип(<ИмяРеквизита>, <ИмяТипа>, <Длина>, <Точность>)
Англоязычный синоним:
SetType
Параметры:
<ИмяРеквизита> |
Строковое выражение — название реквизита регистра неопределенного типа, как он назван в конфигураторе. |
<ИмяТипа> |
Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту регистра. Например: "Строка", "Число", "Справочник.Товары", " Документ.РасходнаяНакладная" и т. п. |
<Длина> |
Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа. |
<Точность> |
Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа. |
Описание:
Метод НазначитьТип позволяет назначить тип для реквизита, которому в конфигураторе назначен тип «Неопределенный».
Пример:
Регистр.УчетТМЦ.НазначитьТип("ТМЦ", "Справочник.Товары");
Установить значение атрибута по имени идентификатора.
Синтаксис:
УстановитьАтрибут(<ИмяРеквизита>, <3начение>)
Англоязычный синоним:
SetAttrib
Параметры:
<ИмяРеквизита> |
Строковое выражение, содержащее имя атрибута, как оно задано в конфигураторе. |
<3начение> |
Выражение, содержащее устанавливаемое значение атрибута. |
Описание:
Метод УстановитьАтрибут позволяет установить значение атрибута по имени идентификатора, как оно задано в конфигураторе.
Пример;
Рег.УстановитьАтрибут("Сумма", СуммаТов);
Получить значение атрибута по идентификатору.
Синтаксис:
ПолучитьАтрибут(<ИмяАтрибута>)
Англоязычный синоним:
GetAttrib
Параметры:
<ИмяAтpибyтa> |
Строковое выражение, содержащее имя атрибута, как оно задано в конфигураторе. |
Возвращаемое значение:
Значение атрибута <ИмяАтрибута>.
Описание:
Метод ПолучитьАтрибут позволяет получить значение атрибута по идентификатору, как оно задано в метаданных.
Пример:
СуммаТов = Рег.ПолучитьАтрибут("Сумма");
Выбрать все движения регистра по датам.
Синтаксис:
ВыбратьДвижения(<НачалоВыборки>, <КонецВыборки>, <ГрафаОтбора>)
Англоязычный синоним:
SelectActs
Параметры:
<НачалоВыборки> |
Выражение типа дата, документ или позиция документа, задающее начало временного интервала выбора движений регистра. |
<КонецВыборки> |
Выражение типа дата, документ или позиция документа задающее конец временного интервала выбора движений регистра. |
<ГрафаОтбора> |
Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора. "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора. |
Описание:
Метод ВыбратьДвижения инициирует выбор всех движений регистра в указанном интервале дат. До вызова данной процедуры может быть установлен фильтр (см. УстановитьФильтр), ограничивающий выборку значений из регистра. Если <КонецВыборки> не указан или равен 0, то концом временного интервала выбора движений регистра считается ТА.
Собственно выбор первого и последующих движений регистра осуществляется функцией ПолучитьДвижение.
Пример:
Рег1 = СоздатьОбъект("Регистр.Взаиморасчеты");
Если Режим = "Подробно" Тогда
Рег1.УстановитьФильтр(Клиент);
Рег1.ВыбратьДвижения(ДатаНачало, );
Пока Рег1.ПолучитьДвижение() > 0 Цикл
Док = Рег1.ТекущийДокумент();
Дв_Баз_Сум = Рег1.СуммаБазовая;
Дв_Вал_Сум = Рег1.СуммаВалютная;
Если Рег1.Расход = 1 Тогда
Таб.ВывестиСекцию("Расход2");
Иначе
Таб.ВывестиСекцию("Приход2");
КонецЕсли;
КонецЦикла;
КонецЕсли;
См. также: ПолучитьДвижение
Выбрать все движения регистра по документу.
Синтаксис:
ВыбратьДвиженияДокумента(<Документ>)
Англоязычный синоним:
SelectDocActs
Параметры:
<Документ> |
Значение типа Документ. |
Возвращаемое значение:
Число: 1 — если действие выполнено и в выборке есть хотя бы один элемент; 0 — если действие не выполнено или в выборке нет ни одного элемента.
Описание:
Метод ВыбратьДвиженияДокумента инициирует выбор всех движений регистра по указанному документу <Документ>.
Собственно выбор первого и последующих движений регистра осуществляется функцией ПолучитьДвижение.
Пример:
Процедура Взаиморасчеты(ВыбКлиент, ДатаНачало, ДатаКонец)
// Создание Таблицы для выходного отчета
Заг = "Неизвестно.";
Таб = СоздатьОбъект("Таблица");
Клн = СоздатьОбъект("Справочник.Клиенты");
Клн.ИспользоватьДату(ДатаКонец);
Док = СоздатьОбъект("Документ");
Рег = СоздатьОбъект("Регистр.Взаиморасчеты");
Рег1 = СоздатьОбъект("Регистр.Взаиморасчеты");
Рег.ВременныйРасчет();
РассчитатьРегистрыНа(ДатаКонец);
Если ВыбКлиент.Выбран() = 0 Тогда
//Без условий
Заг = "По всем клиентам.";
ИначеЕсли ВыбКлиент.ЭтоГруппа() = 1 Тогда
Клн.ВключатьПодчиненные(ВыбКлиент);
Клн.ИспользоватьРодителя(ВыбКлиент);
Заг = "По клиентам группы " + ВыбКлиент.Наименование;
Иначе
Предупреждение("Выберите группу клиентов!");
Возврат;
КонецЕсли;
Таб.ВывестиСекцию("Отчет");
Клн.ВыбратьЭлементы();
Пока Клн.ПолучитьЭлемент() > 0 Цикл
Если Клн.ЭтоГруппа() = 1 Тогда
Таб.ВывестиСекцию("Группа");
Иначе
Рег.Клиент = Клн.ТекущийЭлемент();
Рег.ОстаткиПолучить();
Баз_сум = Рег.СуммаБазовая;
Вал_сум = Рег.СуммаВалютная;
Таб.ВывестиСекцию("Клиент");
// цикл по всем документам
Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);
Пока Док.ПолучитьДокумент() > 0 Цикл
// отфильтруем документы
Если (Док.Вид() = "Перемещение") ИЛИ (Док.Вид() = "Счет") ИЛИ
(Док.Вид() = "Списание") ИЛИ
(Док.Вид() = "РучноеИзмОстатка") Тогда
// Эти Документы не изменяют Взаиморасчеты
Продолжить;
КонецЕсли;
// выберем все движения регистра по документу
Рег1.ВыбратьДвиженияДокумента(Док.ТекущийДокумент());
Пока Рег1.ПолучитьДвижение() > 0 Цикл
Если Строка(Рег1.Клиент.Код) <> Строка(Клн.Код) Тогда
// не тот клиент
Продолжить;
КонецЕсли;
Дв_Баз_Сум = Рег1.СуммаБазовая;
Дв_Вал_Сум = Рег1.СуммаВалютная;
Если Рег1.Приход = 1 Тогда
Таб.ВывестиСекцию("Приход");
Иначе
Таб.ВывестиСекцию("Расход");
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;
//Вызов выходного отчета в окно просмотра и редактирования.
Таб.ТолькоПросмотр(1);
Таб.Опции(0, 0, 4, 0);
Таб.Показать("Взаиморасчеты с клиентами", "");
ВыбКлиент = 0;
КонецПроцедуры
См. также: ПолучитьДвижение
Установить порядок выборки документов.
Синтаксис:
ОбратныйПорядок(<Режим>)
Англоязычный синоним:
BackwardOrder
Параметры:
<Режим> |
Необязательный параметр. Числовое выражение: 1 — выбирать движения документов в обратном порядке даты и времени; 0 — выбирать движения документов в порядке возрастания даты и времени. |
Возвращаемое значение:
Числовое значение, содержащее текущее значение режима порядка выборки документов (на момент до исполнения метода).
Описание:
Метод ОбратныйПорядок устанавливает порядок выборки движения документов. Данный метод обычно используется до вызова одного из методов: ВыбратьДвижения, ВыбратьДвиженияСОстатками, который фактически открывает выборку. Дальнейшая выборка при помощи метода ПолучитьДвижение будет происходить в заданном порядке выборки.
По умолчанию, выборка движения документов выполняется в порядке возрастания даты и времени записи документов. Поэтому реально имеет смысл применять данный метод только в том случае, если надо получить обратный порядок выборки.
В тексте программного модуля возможно использование данного метода как процедуры или как функции. При использовании в качестве функции, возвращаемое значение соответствует текущему порядку выборки, которое было до вызова данного метода.
Пример:
Рег = СоздатьОбъект("Регистр.Взаиморасчеты");
Если Режим = "Подробно" Тогда
Рег1.УстановитьФильтр(Клиент);
// Открываем выборку
Рег1.ОбратныйПорядок(1);
Рег1.ВыбратьДвижения(ДатаНачало, );
// Цикл выбора движений по регистру
Пока Рег1.ПолучитьДвижение() > 0 Цикл
Если Строка(Рег1.Клиент.Код) <> Строка(Запрос.Клиент.Код) Тогда
Продолжить;
КонецЕсли;
Док = Рег1.ТекущийДокумент();
Дв_Баз_Сум = Рег1.СуммаБазовая;
Дв_Вал_Сум = Рег1.СуммаВалютная;
Если Рег1.Расход = 1 Тогда
Таб.ВывестиСекцию("Расход2");
Иначе
Таб.ВывестиСекцию("Приход2");
КонецЕсли;
КонецЦикла;
КонецЕсли;
Выбрать очередное движение регистра.
Синтаксис:
ПолучитьДвижение()
Англоязычный синоним:
GetDocAct
Возвращаемое значение:
Число: 1 — если следующее движение регистра выбрано успешно; 0 — если движение регистра не найдено (отсутствует).
Описание:
Метод ПолучитьДвижение выбирает следующее движение регистра в последовательности выборки, открытой перед этим при помощи методов ВыбратьДвиженияДокумента или ВыбратьДвижения или ВыбратьДвиженияСОстатками. Данный метод используется для организации цикла по регистру.
После выполнения даннго метода все атрибуты регистра: измерения, ресурсы, Приход и Расход содержат значения текущей записи движения регистра.
Данный метод может использоваться только для позиционируемых объектов, созданных функцией СоздатьОбъект.
Пример:
Рег1 = СоздатьОбъект("Регистр.Взаиморасчеты");
Если Режим = "Подробно" Тогда
Рег1.УстановитьФильтр(Клиент);
// Открываем выборку
Рег1.ВыбратьДвижения(ДатаНачало, );
// Цикл выбора движений по регистру
Пока Рег1.ПолучитьДвижение() > 0 Цикл
Если Строка(Рег1.Клиент.Код) <> Строка(Запрос.Клиент.Код) Тогда
Продолжить;
КонецЕсли;
Док = Рег1.ТекущийДокумент();
Дв_Баз_Сум = Рег1.СуммаБазовая;
Дв_Вал_Сум = Рег1.СуммаВалютная;
Если Рег1.Расход = 1 Тогда
Таб.ВывестиСекцию("Расход2");
Иначе
Таб.ВывестиСекцию("Приход2");
КонецЕсли;
КонецЦикла;
КонецЕсли;
См. также: ВыбратьДвиженияДокумента, ВыбратьДвижения, ВыбратьДвиженияСОстатками
Возвратить значение документа, выполнившего движение регистра.
Синтаксис:
ТекущийДокумент()
Англоязычный синоним:
CurrentDocument
Возвращаемое значение:
Значение документа, который задал движение регистра.
Описание:
Метод ТекущийДокумент возвращает значение документа, который задал движение регистра. Метод используется после получения очередного движения регистра (см. методы ПолучитьДвижение и ПолучитьИтог).
Данный метод может использоваться только для переменных созданных функцией СоздатьОбъект.
Пример:
Рег = СоздатьОбъект("Регистр.Взаиморасчеты");
Рег.ВременныйРасчет();
Рег.УстановитьФильтр(Клиент, );
РассчитатьРегистрыНа(ДатаНачала);
Рег.ВыбратьДвиженияСОстатками(ДатаКонца);
Пока Рег.ПолучитьДвижение() = 1 Цикл
Прих = 0;
Расх = 0;
Если Рег.Приход = 1 Тогда
Прих = Рег.Долг;
Иначе
Расх = Рег.Долг;
КонецЕсли;
ТекущееСальдо = Рег.Остаток(Клиент, "Задолженность");
Док = Рег.ТекущийДокумент();
Таб.ВывестиСекцию("Документ");
КонецЦикла;
См. также: ПолучитьДвижение, НомерСтроки
Возвратить номер строки документа, выполнившего движение регистра.
Синтаксис:
НомерСтроки()
Англоязычный синоним:
LineNum
Возвращаемое значение:
Число — номер строки документа, выполнившего движение регистра.
Описание:
Метод НомерСтроки возвращает значение номера строки документа, которая задала движение регистра (в случае, когда в Модуле документа перед движением регистра использовали метод ПривязыватьСтроку). Метод используется после получения очередного движения регистра (см. функции ПолучитьДвижение и ПолучитьИтог).
Данный метод может использоваться только для переменных созданных Функцией СоздатьОбъект.
Пример:
Рег = СоздатьОбъект("Регистр.Взаиморасчеты");
Рег.ВременныйРасчет();
Рег.УстановитьФильтр(Клиент);
РассчитатьРегистрыНа(ДатаНачала);
Рег.ВыбратьДвиженияСОстатками(ДатаКонца);
Пока Рег.ПолучитьДвижение() = 1 Цикл
Прих = 0;
Расх = 0;
Если Рег.Приход = 1 Тогда
Прих = Рег.Долг;
Иначе
Расх = Рег.Долг;
КонецЕсли;
ТекущееСальдо = Рег.Остаток(Клиент, "Задолженность");
Док = Рег.ТекущийДокумент();
НомСтр = Рег.НомерСтроки();
Таб.ВывестиСекцию("Документ");
КонецЦикла;
См. также: ПолучитьДвижение, ТекущийДокумент, ПривязыватьСтроку
Выбрать все остатки регистра.
Синтаксис:
ВыбратьИтоги()
Англоязычный синоним:
SelectTotals
Описание:
Метод ВыбратьИтоги инициирует перебор текущих или временных (см. ВременныйРасчет) остатков по регистру, при этом используется фильтр, если он установлен (см. УстановитьФильтр). Открывается выборка остатков по всем записанным значениям измерений.
Собственно выбор первого и последующих остатков регистра осуществляется функцией ПолучитьИтог.
Пример:
Процедура ВыбратьКредит()
Список = СоздатьОбъект("СписокЗначений");
Рег = СоздатьОбъект("Регистр.ТоварныйКредит");
Рег.УстановитьФильтр(Клиент, );
Рег.ВыбратьИтоги();
Ном = 0;
Пока Рег.ПолучитьИтог() = 1 Цикл
Док = Рег.Документ;
Список.ДобавитьЗначение(Док, "" + Док + " — Остаток = " + Рег.Долг);
Если Ном = 0 Тогда
ВыбДок = Док;
КонецЕсли;
Ном = Ном + 1;
КонецЦикла;
Если Ном > 0 Тогда
Если Список.ВыбратьЗначение(ВыбДок, "Выберите кредит") = 1 Тогда
ДокКредита = ВыбДок;
КонецЕсли;
КонецЕсли;
Возврат;
КонецПроцедуры
См. также: УстановитьФильтр, ПолучитьИтог, ВыбратьДвижения, ВременныйРасчет, РассчитатьРегистрыНа, РассчитатьРегистрыПо
Выбрать очередной остаток по регистру.
Синтаксис:
ПолучитьИтог()
Англоязычный синоним:
GetTotal
Возвращаемое значение:
Число: 1 — если очередной остаток по регистру выбран успешно; 0 — если очередной остаток по регистру не найден (отсутствует).
Описание:
Метод ПолучитьИтог выбирает очередной остаток по регистру в последовательности выборки, открытой перед этим при помощи метода ВыбратьИтоги. Данный метод используется для организации цикла по регистру — позволяет перебрать текущие или временные (см. ВременныйРасчет) остатки по регистру. При этом используется фильтр, если он установлен (см. УстановитьФильтр). Открывается выборка остатков по всем записанным значениям измерений.
Итоги с нулевыми остатками не выдаются. Порядок выдачи для измерений типа «справочник» и «документ» не определен.
После выполнения данного метода все атрибуты регистра: измерения, ресурсы, Приход и Расход содержат значения очередной записи остатков регистра. Данный метод может использоваться только для позиционируемых объектов, созданных функцией СоздатьОбъект.
Пример:
Процедура ВыбратьКредит()
Список = СоздатьОбъект("СписокЗначений");
Рег = СоздатьОбъект("Регистр.ТоварныйКредит");
Рег.УстановитьФильтр(Клиент, );
Ном = 0;
Рег.ВыбратьИтоги();
Пока Рег.ПолучитьИтог() = 1 Цикл
Док = Рег.Документ;
Список.ДобавитьЗначение(Док, "" + Док + " — Остаток = " + Рег.Долг);
Если Ном = 0 Тогда
ВыбДок = Док;
КонецЕсли;
Ном = Ном + 1;
КонецЦикла;
Если Ном > 0 Тогда
Если Список.ВыбратьЗначение(ВыбДок, "Выберите кредит") = 1 Тогда
ДокКредита = ВыбДок;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
См. также: ВыбратьИтоги
Выгрузить все итоги регистра с текущим фильтром в таблицу значений.
Синтаксис:
ВыгрузитьИтоги(<Та6лЗнач>, <ВключатьИзмерФильтра>, <ПредварительноОчищать>)
Англоязычный синоним:
RetrieveTotals
Параметры:
<ТаблЗнач> |
Объект типа ТаблицаЗначений, куда система выгрузит все итоги регистра. |
<ВключатьИзмерФильтра> |
Необязательный параметр. Число: 1 — в получаемую таблицу включаются измерения, закрепленные фильтром; 0 — не включаются. Значение по умолчанию — 0. |
<ПредварительноОчищать> |
Необязательный параметр. Число: 1 — перед выгрузкой таблица значений очищается; 0 — не очищается. Значение по умолчанию — 1. |
Описание:
Метод ВыгрузитьИтоги выгружает все итоги регистра с текущим фильтром (см. УстановитьФильтр) в таблицу значений.
Пример:
Функция ВыбратьКредит(ВыбКлиент)
Список = СоздатьОбъект("ТаблицаЗначений");
Рег = СоздатьОбъект("Регистр.ТоварныйКредит");
Рег.УстановитьФильтр(ВыбКлиент, );
Рег.ВыгрузитьИтоги(Список, 1);
Возврат Список;
КонецФункции
См. также: УстановитьФильтр
Установить флаг участия регистра во временном расчете.
Синтаксис:
ВременныйРасчет(<Флаг>)
Англоязычный термин:
TempCalc
Параметры:
<Флаг> |
Необязательный параметр. Числовое выражение. 1 — установить флаг участия регистра во временном расчете; 0 — сбросить флаг участия регистра во временном расчете. Значение по умолчанию — 1. |
Возвращаемое значение:
Текущее числовое значение флага участия регистра во временном расчете.
Описание:
Метод ВременныйРасчет устанавливает флаг участия регистра во временном расчете. После такой установки можно выполнять процедуры рассчитатьРегистрыНа и РассчитатьРегистрыПо, тогда у данного регистра методы обращения к остаткам будут выдавать рассчитанные значения остатков на заданный момент времени.
Замечание. В один момент времени только по одному объекту регистров каждого вида могут участвовать во временном расчете.
Пример:
// если итоги не актуальны, то стоимости берем из временного расчета
// регистра УчетРеализации
Рег = СоздатьОбъект("Регистр.УчетРеализации");
Рег.ВременныйРасчет();
РассчитатьРегистрыНа(ТекущийДокумент());
Рег.Товар = Товар;
Рег.Клиент = Клиент;
Рег.ОстаткиПолучить();
ТекОстаток = Рег.ОстатокТовара;
ТекСтоимость = Рег.Стоимость;
ТекПродСтоимость = Рег.ПродСтоимость;
См. также: РассчитатьРегистрыНа, РассчитатьРегистрыПо
Назначить фильтр для оптимизации действий с регистром.
Синтаксис:
УстановитьФильтр(<Измер1>, <Измер2>..., <Рекв1>, <Рекв2>, ...)
Англоязычный синоним:
SetFilter
Параметры:
<Измер1 >, <Измер2> |
Выражения со значениями измерений регистра. |
<Рекв1>, <рекв2> |
Необязательные параметры. Выражения со значениями реквизитов регистра. Заданные значения реквизитов будут влиять только на отбор движений регистра. |
Описание:
Метод УстановитьФильтр назначает фильтр для оптимизации действий с регистром (временные расчеты, выбор движений и итогов).
В качестве фильтра задаются конкретные значения измерений и реквизитов регистра. Могут быть заданы не все значения, а только несколько, но обязательно в правильной последовательности, соответствующей структуре выбранного регистра, как она задана в конфигураторе. Измерения и реквизиты могут задаваться с пропусками (неуказанное значение — просто запятая), фиксируются только указанные значения.
Пример:
* Для регистра с измерениями «Товар», «Склад», «МОЛ» запись
Рег.УстановитьФильтр(Тов1, , );
означает, что расчеты будут проводиться только по одному товару (Тов1), но по всем складам и МОЛам.
*
Рег = СоздатьОбъект("Регистр.Взаиморасчеты");
Рег.ВременныйРасчет();
Рег.УстановитьФильтр(Клиент, );
РассчитатьРегистрыНа(ДатаНачала);
Рег.ВыбратьДвиженияСОстатками(ДатаКонца);
Пока Рег.ПолучитьДвижение() = 1 Цикл
Прих = 0;
Расх = 0;
Если Рег.Приход = 1 Тогда
Прих = Рег.Долг;
Иначе
Расх = Рег.Долг;
КонецЕсли;
ТекущееСальдо = Рег.Остаток(Клиент, "Задолженность");
Док = Рег.ТекущийДокумент();
Таб.ВывестиСекцию("Документ");
КонецЦикла;
См. также: ВременныйРасчет
Установить значение фильтра для оптимизации расчетов.
Синтаксис:
УстановитьЗначениеФильтра(<ИзмерИлиРеквизит>, <3начен>, <Вариант>)
Англоязычный синоним:
SetFilterValue
Параметры:
<ИзмерИлиРеквизит> |
Идентификатор измерения или реквизита. |
<3начен> |
Значение или список значений. |
<Вариант> |
Необязательный параметр. Число: 0 — не фильтровать; 1 — фильтровать по значению; 2 — искать вхождение. Значение по умолчанию 1. Для варианта «2»: - если параметр <3начен> — это группа справочника, то осуществляется проверка вхождения в группу; - если параметр <3начен> — это простой элемент справочника или другой тип значения, то осуществляется просто фильтрация по значению; - для списка значений осуществляется проверка вхождения в список; - если пустое значение или пустой список значений, то условие не проверяется. |
Описание:
Метод УстановитьЗначениеФильтра назначает фильтр для оптимизации расчетов. В качестве фильтра для измерения или реквизита регистра может задаваться либо конкретное значение, либо список значений либо группа для справочника.
Пример:
* Для регистра с измерениями «Товар», «Склад», «МОЛ» запись
Рег.УстановитьЗначениеФильтра("Товар", ВыбГруппаТоваров, 2);
означает, что расчеты будут проводиться по товарам из группы ВыбГруппаТоваров.