Имя: Пароль:
1C
1C 7.7
v7: Период при работе с БухЗапросом
, ,
0 __Se24
 
06.01.13
15:39
Доброго дня !
Имеется отчет, в составе которого есть БухЗапрос
БухИтоги.ВыполнитьЗапрос(ДатаНачала,НовДатаКонца,"044",,,,"Проводка");

Изначально он снимался с даты по дату. В последствии возникла необходимость снимать его только до определенной операции , чтобы остальные операции , который идут после нее не попадали в запрос.
В желтой книжечке черным по русскому написано что можно использовать вместо даты документ или позицию ... но запрос всеравно берет данные за весь день.
Подскажите , как его забороть ?
1 kiruha
 
06.01.13
15:52
БухИтоги.ВыполнитьЗапрос(ДатаНачала,Док.ТекущийДокумент(),"044",,,,"Проводка");
2 __Se24
 
06.01.13
15:55
(1) Пробовал и так и Через СформироватьПозициюДокумента() результат одинаковый ... всеравно проводки за весь день попадают
3 kiruha
 
06.01.13
15:57
Ну тогда бы не одна бух не смогла бы провести ни один документ корректно - там это в каждом модуле
4 __Se24
 
06.01.13
16:03
У меня не типовая база
5 kiruha
 
06.01.13
16:14
код приведи
6 __Se24
 
06.01.13
16:21
ТЗоп2.Сортировать("-Позиц");
НовДатаКонца=СформироватьПозициюДокумента(ТЗоп2.ПолучитьЗначение(1,1))

В таблицу записываются все операции за день , потом сортируются по позиции. Берется первая с конца, то есть последняя. Проверил через отладчик , в "НовДатаКонца" нужная операция , после нее , в журнале идут те , которые не должны попадать в отчет.
7 __Se24
 
06.01.13
16:22
в этом участке и кода как такового нету ....
8 kiruha
 
06.01.13
16:27
(6)
Ндя..
Я не экстрасенс
9 zak555
 
06.01.13
16:27
> он снимался

в кино ?
10 kiruha
 
06.01.13
16:28
Тупо найди документ и подставь в
БухИтоги.ВыполнитьЗапрос(ДатаНачала,Док.ТекущийДокумент(),"044",,,,"Проводка");
без всяких таблиц и прочего
посмотри отчет
11 zak555
 
06.01.13
16:29
(0)

запрос где ? в тек документе ? в каком условии идёт обработка ?
12 zak555
 
06.01.13
16:29
(2) полный текст запроса где ?
13 zak555
 
06.01.13
16:30
(6) что за поток мыслей ?
где чёткая задача ?
14 __Se24
 
06.01.13
16:32
ща обьясню
на временной оси дня есть около 100 операций. в Самый конец дня запиханы закрывающие операции. Задача в том , чтобы снять запрос без этих закрывающих операций . я по выборке нахожу последнюю нужную операцию и подставляю ее в "ВыполнитьЗапрос" но в выборке которую он предоставляет после выполнения есть как обычные так и закрывающие операции.
15 __Se24
 
06.01.13
16:35
Запрос в первом сообщении.
16 zak555
 
06.01.13
16:35
(14) закрывающие ?
ну так смотри ДО или КО и всё
17 Torquader
 
06.01.13
16:35
Я бы сначала попробовал выбрать все операции за день, с документами и их позициями так, как они находятся на временной оси, а потом бы уже и смотрел, что там должно выбираться.
Есть подозрение, что закрывающие операции просто идут вперемешку с другими.
18 Cthulhu
 
06.01.13
16:35
0) в "Сортировать" есть возможность сортировать по хронологии документов (в колонке) - см. второй параметр.
1) при указании диапазона лучше не мешать типы границ - или две даты, или две позиции, или два документа.
19 __Se24
 
06.01.13
16:36
(17) С этого и начал.
Документы четко отсортированы.
20 Torquader
 
06.01.13
16:36
И, самое главное, чем "закрывающие" операции отличаются от других ?
21 zak555
 
06.01.13
16:36
(19) распиши все проводки - открывающие/закрывающие
22 __Se24
 
06.01.13
16:37
(20) у них специальный реквизит добавлен "ЗакрывающаяПроводка"
23 zak555
 
06.01.13
16:37
какие учытывать, а какие нет
24 kiruha
 
06.01.13
16:38
Проверочная вставка

Док=СоздатьОбъект("Документ.МоеНазваниеДокумента");
Док.НайтиПоНомеру(МойНомерДокумента,МояДатаДокумента);
БухИтоги.ВыполнитьЗапрос(ДатаНачала,Док.ТекущийДокумент(),"044",,,,"Проводка");

посмотреть на отчет
25 Torquader
 
06.01.13
16:38
(22) Система про этот реквизит ничего не знает.
Просто, в одном документе может быть несколько проводок, и все они пишутся в одну позицию и в одну операцию.
26 __Se24
 
