|   |   | 
| 
 | Сравнить ТЧ двух документов | ☑ | ||
|---|---|---|---|---|
| 0
    
        DreamMaster 26.06.13✎ 11:39 | 
        Всем доброго времени суток. Столкнулся с простой задачей, но решить её у меня не получается. Есть документы заказа, есть документы реализации. Необходимо запросом вытянуть список заказов, у которых в заказе есть товар "Т", но в реализации его нет.
  Думаю,что должно быть что-то вроде: (но данный код выдает не верное значение) ВЫБРАТЬ РеализацияТоваровТовары.Ссылка, РеализацияТоваровТовары.Ссылка.Сделка, ЗаказПокупателяТовары.Номенклатура, ЗаказПокупателяТовары.Количество ИЗ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары ПО ЗаказПокупателяТовары.Ссылка = РеализацияТоваровТовары.Ссылка.Сделка И ЗаказПокупателяТовары.Номенклатура = РеализацияТоваровТовары.Номенклатура ГДЕ ЗаказПокупателяТовары.Номенклатура = &Номенклатура И РеализацияТоваровТовары.Ссылка.Сделка.Дата >= &Дата И ЗаказПокупателяТовары.Ссылка.Проведен И РеализацияТоваровТовары.Номенклатура ЕСТЬ NULL | |||
| 1
    
        1Cv8_accepted 26.06.13✎ 11:45 | 
        Выбери, дополнительно к полям, в одном подзапросе 1 (единицу), в другом 2 (двойку). В общем запросе складывай их и по результату (1, 2 или 3) получишь отсутствующие/присутствующие позиции.     | |||
| 2
    
        Лефмихалыч 26.06.13✎ 11:45 | 
        левое соединение + есть NULL в предложении ГДЕ     | |||
| 3
    
        drcrasher 26.06.13✎ 11:46 | 
        (1) нафига клюшечный вариант то?
  полное соединение в руки | |||
| 4
    
        1Cv8_accepted 26.06.13✎ 11:47 | 
        (3) Привычка! ))     | |||
| 5
    
        Slon747 26.06.13✎ 11:48 | 
        Почему не работает?
  Вроде как правильно. | |||
| 6
    
        DreamMaster 26.06.13✎ 11:50 | 
        (1) Напишите пожалуйста подробнее
  (2) увы с полным также (5) ну он выдает пустое значение (хотя документ есть) | |||
| 7
    
        hhhh 26.06.13✎ 11:51 | 
        (6) а зачем сравнивать табличные части? Это же бред. ЕСть регистр ЗаказыПокупателей: закз делает приход по регистру, реализация - расход. Нужно просто взять остаток по этому регистру - это и есть то, что надо.     | |||
| 8
    
        Slon747 26.06.13✎ 11:52 | 
        (6) Так если нужно получить заказы, то и выбирать нужно заказы, а не реализации     | |||
| 9
    
        DreamMaster 26.06.13✎ 11:53 | 
        (7) Надо решить именно эту задачу
  (8) не имеет разницы. Необходимо получить любой из этих документов. Главное, чтобы в заказе был товар, а в реализации его небыло | |||
| 10
    
        palpetrovich 26.06.13✎ 11:57 | 
        Автор, конфа какая? ...есть подозрение что на лицо очередная попытка изобрести велосипед
  Открой отчет "Анализ заказов покупателей" :) | |||
| 11
    
        Serg_1960 26.06.13✎ 12:01 | 
        Как всегда конфигурация автором не озвучена. А мы теперь гадай - может быть у автора сделка не в реквизитах документа, а в табличной части указывается и запрос полный бред выдаёт :(     | |||
| 12
    
        palpetrovich 26.06.13✎ 12:06 | 
        кстати, банальный код, изложенный ниже, покажет все НЕЗАКРЫТЫЕ заказы, т.е. не только "список заказов, у которых в заказе есть товар "Т", но в реализации его нет." , но и случае, когда была ЧАСТИЧНАЯ реализация 
  ВЫБРАТЬ ЗаказыПокупателейОстатки.ЗаказПокупателя, ЗаказыПокупателейОстатки.Номенклатура, ЗаказыПокупателейОстатки.КоличествоОстаток ИЗ РегистрНакопления.ЗаказыПокупателей.Остатки(&Дата, ) КАК ЗаказыПокупателейОстатки | |||
| 13
    
        DreamMaster 26.06.13✎ 12:16 | 
        8.2 УТ (самописка)
  Тут не велосипед. Просто для решение задачи мне необходим список таких документов по определенному товару. Регистры мне не нужны. Нужны именно документы (имею ввиду использование документов а не регистров) | |||
| 14
    
        hhhh 26.06.13✎ 12:32 | 
        (13) но ведь этот регистр ЗаказыПокупателей именно для этого и придуман. Именно учитывать документы. Чтобы такие как вы не занимались фигней, а просто работали.     | |||
| 15
    
        Emilio 26.06.13✎ 12:39 | 
        (0) и такой запрос будет отрабатывать вечность. тебе ответ дали в (14) 
  зачем вообще трогать соединения? все можно сделать без соединений. при выборе из РН у тебя во-первых и в главных исчезнет одно условие: ЗаказПокупателяТовары.Ссылка.Проведен | |||
| 16
    
        Gisborn 26.06.13✎ 12:49 | 
        Касательно запроса в (0): вот эти строки в ГДЕ обуславливают пустой результат:  
  И РеализацияТоваровТовары.Ссылка.Сделка.Дата >= &Дата И РеализацияТоваровТовары.Номенклатура ЕСТЬ NULL | |||
| 17
    
        craxx 26.06.13✎ 12:50 | 
        (0) Написать хэш-функцию от ТЧ и сравнивать значения хэшей.     | |||
| 18
    
        Slon747 26.06.13✎ 13:18 | 
        (16) точно! что касается проверки даты     | |||
| 19
    
        tesei 26.06.13✎ 14:18 | 
        (1-18) Слишком сложно. Объединить таблицы, поле дельта =  количество для заказа , -количество для реализации. Далее обрабатываем строки где дельта > 0.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |