Имя: Пароль:
1C
1С v8
Связь РС и РН с привязкой к дате
,
0 Ly_Alena
 
08.04.15
12:40
Добрый день! Нужна помощь! Уже задолбалась - два дня сижу с одним столбцом.
Нужно вывести данные заказов на производство закрытые в заданный период.

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СУММА(Заказы.Выдано) КАК Выдано,
    Заказы.Номенклатура,
    СУММА(Заказы.Возврат) КАК Возврат,
    СУММА(Заказы.Барабан) КАК Барабан,
    СУММА(Заказы.Выдано - Заказы.Возврат - 2 * Заказы.Барабан) КАК РасходСырья,
    Заказы.Номер
ИЗ
    Заказы КАК Заказы

СГРУППИРОВАТЬ ПО
    Заказы.Номенклатура,
    Заказы.Номер

Загвоздка в том что почему-то привязка к дате каким-то образом цепляет и РН Материалы. Если убираю РС - все нормально считается. Как ставлю и связываю на тебе - оба привязываются к дате.
1 DrShad
 
08.04.15
12:43
ну во-первых достаточно
ПО ПричиныЗакрытияЗаказов.Заказ = Материалы.ЗаказНаПроизводство
2 DrShad
 
08.04.15
12:44
ГДЕ
    ПричиныЗакрытияЗаказов.Регистратор.Дата МЕЖДУ &НачалоПериода
    И  &КонецПериода
3 DrShad
 
08.04.15
12:45
и соединение не ЛЕВОЕ, а ПРАВОЕ
4 Ly_Alena
 
08.04.15
12:52
(3)
ВЫБРАТЬ
    Материалы.ВесПриход КАК Выдано,
    Материалы.Номенклатура,
    ВЫБОР
        КОГДА Материалы.Регистратор ССЫЛКА Документ.ПеремещениеТоваровПодЗаказ
            ТОГДА ЕСТЬNULL(Материалы.ВесРасход, 0)
        ИНАЧЕ 0
    КОНЕЦ КАК Возврат,
    ВЫБОР
        КОГДА Материалы.Номенклатура В ИЕРАРХИИ (&Тара)
            ТОГДА ЕСТЬNULL(Материалы.КоличествоПриход, 0)
        ИНАЧЕ 0
    КОНЕЦ КАК Барабан,
    Материалы.ЗаказНаПроизводство.Номер КАК Номер
ПОМЕСТИТЬ Заказы
ИЗ
    РегистрСведений.ПричиныЗакрытияЗаказов КАК ПричиныЗакрытияЗаказов
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.МатериалыПоЗаказуНаПроизводство.ОстаткиИОбороты(, , Регистратор, , ) КАК Материалы
        ПО ПричиныЗакрытияЗаказов.Заказ = Материалы.ЗаказНаПроизводство
ГДЕ
    ПричиныЗакрытияЗаказов.Регистратор.Дата МЕЖДУ &НачалоПериода И &КонецПериода
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СУММА(Заказы.Выдано) КАК Выдано,
    Заказы.Номенклатура,
    СУММА(Заказы.Возврат) КАК Возврат,
    СУММА(Заказы.Барабан) КАК Барабан,
    СУММА(Заказы.Выдано - Заказы.Возврат - 2 * Заказы.Барабан) КАК РасходСырья,
    Заказы.Номер
ИЗ
    Заказы КАК Заказы

СГРУППИРОВАТЬ ПО
    Заказы.Номенклатура,
    Заказы.Номер
5 Ly_Alena
 
08.04.15
12:57
Мне кажется я уже за это время все перепробовала... что-то ни в какую
6 Ly_Alena
 
08.04.15
13:05
Есть какие-нибудь еще предположения?
7 DrShad
 
08.04.15
13:07
(6) а (3)
8 Ly_Alena
 
08.04.15
13:12
(7) почему-то ставлю правое соединение, а оно снова меняется.
прописываю руками - исправляется
9 DrShad
 
08.04.15
13:14
(8) в конструкторе что ли?
10 Ly_Alena
 
08.04.15
13:14
(9) да
11 Ly_Alena
 
08.04.15
13:15
(9) скд
12 DrShad
 
08.04.15
13:16
(10) на галочки в связях обрати внимание
13 Ly_Alena
 
08.04.15
13:18
(12) их по-разному уже ставила
14 DrShad
 
08.04.15
13:22
тогда в самом тексте поменяй ручками
15 Ly_Alena
 
08.04.15
13:23
(14) в (8) писала что и ручками пишу ПРАВОЕ, сохраняю - исправляется на левое
16 DrShad
 
08.04.15
13:25
(15) ну чудес не бывает
17 Ly_Alena
 
08.04.15
13:26
(14) Тьфу ты е-мое. ну все правильно конечно оно меняется на левое и переставляется местами.
первый и второй запрос связи посмотрите внимательно. все верно.
только результат не меняется.
18 DrShad
 
08.04.15
13:28
(17) сами посмотрите - ничего не изменилось
19 Ly_Alena
 
08.04.15
13:31
(18) ВЫБРАТЬ
    ЕСТЬNULL(Материалы.ВесПриход, 0) КАК Выдано,
    Материалы.Номенклатура,
    ВЫБОР
        КОГДА Материалы.Регистратор ССЫЛКА Документ.ПеремещениеТоваровПодЗаказ
            ТОГДА ЕСТЬNULL(Материалы.ВесРасход, 0)
        ИНАЧЕ 0
    КОНЕЦ КАК Возврат,
    ВЫБОР
        КОГДА Материалы.Номенклатура В ИЕРАРХИИ (&Тара)
            ТОГДА ЕСТЬNULL(Материалы.КоличествоПриход, 0)
        ИНАЧЕ 0
    КОНЕЦ КАК Барабан,
    Материалы.ЗаказНаПроизводство.Номер КАК Номер
ПОМЕСТИТЬ Заказы
ИЗ
    РегистрНакопления.МатериалыПоЗаказуНаПроизводство.ОстаткиИОбороты(, , Регистратор, , ) КАК Материалы
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПричиныЗакрытияЗаказов КАК ПричиныЗакрытияЗаказов
        ПО Материалы.ЗаказНаПроизводство = ПричиныЗакрытияЗаказов.Заказ
ГДЕ
    ПричиныЗакрытияЗаказов.Регистратор.Дата МЕЖДУ &НачалоПериода И &КонецПериода
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СУММА(Заказы.Выдано) КАК Выдано,
    Заказы.Номенклатура,
    СУММА(Заказы.Возврат) КАК Возврат,
    СУММА(Заказы.Барабан) КАК Барабан,
    СУММА(Заказы.Выдано - Заказы.Возврат - 2 * Заказы.Барабан) КАК РасходСырья,
    Заказы.Номер
ИЗ
    Заказы КАК Заказы

СГРУППИРОВАТЬ ПО
    Заказы.Номенклатура,
    Заказы.Номер


Вы это имеете ввиду?
20 DrShad
 
08.04.15
13:32
(19) и что в итоге получается?
21 Ly_Alena
 
08.04.15
13:34
(20) это же самое
22 DrShad
 
08.04.15
13:36
а если вот так

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПричиныЗакрытияЗаказов КАК ПричиныЗакрытияЗаказов
        ПО Материалы.ЗаказНаПроизводство = ПричиныЗакрытияЗаказов.Заказ
И ПричиныЗакрытияЗаказов.Регистратор.Дата МЕЖДУ &НачалоПериода И &КонецПериода
23 DrShad
 
08.04.15
13:36
и без ГДЕ
24 Ly_Alena
 
08.04.15
13:38
(22) не помогло...
25 Ly_Alena
 
08.04.15
13:38
(23) и без где не помогло
26 Ly_Alena
 
08.04.15
13:41
МОгу обработку на мыло кинуть
27 DrShad
 
08.04.15
13:50
кидай
28 Ly_Alena
 
08.04.15
13:53
(27) ушло
29 DrShad
 
08.04.15
13:56
(28) пришло, но в обработке снова неверное соединение
30 DrShad
 
08.04.15
13:56
РегистрСведений.ПричиныЗакрытияЗаказов КАК ПричиныЗакрытияЗаказов
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.МатериалыПоЗаказуНаПроизводство.ОстаткиИОбороты(, , Регистратор, , ) КАК Материалы
        ПО (ПричиныЗакрытияЗаказов.Регистратор.Дата МЕЖДУ &НачалоПериода И &КонецПериода)
            И Материалы.ЗаказНаПроизводство = ПричиныЗакрытияЗаказов.Заказ
31 DrShad
 
08.04.15
13:57
а нужно

РегистрНакопления.МатериалыПоЗаказуНаПроизводство.ОстаткиИОбороты(, , Регистратор, , ) КАК Материалы
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПричиныЗакрытияЗаказов КАК ПричиныЗакрытияЗаказов
        ПО Материалы.ЗаказНаПроизводство = ПричиныЗакрытияЗаказов.Заказ
И (ПричиныЗакрытияЗаказов.Регистратор.Дата МЕЖДУ &НачалоПериода И &КонецПериода)
32 Ly_Alena
 
08.04.15
14:00
(31) результат от этого не меняется...
33 Ly_Alena
 
08.04.15
14:01
(29) неправильное соединение снова потому как натыкала уже все что можно и нельзя...
34 DrShad
 
08.04.15
14:01
ну без БД отладить СКД у меня не выйдет
35 DrShad
 
08.04.15
14:01
давай подключение
36 Ly_Alena
 
08.04.15
14:01
Берет с датой
37 Ly_Alena
 
08.04.15
14:02
(35) к сожалению подключение невозможно
38 Ly_Alena
 
08.04.15
14:08
Кто-нибудь на УПП работает?
39 DrShad
 
08.04.15
14:08
(38) ну я работаю
40 Ly_Alena
 
08.04.15
14:15
(39) и не получается проверить обработку?
41 DrShad
 
08.04.15
14:16
(40) мы не используем заказы на производство, а уж тем более причины закрытия

сорри
42 Ly_Alena
 
08.04.15
14:22
Было подозрение что начало и конец периода которые используются в параметрах автоматически берут даты. заменила на начальная и конечная дата. вообще перестал выдавать данные...
43 Ly_Alena
 
09.04.15
05:10
В итоге получилось через вложенный цикл, следующим образом:
ВЫБРАТЬ
    ЕСТЬNULL(Материалы.ВесПриход, 0) КАК Выдано,
    Материалы.Номенклатура,
    ВЫБОР
        КОГДА Материалы.Регистратор ССЫЛКА Документ.ПеремещениеТоваровПодЗаказ
            ТОГДА ЕСТЬNULL(Материалы.ВесРасход, 0)
        ИНАЧЕ 0
    КОНЕЦ КАК Возврат,
    ВЫБОР
        КОГДА Материалы.Номенклатура В ИЕРАРХИИ (&Тара)
            ТОГДА ЕСТЬNULL(Материалы.КоличествоПриход, 0)
        ИНАЧЕ 0
    КОНЕЦ КАК Барабан,
    Материалы.ЗаказНаПроизводство.Номер КАК Номер,
    ВложенныйЗапрос.ДатаЗакрытия
ПОМЕСТИТЬ Заказы
ИЗ
    (ВЫБРАТЬ
        ПричиныЗакрытияЗаказов.Заказ КАК ЗаказНаПроизводство,
        ПричиныЗакрытияЗаказов.Регистратор.Дата КАК ДатаЗакрытия
    ИЗ
        РегистрСведений.ПричиныЗакрытияЗаказов КАК ПричиныЗакрытияЗаказов
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗакрытиеЗаказовНаПроизводство КАК ЗакрытиеЗаказовНаПроизводство
            ПО ПричиныЗакрытияЗаказов.Регистратор = ЗакрытиеЗаказовНаПроизводство.Ссылка) КАК ВложенныйЗапрос
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.МатериалыПоЗаказуНаПроизводство.ОстаткиИОбороты(, , Регистратор, , ) КАК Материалы
        ПО ВложенныйЗапрос.ЗаказНаПроизводство = Материалы.ЗаказНаПроизводство
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СУММА(Заказы.Выдано) КАК Выдано,
    Заказы.Номенклатура,
    СУММА(Заказы.Возврат) КАК Возврат,
    СУММА(Заказы.Барабан) КАК Барабан,
    СУММА(Заказы.Выдано - Заказы.Возврат - 2 * Заказы.Барабан) КАК РасходСырья,
    Заказы.Номер,
    Заказы.ДатаЗакрытия
ИЗ
    Заказы КАК Заказы

СГРУППИРОВАТЬ ПО
    Заказы.Номенклатура,
    Заказы.Номер,
    Заказы.ДатаЗакрытия