Имя: Пароль:
1C
1C 7.7
v7: Бух итоги перебором дают неправильную сумму...
,
0 Maximysis
 
06.12.12
14:13
Всем доброго дня!
БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.Товар,, 1);
БухИт.ВыполнитьЗапрос(НачДата, КонДата, СписокСчетов,,, 1,, "СК");
ИТОГ2=БухИт.СКД("С");
БухИт.ВыбратьСубконто(ВидыСубконто.Склад, 1);
Пока БухИт.ПолучитьСубконто(ВидыСубконто.Склад) = 1 Цикл
  ИТОГ1=ИТОГ1+БухИт.СКД("С");
КонецЦикла;

ИТОГ2<>ИТОГ1 !!!!!!!!!!!!!!!!!!!!!!!

При итоге 100 000 000  разница в 200 000;
Если итоге 500 000 то разница в 0,01;
И если итоге ниже 500 000 то ИТОГ2=ИТОГ1.

В чем может быть дело?? прошу помощи...
1 zak555
 
06.12.12
14:15
странно

почему в цик заходит
2 1Сергей
 
06.12.12
14:16
ИТОГ1=0; где?
3 Kreont
 
06.12.12
14:16
А где перебор по счетам?

И еще если может пустое субконто, типа <...> :)
4 zak555
 
06.12.12
14:17
а так ?

БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.Товар,, 1);
БухИт.ВыполнитьЗапрос(НачДата, КонДата, СписокСчетов,,, 1,, 5);
ИТОГ2=БухИт.СКД(1);
ИТОГ1=0
БухИт.ВыбратьСубконто(1);
Пока БухИт.ПолучитьСубконто(1) = 1 Цикл
  ИТОГ1=ИТОГ1+БухИт.СКД(1);
КонецЦикла;
5 zak555
 
06.12.12
14:17
(3) и чего ?
6 Maximysis
 
06.12.12
14:20
(4)таже фигня((
7 1Сергей
 
06.12.12
14:23
(6) в списке счетов не один ли счет? и не группа ли?
8 zak555
 
06.12.12
14:24
распиши счета СписокСчетов + аналитку
9 Maximysis
 
06.12.12
14:32
(7) без разници делаю по одному счету, без групп
10 zak555
 
06.12.12
14:32
(9) счета распиши иначе проси, чтобы ветку закрыли
11 Maximysis
 
06.12.12
14:34
У счета два субконта ТМЦ и Склад
12 azernot
 
06.12.12
14:36
Счет часом не активно-пассивный?
13 Maximysis
 
06.12.12
14:37
Такое ощущение что при суммирование СКД() дает число с двумя знаками после запятой, а без суммирования больше....
14 KishMish
 
06.12.12
14:37
возможно
у когото из Субконто нет дебетового остатка но есть кредитовый.
в случае Итог2 кредитовый отстаток учитывается в сумме
в случае Итого2 - нет
попробуй в цикле сделать так
ИТОГ1=ИТОГ1+БухИт.СКД(1)-БухИт.СКК(1);
15 Maximysis
 
06.12.12
14:38
Счет АП и кол
16 Maximysis
 
06.12.12
14:39
(14) проверял нет
17 Maximysis
 
06.12.12
14:40
как будто ГДЕ ТО округление...
18 KishMish
 
06.12.12
14:41
ИТОГ1 - это переменная модуля или реквизит документа или формы с указанным типом и точностью?
19 Kreont
 
06.12.12
14:41
(0) я вообще так смотрю и не пойму что-то, использовать субконто одни стоят, перебор по другим, БухИТ один раз инициализирован :)

А ОСВ общая, и по счету хоть нормально показывает суммы?
20 Maximysis
 
06.12.12
14:42
(18)любая переменная без типа и точности.
21 Cthulhu
 
06.12.12
14:43
Ничего странного.
"ИспользоватьСубконто" - по Товарам,
"ВыбратьСубконто" - по Складам.
неувязочка.
22 azernot
 
06.12.12
14:45
(15) Если счет АП - то однозначно надо писать
ИТОГ1=ИТОГ1+БухИт.СКД(1)-БухИт.СКК(1);
23 Maximysis
 
06.12.12
14:45
(19) в ОСВ итог берется так как я делаю ИТОГ2, а развернуто как ИТОГ1. ОСВ в екселе суммирую строки, таже хрень выходит.
24 Maximysis
 
06.12.12
14:49
(22) этот вариант я проверял, не оно.
25 azernot
 
06.12.12
14:51
(24) Возьму на себя смелость и поправлю тебя - не только оно. Но и оно тоже.
26 Maximysis
 
06.12.12
15:03
Ну ребят, торопился, кусок кода выдирал из модуля, правил здесь, так что правильно вот так:
БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.Товар,, 1);
БухИт.ВыполнитьЗапрос(НачДата, КонДата, Счет,,, 1,, 5);
ИТОГ2=БухИт.СКД(1);
ИТОГ1=0
БухИт.ВыбратьСубконто(1);
Пока БухИт.ПолучитьСубконто(1) = 1 Цикл
  ИТОГ1=ИТОГ1+БухИт.СКД(1);
КонецЦикла;
Сообщить(Итог2);
Сообщить(Итог1);

Разница на 200 с лихвой тысяч!!
Счет не группа, АП, Кол, НЕ ВАЛ
Субконто Товар, Склад
Куда копать, я в шоке!!!
27 Kreont
 
06.12.12
15:08
Если "ОСВ в екселе суммирую строки, таже хрень выходит."
может итоги пересчитать, ну и там стандартно +реиндексация
28 zak555
 
06.12.12
15:10
почему нельзя написать, что за счета ?
29 Classic
 
06.12.12
15:10
(26)
Счет активнопассивный?
30 Classic
 
06.12.12
15:11
Точно активнопассивный.
Так и должно быть. Читай, что такое развернутое сальдо
31 Maximysis
 
06.12.12
15:11
(27) Были танцы, выгрузка загрузка, тестирования исправления, полный пересчет итогов. все также(
32 Maximysis
 
06.12.12
15:12
(29)(30) Кредитового остатка нет!!!!!!
33 zak555
 
06.12.12
15:14
почему нельзя показать сриншоты
1.счетов ?
2. осв по счету
34 Classic
 
06.12.12
15:16
(32)
В целом может и нет. А по субконто?
ИТОГ2=БухИт.СКД(1);
ИТОГ3 = БухИт.СКДРС(1);
Сообщить(ИТОГ3)
35 Maximysis
 
06.12.12
15:21
прин скрин http://savepic.ru/3459878.png
36 Ёпрст
 
06.12.12
15:24
(35) скриншот слишком большой, слишком крупные буквы, сделай поменьше
37 Classic
 
06.12.12
15:24
(35)
Напиши

Пока БухИт.ПолучитьСубконто(1) = 1 Цикл
  Сообщить(БухИт.Субконто(1).Наименование + " " + БухИт.СКД(1));
  ИТОГ1=ИТОГ1+БухИт.СКД(1);
КонецЦикла;
38 zak555
 
06.12.12
15:24
(35) это счет группа ?
39 Classic
 
06.12.12
15:25
А блин. Ты ж выложил скрин по местамхранения. А бухитоги по номенклатуре. Давай оборотку по номенклатуре
40 NS
 
06.12.12
15:26
Слетели итоги, сделай пересчет.
41 Maximysis
 
06.12.12
15:28
(39) блин затупил сейчас перскриню.
42 Classic
 
06.12.12
15:30
(41)
Только местахранения убери
43 Maximysis
 
06.12.12
15:41
Так, действительно обнаружил кредитовые остатки на счете, простите подлеца, каюсь! Но я не въезжаю, почему это влияет, ведь суммируется только СКД! В любом случае, почему сумма СКД в разрезе аналитики не совпадает с СКД по счету в целом?
44 azernot
 
06.12.12
15:42
(43) Вот подлец! :) Сколько раз тебе на это ткнули? ;)
45 Classic
 
06.12.12
15:42
Потому что у АП счета есть и дебетовые и кредитовые сальдо. Ты суммируешь только дебетовые. Кредитовые пропускаешь
А в целом по счету ДебСальдо = ДебРазвернутое-КредРазвернутое.
46 azernot
 
06.12.12
15:45
(43) Сальдо конечное (Д или К) = Сальдо начальное (Д или К) + (Д или К) оборот - (К или Д) оборот.

Это правило справедливо и для счета, и для аналитического учёта по любому отбору.
47 NS
 
06.12.12
15:45
(43) Потому что ты берешь не развернутое сальдо.
48 azernot
 
06.12.12
15:46
(43) А то что ты хочешь, называется РАЗВЕРНУТОЕ Сальдо. (т.е. сумма сальдо по аналитическому признаку).
49 azernot
 
06.12.12
15:47
Ты лучше объясни, почему счёт на котором учитываются товары - Активно-пассивный?
50 Classic
 
06.12.12
15:48
(49)
Потому что по умлочанию такой ставится :)
51 Maximysis
 
06.12.12
16:01
Всем спасибо я идиот))) тема закрыта!