Имя: Пароль:
1C
1С v8
Простой запрос неправильно выводит инфу
0 Альбатрос
 
04.04.14
11:56
Запрос.Текст = "ВЫБРАТЬ
               |    ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
               |    (ХозрасчетныйОстатки.СуммаОстатокДт / 1000) КАК Сумма
               |ИЗ
               |    РегистрБухгалтерии.Хозрасчетный.Остатки(КОНЕЦПЕРИОДА(&ДатаОстатков, ДЕНЬ), Счет В (&Счет), , ) КАК ХозрасчетныйОстатки
               |
               |СГРУППИРОВАТЬ ПО
               |    ХозрасчетныйОстатки.Субконто1,
               |    ХозрасчетныйОстатки.СуммаОстатокДт
               |
               |УПОРЯДОЧИТЬ ПО
               |    ХозрасчетныйОстатки.Субконто1.Наименование";
                         
Запрос.УстановитьПараметр("ДатаОстатков", КонецДня(ЭлементыФормы.Период.Значение));
Запрос.УстановитьПараметр("Счет", Счет);
              
Результат = Запрос.Выполнить().Выгрузить();


Собссно, не берет остатки которые сформировались именно в день, на который я формирую запрос. Почему?
1 Альбатрос
 
04.04.14
11:58
Так, по ходу Границу надо использовать
2 Maxus43
 
04.04.14
11:58
да, Остатки - там по умолчанию "Исключая"
3 Альбатрос
 
04.04.14
12:03
(2) Ага, точно.
4 Альбатрос
 
04.04.14
13:27
Хмм... Еще одна проблема: отбирает не все данные.
В ОСВ данные есть, а мой запрос их не берет. Опять же, почему?
5 SUA
 
04.04.14
13:27
Счет В (&Счет) не?
6 Альбатрос
 
04.04.14
13:32
(5) Там все ровно.
7 Альбатрос
 
04.04.14
13:32
Счет = Новый СписокЗначений;
Счет.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01"));
Счет.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("60.01"));
Счет.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.02"));
Счет.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.05"));
Счет.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("73.02"));
8 Альбатрос
 
04.04.14
13:33
К примеру, по счету 62.01 берет не все остатки. Какие-то берет, какие-то нет. Я хз почему.
9 Альбатрос
 
04.04.14
13:37
Мужики, нужны идеи... Я даж примерно не знаю в чем проблема. Запрос то простецкий
10 Cube
 
04.04.14
13:39
(9) Ты границу-то заюзал?
11 Альбатрос
 
04.04.14
13:40
(10) Ага. Конечный запрос:
Запрос.Текст = "ВЫБРАТЬ
               |    ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
               |    (ХозрасчетныйОстатки.СуммаОстатокДт / 1000) КАК Сумма
               |ИЗ
               |    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОстатков, Счет В (&Счет), , ) КАК ХозрасчетныйОстатки
               |
               |СГРУППИРОВАТЬ ПО
               |    ХозрасчетныйОстатки.Субконто1,
               |    ХозрасчетныйОстатки.СуммаОстатокДт
               |
               |УПОРЯДОЧИТЬ ПО
               |    ХозрасчетныйОстатки.Субконто1.Наименование";
              
ГраницаОстатков = Новый Граница(КонецДня(ЭлементыФормы.Период.Значение), ВидГраницы.Включая);
Запрос.УстановитьПараметр("ДатаОстатков", ГраницаОстатков);
Запрос.УстановитьПараметр("Счет", Счет);
12 Tateossian
 
04.04.14
13:42
Запись остатков на начало периода 04.04.2014 00:00:00, соответсвенно, или юзай ВидГраницы.Включая, или бери НАЧАЛО следующего дня
13 Franchiser
 
гуру
04.04.14
13:44
ОСВ строится по таблице остатков и оборотов. Так то должно совпадать.
14 ptiz
 
04.04.14
13:48
(8) Всё он берет, проверяй лучше.
15 Franchiser
 
гуру
04.04.14
13:50
что с чем ты сверяешь: если остаток на начало в ОСВ  - то не совпадет, если остаток на конец в ОСВ то совпадет.
16 Альбатрос
 
04.04.14
13:51
(15) С остатком на конец.
(14) Реально не попадают
17 Мимохожий Однако
 
04.04.14
13:51
счет в иерархии (
18 Альбатрос
 
04.04.14
13:51
щас попробую конкретно по одному контрагенту
19 Альбатрос
 
04.04.14
13:53
(17) Там не субсчета
20 Franchiser
 
гуру
04.04.14
13:56
добавь кстати в запрос автоупорядочивание. Твое упорядочивание не оптимально.
21 Franchiser
 
гуру
04.04.14
13:57
и по правильному надо передавать в параметры виртуальной таблицы массив субконто со значение "Контрагент"
22 Альбатрос
 
04.04.14
13:58
(21) Не понял, зачем?
23 Альбатрос
 
04.04.14
13:59
С отбором по конкретному контрагенту, для которого ОСВ выводит данные, мой запрос ничего не выводит ((( Что за нахер то?
24 Franchiser
 
гуру
04.04.14
14:00
(22) Потому что условие В работает с большим потреблением ресурсов. а так накладываешь условие на все счета где есть вид субконто контрагенты.
25 Franchiser
 
гуру
04.04.14
14:01
покажи скриншот того, где в ОСВ есть данные по контрагенту а в твоем отчете нет
26 Альбатрос
 
04.04.14
14:03
(25) минуту
27 Franchiser
 
гуру
04.04.14
14:04
у тебя вообще не попадают суммы или какая-то часть. Проверь дату образования остатка в ОСВ
28 Franchiser
 
гуру
04.04.14
14:05
может еще в ОСВ развернуты сумма по аналитике, а у тебя только контрагент.
29 Альбатрос
 
04.04.14
14:07
30 Альбатрос
 
04.04.14
14:08
Результат моего запроса
http://savepic.net/5086141.htm
31 Альбатрос
 
04.04.14
14:11
ИТак)))) Ваши вердикты? Я тупой или 1с тупая? )))))
32 Альбатрос
 
04.04.14
14:13
(24) Спасибо кстати
33 Franchiser
 
гуру
04.04.14
14:14
По-моему счета 62.01 и 60.01 разные по активности
34 Franchiser
 
гуру
04.04.14
14:14
Попробуй в запросе писать СуммаОстаток а не СуммаОстатокДт
35 Franchiser
 
гуру
04.04.14
14:18
Потом тебе нужно суммировать все остатки по контрагенту в осв по всем счетам в отборе, а не только 62.01
36 Franchiser
 
гуру
04.04.14
14:19
Может у него есть остаток например на 76.05...
37 Альбатрос
 
04.04.14
14:20
Пробую
38 Franchiser
 
гуру
04.04.14
14:21
делай отчет анализ субконто, там видны остатки по всем счетам
39 Альбатрос
 
04.04.14
14:22
Хмм... Если оставляю только 62.01, запрос возвращает данные
40 Franchiser
 
гуру
04.04.14
14:22
или же вставь в запрос отбор по счету. Кстати в 8-ке поиск счетов по наименованию - плохой тон, нужно обращаться по идентификатору. Вместо вписка значений лучше массив использовать.
41 Альбатрос
 
04.04.14
14:23
(40) Учту, спасибо. Так почему по конкретному счеты возвращает, а по списку нет?
42 Franchiser
 
гуру
04.04.14
14:23
Выведи счет в поле запроса, посмотри результат
43 Franchiser
 
гуру
04.04.14
14:24
наверно есть еще какие то остатки, может с минусом. В результате 0 м.б. получился.
44 Franchiser
 
гуру
04.04.14
14:25
такое бывает когда счет активный, но сальдо получилось в результате как бы кредитовое.
45 Franchiser
 
гуру
04.04.14
14:25
но это в большинстве случаев ошибка.
46 Альбатрос
 
04.04.14
14:30
Так, еще раз. Для особо тупых ))) Да, счет 62.01 активный, а 60.01 пассивный. На обоих есть остатки, но не одинаковые, то есть не получается нуля при "взаимозачете". Почему запрос ничего не возвращает, если я пользую эти 2 счета в списке отбора? Ведь по некоторым возвращает нормально.
47 Franchiser
 
гуру
04.04.14
14:35
Никогда не пробовал в выбирать в запросе СуммаОстатокДт когда есть и активные и пассивные счета. Обычно тогда используют СуммаОстаток. А на других счетах точно нет остатков? Может какая то особенность платформы.
48 Franchiser
 
гуру
04.04.14
14:36
можешь попробовать еще выбрать СуммаОстатокДт и СуммаОстатокКт одновременно
49 Franchiser
 
гуру
04.04.14
14:47
Кстати зачем ты используешь конструкцию СГРУППИРОВАТЬ ПО ?
50 Franchiser
 
гуру
04.04.14
14:48
Виртуальная таблица и так получает все сгруппированно