Имя: Пароль:
1C
 
При указании метода дополнения ДвиженияИГраницыИнтервала в запросе к виртуа
0 1c_voage
 
25.10.07
21:32
При указании метода дополнения ДвиженияИГраницыИнтервала в запросе к виртуальной таблице остатков и оборотов для тех операций, по которым не было движений в периоде, за кот-ый формируется отчет, два раза дублируется строка остатка. Один раз - на дату начала периода, 2-ой раз - на конечную дату. Получается, что в итоге сумма остатка удваивается. Что делать? Как можно избавиться от этого. Ведь если указать Движения, тогда остатки вообще не возьмутся.
1 ТелепатБот
 
гуру
25.10.07
21:32
2 Wladimir_spb
 
25.10.07
21:35
В нормальных запросах начальный и конечный остаток не складываются. Посмотрите любой стд. отчет.
3 1c_voage
 
25.10.07
21:38
Не сказать, что у меня совсем нормальный запрос.
4 Wladimir_spb
 
25.10.07
21:44
Либо "нормализуйте" запрос, чтобы сработали механизмы платформы, либо разруливайте эту ситуацию самостоятельно, явно разделяя остатки.
5 1c_voage
 
25.10.07
21:46
Вот запрос. Честно говоря, уже не способна думать над этим, поэтому спрашиваю.
"ВЫБРАТЬ
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель КАК ТоргПред,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_Координатор КАК Координатор,
|    ОстаткиИОбороты.Сделка КАК Сделка,
|    ОстаткиИОбороты.Период КАК Период,
|    ОстаткиИОбороты.Регистратор КАК РегистраторДвижения,
|    ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток КАК НачОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК КонОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовПриход КАК Отгрузка,
|    ОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК Оплата,
|    РАЗНОСТЬДАТ(&НачДата, ОстаткиИОбороты.Сделка.Дата, ДЕНЬ) КАК РазностьДат,
|    ВЫБОР
|        КОГДА РАЗНОСТЬДАТ(&НачДата, ОстаткиИОбороты.Сделка.Дата, ДЕНЬ) > -36
|                И РАЗНОСТЬДАТ(&НачДата, ОстаткиИОбороты.Сделка.Дата, ДЕНЬ) < 0
|                И &НачДата > ОстаткиИОбороты.Сделка.Дата
|            ТОГДА ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток
|        ИНАЧЕ 0
|    КОНЕЦ КАК НачСум0_35,
|    ВЫБОР
|        КОГДА РАЗНОСТЬДАТ(&НачДата, ОстаткиИОбороты.Сделка.Дата, ДЕНЬ) < -35
|                И РАЗНОСТЬДАТ(&НачДата, ОстаткиИОбороты.Сделка.Дата, ДЕНЬ) > -51
|                И &НачДата > ОстаткиИОбороты.Сделка.Дата
|            ТОГДА ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток
|        ИНАЧЕ 0
|    КОНЕЦ КАК НачСум36_50,
|    ВЫБОР
|        КОГДА РАЗНОСТЬДАТ(&НачДата, ОстаткиИОбороты.Сделка.Дата, ДЕНЬ) < -50
|                И РАЗНОСТЬДАТ(&НачДата, ОстаткиИОбороты.Сделка.Дата, ДЕНЬ) > -71
|                И &НачДата > ОстаткиИОбороты.Сделка.Дата
|            ТОГДА ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток
|        ИНАЧЕ 0
|    КОНЕЦ КАК НачСум51_70,
|    ВЫБОР
|        КОГДА РАЗНОСТЬДАТ(&НачДата, ОстаткиИОбороты.Сделка.Дата, ДЕНЬ) < -70
|                И &НачДата > ОстаткиИОбороты.Сделка.Дата
|            ТОГДА ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток
|        ИНАЧЕ 0
|    КОНЕЦ КАК НачСум70_
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачДата, &КонДата, Запись, ДвиженияИГраницыПериода, ) КАК ОстаткиИОбороты";
|ИТОГИ
|    СУММА(НачОст),
|    СУММА(КонОст),
|    СУММА(Отгрузка),
|    СУММА(Оплата),
|    СУММА(НачСум0_35),
|    СУММА(НачСум36_50),
|    СУММА(НачСум51_70),
|    СУММА(НачСум70_)
|ПО
|    ОБЩИЕ,
|    Контрагент,
|    ТоргПред,
|    Координатор,
|    Сделка,
|    Период,
|    РегистраторДвижения
|АВТОУПОРЯДОЧИВАНИЕ";
6 Wladimir_spb
 
25.10.07
22:00
Утро вечера мудренее...
7 1c_voage
 
25.10.07
22:01
Это точно. Только времени нет
8 selenat
 
25.10.07
22:22
(0) Где удваиваются остатки? В итоговых строках любых уровней вроде не должны бы. В каком виде выводишь отчет? Если смущают лишние строки в детальных записях, то их при выводе (обходе группировок выборки) можно просто пропусать. Или ты пользуешься построителем?
9 1c_voage
 
25.10.07
22:26
Остатки удваиваются при суммировании полей выборки НачСум0_35,НачСум36_50,НачСум51_70,НачСум70_.
Я уже даже объединение делаю с аналогичным запросом, только по основным остаткам ставлю 0 Как НачСум. И все равно выводит двойные суммы.
10 1c_voage
 
25.10.07
22:33
В дереве значений вижу есть 2 строки. Одна:
Контрагент Сделка 01.10.2007 1770
Контрагент Сделка 31.10.2007 1770
Выше соответственно Контрагент Сделка 3440
11 Wladimir_spb
 
25.10.07
22:35
При использование функции ВЫБОР не работает стандартный платформенный механизм обработки остатков по периодам и включается простое суммирование. Поможет вам (4).
12 selenat
 
25.10.07
22:37
(11) а если использовать ОБЪЕДИНИТЬ ВСЕ, вынеся все поля типа ВЫБОР во второй запрос, а в первом соотвтественно эти поля = 0? Поможет?
13 1c_voage
 
25.10.07
22:37
Вот и я подумала, что похоже на то. Остатки считаются, как и должны, а эти поля как-то не так и думала их обычным суммированием делать. Ясно тогда. Правда, еще не ясно, что делать
14 1c_voage
 
25.10.07
22:40
to Wladimir spb: а где такую информацию можно прочесть?
15 Wladimir_spb
 
25.10.07
22:45
(14) Не знаю. Я эти выводы из собственного опыта получил. И на форуме где-то подобное обсуждение видел.
Тут либо уходить от функции ВЫБОР через Объединение/Соединение. Либо явно разделять остатки или не использовать итоги, как-то это делалось. Помню, что делал в разных случаях по-разному, но в чем фишка сейчас сказать не могу.
16 1c_voage
 
25.10.07
22:47
У меня не получится явно разделить остатки, так как нужна детализация до регистратора. Да, конечно. Туманность немного все-таки проясняется
17 Wladimir_spb
 
25.10.07
22:52
не суммируй остатки. Получай их отдельно во вложеном запросе. Не самый красивый вариант, но сработает.
18 1c_voage
 
25.10.07
22:56
Имеются в виду остатки обычные или те, которые я через Выбор делаю
19 Wladimir_spb
 
25.10.07
23:00
Те которые у тебя двоятся.
20 1c_voage
 
25.10.07
23:00
Сейчас попробую. Вы только никуда не уходите :))
21 selenat
 
25.10.07
23:02
Короче, попробуй перенести все поля, содержащие ВЫБОР во вложенный запрос (видимо вирт. табл. остатков на НачДата) и соединяй основной запрос с этим вложенным по договору и сделке.
22 1c_voage
 
25.10.07
23:10
Может, я что не так поняла. Сделала. Только уже с объединением. Все равно двоит. Привожу текст. Если не так поняла, то скажите, пожалуйста.
"ВЫБРАТЬ
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель КАК ТоргПред,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_Координатор КАК Координатор,
|    ОстаткиИОбороты.Сделка КАК Сделка,
|    ОстаткиИОбороты.Период КАК Период,
|    ОстаткиИОбороты.Регистратор КАК РегистраторДвижения,
|    ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток КАК НачОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК КонОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовПриход КАК Отгрузка,
|    ОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК Оплата,
|    0 КАК РазностьДат,
|    0 КАК НачСум0_35,
|    0 КАК НачСум36_50,
|    0 КАК НачСум51_70,
|    0 КАК НачСум70_
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачДата, &КонДата, Запись, ДвиженияИГраницыПериода, ) КАК ОстаткиИОбороты
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
|    ВложенныйЗапрос.Контрагент,
|    ВложенныйЗапрос.ТоргПред,
|    ВложенныйЗапрос.Координатор,
|    ВложенныйЗапрос.Сделка,
|    ВложенныйЗапрос.Период,
|    ВложенныйЗапрос.РегистраторДвижения,
|    ВложенныйЗапрос.НачОст,
|    ВложенныйЗапрос.КонОст,
|    ВложенныйЗапрос.Отгрузка,
|    ВложенныйЗапрос.Оплата,
|    ВложенныйЗапрос.РазностьДат,
|    ВложенныйЗапрос.НачСум0_35,
|    ВложенныйЗапрос.НачСум36_50,
|    ВложенныйЗапрос.НачСум51_70,
|    ВложенныйЗапрос.НачСум70_
|ИЗ
|    (ВЫБРАТЬ
|        ОстаткиИОборотыДет.ДоговорКонтрагента.Владелец КАК Контрагент,
|        ОстаткиИОборотыДет.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель КАК ТоргПред,
|        ОстаткиИОборотыДет.ДоговорКонтрагента.Владелец.ю_Координатор КАК Координатор,
|        ОстаткиИОборотыДет.Сделка КАК Сделка,
|        ОстаткиИОборотыДет.Период КАК Период,
|        ОстаткиИОборотыДет.Регистратор КАК РегистраторДвижения,
|        0 КАК НачОст,
|        0 КАК КонОст,
|        0 КАК Отгрузка,
|        0 КАК Оплата,
|        РАЗНОСТЬДАТ(&НачДата, ОстаткиИОборотыДет.Сделка.Дата, ДЕНЬ) КАК РазностьДат,
|        ВЫБОР
|            КОГДА РАЗНОСТЬДАТ(&НачДата, ОстаткиИОборотыДет.Сделка.Дата, ДЕНЬ) > -36
|                    И РАЗНОСТЬДАТ(&НачДата, ОстаткиИОборотыДет.Сделка.Дата, ДЕНЬ) < 0
|                    И &НачДата > ОстаткиИОборотыДет.Сделка.Дата
|                ТОГДА ОстаткиИОборотыДет.СуммаВзаиморасчетовНачальныйОстаток
|            ИНАЧЕ 0
|        КОНЕЦ КАК НачСум0_35,
|        ВЫБОР
|            КОГДА РАЗНОСТЬДАТ(&НачДата, ОстаткиИОборотыДет.Сделка.Дата, ДЕНЬ) < -35
|                    И РАЗНОСТЬДАТ(&НачДата, ОстаткиИОборотыДет.Сделка.Дата, ДЕНЬ) > -51
|                    И &НачДата > ОстаткиИОборотыДет.Сделка.Дата
|                ТОГДА ОстаткиИОборотыДет.СуммаВзаиморасчетовНачальныйОстаток
|            ИНАЧЕ 0
|        КОНЕЦ КАК НачСум36_50,
|        ВЫБОР
|            КОГДА РАЗНОСТЬДАТ(&НачДата, ОстаткиИОборотыДет.Сделка.Дата, ДЕНЬ) < -50
|                    И РАЗНОСТЬДАТ(&НачДата, ОстаткиИОборотыДет.Сделка.Дата, ДЕНЬ) > -71
|                    И &НачДата > ОстаткиИОборотыДет.Сделка.Дата
|                ТОГДА ОстаткиИОборотыДет.СуммаВзаиморасчетовНачальныйОстаток
|            ИНАЧЕ 0
|        КОНЕЦ КАК НачСум51_70,
|        ВЫБОР
|            КОГДА РАЗНОСТЬДАТ(&НачДата, ОстаткиИОборотыДет.Сделка.Дата, ДЕНЬ) < -70
|                    И &НачДата > ОстаткиИОборотыДет.Сделка.Дата
|                ТОГДА ОстаткиИОборотыДет.СуммаВзаиморасчетовНачальныйОстаток
|            ИНАЧЕ 0
|        КОНЕЦ КАК НачСум70_
|    ИЗ
|        РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачДата, &КонДата, Запись, ДвиженияИГраницыПериода, ) КАК ОстаткиИОборотыДет) КАК ВложенныйЗапрос
|ИТОГИ
|    СУММА(НачОст),
|    СУММА(КонОст),
|    СУММА(Отгрузка),
|    СУММА(Оплата),
|    СУММА(НачСум0_35),
|    СУММА(НачСум36_50),
|    СУММА(НачСум51_70),
|    СУММА(НачСум70_)
|ПО
|    ОБЩИЕ,
|    Контрагент,
|    ТоргПред,
|    Координатор,
|    Сделка,
|    Период,
|    РегистраторДвижения
|АВТОУПОРЯДОЧИВАНИЕ";
23 selenat
 
25.10.07
23:15
(22) слишком сложно. Во-первых, вложенный запрос тебе достаточно взять остатки на НачДата (а не остатки и обороты). Во вложенном запросе не обязательно сохранять структуру полей внешнего запроса, 0 можно убрать. И потом, делай левым соединением...
24 1c_voage
 
25.10.07
23:18
Дело в том, что это упрощенный вариант моего запроса. Мне нужны еще и конечные остатки таким же образом. Мне почему-то кажется, что за счет соединений у меня могут продублироваться и основные остатки
25 selenat
 
25.10.07
23:19
ВЫБРАТЬ
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель КАК ТоргПред,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_Координатор КАК Координатор,
|    ОстаткиИОбороты.Сделка КАК Сделка,
|    ОстаткиИОбороты.Период КАК Период,
|    ОстаткиИОбороты.Регистратор КАК РегистраторДвижения,
|    ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток КАК НачОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК КонОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовПриход КАК Отгрузка,
|    ОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК Оплата,
|    ВложенныйЗапрос.РазностьДат,
|    ВложенныйЗапрос.НачСум0_35,
|    ВложенныйЗапрос.НачСум36_50,
|    ВложенныйЗапрос.НачСум51_70,
|    ВложенныйЗапрос.НачСум70_
ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачДата, &КонДата, Запись, ДвиженияИГраницыПериода, ) КАК ОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ
(ВЫБРАТЬ
...
ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&НачДата,...)) КАК ВложенныйЗапрос
ПО
ОстаткиИОбороты.ДоговорКонтрагента = ВложенныйЗапрос.ДоговорКонтрагента И
ОстаткиИОбороты.Сделка= ВложенныйЗапрос.Сделка

Попробуй как-то так...
26 1c_voage
 
25.10.07
23:19
И я не совсем понимаю тогда, где должен находиться вложенный запрос.
27 selenat
 
25.10.07
23:19
(24) усложнять будешь потом.Добейся получения правильных итогов на запросе такой структуры...
28 selenat
 
25.10.07
23:20
(26) смотри (25)...
29 Wladimir_spb
 
25.10.07
23:24
Как у вас все лихо продвигается :)
Но могу заметить, что если вычислять НачСум не через ВЫБОР а через вложеные запросы, то работать наверняка будет в 1,5-2 раза быстрее и проблема с платформенным механизмом уйдет сама собой)
30 selenat
 
25.10.07
23:27
(29) ты имеешь в виду перенос конструкций ВЫБОР во вложенный запрос или хочешь сказать, что ВЫБОР вообще можно не использовать?
31 Wladimir_spb
 
25.10.07
23:33
Выбор вообще не использовать. Сделать много вложеных запросов.
Я как-то тестил запрос для подбора (там ведь очень критична производительность) и получилось, что запрос с вложеными подзапросами раза в 2 эффективнее, чем с ВЫБОР. Вообще стараюсь использовать эту функцию как можно реже. Да, и обединение отрабатывает несколько быстрее, чем соединение.
Так что рекомендую полностью переписать запрос :)
32 1c_voage
 
25.10.07
23:38
Неа, пока удваиваются. Привожу написанное
"ВЫБРАТЬ
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель КАК ТоргПред,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_Координатор КАК Координатор,
|    ОстаткиИОбороты.Сделка КАК Сделка,
|    ОстаткиИОбороты.Период КАК Период,
|    ОстаткиИОбороты.Регистратор КАК РегистраторДвижения,
|    ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток КАК НачОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК КонОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовПриход КАК Отгрузка,
|    ОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК Оплата,
|    ВложенныйЗапрос.РазностьДат,
|    ВложенныйЗапрос.НачСум0_35 КАК НачСум0_35,
|    ВложенныйЗапрос.НачСум36_50 КАК НачСум36_50,
|    ВложенныйЗапрос.НачСум51_70 КАК НачСум51_70,
|    ВложенныйЗапрос.НачСум70_ КАК НачСум70_
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачДата, &КонДата,
|    Запись, ДвиженияИГраницыПериода, ) КАК ОстаткиИОбороты
|        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
|            Подзапрос.ДоговорКонтрагента КАК ДоговорКонтрагента,
|            Подзапрос.Сделка КАК Сделка,
|            Подзапрос.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетовОстаток,
|            РАЗНОСТЬДАТ(&НачДата, Подзапрос.Сделка.Дата, ДЕНЬ) КАК РазностьДат,
|            ВЫБОР
|                КОГДА РАЗНОСТЬДАТ(&НачДата, Подзапрос.Сделка.Дата, ДЕНЬ) > -36
|                        И РАЗНОСТЬДАТ(&НачДата, Подзапрос.Сделка.Дата, ДЕНЬ) < 0
|                        И &НачДата > Подзапрос.Сделка.Дата
|                    ТОГДА Подзапрос.СуммаВзаиморасчетовОстаток
|                ИНАЧЕ 0
|            КОНЕЦ КАК НачСум0_35,
|            ВЫБОР
|                КОГДА РАЗНОСТЬДАТ(&НачДата, Подзапрос.Сделка.Дата, ДЕНЬ) < -35
|                        И РАЗНОСТЬДАТ(&НачДата, Подзапрос.Сделка.Дата, ДЕНЬ) > -51
|                        И &НачДата > Подзапрос.Сделка.Дата
|                    ТОГДА Подзапрос.СуммаВзаиморасчетовОстаток
|                ИНАЧЕ 0
|            КОНЕЦ КАК НачСум36_50,
|            ВЫБОР
|                КОГДА РАЗНОСТЬДАТ(&НачДата, Подзапрос.Сделка.Дата, ДЕНЬ) < -50
|                        И РАЗНОСТЬДАТ(&НачДата, Подзапрос.Сделка.Дата, ДЕНЬ) > -71
|                        И &НачДата > Подзапрос.Сделка.Дата
|                    ТОГДА Подзапрос.СуммаВзаиморасчетовОстаток
|                ИНАЧЕ 0
|            КОНЕЦ КАК НачСум51_70,
|            ВЫБОР
|                КОГДА РАЗНОСТЬДАТ(&НачДата, Подзапрос.Сделка.Дата, ДЕНЬ) < -70
|                        И &НачДата > Подзапрос.Сделка.Дата
|                    ТОГДА Подзапрос.СуммаВзаиморасчетовОстаток
|                ИНАЧЕ 0
|            КОНЕЦ КАК НачСум70_
|        ИЗ
|            РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&НачДата, ) КАК Подзапрос)
| КАК ВложенныйЗапрос
|        ПО ОстаткиИОбороты.ДоговорКонтрагента = ВложенныйЗапрос.ДоговорКонтрагента
|            И ОстаткиИОбороты.Сделка = ВложенныйЗапрос.Сделка
|ИТОГИ
|    СУММА(НачОст),
|    СУММА(КонОст),
|    СУММА(Отгрузка),
|    СУММА(Оплата),
|    СУММА(НачСум0_35),
|    СУММА(НачСум36_50),
|    СУММА(НачСум51_70),
|    СУММА(НачСум70_)
|ПО
|    ОБЩИЕ,
|    Контрагент,
|    ТоргПред,
|    Координатор,
|    Сделка,
|    Период,
|    РегистраторДвижения
|АВТОУПОРЯДОЧИВАНИЕ";
33 selenat
 
25.10.07
23:38
(31) что-то я не соображу как сделать без ВЫБОР. Ей ведь СуммаВзаиморасчетовНачальныйОстаток надо определить в одно из 4 полей в зависимости от "возраста" сделки. Но в любом случае, какая разница каким образом получены эти данные во вложенном запросе (с использованием ВЫБОР или нет), ведь в основном запросе, где будем брать итоги ВЫБОР уже не используется...
34 1c_voage
 
25.10.07
23:40
Я понимаю, что Wladimir spb рекомендует для каждого поля выборки вида НачСум0_35,НачСум36_50 написать свой вложенный запрос. Только, честно говоря, не представляю, как это выглядит. Либо не сталкивалась с таким, либо просто туплю.
35 selenat
 
25.10.07
23:41
(34) анналогично...
36 Wladimir_spb
 
25.10.07
23:41
Для каждого поля свой запрос со своими парамерами вирт. таблицы. Итог можно просто собрать как итог по каждому полю и как сумму итогов по всем полям, отдельный запрос для этого не понадобится.
37 1c_voage
 
25.10.07
23:43
to selenat: то есть? Честно говоря, в последнее время плохо сплю. Так что ближе к вечеру начинаю тупеть
38 Wladimir_spb
 
25.10.07
23:44
(37) см (6) :)
39 selenat
 
25.10.07
23:44
(37) это к какому посту вопрос? используй цифирки в скобочках. :))
40 1c_voage
 
25.10.07
23:44
Можно как-нибудь наглядно.
41 1c_voage
 
25.10.07
23:46
to selenat: это к 35 посту. Я не знаю, каким образом, эти циферки в скобочках становятся ссылкой :))
42 Wladimir_spb
 
25.10.07
23:47
|    ОстаткиИОбороты.СуммаВзаиморасчетовОстаток КАК НачСум0_35,
|    0 КАК НачСум36_50,
|    0 КАК НачСум51_70,
|    0 КАК НачСум70_
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&Дата0, &Дата35, Запись, ДвиженияИГраницыПериода, ) КАК ОстаткиИОбороты
|
|ОБЪЕДИНИТЬ
|    0 КАК НачСум0_35,
|    ОстаткиИОбороты.СуммаВзаиморасчетовОстаток КАК НачСум36_50,
|    0 КАК НачСум51_70,
|    0 КАК НачСум70_
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&Дата36, &Дата50, Запись, ДвиженияИГраницыПериода, ) КАК ОстаткиИОбороты
|
|ОБЪЕДИНИТЬ
....
43 Wladimir_spb
 
25.10.07
23:48
(41) А ты попробуй) Они сами ссылкой становятся. Типа (1), (2), (3)
44 selenat
 
25.10.07
23:49
Видимо Объединение запросов. Типа
(СуммаВзаиморасчетовОстаток,
0,
0,
0
ИЗ ...
ГДЕ
Сделка.Дата МЕЖДУ ...

ОБЪЕДИНИТЬ ВСЕ
0,
СуммаВзаиморасчетовОстаток,
0,
0
ИЗ ...
ГДЕ
Сделка.Дата МЕЖДУ ...
ОБЪЕДИНИТЬ ВСЕ
0,
0,
СуммаВзаиморасчетовОстаток,
0
ИЗ ...
ГДЕ
Сделка.Дата МЕЖДУ ...
) СГРУППИРОВАТЬ
45 selenat
 
25.10.07
23:49
(42) ага. Сообазил (44) :)))
46 Wladimir_spb
 
25.10.07
23:50
Только
ГДЕ
Сделка.Дата МЕЖДУ ...
не есть хорошо :)
47 selenat
 
25.10.07
23:50
(41) клавиатура рулит... :)))
48 selenat
 
25.10.07
23:51
(46) почему? и как лучше?
ЗЫ Там ведь даты можно параметрами в запрос передавать, количества дней то у нее фиксированы от НачДата...
49 1c_voage
 
25.10.07
23:52
Знаю такой способ. Получается, придется вычислять граничные даты интервалов вне запроса.
Кроме того, нужно ли здесь в итогах суммировать, кроме НачСум, еще и НачСум0_35,НачСум36_50,...
50 1c_voage
 
25.10.07
23:54
Это я (49) написала к посту (36)
51 Wladimir_spb
 
25.10.07
23:56
(48) Все надо решать в параметрах вирт. таблиц иначе тормозить будет.
(49) Ну, может дальше на самостоятельное рассмотрение) Там уже ничего интересного не осталось...
52 selenat
 
25.10.07
23:58
(51) Зачем? Мы ведь не выбираем данные за период вирт. таблицы. А берем остаток на дату, просто помещаем его в зависимости от того, в каком диапазоне дата сделки...
53 1c_voage
 
25.10.07
23:59
Все таки Вы бы никуда не уходили. Я пишу.
54 selenat
 
26.10.07
00:00
меня жена в теплой постели ждет. А я тут как дурак на форуме сижу. :)))
55 1c_voage
 
26.10.07
00:04
А как быть в таком случае с конечными остатками? Мне нужно КонСум0_35, только уже отталкиваясь от КонДаты отчета, а не от начдаты. Кроме того, еще есть оплаты, которые нужно тоже распределить по периодам 0-35,35-50,...как разницу между датой оплаты и датой сделки(дата записи - сделка.дата).
Не соображу. Количество объединений увеличится в 3 раза или для коностатков все будет нормально, а для оплат дополнительно нужно объединять
56 Wladimir_spb
 
26.10.07
00:06
(52) А так (вирт.таб.) ты будешь сразу выбирать сделки из определенных диапазонов)
(54) )))
57 Wladimir_spb
 
26.10.07
00:08
(55) еще раз см.(6). Утром все окажется очень простым :)
58 1c_voage
 
26.10.07
00:09
Ну серьезно. Я уже домой собираюсь. Все равно никак не соображу. Может, во сне это все скомпонуется в запрос, а может, и нет.
59 selenat
 
26.10.07
00:11
(56.1) типа Остатки(&НачДата,,,Сделка.Дата МЕЖДУ ... ) - да. Не подумал. Торможу.
(55) соединяй свою основную таблицу несколькими левыми соединениями с вложенными запросами структуры типа (44)...
60 selenat
 
26.10.07
00:12
(58) у тебя щас скока на часах?
61 1c_voage
 
26.10.07
00:14
Что-то, блин, я не дотямкаю, почему они все-таки вложенные эти запросы.
62 1c_voage
 
26.10.07
00:14
(60) 23:09
63 1c_voage
 
26.10.07
00:15
Это я свою работу люблю. И комп продала, еще не купила, поэтому на работе так поздно сижу
64 Wladimir_spb
 
26.10.07
00:15
(61) не о том думаешь, с терминологией потом разберешься, тем более что здесь они действительно не вложенные :)
65 selenat
 
26.10.07
00:16
(61)
Сравни
ВЫБРАТЬ
...
ИЗ РегистрНакопления....

или
ВЫБРАТЬ
... ИЗ (ВЫБРАТЬ... ИЗ ...)
Второй варант  с вложенным запросом...
66 selenat
 
26.10.07
00:17
(63) это пройдет...
67 1c_voage
 
26.10.07
00:17
Так я и понимаю, только, наверное, просто в (42) еще все мои поля не дописаны и ресурсы. Да?
68 selenat
 
26.10.07
00:18
(67) в (42) описана как раз структура вложенного запроса, с которым тебе надо будет ОстаткиИОбороты соединять
69 Wladimir_spb
 
26.10.07
00:18
Я уже не люблю твою работу... )))
70 Wladimir_spb
 
26.10.07
00:20
(68) Честно говоря, мне кажется, что все можно получить на одном уровне. Без вложеных запросов...) И итоговые остатки в том числе
71 selenat
 
26.10.07
00:21
(70) большим количествоб ОБЪЕДИНЕНИЙ и группировкой?
72 Wladimir_spb
 
26.10.07
00:23
Ну, типа того. Хотя вместо группировки лучше использовать итоги.
73 selenat
 
26.10.07
00:23
(72) ну да. Видимо так...
74 selenat
 
26.10.07
00:26
Да, вроде все вырисовывается. Объединение 5 запросов. Тока я бы результат этого объединения все равно сгруппировал, а потом уже итоги брал...
75 1c_voage
 
26.10.07
00:26
С НачСум0_35,НачСум36_50,НачСум51_70 все понятно. А вот,когда мне нужно для тех долгов, что > 70. Тогда получается, что остаток смотрю на &начдата=начдатаотчета-70, а &кондата не понятно, какая. И совпадет ли НачОст (то есть остаток в целом) с суммой всех этих НачСум0_35,НачСум36_50,НачСум51_70 и НачСум70_.
Если все красиво. То тогда я объединяю и все остальные "объединения": для КонСум0_... и для оплат.
76 1c_voage
 
26.10.07
00:27
А большое кол-во объединений не даст мне ошибку про доступ 256 таблиц
77 selenat
 
26.10.07
00:28
(75) абсолютно нет разницы - используешь диапазон дат или условие на >...
78 Wladimir_spb
 
26.10.07
00:28
)))
Видимо это будет очень БОЛЬШОЕ количество объединений)
79 selenat
 
26.10.07
00:29
(76) не думаю. До этого ограничения тебе скорее всего еще далеко...
80 1c_voage
 
26.10.07
00:30
:)) (79) я уже его достигала в своем предыдущем отчете. Так что я могу
81 1c_voage
 
26.10.07
00:31
(77) почему нет разницы
82 selenat
 
26.10.07
00:31
(80) мне как-то раз это тоже удалось. :)))
83 Wladimir_spb
 
26.10.07
00:32
Могу заметь, что перебором сделок и ВЫБРАТЬ на это ограничение можно натолкнуться гораздо раньше и совсем неожиданно...
84 Wladimir_spb
 
26.10.07
00:32
+(83)Собственно, (80) судя по всему лишнее тому подтверждение)))
85 1c_voage
 
26.10.07
00:34
Возможно:)) Ладно, Вы завтра здесь будете? Я убегаю. Уже такси приехало.
пока.
86 selenat
 
26.10.07
00:35
(81)
ВЫБРАТЬ
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель КАК ТоргПред,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_Координатор КАК Координатор,
|    ОстаткиИОбороты.Сделка КАК Сделка,
|    ОстаткиИОбороты.Период КАК Период,
|    ОстаткиИОбороты.Регистратор КАК РегистраторДвижения,
|    ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток КАК НачОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК КонОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовПриход КАК Отгрузка,
|    ОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК Оплата,
|    РАЗНОСТЬДАТ(&НачДата, ОстаткиИОбороты.Сделка.Дата, ДЕНЬ) КАК РазностьДат,
0,
0,
0,
0
из ...
Объединить Все
0,
...
0,
Остатки.НачОстаток,
0,
...
из Регистр.Остатки(ДатаНач,Сделка.Дата МЕЖДУ ...)
Объединить Все
0,
...
0,
Остатки.НачОстаток,
0,
...
из Регистр.Остатки(ДатаНач,Сделка.Дата >...)
87 selenat
 
26.10.07
00:36
ну, я пошел спать. У меня скоро час ночи...
88 Wladimir_spb
 
26.10.07
00:39
Всем пока)
Гуд найт
89 1c_voage
 
26.10.07
11:10
Все равно двоятся НачСум0_35,НачСум36_50,НачСум51_70,НачСум70_. Не понимаю, почему. Убрала же уже все поля с Выбором. Пишу так:
"ВЫБРАТЬ
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель КАК ТоргПред,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_Координатор КАК Координатор,
|    ОстаткиИОбороты.Сделка КАК Сделка,
|    ОстаткиИОбороты.Период КАК Период,
|    ОстаткиИОбороты.Регистратор КАК РегистраторДвижения,
|    ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток КАК НачОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК КонОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовПриход КАК Отгрузка,
|    ОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК Оплата,
|    0 КАК НачСум0_35,
|    0 КАК НачСум36_50,
|    0 КАК НачСум51_70,
|    0 КАК НачСум70_
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачДата,
|&КонДата, Запись, ДвиженияИГраницыПериода, ) КАК ОстаткиИОбороты
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
|    ОстаткиИОбороты0_35.ДоговорКонтрагента.Владелец,
|    ОстаткиИОбороты0_35.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель,
|    ОстаткиИОбороты0_35.ДоговорКонтрагента.Владелец.ю_Координатор,
|    ОстаткиИОбороты0_35.Сделка,
|    ОстаткиИОбороты0_35.Период,
|    ОстаткиИОбороты0_35.Регистратор,
|    0,
|    0,
|    0,
|    0,
|    ОстаткиИОбороты0_35.СуммаВзаиморасчетовНачальныйОстаток,
|    0,
|    0,
|    0
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
|        &НачДата,
|        &КонДата,
|        Запись,
|        ДвиженияИГраницыПериода,
|        РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) > -36
|            И РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < 0
|            И &НачДата > Сделка.Дата) КАК ОстаткиИОбороты0_35
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
|    ОстаткиИОбороты36_50.ДоговорКонтрагента.Владелец,
|    ОстаткиИОбороты36_50.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель,
|    ОстаткиИОбороты36_50.ДоговорКонтрагента.Владелец.ю_Координатор,
|    ОстаткиИОбороты36_50.Сделка,
|    ОстаткиИОбороты36_50.Период,
|    ОстаткиИОбороты36_50.Регистратор,
|    0,
|    0,
|    0,
|    0,
|    0,
|    ОстаткиИОбороты36_50.СуммаВзаиморасчетовНачальныйОстаток,
|    0,
|    0
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
|        &НачДата,
|        &КонДата,
|        Запись,
|        ДвиженияИГраницыПериода,
|        РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < -35
|            И РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) > -51
|            И &НачДата > Сделка.Дата) КАК ОстаткиИОбороты36_50
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
|    ОстаткиИОбороты51_70.ДоговорКонтрагента.Владелец,
|    ОстаткиИОбороты51_70.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель,
|    ОстаткиИОбороты51_70.ДоговорКонтрагента.Владелец.ю_Координатор,
|    ОстаткиИОбороты51_70.Сделка,
|    ОстаткиИОбороты51_70.Период,
|    ОстаткиИОбороты51_70.Регистратор,
|    0,
|    0,
|    0,
|    0,
|    0,
|    0,
|    ОстаткиИОбороты51_70.СуммаВзаиморасчетовНачальныйОстаток,
|    0
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
|        &НачДата,
|        &КонДата,
|        Запись,
|        ДвиженияИГраницыПериода,
|        РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < -50
|            И РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) > -71
|            И &НачДата > Сделка.Дата) КАК ОстаткиИОбороты51_70
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
|    ОстаткиИОбороты70_.ДоговорКонтрагента.Владелец,
|    ОстаткиИОбороты70_.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель,
|    ОстаткиИОбороты70_.ДоговорКонтрагента.Владелец.ю_Координатор,
|    ОстаткиИОбороты70_.Сделка,
|    ОстаткиИОбороты70_.Период,
|    ОстаткиИОбороты70_.Регистратор,
|    0,
|    0,
|    0,
|    0,
|    0,
|    0,
|    0,
|    ОстаткиИОбороты70_.СуммаВзаиморасчетовНачальныйОстаток
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
|        &НачДата,
|        &КонДата,
|        Запись,
|        ДвиженияИГраницыПериода,
|        РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < -70
|            И &НачДата > Сделка.Дата) КАК ОстаткиИОбороты70_
|ИТОГИ
|    СУММА(НачОст),
|    СУММА(КонОст),
|    СУММА(Отгрузка),
|    СУММА(Оплата),
|    СУММА(НачСум0_35),
|    СУММА(НачСум36_50),
|    СУММА(НачСум51_70),
|    СУММА(НачСум70_)
|ПО
|    ОБЩИЕ,
|    Контрагент,
|    ТоргПред,
|    Координатор,
|    Сделка,
|    Период,
|    РегистраторДвижения
|АВТОУПОРЯДОЧИВАНИЕ";
90 selenat
 
26.10.07
11:12
(89) похоже, трабла была не в ВЫБОР... :)
91 1c_voage
 
26.10.07
11:18
Наверное. В дереве значений показывает опять же
Контрагент Сделка 01.10.2007 1770
Контрагент Сделка 31.10.2007 1770
Итого:
Контрагент Сделка            3540
92 selenat
 
26.10.07
11:22
(91) попробуй еще сгруппировать поля, хотя вряд ли повлияет
93 selenat
 
26.10.07
11:47
как успехи?
94 1c_voage
 
26.10.07
12:02
ничего хорошего. Даже руки уже опускаются.
95 selenat
 
26.10.07
12:06
(94) давай спокойно локализовывать проблему. Возьми один из запросов своего объединения и сформируй его с итогами. Посмотри - задваиваются ли итоги. Потом сделай то же со следующим...
96 Пушистик
 
26.10.07
12:08
Поля период и регистратор сильно нужны???
97 1c_voage
 
26.10.07
12:09
(96) нужны. Мне нужно детализировать до регистратора. А без периодичности этого не сделаешь.
98 selenat
 
26.10.07
12:14
(97) попробуй (95) у меня в запросе простой структуры ничего не задваивается. Нужно понять, что так влияет на резултат...
99 selenat
 
26.10.07
12:16
Секундочку. А зачем ты вставляешь Период и регистратор в итоги?
100 selenat
 
26.10.07
12:17
+99 это ведь по-любому детальные записи...
101 selenat
 
26.10.07
12:19
"ВЫБРАТЬ
   |    УчетДисконтныхКартОстаткиИОбороты.Кассир КАК Кассир,
   |    УчетДисконтныхКартОстаткиИОбороты.Карта КАК Карта,
   |    УчетДисконтныхКартОстаткиИОбороты.Регистратор,
   |    УчетДисконтныхКартОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
   |    УчетДисконтныхКартОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
   |    УчетДисконтныхКартОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
   |    УчетДисконтныхКартОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
   |ИЗ
   |    РегистрНакопления.УчетДисконтныхКарт.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , Кассир = &Кассир) КАК УчетДисконтныхКартОстаткиИОбороты
   |
   |УПОРЯДОЧИТЬ ПО
   |    Кассир,
   |    Карта
   |ИТОГИ
   |    СУММА(КоличествоНачальныйОстаток),
   |    СУММА(КоличествоПриход),
   |    СУММА(КоличествоРасход),
   |    СУММА(КоличествоКонечныйОстаток)
   |ПО
   |    Кассир,
   |    Карта";

Ничего не задваивает...
102 1c_voage
 
26.10.07
12:23
Потому что мне нужно будет оплаты (расход) тоже так разворачивать по интервалам и регистратору
103 1c_voage
 
26.10.07
12:26
попробуй добавить еще одно поле с нач остатком
104 1c_voage
 
26.10.07
12:26
+(103) и суммируй его
105 selenat
 
26.10.07
12:27
(102) Ладно. Ты попробовала взять итоги отдельно для каждого запроса из объединения? Задваивает?
106 1c_voage
 
26.10.07
12:35
Я смотрю. Пока не двоит. Только как-то с остатками странно. Что-то не то.
С обычными, я имею в виду.
107 1c_voage
 
26.10.07
12:38
Точно, часть куда-то подевалась,хотя у них остатки должны быть.
108 selenat
 
26.10.07
12:41
(107) это в каком из запросов? Первом?
109 1c_voage
 
26.10.07
12:45
|ВЫБРАТЬ
|    ОстаткиИОбороты70_.ДоговорКонтрагента.Владелец Как Контрагент,
|    ОстаткиИОбороты70_.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель Как ТоргПред,
|    ОстаткиИОбороты70_.ДоговорКонтрагента.Владелец.ю_Координатор Как Координатор,
|    ОстаткиИОбороты70_.Сделка Как Сделка,
|    ОстаткиИОбороты70_.Период Как Период,
|    ОстаткиИОбороты70_.Регистратор Как РегистраторДвижения,
|    0 КАК НачОст,
|    0 КАК КонОст,
|    0 КАК Отгрузка,
|    0 КАК Оплата,
|    0 Как НачСум0_35,
|    0 КАК НачСум36_50,
|    0 Как НачСум51_70,
|    ОстаткиИОбороты70_.СуммаВзаиморасчетовНачальныйОстаток КАК НачСум70_
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
|        &НачДата,
|        &КонДата,
|        Запись,
|        ДвиженияИГраницыПериода,
|РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < -70
|            И &НачДата > Сделка.Дата) КАК ОстаткиИОбороты70_
                 
|ИТОГИ
|    СУММА(НачОст),
|    СУММА(КонОст),
|    СУММА(Отгрузка),
|    СУММА(Оплата),
|    СУММА(НачСум0_35),
|    СУММА(НачСум36_50),
|    СУММА(НачСум51_70),
|    СУММА(НачСум70_)
|ПО
|    ОБЩИЕ,
|    Контрагент,
|    ТоргПред,
|    Координатор,
|    Сделка,
|    Период,
|    РегистраторДвижения
|АВТОУПОРЯДОЧИВАНИЕ";

Я попробовала на том, на котором суммы долгов давно висят. вот этот работает нормально для этих сумм. А если его с чем-то объединять, то будут проблемы
110 selenat
 
26.10.07
12:46
Добавил еще одно поле у себя с КоличествоНачальныйОстаток, включил его в суммируемые. Только по нему почему-то итоги не формируются
111 1c_voage
 
26.10.07
12:47
В том-то все и дело. что-то тут не так
112 Пушистик
 
26.10.07
12:53
Предлагаю начать задачу с самого начала, какая таблица должна в итоге получится???
113 selenat
 
26.10.07
12:55
Действительно, в периоде, в котором не было движений задваивает КоличествоНачальныйОстаток.
114 selenat
 
26.10.07
12:55
(112) не, тут надо разобраться в чем дело на запросе предельно простой  структуры...
115 Пушистик
 
26.10.07
12:56
И еще не вижу смысла в ДвиженияИГраницыПериода, может попробовать просто Движения???
116 Пушистик
 
26.10.07
12:57
(114)  это (109) предельно простая структура???
117 1c_voage
 
26.10.07
12:58
(116) ну вообще-то да:))
118 selenat
 
26.10.07
13:02
(116) в (101) простая структура. Если пишу

   "ВЫБРАТЬ
   |    УчетБонусовОстаткиИОбороты.Кассир КАК Кассир,
   |    УчетБонусовОстаткиИОбороты.Бонус КАК Бонус,
   |    УчетБонусовОстаткиИОбороты.Регистратор,
   |    УчетБонусовОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток1,
   |    УчетБонусовОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
   |    УчетБонусовОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
   |    УчетБонусовОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
   |    УчетБонусовОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
   |    УчетБонусовОстаткиИОбороты.Бонус.Номинал КАК БонусНоминал
   |ИЗ
   |    РегистрНакопления.УчетБонусов.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор,, Кассир = &Кассир) КАК УчетБонусовОстаткиИОбороты
   |
   |УПОРЯДОЧИТЬ ПО
   |    Кассир,
   |    БонусНоминал,
   |    Бонус
   |ИТОГИ
   |    СУММА(КоличествоНачальныйОстаток1),
   |    СУММА(КоличествоНачальныйОстаток),
   |    СУММА(КоличествоПриход),
   |    СУММА(КоличествоРасход),
   |    СУММА(КоличествоКонечныйОстаток)
   |ПО
   |    Кассир,
   |    БонусНоминал,
   |    Бонус";

то имею ту же траблу с задвоением...
119 Пушистик
 
26.10.07
13:05
(118) Зачем КоличествоНачальныйостаток суммировать???
120 selenat
 
26.10.07
13:07
(119) что значит зачем? Чтоб итог этих значений иметь...
121 Пушистик
 
26.10.07
13:09
Если я правильно понимаю То получаем примерно это:
товар   |   НачОст   |  Приход   |  Расход   |  КонОст   |
товар1  |   10       |  0        |  0        |  10       |
товар1  |   10       |  3        |  1        |  8        |
товар1  |   8        |  0        |  3        |  11       |
ИТОГО   |   28       |  3        |  7        |  29       |
122 1c_voage
 
26.10.07
13:09
Интересно, можно ли на этом форуме обращаться к 1С-никам из 1С. К кому-то, кто знает эту проблему изнутри
123 Пушистик
 
26.10.07
13:10
не 7, а 4
124 Пушистик
 
26.10.07
13:12
Или это в зависимости от периода
товар   |   НачОст   |  Приход   |  Расход   |  КонОст   |
товар1  |   10       |  0        |  0        |  10       |
товар1  |   10       |  3        |  1        |  8        |
товар1  |   8        |  0        |  3        |  11       |
товар1  |   8        |  0        |  0        |  8        |
ИТОГО   |   36       |  3        |  7        |  37       |
125 1c_voage
 