06.01.13
16:39
(21) Их просто 2 типа , у которых галочка стоит , те не должны попадать в отчет
27 Torquader
 
06.01.13
16:39
Ещё вопрос - у документа, на который вы отбираете, есть проводки по 044 счёту ?
28 zak555
 
06.01.13
16:40
(26) что такое закрывающая для забаланса ?
29 __Se24
 
06.01.13
16:40
(25) я неправильно написал , признак добавлен у Операции.
30 __Se24
 
06.01.13
16:40
(28) Чтобы на конец года в 0 закрывать
31 Torquader
 
06.01.13
16:41
(29) То есть у документа - тогда закрывающие документы должны стоять на временной оси после остальных - это так ?
32 zak555
 
06.01.13
16:41
(30) зачем тебе видеть незакрывающие операции ?
33 __Se24
 
06.01.13
16:41
(31) да
34 __Se24
 
06.01.13
16:42
(32) Бухи так проверяют , закрыли они бюджет или нет
35 __Se24
 
06.01.13
16:42
Эти операции синтетические
36 zak555
 
06.01.13
16:43
(34) делаешь запрос за период и смотришь
где есть сальдо конечное -- значит не закрыто, где нет -- закрыто
в чём проблема ?
37 __Se24
 
06.01.13
16:46
(36) А я не говорю что проблема с отчетом ... просто раньше , пердыдущий программер , отчет написал так , чтобы эти проводки на время формирования отчета тупо отключались. Тогда формировался чистый и красивый бюджет. а потом включал назад. но изза этих выкрутасов , отчет работает очень долго и выгрузки в УРБД огромные получаются
38 __Se24
 
06.01.13
16:48
(24) ничего не изменилось.
39 zak555
 
06.01.13
16:49
(37) причём тут раньше ?
если раньше был сделан кривой отчёт, то твоя задача исправить эту ошибкуц
40 __Se24
 
06.01.13
16:50
(39) Ну он хоть и был сделан криво , но работал )) теперь правильно , но не работает ))))
41 kiruha
 
06.01.13
16:52
(38)
Тогда дело не БухИтоги а в остальной части отчета
42 __Se24
 
06.01.13
16:55
(41) БИ из воздуха что-ли добавляют остальные проводки ?
насколько я понимаю , система должна работать так
ооооооооооооооо******** - временная ось
где "о" проводки которые должны попасть в выборку , а "*" не должны
следовательно мои действия следующие, я беру в качестве периода пурвую "о" и последнюю ....
а в выборке почему-то еще и звездочки ....
43 zak555
 
06.01.13
16:56
(41) перепиши
(42) не верю
44 __Se24
 
06.01.13
16:57
(43) сам не верю .... сижу , и тупо смотрю на результат ...
45 Сияющий Асинхраль
 
06.01.13
16:57
(0) Код написан правильно, эти бух итоги, не покажут проводок следующих за текущим документом, если, конечно, он не последний, так что лучше смотри остальную часть отчета и удостоверься, что нужный док стоит именно там, где надо...
46 kiruha
 
06.01.13
16:57
(42)
Мы тут только гадаем, что у Вас там делается в отчете
47 __Se24
 
06.01.13
16:58
когда только даты ("*" перенесены в другой день ) то все работает как нада
48 __Se24
 
06.01.13
17:00
Может в движениях БИ порядок проводок отличаться от того , что в журнале ?
49 Umga2002
 
06.01.13
17:02
(ТС) На одном предприятии все технологические отчеты сделаны по сменам. Смены не совпадают с сутками.
Конфа написана на бух-компоненте.
Там БухЗапросов на позицию внутри дня полно. Все работает после того как навел порядок в БД.
Капризное это делов семерке. Это да!
Но работает все как ЧАСЫ.....

Так-что Удачи в дерзаниях...
Отладчик в Руки  и ВПЕРЕД!!!!!
50 __Se24
 
06.01.13
17:57
Сделал примерно следующее:

БухИтоги=СоздатьОбъект("БухгалтерскиеИтоги");    БухИтоги.ВыполнитьЗапрос(КДата,КДата,"044",,,,"Операция");
БухИтоги.ВыбратьПериоды();
Пока БухИтоги.ПолучитьПериод()=1 Цикл
   ТЗ.НоваяСтрока();
   ТЗ.Док=БухИтоги.Операция.ТекущийДокумент();
   ТЗ.Время=БухИтоги.Операция.ПолучитьВремя();
   ТЗ.ЗП=БухИтоги.Операция.ЗакрытиеПериода;
КонецЦикла;
глВывестиТаблицуЗначенийНаПечать(ТЗ,"Операции");

Результат получился весьма странным, операции идут в каком-то хаотическом порядке , зависимости от времени нет
51 zak555
 
06.01.13
18:02
как выводишь *?
52 __Se24
 
06.01.13
18:05
Да просто , ТЗ построчно
53 __Se24
 
06.01.13
18:06
Есть подозрение , что временные точки (позиции) операций в журнале одни , а в накопителе БИ другие ...
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс