v7: Получить остатки на каждый день прямым запросом #677668


#0 by Karambol
Добрый день! Можно ли при помощи прямого запроса получить из регистра остатков остатки с группировкой по дням. Т.е., имеем такой запрос: Можно ли его перевести на прямой? Пробовал брать данные из ВТ Остатки и обороты, но там есть данные только по тем дням, когда были движения.
#1 by Rie
Создай таблицу всех нужных дней. Соедини её с остатками/оборотами.
#2 by dk
нифига там не просто "соединить" )) -- я решил постобработкой, текст откуда-то стырил и под себя доработал
#3 by Rie
Согласен, соединение сработает для оборотов - а ТС нужны остатки.
#4 by varelchik
Виртуальная таблица остатков и оборотов Синтаксис: $РегистрОстаткиОбороты.<ИмяРегистра>([<НачалоПериода>][, <КонецПериода>][, <Периодичность>][,<МетодДополнения>][,         <Соединение>][, Параметры: НачалоПериода - тип: значение. Строка, представляющая период или момент времени во внутреннем формате 1С. По умолчанию начало ведения учета. КонецПериода - тип: значение. Строка, представляющая период или момент времени во внутреннем формате 1С. Если передан период времени (дата, позиция документа), он в расчет не включается. Для того чтобы он включался в расчет нужно воспользоваться модификатором, или предварительно сформировать момент времени (См. СформироватьПозициюДокумента). По умолчанию точка актуальности. Периодичность - тип: конструкция типа ключевое слово. Указывается дополнительный разворот итогов по периодичности. Задается один из следующих вариантов: Квартал | Quarter - разворачивать по кварталам; Год | Year - разворачивать по годам. По умолчанию Период. МетодДополнения - тип: конструкция типа ключевое слово. Имеет смысл, только когда используется разворот по периодам. Задается один из следующих вариантов: Движения (Actions) - в таблицу включаются обороты по каждому периоду движений, и текущие остатки только по тем комбинациям измерений, по которым были движения в период расчета; ДвиженияИГраницыПериода (ActionsAndPeriodBoundaries) - в таблицу включаются обороты по каждому периоду движений и текущие остатки; также таблица дополняется записями о ненулевых остатках на начало и/или конец на границы периода расчета. Соединение - тип: конструкция типа join. На языке SQL можно описать дополнительные соединения с таблицами, которые могут быть необходимы для формирования условий в следующем параметре. Можно оперировать полями измерений регистра, обращаясь к ним по идентификатору 1С. По умолчанию отсутствует. Условие - тип: конструкция типа where. На языке SQL можно описать условие для ограничения выборки. Можно оперировать полями измерений регистра, обращаясь к ним по идентификатору 1С, а также полями таблиц, соединения с которыми были описаны в предыдущем параметре. По умолчанию отсутствует. Измерение - тип: конструкция типа список идентификаторов. Указывается список измерений, по которым нужно рассчитать остатки и обороты. По умолчанию по всем. Ресурс - тип: конструкция типа список идентификаторов. Указывается список ресурсов, которые нужно рассчитать. По умолчанию по всем. Поля: <ИмяИзмерения> - имена измерений указанных к расчету; тип определяется типом измерения регистра; <ИмяРесурса>НачальныйОстаток - имена ресурсов с добавлением слова НачальныйОстаток, указанных к расчету; тип определяется типом ресурса регистра; <ИмяРесурса>Приход - имена ресурсов с добавлением слова Приход, указанных к расчету; тип определяется типом ресурса регистра; <ИмяРесурса>Расход - имена ресурсов с добавлением слова Расход, указанных к расчету; тип определяется типом ресурса регистра; <ИмяРесурса>КонечныйОстаток - имена ресурсов с добавлением слова НачальныйОстаток, указанных к расчету; тип определяется типом ресурса регистра; Период - тип datetime; дата начала периода, по которому происходит разворот оборотов; существует только в том случае, если указана периодичность День, Неделя, Месяц, Квартал, Год; ПозицияДокумента - тип char; строка в формате date_time_iddoc (8+6+9); существует только в том случае, если указана периодичность Документ; ВидДокумента - тип int; идентификатор вида документа; существует только в том случае, если указана периодичность Документ. Описание: Используется для получения остатков и оборотов. Определена только для регистра остатков. Оптимизация расчета: по таблицам итогов и движений рассчитывается всегда только один из остатков, другой вычисляется из оборотов при агрегировании; рассчитывается тот остаток (начальный/конечный), который получить легче, исходя из оптимизации расчета остатков, См. выше описание виртуальной таблицы остатков;
#5 by dk
пофиг, не разворачивает она с группировкой день по всем дням, если нет движений в этом дне
#6 by varelchik
Плохо запрос пишешь. Все оно разворачивает.
#7 by varelchik
+ Не нравятся мне ваши кошки. А вы не умеете их готовить.
#8 by Ёпрст
либо табличка с датами + лефт джоин твой запрос, либо тупо хранимка, которая подставляет в ВТ дату на каждый день и получает останки.
#9 by Ёпрст
но прочще, на выходе посчитать самому, в цикле обхода результата запроса. Всего то нужно, знать НачОст Приход и Расход за день.
#10 by dk
а проверить слабо?
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С