Имя: Пароль:
1C
1C 7.7
v7: СЛУЧАЙНЫЙ результат бух.запроса. Вопрос для знатоков!)
0 negroblanko
 
04.02.15
10:41
Уважаемые участники!
Результат решения задчи обескуражил и опечалил (к сожалению уже подзабыл 7-ку благополучно)
Но, вроде бы, тут нет уж таких сложностей.
Есть какая-то не то бага, не то фича, о которой я нигде не могу прочитать...((
Или же я всю матчасть забыл нафиг ((
Поможите, подскажите, кто знает, плиз.

Проблем
Хочу получать обороты для каждой корреспонденции в разрезе субконто с периодичностью операций.
Код вроде бы - очень простой.
Но, если я выбираю и получаю счета и корсчета (пара внешних циклов), то в оборотах по субконто печатается (причем, каждый раз случайно (!)) оборот какой-нибудь одной из операций этого разреза.
А если я два внешних цикла закоменчу, все ок.
Движок 27-й...

Что за ересь?


  Ит.ИспользоватьПланСчетов(ПланыСчетов.Основной);
  Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,, 1);
  Ит.ИспользоватьСубконто(ВидыСубконто.Договоры,, 1);

  Ит.ВыполнитьЗапрос(НачДата, КонДата, "60.01","20, 51",, 3,"Операция", "С");
  
  Ит.ВыбратьСчета();                                        // если
  Пока Ит.ПолучитьСчет() = 1 Цикл                           // тут
    Ит.ВыбратьКорСчета();                                   // не закоментить
    Пока Ит.ПолучитьКорСчет() = 1 Цикл                      // то...
      Таб.ВывестиСекцию("СчетКорсчет");                     //
      Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты);
      Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
        Ит.ВыбратьСубконто(ВидыСубконто.Договоры);
        Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл
          Таб.ВывестиСекцию("СубконтоКонтрагентыДоговоры"); // ...то вот здесь глючит
          
          Ит.ВыбратьПериоды();
          Пока Ит.ПолучитьПериод() = 1 Цикл
            Таб.ВывестиСекцию("Опер");
          КонецЦикла;
          
        КонецЦикла;
      КонецЦикла;
    КонецЦикла;
  КонецЦикла;
1 Гёдза
 
04.02.15
10:42
итоги пересчитай
2 Ёпрст
 
гуру
04.02.15
10:45
И.. возможно, одна из табличек итогов превысила 1гб
3 Ёпрст
 
гуру
04.02.15
10:45
или проводок
4 Ёпрст
 
гуру
04.02.15
10:45
что тоже даст такой эффект
5 Ёпрст
 
гуру
04.02.15
10:46
если база дбф, конечно
6 negroblanko
 
04.02.15
10:47
(1) Не помогло
7 negroblanko
 
04.02.15
10:48
(2) Не, база мелкая
8 negroblanko
 
04.02.15
10:53
(5) Да. Забыл уточнить в вопросе, что база - дбф...
9 Ёпрст
 
гуру
04.02.15
11:22
для начала - переиндексация, затем полный пересчет бух итогов
10 Ёпрст
 
гуру
04.02.15
11:22
можно и таблички итогов грохнуть перед этим.
11 2S
 
04.02.15
11:22
Лол
Включатьсубсчета
12 Ёпрст
 
гуру
04.02.15
11:22
Ну и проверить на отсутствие пустых дат в табличке журнала и проводок с операциями.
13 negroblanko
 
04.02.15
11:33
(11)  Не помогло (
14 uno-group
 
04.02.15
11:36
Разделитель учета. и счет 60,01 точно а не 60,1
15 negroblanko
 
04.02.15
11:36
(11) Выложил файлик этого примитивного отчета (правда, еще до добавления ВключатьСубсчета)
/пароль error/
http://www.fayloobmennik.net/4576218
так он в демобазе 1С то же самое творит...
Тут - что-то очень-очень простое, а вот что?..
16 negroblanko
 
04.02.15
11:38
(14) Да, блин, конечно же 60.1.
Выложил его в сеть, там примитивно все...
А где разделитель учета добавить?
17 ikea
 
04.02.15
11:40
Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты);
      Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
        Ит.ВыбратьСубконто(ВидыСубконто.Договоры);
        Пока Ит.ПолучитьСубконто(ВидыСубконто.Договоры) = 1 Цикл

Вот тут  Ит.ВыбратьСчета();
18 negroblanko
 
04.02.15
11:45
(17) И даже так - все то же самое
19 negroblanko
 
04.02.15
11:52
(12) С учетом всех последующих советов (результат - тот же самый), все, что ты сказал, я выполнил. А после - даже в демо-базе 1С его потестил.
Тут - что-то элементарное (
А вот что...?)
20 Ёпрст
 
гуру
04.02.15
12:03
(19) и че в демо базе ? радуга ?
21 negroblanko
 
04.02.15
12:06
(20) Полнейшая рандомность - фигачит в обороты по субконто  обороты то одной операции, то другой ((
Вот и как радоваться жизни после такого...
22 ikea
 
04.02.15
12:43
Еще одна попытка)
Добавьте ка строки :
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
///////////
Ит .ВключатьСубсчета(-1);
Ит .ИспользоватьСубконто();
/////////
Ит.ИспользоватьПланСчетов(ПланыСчетов.Основной);
    Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,, 1);
23 negroblanko
 
04.02.15
12:56
(22) Та же беда )
24 PuhUfa
 
04.02.15
13:13
(23) я в когда то давно забил на это.
Если ты посмотришь отладчиком вот тут:

  Таб.ВывестиСекцию("СчетКорсчет");
ТО> Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл

то увидишь, что ИТ, в этот момет, у тебя имеет период совершенно не тот который ты задал в запросе и соответсвенно СНК СНД и т.п. выводят тебя не то что ты ожидаешь
25 negroblanko
 
04.02.15
13:26
(24) Я уже как план-Б решил разделить корреспонденции по двум разным запросам и покидать результаты в общую тз.
Но абыдна же... Все, вроде-как, в рамках стандартного простого функционала... Надеялся, что все предельно просто, и что это просто я туплю ))
И где после этого уверенность, что и в упрощенных случаях все будет всегда работать как нужно )
26 PuhUfa
 
04.02.15
13:43
(25) проверь мыло которое у тебя в профиле
27 negroblanko
 
04.02.15
13:59
(26) Спасибо! Письмо пришло.
28 a834
 
05.02.15
10:34
Ну как? Вы разобрались там? Как нужно делать?
29 negroblanko
 
05.02.15
10:44
(28) Увы( не разобрался, если в смысле именно вопроса.
Хрень какая-то.
Выкручиваюсь: делаю без счетов, кидаю в общую таблицу, сортирую как нужно. Зато надежно.

Но знать, как же правильно во вопросу - точно не помешало бы на будущее )
30 a834
 
05.02.15
10:53
Вы все рекомендации учли что тут советовали?
31 negroblanko
 
05.02.15
11:04
(30) Ну конечно. Не взлетело. И, главное, нигде не ищется такая проблема, будто все об этом знают и никто не попадал)
32 vladko
 
05.02.15
11:08
(0) попробуй сперва создать скелет бух.запроса через конструктор и посмотри в этом случае какие данные выведет...
33 negroblanko
 
05.02.15
11:14
(32) Мысль хорошая, но неприменимая )
Там, что в конструкторах - оборотка да произвольный близки. А в них нет циклов по периодам и счетам.
34 a834
 
05.02.15
11:20
Реквестируйте Волшебника! :)
35 negroblanko
 
05.02.15
11:26
(34) Волшебник видел) Он заходил в тему, когда она только появилась. Поскольку он промолчал, я подумал, что либо это - слишком элементарно, либо - слишком сложно)))
Основная теорема систематики: Новые системы плодят новые проблемы.