[Форум] [Помощь] [Поиск] [Выйти] |
Добро пожаловать, User |
|
|
| ||
Пепсу и UANу :) Вот такая штука: есть регистр. Одно измерение, один ресурс и один флаг Если делаю запрос без учета этого флага то НачОст и КонОст срабатывают как надо и в отчет все выводится. Как только делаю условие по значению флага, сразу же теряется остаток на начало и конец периода и ничего не считает кроме прихода и расхода. |
| ||
че-то похожее было пару лет назад, только не помню почему... вроде зависело от типа значения реквизита регистра (флаг по-твоему :)) или его имени или релиза... лучше кусок конфы брось в ящик, завтра выходной, я завтра никуда квасить не иду, придумаем чего... :) |
| ||
По флагу(реквизиту) не бывает остатков, только отбор движений, этим флаг(реквизит) и отличается от измерения. |
| ||
неправда Ваша... на 18 и 21 релизе только что попробовал, есть остатки при при наличии условия по флагу... :) p.s. после таких вот горбух и приколов непонятных я с рекивщзитами стараюсь не работать, лучше два-три регистра родить и в них собирать в каждом свое... :) |
| ||
Дебилизм полный. Заменил реквизит на измерение. Вроде все заработало |
| ||
разные вещи... |
| ||
Тут надо смотреть сам запрос по регистру, 1с не хранит промежуточных остатков по реквизитам. Скорее всего твой остаток расчитывается не в запросе а в последующей обработке. |
| ||
сгенери конструктором и посмотри... :) |
| ||
Сгенерил :) //{{ЗАПРОС(Отчет) Период с ДатаНач по ДатаКон; Товар = Регистр.ОстаткиТоваров.Товар; Склад = Регистр.ОстаткиТоваров.Склад; ФлагУчета = Регистр.ОстаткиТоваров.ФлагУчета; ТекДок = Регистр.ОстаткиТоваров.ТекущийДокумент; ОстатокТовара = Регистр.ОстаткиТоваров.ОстатокТовара; Функция НачОстОстатокТовара = НачОст(ОстатокТовара); Функция ПриходОстатокТовара = Приход(ОстатокТовара); Функция РасходОстатокТовара = Расход(ОстатокТовара); Функция КонОстОстатокТовара = КонОст(ОстатокТовара); Группировка ФлагУчета без групп; Группировка ТекДок без групп; Условие (ФлагУчета = ВыбФлагучета); остатков нет :) P.S. Может нам собраться, пообсуждать как-нибудь на досуге. 1С-овку естественно с собой как водиться не брать :) |
| ||
//******************************************* // Процедура генерации запроса Сформировать. // Процедура Сформировать() Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект(Запрос); ТекстЗапроса = //{{ЗАПРОС(Сформировать) !Период с ВыбНачПериода по ВыбКонПериода; !БазоваяСтоимость = Регистр.ОстаткиТоваров.БазоваяСтоимость; !ФлагУчета = Регистр.ОстаткиТоваров.ФлагУчета; !Функция БазоваяСтоимостьНачОст = НачОст(БазоваяСтоимость); !Функция БазоваяСтоимостьКонОст = КонОст(БазоваяСтоимость); !Функция БазоваяСтоимостьПриход = Приход(БазоваяСтоимость); !Функция БазоваяСтоимостьРасход = Расход(БазоваяСтоимость); !Группировка БазоваяСтоимость; !Условие(ФлагУчета<>8); !//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект(Таблица); Таб.ИсходнаяТаблица(Сформировать); // Заполнение полей Заголовок Таб.ВывестиСекцию(Заголовок); Состояние(Заполнение выходной таблицы...); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей БазоваяСтоимость Таб.ВывестиСекцию(БазоваяСтоимость); КонецЦикла; // Заполнение полей Итого Таб.ВывестиСекцию(Итого); // Вывод заполненной формы Таб.ТолькоПросмотр(1); Таб.Показать(Сформировать, ); КонецПроцедуры остатки есть... и начальные и конечные. релиз 21. |
| ||
Это очень плохо, что от релиза зависят вот такие простые и в то же время ответственные вещи :( |
| ||
на 18 работало... |
| ||
Действительно при таком построении запроса какие-то остатки выдает, причем работает только если задано условие по неравенству флагу. Но остатки при этом как начальные так и конечные выдает естественно полные в не зависимости от фильтра по флагу. Поэтому сейчас пока не приходит в голову как можно использоват данные такого отчета. Скорее всего это баг и в последующих релизах его может быть исправят и остатки все таки выаваться не будут. |
| ||
Впринципе то что ждать? Вряд ли исправят, потому что если в RG*.dbf нет поля этого флага так и остатков по ним не будет. Если только всегда расчитывать. |
| ||
Я имел в виду баг это то что при некоторых запросах остатки все же выдаются. |
| ||
ТекстЗапроса = //{{ЗАПРОС(Сформировать) !Период с ВыбНачПериода по ВыбКонПериода; !Деньги = Регистр.Деньги.Как; !Докумен = Регистр.Деньги.ТекущийДокумент; !Долг = Регистр.Деньги.Долг; !Касса = Регистр.Деньги.Касса; !Функция ДолгНачОст = НачОст(Долг); !Функция ДолгРасход = Расход(Долг); !Функция ДолгПриход = Приход(Долг); !Функция ДолгКонОст = КонОст(Долг); !Группировка Деньги; !Группировка Докумен; Если ВыбКасса.Выбран()=1 Тогда ТекстЗапроса = ТекстЗапроса+ !Условие (Касса = ВыбКасса);; КонецЕсли; Долг - это ресурс Деньги - это измерение (банк или касса) Касса - это реквизит типа справочник.Касса. ВыбКасса - это эелемнт диалога типа Справочник.Касса. |
| ||
сделай два ресурса или роди два регистра и телемаркет... |
| ||
Сделал два измерения. Работает вроде. посмотрим, как на скорость повлияет. Хотя этот регистр не так много дергается, так что будет все ОК :) |