Временный расчет и обход регистров

// Расчет регистров
Рег = СоздатьОбъект(“Регистр.ВидРегистра“);
Рег.ВременныйРасчет(1);

Если ВыбДата >= ПолучитьДатуТА() Тогда
РассчитатьРегистрыПо(ПолучитьПозициюТА());
Иначе
РассчитатьРегистрыПо(ВыбДата);
КонецЕсли;

// Обход
Рег.ВыбратьИтоги();
Пока Рег.ПолучитьИтог() = 1 Цикл
Измерение = Рег.Измерение;
Ресурс = Рег.Ресурс;
КонецЦикла;

Комментарии | опубликовано: 22 Май 2007, 12:58

Остатки из регистра (работает только в модуле документа)

// Получим, например, значение ресурса “количество”
// из некого регистра на момент текущего документа
Рег=СоздатьОбъект(“Регистр.ВидРегистра”);
Если ИтогиАктуальны()=0 Тогда
Рег.ВременныйРасчет();
РассчитатьРегистрыНа(ТекущийДокумент());
Рег.Реквизит1 = Реквизит1;
Рег.Реквизит2 = Реквизит2;
Рег.ОстаткиПолучить();
Количество=Рег.Количество;
Иначе
Количество=Рег.Остаток(Реквизит1,Реквизит2,“Количество”);
КонецЕсли;

Комментарии | опубликовано: 13 Май 2007, 16:19

Запрос по содержимому регистра

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

// Проверка на дату, до точки актуальности (ТА)
Если (Дата1>ПолучитьДатуТА()) и (Дата2>ПолучитьДатуТА())
Тогда
Предупреждение(“Обе границы периода лежат за ТА !”+ “ Формирование невозможно !”,5);
Возврат;
КонецЕсли;

Если Дата2>=ПолучитьДатуТА() Тогда ТекстЗапроса=“Период с Дата1;”;
Иначе ТекстЗапроса=“Период с Дата1 по Дата2;”;
КонецЕсли;

// Основной текст запроса
ТекстЗапроса = ТекстЗапроса + “
|Реквизит=Регистр.ВидРегистра.Реквизит;
|Док = Регистр.ВидРегистра.ТекущийДокумент;
|Сумма=Регистр.ВидРегистра.Сумма;
|Количество=Регистр.ВидРегистра.Количество;
|Группировка Реквизит без групп;
|Группировка Док;
|Функция НачОст=НачОст(Количество);
|Функция Приход=Приход(Количество);
|Функция Расход=Расход(Количество);
|Функция КонОст=КонОст(Количество);
|Условие (Реквизит в ВыбРеквизит);”;

// Выполнение запроса
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Предупреждение(“Запрос по регистру не выполнился!”);
Возврат;
КонецЕсли;

// Группировки
Пока Запрос.Группировка(“Реквизит”) = 1 Цикл
Реквизит = Запрос.Реквизит;
Пока Запрос.Группировка(“Док”) = 1 Цикл
Док = Запрос.Док;
// Обработка полученных данных...
КонецЦикла;
КонецЦикла;

Комментарии | опубликовано: 9 Май 2007, 17:54


<--- Предыдущая страница Следующая страница --->