Временный расчет регистров Временный расчет регистров требуется, если нужно выбрать итоги или движения на определенную дату. По умолчанию итоги регистров выдаются на Точку актуальности.
Формулировка 1С - Метод ВременныйРасчет устанавливает флаг участия регистра во временном расчете. После такой установки можно выполнять процедуры рассчитатьРегистрыНа и РассчитатьРегистрыПо, тогда у данного регистра методы обращения к остаткам будут выдавать рассчитанные значения остатков на заданный момент времени.
Код 1C v 7.x // Пример 1
// Если итоги не актуальны, то стоимости берем из временного расчета
// регистра УчетРеализации
Рег = СоздатьОбъект("Регистр.УчетРеализации");
Рег.ВременныйРасчет();
РассчитатьРегистрыНа(ТекущийДокумент());
Рег.Товар = Товар;
Рег.Клиент = Клиент;
Рег.ОстаткиПолучить();
ТекОстаток = Рег.ОстатокТовара;
ТекСтоимость = Рег.Стоимость;
ТекПродСтоимость = Рег.ПродСтоимость;
// Пример 2
РегТовары = СоздатьОбъект("Регистр.Товары");
РегДоходы = СоздатьОбъект("Регистр.Доходы");
//установка флага временного расчета для регистров
РегТовары.ВременныйРасчет(1);
РегДоходы.ВременныйРасчет(1);
Категория:
Регистры Сводные Итоги оборотного регистра Метод работает аналогично процедуре Итоги, однако здесь могут быть заданы не все значения измерений, а только несколько, но обязательно в правильной последовательности, соответствующей структуре измерений данного регистра, как она задана в конфигураторе.
Измерения могут задаваться с пропусками (неуказанное значение -просто запятая), фиксируются только указанные измерения.
Код 1C v 7.x
// Пример 1
Регистр.ОборотыТоваров.ИспользоватьПериод(Год);
Регистр.ОборотыТоваров.СводниеИтоги(Товар, );
ПолныйОбТов = Регистр.ОборотыТоваров.ОборотТовара;
// Пример 2
РегДоходы = СоздатьОбъект("Регистр.Доходы");
//установить период выборки "30 января 2009 года"
РегДоходы.ИспользоватьПериод(2009,01,30);
//получить сводные итоги за день по клиенту
РегДоходы.СводныеИтоги(ТекКлиент,); //указано только одно измерение
ДоходПоКлиенту = РегДоходы.Доход;
//получить сводные итоги за день по товару
РегДоходы.СводныеИтоги(,ТекТовар); //указано только одно измерение
ДоходПоТовару = РегДоходы.Доход;
Категория:
Регистры Сводный Итог оборотного регистра Данный метод работает аналогично методу Итог, однако здесь могут быть заданы не все значения измерений, а только несколько, но обязательно в правильной последовательности, соответствующей структуре измерений данного регистра, как она задана в конфигураторе.
Измерения могут задаваться с пропусками (неуказанное значение — просто запятая), фиксируются только указанные измерения.
Код 1C v 7.x
// Пример 1
Функция ПолучитьСводныйИтог(Товар, Год);
Регистр.ОборотыТоваров.ИспользоватьПериод(Год);
Возврат Регистр.ОборотыТоваров.СводныйИтог(Товар, , "ОборотТовара");
КонецФункции
// Пример 2
РегДоходы = СоздатьОбъект("Регистр.Доходы");
//установить период выборки "30 января 2009 года"
РегДоходы.ИспользоватьПериод(2009,01,30);
//получить сводные итоги за день
ДоходПоКлиенту = РегДоходы.СводныйИтог(ТекКлиент,,"Доход");
ДоходПоТовару = РегДоходы.СводныйИтог(,ТекТовар,"Доход");
Категория:
Регистры Итоги оборотного регистра Код 1C v 7.x
// Пример 1
Регистр.ОборотыТоваров.ИспользоватьПериод(Год);
Регистр.ОборотыТоваров.Итоги(Товар, Склад);
ОбТов = Регистр.ОборотыТоваров.ОборотТовара;
// Пример 2
РегДоходы = СоздатьОбъект("Регистр.Доходы");
//установить период выборки "30 января 2009 года"
РегДоходы.ИспользоватьПериод(2009,01,30);
//получить доход за день по данному клиенту и данному товару
РегДоходы.Итоги(ТекКлиент, ТекТовар);
Доход = РегДоходы.Доход;
// Пример 3
рег_оборот=создатьобъект("Регистр.Обороты");
рег_оборот.ИспользоватьПериод(ДатаГод(ТекущаяДата()),ДатаМесяц(ТекущаяДата()));
рег_оборот.Итоги(Товар, Склад, Контрагент);
Сообщить("Обороты Кол-во="
+ рег_оборот.Количество
+ " Сумма="
+ рег_оборот.Сумма);
Категория:
Регистры Итог оборотного регистра Код 1C v 7.x
// Пример 1
Функция ПолучитьИтог(Товар, Склад, Год);
Регистр.ОборотыТоваров.ИспользоватьПериод(Год);
Возврат Регистр.ОборотыТоваров.Итог(Товар, Склад, "ОборотТовара");
КонецФункции
// Пример 2
РегДоходы = СоздатьОбъект("Регистр.Доходы");
//установить период выборки "30 января 2009 года"
РегДоходы.ИспользоватьПериод(2009,01,30);
//получить доход за день по данному клиенту и данному товару
Доход = РегДоходы.Итог(ТекКлиент, ТекТовар, "Доход");
Категория:
Регистры Выгрузить Итоги регистра в таблицу значений Код 1C v 7.x
// Пример 1
РегДоходы = СоздатьОбъект("Регистр.Доходы");
ТабЗнач = СоздатьОбъект("ТаблицаЗначений");
РегДоходы.ВыгрузитьИтоги(ТабЗнач);
ТабЗнач.ВыбратьСтроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
Сообщить("Товар " + Строка(ТабЗнач.Товар) +
" на складе " + Строка(ТабЗнач.Склад) +
" кол-во: " + Строка(ТабЗнач.Количество) +
" стоимость: " + Строка(ТабЗнач.Стоимость) +
КонецЦикла;
// Пример 2
Функция ВыбратьКредит(ВыбКлиент)
Список = СоздатьОбъект("ТаблицаЗначений");
Рег = СоздатьОбъект("Регистр.ТоварныйКредит");
Рег.УстановитьФильтр(ВыбКлиент, );
Рег.ВыгрузитьИтоги(Список, 1);
Возврат Список;
КонецФункции
Категория:
Регистры