8.х Срочный запрос.Помогите!

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Lily_1C, 14 мар 2011.

  1. TopicStarter Overlay
    Lily_1C
    Offline

    Lily_1C Опытный в 1С

    Регистрация:
    25 окт 2010
    Сообщения:
    152
    Симпатии:
    0
    Баллы:
    26
    Добрый день!
    Ищу помощи в написании запроса!Надеюсь,кто-нибудь поможет. :angry: Т.к. с программированием знакома плохо,но отчет нужно написать очень срочно!
    Необходимо создать отчет о НЕДООГРУЖЕННОМ оборудовании,т.е. запрос,в котором будут отображаться Заказы покупателей, которые были оплачены, но не отгружены,или отгружены не до конца.
    Первая часть запроса готова(оплачены,не отгружены).Со второй(оплачены,отгружены частично) возникли сложности :D
    Графически мой вопрос можно изобразить так:
    Посмотреть вложение 6710
    Как сложить количество отгруженного оборудования и сравнить с заказанным.(Например:оборудование КВМ-63,отгружено=5+23+36,если это количество < заказанного(50), то вывести в столбец Осталось отгрузить=50-(5+23+36)) Таким образом, нужно чтобы запрос выводил только то,что осталось отгрузить по заказу.
    Код запроса следующий:
    Код:
    ВЫБРАТЬ
    СчетНаОплатуПокупателюТовары.Ссылка.Контрагент,
    СчетНаОплатуПокупателюТовары.Номенклатура КАК Оборудование,
    СчетНаОплатуПокупателюТовары.Количество,
    СчетНаОплатуПокупателюТовары.Ссылка.ЗаказПокупателя,
    РеализацияТоваровУслугТовары.Ссылка КАК Отгрузка,
    РеализацияТоваровУслугТовары.Номенклатура КАК ОтгружОборудование,
    РеализацияТоваровУслугТовары.Количество КАК КоличествоОтгр,
    СчетНаОплатуПокупателюТовары.Ссылка.Ссылка КАК Счет
    ИЗ
    Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗакрытиеЗаказовПокупателей КАК ЗакрытиеЗаказовПокупателей
    ПО СчетНаОплатуПокупателюТовары.Ссылка.ЗаказПокупателя.Ссылка = ЗакрытиеЗаказовПокупателей.Заказы.ЗаказПокупателя.Ссылка
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    ПО СчетНаОплатуПокупателюТовары.Ссылка.ДоговорКонтрагента = РеализацияТоваровУслугТовары.Ссылка.ДоговорКонтрагента
    И СчетНаОплатуПокупателюТовары.Номенклатура = РеализацияТоваровУслугТовары.Номенклатура
    И СчетНаОплатуПокупателюТовары.Ссылка.ЗаказПокупателя = РеализацияТоваровУслугТовары.Ссылка.Сделка
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее
    ПО СчетНаОплатуПокупателюТовары.Ссылка.ДоговорКонтрагента = ПлатежноеПоручениеВходящее.ДоговорКонтрагента
    ГДЕ
    ПлатежноеПоручениеВходящее.Дата >= &ДатаНачала
    И ПлатежноеПоручениеВходящее.Дата <= &ДатаКонца
    И ЗакрытиеЗаказовПокупателей.Ссылка ЕСТЬ NULL
    
    
    Помогите,пожалуйста,с запросом..уже нахожусь в тупике из-за незнания языка 1С. Очень жду!

    Вложения:

    • 111.JPG
      111.JPG
      Размер файла:
      102,8 КБ
      Просмотров:
      47
  2. afinogen
    Offline

    afinogen Опытный в 1С

    Регистрация:
    28 фев 2011
    Сообщения:
    160
    Симпатии:
    0
    Баллы:
    26
    делайте вложенным запросом:
    1.основная таблица - Документ.СчетНаОплатуПокупателю.Товары. из нее выбирайте Количество
    Код:
    ВЫБРАТЬ
    СчетНаОплатуПокупателюТовары.Ссылка.Контрагент,
    СчетНаОплатуПокупателюТовары.Номенклатура КАК Оборудование,
    СчетНаОплатуПокупателюТовары.Количество,
    СчетНаОплатуПокупателюТовары.Ссылка.ЗаказПокупателя,
    РеализацияТоваровУслугТовары.Ссылка КАК Отгрузка
    ИЗ
    Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары
    
    
    2.Затем во вложенным запросом обращайтесь к таб части или где там у вас суммы хранятся документа реализация товаров, наподобие

    Код:
    ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка КАК Отгрузка,
    РеализацияТоваровУслуг.Номенклатура КАК ОтгружОборудование,
    СУММА(РеализацияТоваровУслугТовары.Количество КАК КоличествоОтгр)
    ИЗ
    Документ.РеализацияТоваровУслугКАК РеализацияТоваровУслуг
    
    
    3. затем соединяйте две таблицы
    4. добавляйте нужную вам колонку в запрос
    5. т.е. ваш запрос будет что то типа:
    Код:
    
    
    
    ВЫБРАТЬ
    СчетНаОплатуПокупателюТовары.Ссылка.Контрагент,
    СчетНаОплатуПокупателюТовары.Номенклатура КАК Оборудование,
    СчетНаОплатуПокупателюТовары.Количество,
    СчетНаОплатуПокупателюТовары.Ссылка.ЗаказПокупателя,
    РеализацияТоваровУслугТовары.Ссылка КАК Отгрузка,
    ВЫБОР КОГДА ВложенныйЗапрос.КоличествоОтгр<СчетНаОплатуПокупателюТовары.Количество ТОГДА
    СчетНаОплатуПокупателюТовары.Количество-ВложенныйЗапрос.КоличествоОтгр
    ИНАЧЕ
    0
    КОНЕЦ КАК ОсталосьОтгрузить
    ИЗ
    Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары,
    (ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка КАК Отгрузка,
    РеализацияТоваровУслуг.Номенклатура КАК ОтгружОборудование,
    СУММА(РеализацияТоваровУслугТовары.Количество КАК КоличествоОтгр)) КАК ВложенныйЗапрос
    
    
    или вообще "ВЫБОР" внесите в условие, чтобы нулевые строки не отбирались
  3. TopicStarter Overlay
    Lily_1C
    Offline

    Lily_1C Опытный в 1С

    Регистрация:
    25 окт 2010
    Сообщения:
    152
    Симпатии:
    0
    Баллы:
    26
    С вложенными запросами,я к сожалению еще не сталкивалась. Может кто-нибудь полезную ссылку скинет?Через поиск много ненужного открывается..

    afinogen,спасибо! пытаюсь разобраться по вашему совету.
  4. afinogen
    Offline

    afinogen Опытный в 1С

    Регистрация:
    28 фев 2011
    Сообщения:
    160
    Симпатии:
    0
    Баллы:
    26
    вложенный запрос тоже самое что и обычный, только он вложен :angry:
  5. TopicStarter Overlay
    Lily_1C
    Offline

    Lily_1C Опытный в 1С

    Регистрация:
    25 окт 2010
    Сообщения:
    152
    Симпатии:
    0
    Баллы:
    26
    :D :D :D ну это понятно, вот пробую :angry:
  6. TopicStarter Overlay
    Lily_1C
    Offline

    Lily_1C Опытный в 1С

    Регистрация:
    25 окт 2010
    Сообщения:
    152
    Симпатии:
    0
    Баллы:
    26
    Следуя советам afinogenа, у меня все равно не получается..Может кто-нибудь потправит мой код запроса..Логика запроса понятна,но вот не могу разобраться с постоянными ошибками Констуктора запроса.
    Код:
    ВЫБРАТЬ
    СчетНаОплатуПокупателюТовары.Ссылка.Контрагент,
    СчетНаОплатуПокупателюТовары.Номенклатура КАК Оборудование,
    СчетНаОплатуПокупателюТовары.Количество КАК Количество,
    СчетНаОплатуПокупателюТовары.Ссылка.ЗаказПокупателя,
    РеализацияТоваровУслугТовары.Ссылка КАК Отгрузка,
    ВЫБОР КОГДА ВложенныйЗапрос.КоличествоОтгр < СчетНаОплатуПокупателюТовары.Количество
    ТОГДА СчетНаОплатуПокупателюТовары.Количество-ВложенныйЗапрос.КоличествоОтгр
    ИНАЧЕ
    0
    КОНЕЦ КАК ОсталосьОтгрузить
    ИЗ
    Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары,
    (ВЫБРАТЬ РеализацияТоваровУслугТовары.Ссылка КАК Отгрузка,
    РеализацияТоваровУслугТовары.Номенклатура КАК ОтгружОборудование,
    СУММА(РеализацияТоваровУслугТовары.Количество) КАК КоличествоОтгр
    ИЗ Документ.РеализацияТоваровУслуг.Товары) КАК ВложенныйЗапрос
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗакрытиеЗаказовПокупателей КАК ЗакрытиеЗаказовПокупателей
    ПО СчетНаОплатуПокупателюТовары.Ссылка.ЗаказПокупателя.Ссылка = ЗакрытиеЗаказовПокупателей.Заказы.ЗаказПокупателя.Ссылка
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    ПО СчетНаОплатуПокупателюТовары.Ссылка.ДоговорКонтрагента = РеализацияТоваровУслугТовары.Ссылка.ДоговорКонтрагента
    И СчетНаОплатуПокупателюТовары.Номенклатура = РеализацияТоваровУслугТовары.Номенклатура
    И СчетНаОплатуПокупателюТовары.Ссылка.ЗаказПокупателя = РеализацияТоваровУслугТовары.Ссылка.Сделка
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее
    ПО СчетНаОплатуПокупателюТовары.Ссылка.ДоговорКонтрагента = ПлатежноеПоручениеВходящее.ДоговорКонтрагента
    ГДЕ
    ПлатежноеПоручениеВходящее.Дата >= &ДатаНачала
    И ПлатежноеПоручениеВходящее.Дата <= &ДатаКонца
    И ЗакрытиеЗаказовПокупателей.Ссылка ЕСТЬ NULL
    
    
    Констуктор ругается на ненахождение
    Код:
    РеализацияТоваровУслугТовары.Ссылка 
    
    затем
    Код:
    РеализацияТоваровУслугТовары.Номенклатура
    
    и т.д.
    Надеюсь,на вашу поддержку т помощь.А то совсем уже запуталась с этим запросом :angry:
  7. afinogen
    Offline

    afinogen Опытный в 1С

    Регистрация:
    28 фев 2011
    Сообщения:
    160
    Симпатии:
    0
    Баллы:
    26
    сложно читать чужой код не видя общей картины, сделайте проще: проверьте в консоле запросов по отдельности какие данные возвращает вложенный запрос и запрос без вложенного, если по отдельности они возвращают что-то (по-идее должны), тогда возможно косяк с левыми соединениями у вас :angry:
Похожие темы
  1. alp
    Ответов:
    9
    Просмотров:
    770
Загрузка...

Поделиться этой страницей