Имя: Пароль:
1C
1С v8
Набор данных, их объединение
0 Ilqarupup
 
21.08.14
16:11
Всем привет! Такая проблемка, делаю отчет на скд. Сначала сделал так:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВложенныйЗапрос.Монтажник,
    ВложенныйЗапрос.Организация,
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.ЕдиницаИзмерения,
    ВложенныйЗапрос.Сумма,
    ВложенныйЗапрос.Количество,
    ВложенныйЗапрос.Регистратор,
    ВложенныйЗапрос.Процент,
    ВложенныйЗапрос.Цена
ИЗ
    (ВЫБРАТЬ
        НачисленияМонтажниковОбороты.Монтажник КАК Монтажник,
        НачисленияМонтажниковОбороты.Организация КАК Организация,
        НачисленияМонтажниковОбороты.Номенклатура КАК Номенклатура,
        НачисленияМонтажниковОбороты.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
        НачисленияМонтажниковОбороты.СуммаПриход КАК Сумма,
        НачисленияМонтажниковОбороты.КоличествоПриход КАК Количество,
        НачисленияМонтажниковОбороты.Регистратор КАК Регистратор,
        НачисленияМонтажниковОбороты.СуммаПриход * 100 / (ЦеныНоменклатурыСрезПоследних.Цена * НачисленияМонтажниковОбороты.КоличествоПриход) КАК Процент,
        ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
    ИЗ
        РегистрНакопления.НачисленияМонтажников.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК НачисленияМонтажниковОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
            ПО НачисленияМонтажниковОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                И НачисленияМонтажниковОбороты.ЕдиницаИзмерения = ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения
    ГДЕ
        НачисленияМонтажниковОбороты.Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК ВложенныйЗапрос

(на вложенность запроса не смотрите, это я по лени от него не избавляюсь)
Но теперь возникла проблема: РН НачисленияМонтажников двигает не весь документ (Акт о выполненных работах), а только некоторые строки табчасти товары (не разобрался, как, но не суть). Клиент говорит, чтобы остальные строки таблицы тоже выходили. Поэтому решил сделать через объединение наборов со вторым запросом:

ВЫБРАТЬ
    АктОВыполненнойРаботеТовары.Ссылка КАК Регистратор,
    АктОВыполненнойРаботеТовары.Ссылка.Организация,
    АктОВыполненнойРаботеТовары.Номенклатура,
    АктОВыполненнойРаботеТовары.Количество,
    АктОВыполненнойРаботеТовары.ЕдиницаИзмерения,
    NULL КАК Монтажник,
    0 КАК Процент,
    0 КАК Сумма,
    0 КАК Цена
ИЗ
    Документ.АктОВыполненнойРаботе.Товары КАК АктОВыполненнойРаботеТовары

Сделал 2 набора данных (НаборДанных1 и НаборДанных2), но теперь не понимаю как их связать. Попытался через вкладку "Связи наборы данных", первую табличку показал, вторую нет. Связывал так:
http://imgur.com/8UAuhw8
1 Ilqarupup
 
21.08.14
16:17
up
2 vicof
 
21.08.14
16:19
Нечего NULL в СКД пихать
3 Ilqarupup
 
21.08.14
16:22
(2) думал по аналогии с запрасом количество колонок должно быть идентичным
4 Ilqarupup
 
21.08.14
16:23
не работает, убрал null и 0, опять только РН вытаскивает
5 Ilqarupup
 
21.08.14
16:32
up[
6 Ilqarupup
 
21.08.14
16:39
не сталкивались не ужто?
7 vicof
 
21.08.14
16:51
Но теперь возникла проблема: РН НачисленияМонтажников двигает не весь документ (Акт о выполненных работах), а только некоторые строки табчасти товары (не разобрался, как, но не суть)
Может сначала все-таки разобраться?
8 Ilqarupup
 
21.08.14
16:55
(7) знал, что это спросят. Зачем? У меня есть готовый отчет, надо прикрутить к нему из того же документа те номенклатуры, которые без цены, мастара, количества. Лезть и разбираться бесполезно, т.к. мне нельзя менять конфу.
9 Ilqarupup
 
21.08.14
17:01
uuup
10 Ilqarupup
 
22.08.14
08:50
uppy!
11 Ilqarupup
 
22.08.14
09:07
Последний вариант, набор 1:
ВЫБРАТЬ
    НачисленияМонтажниковОбороты.Монтажник КАК Монтажник,
    НачисленияМонтажниковОбороты.Организация КАК Организация,
    НачисленияМонтажниковОбороты.Номенклатура КАК Номенклатура,
    НачисленияМонтажниковОбороты.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    НачисленияМонтажниковОбороты.СуммаПриход КАК Сумма,
    НачисленияМонтажниковОбороты.КоличествоПриход КАК Количество,
    НачисленияМонтажниковОбороты.Регистратор КАК Регистратор,
    НачисленияМонтажниковОбороты.СуммаПриход * 100 / (ЦеныНоменклатурыСрезПоследних.Цена * НачисленияМонтажниковОбороты.КоличествоПриход) КАК Процент,
    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
ИЗ
    РегистрНакопления.НачисленияМонтажников.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК НачисленияМонтажниковОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
        ПО НачисленияМонтажниковОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И НачисленияМонтажниковОбороты.ЕдиницаИзмерения = ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения
ГДЕ
    НачисленияМонтажниковОбороты.Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)

Набор 2:

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

СГРУППИРОВАТЬ ПО
    АктОВыполненнойРаботеТовары.Ссылка,
    АктОВыполненнойРаботеТовары.Номенклатура,
    АктОВыполненнойРаботеТовары.Количество,
    НачисленияМонтажниковОбороты.Монтажник,
    НачисленияМонтажниковОбороты.Организация,
    АктОВыполненнойРаботеТовары.ЕдиницаИзмерения,
    НачисленияМонтажниковОбороты.СуммаПриход,
    НачисленияМонтажниковОбороты.СуммаПриход * 100 / (1 * НачисленияМонтажниковОбороты.КоличествоПриход)

не связываются(
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс