WEB форумы на jedi
[Форум] [Помощь] [Поиск] [Выйти]
Добро пожаловать, [info]User

WEB форумы на jedi [ПОИСК] [Архив до 03.2006]

Тема Регистры К предыдущему сообщению На следующее сообщение Бухгалтерский и т.п. софт

Отправил Oldman в 20:38 06.01.2004[Ответить]
Пепсу и UANу :)

Вот такая штука: есть регистр. Одно измерение, один ресурс и один флаг

Если делаю запрос без учета этого флага то НачОст и КонОст срабатывают как надо и в отчет все выводится. Как только делаю условие по значению флага, сразу же теряется остаток на начало и конец периода и ничего не считает кроме прихода и расхода.


Отправил Peps в 22:12 06.01.2004[Ответить]
че-то похожее было пару лет назад, только не помню почему... вроде зависело от типа значения реквизита регистра (флаг по-твоему :)) или его имени или релиза... лучше кусок конфы брось в ящик, завтра выходной, я завтра никуда квасить не иду, придумаем чего... :)


Отправил uan в 15:05 08.01.2004[Ответить]
По флагу(реквизиту) не бывает остатков, только отбор движений, этим флаг(реквизит) и отличается от измерения.


Отправил Peps в 16:59 08.01.2004[Ответить]
неправда Ваша... на 18 и 21 релизе только что попробовал, есть остатки при при наличии условия по флагу... :)
p.s. после таких вот горбух и приколов непонятных я с рекивщзитами стараюсь не работать, лучше два-три регистра родить и в них собирать в каждом свое... :)


Отправил Oldman в 09:18 09.01.2004[Ответить]
Дебилизм полный.
Заменил реквизит на измерение. Вроде все заработало


Отправил Peps в 12:58 09.01.2004[Ответить]
разные вещи...


Отправил uan в 11:09 09.01.2004[Ответить]
Тут надо смотреть сам запрос по регистру, 1с не хранит промежуточных остатков по реквизитам. Скорее всего твой остаток расчитывается не в запросе а в последующей обработке.


Отправил Peps в 12:57 09.01.2004[Ответить]
сгенери конструктором и посмотри... :)


Отправил uan в 00:43 10.01.2004[Ответить]
Сгенерил :)
//{{ЗАПРОС(Отчет)
Период с ДатаНач по ДатаКон;
Товар = Регистр.ОстаткиТоваров.Товар;
Склад = Регистр.ОстаткиТоваров.Склад;
ФлагУчета = Регистр.ОстаткиТоваров.ФлагУчета;
ТекДок = Регистр.ОстаткиТоваров.ТекущийДокумент;
ОстатокТовара = Регистр.ОстаткиТоваров.ОстатокТовара;
Функция НачОстОстатокТовара = НачОст(ОстатокТовара);
Функция ПриходОстатокТовара = Приход(ОстатокТовара);
Функция РасходОстатокТовара = Расход(ОстатокТовара);
Функция КонОстОстатокТовара = КонОст(ОстатокТовара);
Группировка ФлагУчета без групп;
Группировка ТекДок без групп;
Условие (ФлагУчета = ВыбФлагучета);

остатков нет :)
P.S. Может нам собраться, пообсуждать как-нибудь на досуге. 1С-овку естественно с собой как водиться не брать :)


Отправил Peps в 12:36 10.01.2004[Ответить]
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект(Запрос);
ТекстЗапроса =
//{{ЗАПРОС(Сформировать)
!Период с ВыбНачПериода по ВыбКонПериода;
!БазоваяСтоимость = Регистр.ОстаткиТоваров.БазоваяСтоимость;
!ФлагУчета = Регистр.ОстаткиТоваров.ФлагУчета;
!Функция БазоваяСтоимостьНачОст = НачОст(БазоваяСтоимость);
!Функция БазоваяСтоимостьКонОст = КонОст(БазоваяСтоимость);
!Функция БазоваяСтоимостьПриход = Приход(БазоваяСтоимость);
!Функция БазоваяСтоимостьРасход = Расход(БазоваяСтоимость);
!Группировка БазоваяСтоимость;
!Условие(ФлагУчета<>8);
!//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект(Таблица);
Таб.ИсходнаяТаблица(Сформировать);
// Заполнение полей Заголовок
Таб.ВывестиСекцию(Заголовок);
Состояние(Заполнение выходной таблицы...);
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей БазоваяСтоимость
Таб.ВывестиСекцию(БазоваяСтоимость);
КонецЦикла;
// Заполнение полей Итого
Таб.ВывестиСекцию(Итого);
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать(Сформировать, );
КонецПроцедуры
остатки есть... и начальные и конечные. релиз 21.












Отправил Oldman в 13:55 10.01.2004[Ответить]
Это очень плохо, что от релиза зависят вот такие простые и в то же время ответственные вещи :(


Отправил Peps в 22:11 10.01.2004[Ответить]
на 18 работало...


Отправил uan в 11:48 11.01.2004[Ответить]
Действительно при таком построении запроса какие-то остатки выдает, причем работает только если задано условие по неравенству флагу. Но остатки при этом как начальные так и конечные выдает естественно полные в не зависимости от фильтра по флагу. Поэтому сейчас пока не приходит в голову как можно использоват данные такого отчета. Скорее всего это баг и в последующих релизах его может быть исправят и остатки все таки выаваться не будут.


Отправил Oldman в 08:34 12.01.2004[Ответить]
Впринципе то что ждать? Вряд ли исправят, потому что если в RG*.dbf нет поля этого флага так и остатков по ним не будет. Если только всегда расчитывать.


Отправил uan в 14:04 12.01.2004[Ответить]
Я имел в виду баг это то что при некоторых запросах остатки все же выдаются.


Отправил Oldman в 17:59 09.01.2004[Ответить]
ТекстЗапроса =
//{{ЗАПРОС(Сформировать)
!Период с ВыбНачПериода по ВыбКонПериода;
!Деньги = Регистр.Деньги.Как;
!Докумен = Регистр.Деньги.ТекущийДокумент;
!Долг = Регистр.Деньги.Долг;
!Касса = Регистр.Деньги.Касса;
!Функция ДолгНачОст = НачОст(Долг);
!Функция ДолгРасход = Расход(Долг);
!Функция ДолгПриход = Приход(Долг);
!Функция ДолгКонОст = КонОст(Долг);
!Группировка Деньги;
!Группировка Докумен;

Если ВыбКасса.Выбран()=1 Тогда
ТекстЗапроса = ТекстЗапроса+
!Условие (Касса = ВыбКасса);;
КонецЕсли;

Долг - это ресурс
Деньги - это измерение (банк или касса)
Касса - это реквизит типа справочник.Касса.
ВыбКасса - это эелемнт диалога типа Справочник.Касса.


Отправил Peps в 20:21 09.01.2004[Ответить]
сделай два ресурса или роди два регистра и телемаркет...


Отправил Oldman в 07:16 10.01.2004[Ответить]
Сделал два измерения. Работает вроде. посмотрим, как на скорость повлияет. Хотя этот регистр не так много дергается, так что будет все ОК :)