Имя: Пароль:
1C
1C 7.7
v7: В отчете не сходятся конечный остаток с движениями
0 Milli
 
02.12.11
13:13
Подскажите, что может быть. Написала отчет по движениям товара на складе, а если сложить к начальному остатку приход и вычесть расход за выбранный период, то конечный остаток получается другим, отличным от того остатка, что формируется по регистрам.
Вот ссылка на .ert - файл и на скрин того отчета, что он выводит.
http://www.fayloobmennik.net/1244376
1 Amra
 
02.12.11
13:18
(0) Замуж, срочно замуж!! ))
2 Simod
 
02.12.11
13:27
Получай НачОст() и КонОст() тем же запросом, что и движения.

P.S. Давно не видел такой жути..
3 Milli
 
02.12.11
13:30
(2) пробовала так получить. начальный и конечный остатки по нулям показывает.
4 Mikeware
 
02.12.11
13:31
(1) она остатки в разрезе реквизитов получает, чтоль? :-)
5 Milli
 
02.12.11
13:32
(4) в разрезе документов, с детализацией по номенклатуре
6 Milli
 
02.12.11
13:33
в отчете просто нужно сформировать по каждой номенклатурной группе движения за выбранный период и остатки
7 Amra
 
02.12.11
13:34
(6) И пытаешься получить остаток через КонОСт и НачОСт на каждый документ?)) Тогда точно срочно замуж)))
8 Simod
 
02.12.11
13:35
Для получения данных о движениях можно использовать:

|Док = Регистр.ПартииНаличие.ТекущийДокумент;

и потом обработать для получения итогов.
9 Milli
 
02.12.11
13:38
(8) ПартииНаличие и использовала для получения движений.
(7) А вот НачОст и КонОст пытаюсь получить через ОстаткиТМЦ. Если сравнивать стандартный отчет в торговле, то суммы начального и конечного остатка сходятся. А вот если просчитать вручную, т.е. К начальному остатку прибавить приход и вычесть расход, то получается другая сумма.
10 Amra
 
02.12.11
13:39
(9) ТИИ с пересчетом итогов
11 Milli
 
02.12.11
13:40
(10) что за ТИИ?
12 Ёпрст
 
02.12.11
13:41
(9) а нефик фильтры накладывать на получение движений.
13 Milli
 
02.12.11
13:42
(12) какие именно фильтры?
14 Ёпрст
 
02.12.11
13:45
(13) мне лень смотреть.. я ж не вижу твой текст запроса и отчета.
15 Ёпрст
 
02.12.11
13:46
и нам отсюда не видно, как ты ". А вот если просчитать вручную" делаешь и откуда у тебя приход и расход берётся и  с какими фильтрами при этом
16 Simod
 
02.12.11
13:53
Что-то в таком духе:


Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Склад = Регистр.ОстаткиТМЦ.Склад;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура, Регистр.ПартииНаличие.Номенклатура;
|ТекущийДокумент = Регистр.ОстаткиТМЦ.ТекущийДокумент, Регистр.ПартииНаличие.ТекущийДокумент;
|Количество = Регистр.ПартииНаличие.Количество;
|СуммаРуб = Регистр.ПартииНаличие.СуммаРуб;
|Функция КоличествоНачОст = НачОст(Количество);
|Функция СуммаРубНачОст = НачОст(СуммаРуб);
|Функция КоличествоПриход = Приход(Количество);
|Функция СуммаРубПриход = Приход(СуммаРуб);
|Функция КоличествоРасход = Расход(Количество);
|Функция СуммаРубРасход = Расход(СуммаРуб);
|Функция КоличествоКонОст = КонОст(Количество);
|Функция СуммаРубКонОст = КонОст(СуммаРуб);
|Группировка Номенклатура без групп;
|Условие(Склад в ВыбСклад);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
   Возврат;
КонецЕсли;

тз_Запрос    = СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(тз_Запрос, 1, 0);
тз_Запрос.ВыбратьСтроку();
17 Ёпрст
 
02.12.11
14:09
(16) зачет условия на склад накладывать, ага
18 Mans
 
02.12.11
14:26
как вариант
|Склад=Регистр.ПартииНаличие.ТекущийДокумент.ПеречислитьВсеВозможныеТипыДоков.Склад;
19 Milli
 
02.12.11
14:31
(15)
приход и расход берется из запроса:
   "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНач по ВыбКон;
   |Обрабатывать НеПомеченныеНаУдаление;    
   |Склад = Регистр.ПартииНаличие.ТекущийДокумент.ОприходованиеТМЦ.Склад, Регистр.ПартииНаличие.ТекущийДокумент.ПеремещениеТМЦ.Склад, Регистр.ПартииНаличие.ТекущийДокумент.РеализацияРозница.Склад, Регистр.ПартииНаличие.ТекущийДокумент.СписаниеТМЦ.Склад;
   |ТекущийДокумент = Регистр.ОстаткиТМЦ.ТекущийДокумент, Регистр.ПартииНаличие.ТекущийДокумент;  
   |Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура, Регистр.ПартииНаличие.Номенклатура;
   |СуммаРуб = Регистр.ПартииНаличие.СуммаРуб;
   |Функция СуммаРубНачОст = НачОст(СуммаРуб);
   |Функция СуммаРубПриход = Приход(СуммаРуб);
   |Функция СуммаРубРасход = Расход(СуммаРуб);  
   |Функция СуммаРубКонОст = КонОст(СуммаРуб);
   |Группировка Склад;
   |Группировка ТекущийДокумент;  
   |Группировка Номенклатура без групп;
   |Условие(Склад в ВыбСклад);
   |";

Писала уже так. Только толку никакого. Кроме движений ни чего не показывает. НачОст и КонОст по нулям.
20 Mans
 
02.12.11
14:41
|ТекущийДокумент = Регистр.ПартииНаличие.ТекущийДокумент;  
|Номенклатура = Регистр.ПартииНаличие, Регистр.ПартииНаличие.Номенклатура;
21 Mans
 
02.12.11
14:42
:) точнее
|Номенклатура = Регистр.ПартииНаличие.Номенклатура;
22 Ёпрст
 
02.12.11
14:43
(18) это полный ПЭ при вычислении НачОст и КонОст, ага
23 Ёпрст
 
02.12.11
14:44
(19) смешная ты..
Ну сама подумай, какой в баню начост и коност по документу движения регистра ?
И какой нафик Склад в партиях ?
:)
24 Mans
 
02.12.11
14:47
(22) какие остатки при группировке док?
25 Ёпрст
 
02.12.11
14:49
(24) это тебя надо спросить, ты же про бред со складам через все виды дока предлагаешь автору.
26 Ёпрст
 
02.12.11
14:49
А ему, если че, останки нужны в разрезе складов исчо.
27 Mans
 
02.12.11
15:10
да и так остатки есть, группировки ток товара и дока местами поменять
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.