Имя: Пароль:
1C
1С v8
Выборка по населенному пункту
0 LivingStar
 
25.06.13
05:51
Подскажите пожалуйста по задаче а то я не погу её сдвинуть с места. Её нужно решить правильно, исключая возможность появления ошибок. Суть задачи в том что, имеется запрос который выбирвет данные по складу из регистра накопления Продажи. Нужно по одному складу делая выборку за май с 1 по 18 мая, включить обороты по одному из населенных пунктов, а с 19 по 31 мая, включить обороты по этому населенному пункту на другой склад. Проблема в том что почему то разнятся данные в запросах, делаю запрос по контактной информации связывая её с торговой точкой из документа регистратора, и сравниваю с изначальным запросом, почему то там суммы разнятся. Хотя все тоже самое только во втором запросе цепляется ещё контактная информация, для того что бы отслеживать наличие того или другого населенного пункта, так как это можно выявить только по регистру сведений контактная информация.
|
ЗАПРОС 1:
|
ВЫБРАТЬ
   Продажи.Номенклатура,
   СУММА(Продажи.Количество) КАК Количество
ИЗ
   РегистрНакопления.Продажи КАК Продажи
ГДЕ
   МЕСЯЦ(Продажи.Регистратор.Дата) = &МесДата
   И ГОД(Продажи.Регистратор.Дата) = &ГодДата
   И (Продажи.Регистратор.Склад = &Склад
           ИЛИ Продажи.Регистратор.СкладОрдер = &Склад)
   И Продажи.Номенклатура = &Ном
СГРУППИРОВАТЬ ПО
   Продажи.Номенклатура
|
ЗАПРОС 2:
|
ВЫБРАТЬ
   Продажи.Номенклатура,
   СУММА(Продажи.Количество) КАК Количество
ИЗ
   РегистрНакопления.Продажи КАК Продажи
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
       ПО Продажи.Регистратор.ТорговаяТочка = КонтактнаяИнформация.Объект
ГДЕ
   МЕСЯЦ(Продажи.Регистратор.Дата) = &МесДата
   И ГОД(Продажи.Регистратор.Дата) = &ГодДата
   И (Продажи.Регистратор.Склад = &Склад
           ИЛИ Продажи.Регистратор.СкладОрдер = &Склад)
   И Продажи.Номенклатура = &Ном
СГРУППИРОВАТЬ ПО
   Продажи.Номенклатура
|
Считаю что данные в обоих запросалх должны быть одинаковые, почему они разнятся? Проблема в хранении информации в регистрах? Что то куда то не прописалось?
1 ZanderZ
 
25.06.13
05:56
выведи во втором запросе КонтактнаяИнформация.Объект
2 SeraFim
 
25.06.13
05:57
РегистрСведений.КонтактнаяИнформация - там несколько измерений
По "объекту" ты сделал, а по "виду"/"типу" контактной информации.
Другими словами, у тебя во втором запросе получается:
Яблоки 100 Адрес
Яблоки 100 Телефон
Яблоки 100 Электронная почта
3 vicof
 
25.06.13
06:01
(0) "Что то куда то не прописалось?"
В ДНК не тот ген прописался.

1. Во втором запросе у тебя внутреннее соединение
2. "Нужно по одному складу делая выборку за май с 1 по 18 мая, включить обороты по одному из населенных пунктов, а с 19 по 31 мая, включить обороты по этому населенному пункту на другой склад."
Действительно, чего ж данные будут разниться?

По-моему, твой начальник или слишком добрый, или идиот
4 LivingStar
 
25.06.13
06:01
(1) да всяко выводил, каждое поле, плохо что с представлением не поработать, то на группировку ругается, то на его длинну (её хотя можно обработать через выразить, но вот группировку не получается)

(2) да совсем забыл про этот тип, вид, сейчас посмотрю это!!!
5 LivingStar
 
25.06.13
06:04
(3) там же написано ЛЕВОЕ соединение, почему ВНУТРЕННЕЕ то?

разнести обороты нужно по торговым точкам одного населенного пункта, так как они в середине месяца были переданы другому складу
6 vicof
 
25.06.13
06:40
(5) потому что отбор наложен на левый набор данных. Типичная ошибка начинающих разработчиков.
7 LivingStar
 
25.06.13
06:43
(6) Ну да на регистр накоплений продажи и только связанные с ним записи регистра сведений контактная информация, что не так?
8 vicof
 
25.06.13
07:14
(7) все хорошо, не парься ;) ты непробиваем