Имя: Пароль:
1C
1С v8
В СКД отчет по не соответствию таб части двух документов
0 Nikkk
 
21.04.20
13:24
Подскажите, как сделать в СКД, чтобы выводилась номенклатура, которая есть в первом документе Поступление, но отсутствует в документе реализация.

Например,
Поступление                Реализация
Ручка                      Ручка
Карандаш
Ластик

Чтобы в отчете вывело Карандаш и ручку.

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

По сути тут должен был выводиться перечень соответствия типа
Поступление                
   Реализация
   Ручка -  Ручка
   Карандаш    -   0
   Ластик      -   0

Но выводится только соответствие полное.

И именно в скд так. Если просто запросом делаю, отладкой прохожу, то все норм формируется.
1 Ненавижу 1С
 
гуру
21.04.20
13:31
>>Если просто запросом делаю, отладкой прохожу, то все норм формируется
Не ври уже, у тебя в запросе условие на присоединяемую таблицу:

ГДЕ
    ... Реализация.Ссылка.ПометкаУдаления = &ПометкаУдаления

а вообще такое кошерней делать через объединение
2 toypaul
 
гуру
21.04.20
13:34
где на таких программистов учат?
3 Nikkk
 
21.04.20
13:34
(1) Без условия тоже также выводится. Я хз почему. По всякому уже делал
4 Ненавижу 1С
 
гуру
21.04.20
13:47
(3) делай через объединение, заодно избавишься от проблемы, когда одна и та же номенклатура в документе есть несколько раз
ну и найдется номенклатура, которая есть в реализации, но нет в поступлении
5 Nikkk
 
21.04.20
14:05
(4) Сделал так:
ВЫБРАТЬ
    Поступление.Ссылка.Ссылка КАК Поступление,
    Поступление.Номенклатура КАК Номенклатура,
    Поступление.КоличествоУпаковок КАК КолвоПост,
    NULL КАК КолвоР,
    NULL КАК Реализация
ИЗ
    Документ.Поступление.Товары КАК Поступление
ГДЕ
    Поступление.Ссылка.Проведен = ИСТИНА
    И Поступление.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    Реализация.Ссылка.Поступление,
    ЕСТЬNULL(Реализация.Номенклатура, 0),
    NULL,
    ЕСТЬNULL(Реализация.КоличествоУпаковок, 0),
    Реализация.Ссылка.Ссылка
ИЗ
    Документ.Реализация.Товары КАК Реализация
ГДЕ
    Реализация.Ссылка.ПометкаУдаления = ЛОЖЬ

В итоге вывел весь список поступлений и реализация, которые только есть
Хотя нужно строго только которые между собой связаны, Поступление - на его основании реализация

и Номенклатура тоже, вся выводится,

Я вообще в целом не в ту сторону иду, или какого-то условия не хватает
2 + 2 = 3.9999999999999999999999999999999...