26.10.07
13:12
(121) что-то вроде, только
Контрагент|Сделка |Период     |НачОст
Контрагент1 Сделка1 01.10.2007 1770
Контрагент1 Сделка1 31.10.2007 1770
Итого                          3540
А д.б. 1770
126 Пушистик
 
26.10.07
13:15
(125) Итого по начальному остатку чему должно быть равно??? Вроде остатку на начало периода, а не сумме остатков по записям
127 1c_voage
 
26.10.07
13:17
Правильно, остатку на начало периода, то есть 1770. А он берет 3540
128 Пушистик
 
26.10.07
13:18
ну так в запросе и написанно СУММА(НачОст), вот и получаем сумму
129 1c_voage
 
26.10.07
13:19
Может, считается, что в итогах может быть только один начальный остаток. 1-ый по счету или 2-ой, а другой считается простым суммированием
130 1c_voage
 
26.10.07
13:20
(128) У платформы есть определенный принцип расчета остатков. При нормальном раскладе ты получишь именно 1770. Т.е. если в полях выборки будешь указывать только один раз начальный остаток
131 Пушистик
 
26.10.07
13:22
Видимо должно получится что то вроде
Контрагент |Сделка  |Период     |НачОст
Контрагент1| Сделка1| 01.10.2007| 1770
Контрагент1| Сделка1| 31.10.2007| 1770
Контрагент2| Сделка2| 31.10.2007| 1770
Итого                          3540
132 1c_voage
 
26.10.07
13:24
(131) да
133 Пушистик
 
26.10.07
13:27
думаю итог проще посчитать другим запросом
134 selenat
 
26.10.07
13:30
(109) т.е. с первым из запросов самим по себе проблем нету? А итоги по втрому запросу неправильные? (именно не по их объединению, а отдельно по второму, третьему и т.д.)
135 1c_voage
 
26.10.07
13:30
Каким образом?
136 1c_voage
 
26.10.07
13:31
(134) сами по себе они все работают. Просто когда их начинаешь объединять, соединять либо что-то еще, т.е. когда в объединении нах-ся несколько полей остатков, тогда начинается ерунда
137 Пушистик
 
26.10.07
13:33
+(133) например так


ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентамиОстатки.Контрагент КАК Контрагент,
   ВзаиморасчетыСКонтрагентамиОстатки.Сделка КАК Сделка,
   ВзаиморасчетыСКонтрагентамиОстатки.СуммаУпрОстаток КАК СуммаУпрОстаток
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ДатаКон, ) КАК ВзаиморасчетыСКонтрагентамиОстатки
ИТОГИ
   СУММА(СуммаУпрОстаток)
ПО
   ОБЩИЕ,
   Контрагент,
   Сделка
138 selenat
 
26.10.07
13:33
(136) попробуй их объединение внести во вложенный запрос, сгруппировать, а потом уже взять итог.
139 selenat
 
26.10.07
13:34
(137) и что бы это значило? и к чему бы это? Вы хоть поняли в чем проблема?
140 Пушистик
 
26.10.07
13:36
запрос (109) выведет в (131) итог не 3540, а 5310 , потому что сам запрос не соответствует желаемому
141 Пушистик
 
26.10.07
13:39
Если есть проблемы при компановки данных одним запросом, то есть смысл разбить задачу на несколько и решать каждую отдельным запросом.
142 selenat
 
26.10.07
13:40
(140) уверена? Насколько я понял, со (109) как раз все в порядке...
143 1c_voage
 
26.10.07
13:40
(141) а как быть с регистратором?
144 Пушистик
 
26.10.07
13:42
(142) так получится (131) или (125) если использовать (109)
145 selenat
 
26.10.07
13:43
(141) угу. Собирай потом из десятка запросов данные соответствующих уровней. С учетом того, что нам нужно ДвиженияИГраницыПериода (т.е. с остатками по регисраторам)...
146 Пушистик
 
26.10.07
13:43
Тогда я действительно не понимаю проблему
147 Пушистик
 
26.10.07
13:45
Что должно получится, если 1) Движений за период не было
2) Если движения были???
148 selenat
 
26.10.07
14:15
интересно получается. Во втором поле, где УчетБонусовОстаткиИОбороты.КоличествоНачальныйОстаток сделал
УчетБонусовОстаткиИОбороты.КоличествоНачальныйОстаток+0
Задваивание ушло.
149 selenat
 
26.10.07
14:22
+148 все итоги корректны.
Попробуй во все суммируемые поля добавить +0.
Посмотри что получится...
150 selenat
 
26.10.07
14:26
так. я убегаю по делам. Вечером еще загляну в веточку. Автору удачи.
151 selenat
 
26.10.07
18:26
как дела? что-нить получилось?
152 1c_voage
 
26.10.07
18:44
С возвращением. А с чего это ты +0 добавил? Прямо интересно. С ним в простейшем случае все нормально работает. Но нужно не ставить его у конечного остатка. А также, когда пробуешь вводить данные, приходится в какие-то суммируемые поля добавлять этот +0, а из каких-то убирать. Систему я не усмотрела.
А это что-то значит, или ты наобум.
153 selenat
 
26.10.07
19:21
(152) в какой-то мере наобум.
Проверил, что если в качестве дополнительного суммируемого поля ставлю просто 0, то он не портит итоги. Значит, не любое поле все портит. Попробовал сделать так, чтобы оба одинаковых поля не совпадали полностью, хоть и давали одинаковый результат и это сработало. Видимо это фича платформы: Если в разных полях встречает абсолютно идентичные выражения, то суммирует их в итогах одного из полей. Так свою задачу ты решила или еще что-то не получатеся?
154 1c_voage
 
26.10.07
19:33
Нет, конечно. Не решила.
Я тут к парням с работы обратилась. Так мне один сказал, что у него такое было, он промучался несколько дней и в итоге сделал отдельно 2 запроса. Один по контрагентам, торгпредам, координаторам и сделкам без периодичности и группировки по периоду и регистратору(!все-таки ты правильно заметил, именно в этом проблема). А другой запрос вызывается из цикла на этапе вывода в табдокумент с параметрами конкретный контрагент, конкр. торгпред, конкр. координатор и конкр. сделка. То есть фактически для каждой такой комбинации вызывается запрос. Он точно такой же, только с периодичностью и группировкой по регистратору.
Это решение давно можно было бы сделать, конечно, и самой, но я даже мысли о таком не хочу допускать. Причем, этот отчет вып-ся
155 1c_voage
 
26.10.07
19:36
+(154) minimum 18 минут, т.к. у меня много контрагентов, но почти не введены торгпреды, координаторы. Сделок за один месяц несколько сотен. А за проверяемый период регистраторов очень мало.
А у клиента на 7-чной базе отчет за 2 минуты вып-ся.
А если в этом варианте вызова запроса в цикле если не детализировать до регистраторов, то вып-ся за 0.5 минуты. Но кому такое надо. У меня еще есть один день, чтобы решить этот вопрос нормально.
156 selenat
 
26.10.07
19:42
(154,155) да, запрос в цикле - это оч плохо. Надо как-то подумать над структурой запроса, чтобы во-первых, все поля одного запроса отличались хотя-бы формально (типа в одном из них ставить +0), во-вторых, может быть получать итоги в одном запросе без детализации по периоду и регистратору и соединять его с запросом, который дает эти период и регистратор.
157 1c_voage
 
26.10.07
19:49
Запрос в цикле - это не очень плохо. Это ужасно.
Самое плохое решение, которое только можно придумать.
Я не знаю, как для кого, а мне нужно не сделать, а сделать грамотно. Потому что в след. раз ты потратишь на это гораздо меньше времени, потому что будешь в этом прекрасно разбираться. Да и оптимальность очень важна. В общем, нет удовлетворения от проделанной работы и потраченной энергии. И в любом случае даже этот вариант клиенту не повезешь.
158 1c_voage
 
26.10.07
19:50
а ты не знаешь, что это за Хомнет такой, что здесь на форуме обсуждают.
159 selenat
 
26.10.07
19:55
(158) понятия не имею. Сам спросил в той ветке. :)
(157) профессионализм это хорошо, но ИМХО не стоит быть такой принципиальной. Если на данном этапе не можешь решить задачу хорошо, то лучше решить плохо, чем вообще не решить. Но конечно, это не должно становиться правилом... :))
160 1c_voage
 
26.10.07
19:59
Я не принципиальная. Это мое жизненное кредо.
Просто начальство хочет, чтобы огромная цифра 18 минут уменьшилась, понимаешь. Я бы, конечно, могла отвезти в таком виде, а потом найти решение. Но...
161 selenat
 
26.10.07
20:02
(160) если хочешь, выложи теперешний вид запроса и описание проблем, которые имеешь с ним сейчас. Только я сейчас убегаю на пару часов и опреативно не смогу отвечать. С другой стороны, может Владимир_Спб подтянется или еще кто. Здесь есть спецы получше меня...
162 1c_voage
 
26.10.07
20:03
Хочешь посмеяться?
Почитай пост 17 в сообщении, начинающемся Помогите,не понимаю. Zjama его пишет, по-моему
163 1c_voage
 
26.10.07
20:04
а он мне тебя рекомендует:))
164 selenat
 
26.10.07
20:09
(163) кто рекомендует? я его вроде не знаю...
165 selenat
 
26.10.07
20:10
я убежал. Постараюсь еще вечером заглянуть в ветку...
166 1c_voage
 
26.10.07
20:15
Я сегодня здесь недолго. Завтра буду. Надо уже отдыхать, не то в зеркало смотреть страшно.
167 selenat
 
26.10.07
21:53
Кстати, в развитие идеи. Ты ведь можешь везьде, где могут встречаться поля с одинаковыми данными прибавлять не один 0, а несколько. Т.е. в одном месте "Поле", в другом "Поле+0", в третьем "Поле+0+0" и т.д. Этим ты не особо задумываясь гарантируешь себя от возможных задвоений в итогах каким бы сложным ни был запрос. На производительности запроса это реально не скажется...
168 Wladimir_spb
 
26.10.07
23:07
Что-то вы тут уже в ересь впадаете)
(167) Попробуй в (118) так:
ЕСТЬNULL(УчетБонусовОстаткиИОбороты.КоличествоНачальныйОстаток,0) КАК КоличествоНачальныйОстаток1,
ЕСТЬNULL(УчетБонусовОстаткиИОбороты.КоличествоНачальныйОстаток,0) КАК КоличествоНачальныйОстаток,
169 selenat
 
27.10.07
09:21
(168) щас нет возможности проверить, базы той под рукой нет. Но, ересь - не ересь, а проблему задвоения решает. :) Если мое предположение в (153) верно, то ЕСТЬNULL не поможет. Проверю когда получится.
170 1c_voage
 
27.10.07
19:16
(166) один из 1С-ников ответил, что "Язык запросов не позволяет корректно рассчитывать итоги по нескольким экземплярам одного и того же поля остатка.
Проблему будем анализировать." Однако, анализируется проблема с января текущего года. Кстати, один из программеров тоже предложил добавлять +0, чтобы сделать выражения разными. Но у меня почему-то все-равно не выходит. Так, как он предложил, не считаются итоги по верхним группировкам. То бишь, ничего и не будет дублироваться.
(168) Не поможет. Итоги должны считаться по разным выражениям, а здесь получаются одинаковые.
171 Wladimir_spb
 
27.10.07
19:18
(170) Пробовала?
172 selenat
 
28.10.07
00:13
(170) что-то я не пойму что у тебя не получается. В моем простеньком запросе после добавления +0 итоги посчитались корректно по обоим полям. Значит, по идее формального изменения поля достаточно для нормального расчета итогов по дублирующимся полям. Думаю, (167) должно решить проблему любого количества одинаковых полей. Ты пробовала (167)? Выкладывай теперешний вид запроса и описание того, что не получается...
173 selenat
 
28.10.07
00:16
кстати, я правильно понял (170), что вы получили по своему вопросу официальный ответ из 1С?
174 Wladimir_spb
 
28.10.07
00:18
(173) Привет, а ты (168) пробовал)
175 selenat
 
28.10.07
00:23
(174) нет еще. Я сегодня весь день в ремонте. Конечно, конструктором выходной формы в любой базе можно составить за 10 мин аналогичный отчет. Но как-то рук не дошли...
176 selenat
 
28.10.07
00:24
+175 а ты попробовал? :)
177 Wladimir_spb
 
28.10.07
00:26
Да.
178 selenat
 
28.10.07
00:27
(177) блин. Придется и мне проверить. А я уж собрался спать идти. :)))
179 Wladimir_spb
 
28.10.07
00:27
:)
180 selenat
 
28.10.07
00:42
(177) ты прав. Ничего не задваивает. Вот текст

   "ВЫБРАТЬ
   |    ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
   |    ПРЕДСТАВЛЕНИЕ(ТоварыНаСкладахОстаткиИОбороты.Склад),
   |    ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
   |    ПРЕДСТАВЛЕНИЕ(ТоварыНаСкладахОстаткиИОбороты.Номенклатура),
   |    ТоварыНаСкладахОстаткиИОбороты.Период,
   |    ТоварыНаСкладахОстаткиИОбороты.Регистратор,
   |    ПРЕДСТАВЛЕНИЕ(ТоварыНаСкладахОстаткиИОбороты.Регистратор),
   |    ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,0) КАК КоличествоНачальныйОстаток1,
   |    ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,0) КАК КоличествоНачальныйОстаток,
   |    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
   |    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
   |    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
   |ИЗ
   |    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
   |        &ДатаНач,
   |        &ДатаКон,
   |        Запись,
   |        ДвиженияИГраницыПериода,
   |        Склад = &Склад
   |            И Номенклатура В ИЕРАРХИИ (&Номенклатура)) КАК ТоварыНаСкладахОстаткиИОбороты
   |ИТОГИ
   |    СУММА(КоличествоНачальныйОстаток1),
   |    СУММА(КоличествоНачальныйОстаток),
   |    СУММА(КоличествоПриход),
   |    СУММА(КоличествоРасход),
   |    СУММА(КоличествоКонечныйОстаток)
   |ПО
   |    Склад,
   |    Номенклатура";

Не зря я всюду у себя по делу и просто так ЕСТЬNULL вставляю. Даже не подозревал от чего меня это защищает. :)))
181 selenat
 
28.10.07
00:48
Всем спокойной ночи. У меня завтра сумасшедший день намечается, так что я спать...
182 Wladimir_spb
 
28.10.07
00:49
Гуд найт)
183 1c_voage
 
28.10.07
17:57
При таком виде запроса остатки не двоятся и в случае с +0, и в случае с ЕСТЬNULL.
"ВЫБРАТЬ
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель КАК ТоргПред,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_Координатор КАК Координатор,
|    ОстаткиИОбороты.Сделка КАК Сделка,
|    ОстаткиИОбороты.Период КАК Период,
|    ОстаткиИОбороты.Регистратор КАК РегистраторДвижения,
|    ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток,0) КАК НачОст,
|    ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток,0) Как НачСум51_70,
|    ОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК КонОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовПриход КАК Отгрузка,
|    ОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК Оплата
                           
|ИЗ
|РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачДата,&КонДата,
|        Регистратор,
|        ДвиженияИГраницыПериода,
|) КАК ОстаткиИОбороты
                                 
|
|ИТОГИ
|    СУММА(НачОст),
|    СУММА(НачСум51_70),
|    СУММА(КонОст),
|    СУММА(Отгрузка),
|    СУММА(Оплата)
|ПО
|    ОБЩИЕ,
|    Контрагент,
|    ТоргПред,
|    Координатор,
|    Сделка,
|    РегистраторДвижения
|АВТОУПОРЯДОЧИВАНИЕ
|";

А при таком виде по-любому двоятся. Сейчас еще проверю без Выбор на объединениях.
"ВЫБРАТЬ
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель КАК ТоргПред,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_Координатор КАК Координатор,
|    ОстаткиИОбороты.Сделка КАК Сделка,
|    ОстаткиИОбороты.Период КАК Период,
|    ОстаткиИОбороты.Регистратор КАК РегистраторДвижения,
|    ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток,0) КАК НачОст,
|    Выбор Когда (( РазностьДат(&НачДата,ОстаткиИОбороты.Сделка.Дата,День) < -50)
|          И ( РазностьДат(&НачДата,ОстаткиИОбороты.Сделка.Дата,День) > -71))
|                И (&НачДата > ОстаткиИОбороты.Сделка.Дата) Тогда
|          ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток,0)
|    Иначе 0
|    Конец
|Как НачСум51_70,
|    ОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК КонОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовПриход КАК Отгрузка,
|    ОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК Оплата
|ИЗ
|РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачДата,&КонДата,
|        Регистратор,
|        ДвиженияИГраницыПериода,
                 
|) КАК ОстаткиИОбороты
                                     
|
|ИТОГИ
|    СУММА(НачОст),
|    СУММА(НачСум51_70),
|    СУММА(КонОст),
|    СУММА(Отгрузка),
|    СУММА(Оплата)
|ПО
|    ОБЩИЕ,
|    Контрагент,
|    ТоргПред,
|    Координатор,
|    Сделка,
|    РегистраторДвижения
|АВТОУПОРЯДОЧИВАНИЕ
|";
184 1c_voage
 
28.10.07
18:13
И при таком виде тоже двоятся
"ВЫБРАТЬ
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель КАК ТоргПред,
|    ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_Координатор КАК Координатор,
|    ОстаткиИОбороты.Сделка КАК Сделка,
|    ОстаткиИОбороты.Период КАК Период,
|    ОстаткиИОбороты.Регистратор КАК РегистраторДвижения,
|    ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток,0) КАК НачОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК КонОст,
|    ОстаткиИОбороты.СуммаВзаиморасчетовПриход КАК Отгрузка,
|    ОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК Оплата,
|    0 КАК НачСум0_35,
|    0 КАК НачСум36_50,
|    0 КАК НачСум51_70,
|    0 КАК НачСум70_
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачДата, &КонДата,
|    Регистратор, ДвиженияИГраницыПериода, ) КАК ОстаткиИОбороты
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|    ОстаткиИОбороты0_35.ДоговорКонтрагента.Владелец Как Контрагент,
|    ОстаткиИОбороты0_35.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель Как ТоргПред,
|    ОстаткиИОбороты0_35.ДоговорКонтрагента.Владелец.ю_Координатор Как Координатор,
|    ОстаткиИОбороты0_35.Сделка Как Сделка,
|    ОстаткиИОбороты0_35.Период Как Период,
|    ОстаткиИОбороты0_35.Регистратор Как РегистраторДвижения,
|    0 КАК НачОст,
|    0 КАК Отгрузка,
|    0 КАК Оплата,
|    0 Как КонОст,
|    ЕСТЬNULL(ОстаткиИОбороты0_35.СуммаВзаиморасчетовНачальныйОстаток,0) Как НачСум0_35,
|    0 КАК НачСум36_50,
|    0 Как НачСум51_70,
|    0 КАК НачСум70_
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
|        &НачДата,
|        &КонДата,
|        Регистратор,
|        ДвиженияИГраницыПериода,
|        РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) > -36
|        И РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < 0
|        И &НачДата > Сделка.Дата
|            ) КАК ОстаткиИОбороты0_35
                       
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|    ОстаткиИОбороты36_50.ДоговорКонтрагента.Владелец,
|    ОстаткиИОбороты36_50.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель,
|    ОстаткиИОбороты36_50.ДоговорКонтрагента.Владелец.ю_Координатор,
|    ОстаткиИОбороты36_50.Сделка,
|    ОстаткиИОбороты36_50.Период,
|    ОстаткиИОбороты36_50.Регистратор,
|    0 КАК НачОст,
|    0 КАК Отгрузка,
|    0 КАК Оплата,
|    0 Как КонОст,
|    0 Как НачСум0_35,
|    ЕСТЬNULL(ОстаткиИОбороты36_50.СуммаВзаиморасчетовНачальныйОстаток,0) КАК НачСум36_50,
|    0 Как НачСум51_70,
|    0 КАК НачСум70_
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
|        &НачДата,
|        &КонДата,
|        Запись,
|        ДвиженияИГраницыПериода,
|        РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < -35
|            И РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) > -51
|            И &НачДата > Сделка.Дата
|           ) КАК ОстаткиИОбороты36_50
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|    ОстаткиИОбороты51_70.ДоговорКонтрагента.Владелец,
|    ОстаткиИОбороты51_70.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель,
|    ОстаткиИОбороты51_70.ДоговорКонтрагента.Владелец.ю_Координатор,
|    ОстаткиИОбороты51_70.Сделка,
|    ОстаткиИОбороты51_70.Период,
|    ОстаткиИОбороты51_70.Регистратор,
|    0 КАК НачОст,
|    0 КАК Отгрузка,
|    0 КАК Оплата,
|    0 Как КонОст,
|    0 Как НачСум0_35,
|    0 КАК НачСум36_50,
|    ЕСТЬNULL(ОстаткиИОбороты51_70.СуммаВзаиморасчетовНачальныйОстаток,0) Как НачСум51_70,
|    0 КАК НачСум70_
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
|        &НачДата,
|        &КонДата,
|        Запись,
|        ДвиженияИГраницыПериода,
|        РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < -50
|            И РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) > -71
|            И &НачДата > Сделка.Дата
|            ) КАК ОстаткиИОбороты51_70
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|    ОстаткиИОбороты70_.ДоговорКонтрагента.Владелец,
|    ОстаткиИОбороты70_.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель,
|    ОстаткиИОбороты70_.ДоговорКонтрагента.Владелец.ю_Координатор,
|    ОстаткиИОбороты70_.Сделка,
|    ОстаткиИОбороты70_.Период,
|    ОстаткиИОбороты70_.Регистратор,
|    0 КАК НачОст,
|    0 КАК Отгрузка,
|    0 КАК Оплата,
|    0 Как КонОст,
|    0 Как НачСум0_35,
|    0 КАК НачСум36_50,
|    0 Как НачСум51_70,
|    ЕСТЬNULL(ОстаткиИОбороты70_.СуммаВзаиморасчетовНачальныйОстаток,0) КАК НачСум70_
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
|        &НачДата,
|        &КонДата,
|        Запись,
|        ДвиженияИГраницыПериода,
|        РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < -70
|            И &НачДата > Сделка.Дата) КАК ОстаткиИОбороты70_
                       
|ИТОГИ
|    СУММА(НачОст),
|    СУММА(КонОст),
|    СУММА(Отгрузка),
|    СУММА(Оплата),
|    СУММА(НачСум0_35),
|    СУММА(НачСум36_50),
|    СУММА(НачСум51_70),
|    СУММА(НачСум70_)
|ПО
|    ОБЩИЕ,
|    Контрагент,
|    ТоргПред,
|    Координатор,
|    Сделка,
|    Период,
|    РегистраторДвижения
|АВТОУПОРЯДОЧИВАНИЕ";
185 Wladimir_spb
 
28.10.07
18:59
ВЫБРАТЬ
   ОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
   ОстаткиИОбороты.Сделка КАК Сделка,
   ОстаткиИОбороты.Период КАК Период,
   ОстаткиИОбороты.Регистратор КАК РегистраторДвижения,
   ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК НачОст,
   ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток, 0) КАК КонОст,
   ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0) КАК Отгрузка,
   ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовРасход, 0) КАК Оплата,
   ЕСТЬNULL(ОстаткиИОбороты0_35.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК НачСум0_35,
   ЕСТЬNULL(ОстаткиИОбороты36_50.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК НачСум36_50
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачДата, &КонДата, Регистратор, ДвиженияИГраницыПериода, ) КАК ОстаткиИОбороты
       ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
       &НачДата,
       &КонДата,
       Регистратор,
       ДвиженияИГраницыПериода,
       РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) > -36
           И РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < 0
           И &НачДата > Сделка.Дата) КАК ОстаткиИОбороты0_35
       ПО ОстаткиИОбороты.Регистратор = ОстаткиИОбороты0_35.Регистратор
           И ОстаткиИОбороты.ДоговорКонтрагента = ОстаткиИОбороты0_35.ДоговорКонтрагента
           И ОстаткиИОбороты.Сделка = ОстаткиИОбороты0_35.Сделка
       ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
       &НачДата,
       &КонДата,
       Регистратор,
       ДвиженияИГраницыПериода,
       РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) > -50
           И РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < -35
           И &НачДата > Сделка.Дата) КАК ОстаткиИОбороты36_50
       ПО ОстаткиИОбороты.Регистратор = ОстаткиИОбороты36_50.Регистратор
           И ОстаткиИОбороты.ДоговорКонтрагента = ОстаткиИОбороты36_50.ДоговорКонтрагента
           И ОстаткиИОбороты.Сделка = ОстаткиИОбороты36_50.Сделка
ИТОГИ
   СУММА(НачОст),
   СУММА(КонОст),
   СУММА(Отгрузка),
   СУММА(Оплата),
   СУММА(НачСум0_35),
   СУММА(НачСум36_50)
ПО
   ОБЩИЕ,
   Контрагент,
   Сделка,
   Период,
   РегистраторДвижения
186 1c_voage
 
28.10.07
19:11
Сейчас закончу другое и попробую.
187 1c_voage
 
28.10.07
19:49
Не выводит в колонки 0-35,36-50,51-70,>70 ничего.
Считает эти суммы в общем( как в общих итогах). Не считает по группировкам по контрагенту, торгпреду,координатору.
Запрос у меня в виде:
|ВЫБРАТЬ
|ОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
|ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_ТорговыйПредставитель КАК ТоргПред,
|ОстаткиИОбороты.ДоговорКонтрагента.Владелец.ю_Координатор КАК Координатор,
|ОстаткиИОбороты.Сделка КАК Сделка,
|ОстаткиИОбороты.Период КАК Период,
|ОстаткиИОбороты.Регистратор КАК РегистраторДвижения,
|ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК НачОст,
|ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток, 0) КАК КонОст,
|ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0) КАК Отгрузка,
|ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовРасход, 0) КАК Оплата,
|ЕСТЬNULL(ОстаткиИОбороты0_35.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК НачСум0_35,
|ЕСТЬNULL(ОстаткиИОбороты36_50.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК НачСум36_50,
|ЕСТЬNULL(ОстаткиИОбороты51_70.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК НачСум51_70,
|ЕСТЬNULL(ОстаткиИОбороты70_.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК НачСум70_
|ИЗ
|РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачДата, &КонДата,
|Регистратор, ДвиженияИГраницыПериода, ) КАК ОстаткиИОбороты
//0-35
|    ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
|    &НачДата,
|    &КонДата,
|    Регистратор,
|    ДвиженияИГраницыПериода,
|    РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) > -36
|        И РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < 0
|        И &НачДата > Сделка.Дата) КАК ОстаткиИОбороты0_35
|    ПО ОстаткиИОбороты.Регистратор = ОстаткиИОбороты0_35.Регистратор
|        И ОстаткиИОбороты.ДоговорКонтрагента = ОстаткиИОбороты0_35.ДоговорКонтрагента
|        И ОстаткиИОбороты.Сделка = ОстаткиИОбороты0_35.Сделка
//36-50
|    ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
|    &НачДата,
|    &КонДата,
|    Регистратор,
|    ДвиженияИГраницыПериода,
|    РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) > -50
|        И РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < -35
|        И &НачДата > Сделка.Дата) КАК ОстаткиИОбороты36_50
|    ПО ОстаткиИОбороты.Регистратор = ОстаткиИОбороты36_50.Регистратор
|        И ОстаткиИОбороты.ДоговорКонтрагента = ОстаткиИОбороты36_50.ДоговорКонтрагента
|        И ОстаткиИОбороты.Сделка = ОстаткиИОбороты36_50.Сделка
//51-70
|    ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
|    &НачДата,
|    &КонДата,
|    Регистратор,
|    ДвиженияИГраницыПериода,
|    РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < -50
|        И РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) > -71
|        И &НачДата > Сделка.Дата) КАК ОстаткиИОбороты51_70
|    ПО ОстаткиИОбороты.Регистратор = ОстаткиИОбороты51_70.Регистратор
|        И ОстаткиИОбороты.ДоговорКонтрагента = ОстаткиИОбороты51_70.ДоговорКонтрагента
|        И ОстаткиИОбороты.Сделка = ОстаткиИОбороты51_70.Сделка
//>70
|    ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
|    &НачДата,
|    &КонДата,
|    Регистратор,
|    ДвиженияИГраницыПериода,
|        РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < -70
|        И &НачДата > Сделка.Дата) КАК ОстаткиИОбороты70_
|    ПО ОстаткиИОбороты.Регистратор = ОстаткиИОбороты70_.Регистратор
|        И ОстаткиИОбороты.ДоговорКонтрагента = ОстаткиИОбороты70_.ДоговорКонтрагента
|        И ОстаткиИОбороты.Сделка = ОстаткиИОбороты70_.Сделка

   
| ИТОГИ
|СУММА(НачОст),
|СУММА(КонОст),
|СУММА(Отгрузка),
|СУММА(Оплата),
|СУММА(НачСум0_35),
|СУММА(НачСум36_50),
|СУММА(НачСум51_70),
|СУММА(НачСум70_)
|ПО
|ОБЩИЕ,
|Контрагент,
|ТоргПред,
|Координатор,
|Сделка,
|Период,
|РегистраторДвижения
|АВТОУПОРЯДОЧИВАНИЕ";
188 Wladimir_spb
 
28.10.07
20:09
Хочешь сказать, что общие итоги по этим колонкам есть, а сами колонки пустые?..
189 1c_voage
 
28.10.07
20:11
Да. Но, судя по этим итогам, они не задвоились. Но почему не просчитались итоги по верхним группировкам - непонятно.
190 Wladimir_spb
 
28.10.07
20:13
Работай в консоли, там все видно.
У меня во всяком случае все есть. У тебя тоже, раз итоги выводит. Может с выводом на экран перемудрила.
191 1c_voage
 
28.10.07
20:28
Да нет,вывод стандартный, как обычно. В дереве значений ни в одной детальной записи нет сумм НачСум0_35,... А есть только в общих итогах. Странно.
192 1c_voage
 
28.10.07
20:29
А в консоли я еще ни разу не пробовала. Даже, честно говоря, не знаю, как.
193 Wladimir_spb
 
28.10.07
20:34
Построй по тому заказу, по которому должны быть обязательно.
А консоль в любом случае осваивать придется. Стандартный инструмент разработчика.
194 1c_voage
 
28.10.07
20:53
Проверила. Та же история. Выдает мне в общих итогах тютелька в тютельку. А по сделке,контрагенту не выдает.
195 Wladimir_spb
 
28.10.07
20:59
У меня все выдает. Выведи (185) в консоли.
196 1c_voage
 
28.10.07
20:59
Причем, самое интересное то, что я не вывожу общие итоги сама. В дереве значений на самом верхнем уровне группировок(Контрагенты) появляется как бы пустой контрагент. И по нему идет весь этот подсчет. То есть похоже на общие итоги. Но это не сами общие итоги.
197 Wladimir_spb
 
28.10.07
21:03
Теоретически пустых быть не должно. Попробу левое соединение, хотя при данных условиях это не должно влиять.
198 1c_voage
 
28.10.07
21:09
При левом вообще ничего не выводит. Уже пробовала. Даже "итоговых" сумм
199 Wladimir_spb
 
28.10.07
21:13
А у меня выводит...
200 Wladimir_spb
 
28.10.07
21:14
200! :)
201 1c_voage
 
28.10.07
21:17
+(200) начнем третью сотню
202 Wladimir_spb
 
28.10.07
21:19
Ты лучше консоль осваивай, а то глядишь, четвертую открывать придется )))
203 1c_voage
 
28.10.07
21:19
Хоть я и не ругаюсь матом, но у меня такое чувство, что скоро как матюкнусь из-за этого отчета.
204 Wladimir_spb
 
28.10.07
21:21
Только не сюда, а то забанят) Да, и некрасиво как-то...
205 1c_voage
 
28.10.07
21:22
Так. Нажала я добавить в консоли. Указала наименование запроса. Параметры самой указывать? Или можно как-то существующий отчет уже автоматом туда загнать. Там расширение какое-то .rcf
206 Wladimir_spb
 
28.10.07
21:25
Самой. на соответствующей закладке. В этом смысле коноль запросов несколько удобнее.
207 Wladimir_spb
 
28.10.07
21:30
У тебя же там всего два параметра) НачДата и КонДата
208 1c_voage
 
28.10.07
21:31
Это получается мне нужно в конструкторе запрос опять самой построить.Да?
А что я смогу увидеть благодаря консоли?
209 Wladimir_spb
 
28.10.07
21:34
М-мм... У тебя уже есть запрос, зачем ты его заново строить собираешься?
Можешь хоть с форума взять, например, (185).
210 1c_voage
 
28.10.07
21:39
Он-то есть. Только, когда я его туда вставляла, он мне выдал синтаксическую ошибку по поводу "|Выбрать"
211 Wladimir_spb
 
28.10.07
21:40
Открой свой запрос конструктором и скопируй текст. Чтобы был без "|". Или ручками поудаляй.
212 1c_voage
 
28.10.07
21:40
Пишет такую ерунду.{Обработка.КонсольОтчетов.Форма.Форма(712)}: Ошибка при вызове метода контекста (ПолучитьЗапрос): {(1, 4)}: Ожидается выражение "ВЫБРАТЬ"
<<?>>"|ВЫБРАТЬ
   Если ПостроительОтчетов.ПолучитьЗапрос().Текст = "" Тогда
по причине:
{(1, 4)}: Ожидается выражение "ВЫБРАТЬ"
<<?>>"|ВЫБРАТЬ
213 1c_voage
 
28.10.07
21:44
Сделала. проставила группировки. чего еще делать?
214 1c_voage
 
28.10.07
21:52
Все,сформировала. Выдает все то же самое, что и без консоли. То же какой то Null-контрагент и по нему все итоги.
215 Wladimir_spb
 
28.10.07
21:53
Попробуй запрос (185). С полным и слевым соединением
216 1c_voage
 
28.10.07
21:58
со (185) такая же ситуация. Тоже выводит Null-контрагента и итоги по нему по полям НачСум0_35,НачСум36_50.
217 1c_voage
 
28.10.07
22:00
Ладно, я - домой. Не то у меня уже норма спички в глазах
218 Wladimir_spb
 
28.10.07
22:00
Издеваешься? :)
219 1c_voage
 
28.10.07
22:01
Нисколечко. Я могу тебе даже отчет выслать, если ты не против, конечно. Ну я действительно не знаю, почему так и в моем и в (185) получается.
220 Wladimir_spb
 
28.10.07
22:04
Этот запрос у меня выводит данные по всем измерениям и без пустых контрагентов

ВЫБРАТЬ
   ОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
   ОстаткиИОбороты.Сделка КАК Сделка,
   ОстаткиИОбороты.Период КАК Период,
   ОстаткиИОбороты.Регистратор КАК РегистраторДвижения,
   ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК НачОст,
   ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток, 0) КАК КонОст,
   ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0) КАК Отгрузка,
   ЕСТЬNULL(ОстаткиИОбороты.СуммаВзаиморасчетовРасход, 0) КАК Оплата,
   ЕСТЬNULL(ОстаткиИОбороты0_35.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК НачСум0_35,
   ЕСТЬNULL(ОстаткиИОбороты36_50.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК НачСум36_50
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачДата, &КонДата, Регистратор, ДвиженияИГраницыПериода, ) КАК ОстаткиИОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
       &НачДата,
       &КонДата,
       Регистратор,
       ДвиженияИГраницыПериода,
       РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) > -36
           И РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < 0
           И &НачДата > Сделка.Дата) КАК ОстаткиИОбороты0_35
       ПО ОстаткиИОбороты.Регистратор = ОстаткиИОбороты0_35.Регистратор
           И ОстаткиИОбороты.ДоговорКонтрагента = ОстаткиИОбороты0_35.ДоговорКонтрагента
           И ОстаткиИОбороты.Сделка = ОстаткиИОбороты0_35.Сделка
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
       &НачДата,
       &КонДата,
       Регистратор,
       ДвиженияИГраницыПериода,
       РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) > -50
           И РАЗНОСТЬДАТ(&НачДата, Сделка.Дата, ДЕНЬ) < -35
           И &НачДата > Сделка.Дата) КАК ОстаткиИОбороты36_50
       ПО ОстаткиИОбороты.Регистратор = ОстаткиИОбороты36_50.Регистратор
           И ОстаткиИОбороты.ДоговорКонтрагента = ОстаткиИОбороты36_50.ДоговорКонтрагента
           И ОстаткиИОбороты.Сделка = ОстаткиИОбороты36_50.Сделка
ИТОГИ
   СУММА(НачОст),
   СУММА(КонОст),
   СУММА(Отгрузка),
   СУММА(Оплата),
   СУММА(НачСум0_35),
   СУММА(НачСум36_50)
ПО
   ОБЩИЕ,
   Контрагент,
   Сделка,
   Период,
   РегистраторДвижения
221 1c_voage
 
28.10.07
22:08
Похоже на мое творение:))
Ну не знаю я, честно. Давай мыло. Я тебе перешлю. Посмотришь в консоли.
Я просто на работе. Мне еще домой добираться. Но было бы, конечно, хорошо,если бы ты посмотрел
222 Wladimir_spb
 
28.10.07
22:15
Я мыло на форуме не оставляю, итак спама много.
Стучись в аську.
А лучше оставь до завтра, может за ночь что изменится, контрагенты пустые исчезнут, остатки по измерениям появятся...
Нужно верить в чудо и тогда оно обязательно произойдет)))
223 1c_voage
 
28.10.07
22:18
Теперь ты издеваешься:)) Не смогу в аську. На работе нет доступа. Дома компа сейчас нет. Ну ладно, пока. Я - домой.
224 Wladimir_spb
 
28.10.07
22:19
Удачи)
225 selenat
 
29.10.07
09:13
О, скока интересного здесь! Как успехи?
226 Wladimir_spb
 
29.10.07
09:25
Бодрое утро)
С успехами плохо. 1c_voage все выходные провела на работе, а толку от этого...
227 selenat
 
29.10.07
09:50
(226) Мда. Нельзя так работать. Видать, молодая ишшо...
228 selenat
 
29.10.07
09:52
+227 конечно, пока семьи и детей нет можно, но лучше это время потратить на охмурение мальчиков... :)
229 Wladimir_spb
 
29.10.07
09:54
(228) В одной фирме, с которой я сотрудничаю, выявилась интересная статистика: вовремя домой уходят только не женатые/не замужние. Те, у кого есть семья, предпочитают задержаться на работе :)
230 selenat
 
29.10.07
10:08
(229) для меня это странно. Даже при том, что я практически никогда не задерживаюсь на работе, времени семье мало удается уделять. Работа - это зло...
231 1c_voage
 
29.10.07
10:26
Доброе утро. Отклонились от темы:))
232 selenat
 
29.10.07
10:36
(231) кидай мне отчет. seleand_rabota Собак mail.ru
Правда, не обещаю, что быстро отвечу. Работы хватает...
233 1c_voage
 
29.10.07
10:39
Подожди, сейчас я одну вещь штуку проверю. Мне кажется, в этом дело
234 selenat
 
29.10.07
10:42
(233) ок
235 1c_voage
 
29.10.07
11:05
Насколько я понимаю, в строках остатков нет регистратора. Именно поэтому (185) работает не таким образом. Если убираешь в условиях соединениях условие на равенство регистраторов, все вроде как становится нормально.
Правда, нужно еще проверить досконально.
Но нет уверенности, что условий соединения достаточно в таком случае.
236 1c_voage
 
29.10.07
11:10
+(235) и еще когда в таком отчете убираешь проверку на Null для всех полей остатков, тоже ничего не двоит.
237 selenat
 
29.10.07
11:18
(235) в строках итогов заполнены итоги вышестоящего уровня и нет итогов нижестоящего и детальных записей. Ты об этом?
238 1c_voage
 
29.10.07
11:39
(237) Я не совсем поняла, что ты имеешь в виду.
:)) Теперь оплаты двоятся.
239 1c_voage
 
29.10.07
11:42
+(237) хотя,наверное, да. Потому что появляются несколько пустых строк, их кол-во равно кол-ву группировок. И в них есть все итоги. А в детальных записях сумм НачСум0_35,НачСум36_50,... нету.
240 selenat
 
29.10.07
11:43
(238) у меня после вчерашнего тоже все двоится. Пива много выпил. :)))
241 Wladimir_spb
 
29.10.07
11:52
Скачай отчет 1c_voage, будет четвериться))
(235) Что бы спокойно убрать  условие на равенство регистраторов, нужно само поле регистратор переделать, что бы оно бралось из подзапросов по периодам, а не из общего запроса, иначе может не только двоиться, но троиться, четвериться и т.д.
242 1c_voage
 
29.10.07
11:58
(241) и как это должно выглядеть
243 Wladimir_spb
 
29.10.07
12:02
Для начала, в приципе, убери регитратор из запроса и посмотри как работает. Может у тебя еще ошибки есть.
Регистратор из подзапросов будет выглядеть плохо, поэтому перед тем как надстраивать этот лисапед, нужно быть уверенным в работоспособности базового запроса.
244 selenat
 
29.10.07
12:06
+243 кстати, не забывай делать копии своего отчета на разных этапах. Чтобы потом легко было откатиться, не переписывая все заново.
245 1c_voage
 
29.10.07
12:34
Начальству уже по барабану, как я это сделаю. Лишь бы сделала. Цикл уже всех устраивает. Не устраивает время выполнения. Нужно оптимизировать:))
246 1c_voage
 
29.10.07
13:14
Я пока буду заниматься оптимизацией. Чуть позже попробую (243), ну и т.д. :))
247 selenat
 
29.10.07
13:18
(246) Какая может быть оптимизация, если делать в цикле? Этот цикл с запросом основное время наверняка жрет.
248 1c_voage
 
29.10.07
13:46
Еще как. Просто уже нет времени. Мой замдирека уже чуть ли не через каждые 5 минут подходит и спрашивает: ну что? :))
Веселуха:)
249 Wladimir_spb
 
29.10.07
13:53
А замдирека сидел на работе все выходные? :)
250 1c_voage
 
29.10.07
13:59
(249) :))
Он спросил, что я делаю для того, чтобы обойти проблему. Я сказала, что была на работе и в субботу и в воскресенье.
А кого это волнует?:))
251 Wladimir_spb
 
29.10.07
14:00
Пора менять замдирека))
252 1c_voage
 
29.10.07
14:04
Нормальный замдирека. просто жадный:))
253 Wladimir_spb
 
29.10.07
14:05
Значит не нормальный. С каких это пор жадность стала нормой?
254 selenat
 
29.10.07
14:05
(252) ты ему дай веточку почитать. Чтоб он не думал, что здесь все так просто...
255 Wladimir_spb
 
29.10.07
14:07
После (251)-(253) ему лучше веточку не читать...)))
256 selenat
 
29.10.07
14:11
(255) ну, веточку можно в текстовик сохранить и вырезать лишние посты...
257 1c_voage
 
29.10.07
16:00
Я уже ему показывала ответ разработчика. Так он немножко успокоился.
Правда, совсем, чуть-чуть.:))
258 1c_voage
 
29.10.07
20:05
Пока что я решила эту проблему с помощью 2-ух запросов. То бишь в цикле обращаюсь к выборке 2-ого запроса. Сейчас поеду в командировку. Загляну на выходные, буду пытаться все-таки решить нормальным способом.
259 Wladimir_spb
 
29.10.07
20:05
Удачи)
260 1c_voage
 
29.10.07
20:10
Ну спасибо:)) Так просто вы от меня не отделаетесь:))
Кстати, я нашла в ЕСИСЕ обсуждение проблемы остатков в случае, когда периодичность = регистратор и когда итоги считаются по регистратору, там как раз остатки считаются некорректно. Она датируется еще мартом 2005 года
261 Wladimir_spb
 
29.10.07
20:11
Не знаю, я здесь уже несколько запросов выложил, которые в такой ситуации работают корректно... )
262 1c_voage
 
29.10.07
20:22
Ну не знаю. У меня они двоятся:))
263 Wladimir_spb
 
29.10.07
20:23
Бывает) см.(240)
264 1c_voage
 
29.10.07
20:25
Ладно. Думаю, это как-нибудь решится. Но в любом случае с помощью 2-ух запросов он работает достаточно быстро. Ну и, впринципе, корректно. Правда, я еще оплаты не разбивала по месяцам. Там тоже немножко нужно подумать.
Я уже его после выходных повезу.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн