8.х Выборка документов

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Вселенная, 13 янв 2010.

  1. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Код:
    ВЫБРАТЬ
    ПланируемоеПоступлениеДенежныхСредств.Ссылка,
    ПлатежноеПоручениеВходящее.Ссылка КАК Ссылка1
    ИЗ
    Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПланируемоеПоступлениеДенежныхСредств КАК ПланируемоеПоступлениеДенежныхСредств
    ПО ПлатежноеПоручениеВходящее.ДокументОснование = ПланируемоеПоступлениеДенежныхСредств.Ссылка
    ГДЕ
    (ПланируемоеПоступлениеДенежныхСредств.ДатаПоступления = ПлатежноеПоручениеВходящее.ДатаОплаты
    ИЛИ ПланируемоеПоступлениеДенежныхСредств.ДатаПоступления > ПлатежноеПоручениеВходящее.ДатаОплаты)
    
    Этот запрос ничего не выводит, хотя такие документы есть. Почему? (УПП)
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Сначала сделайте соединение, а потом полученный запрос уже обрабатывайте.

    Или сделайте через РТ, или через вложенный запрос. В данном случае оптимизатор, видимо, вас не понял :)

    ЗЫ. А вообще можно наложить такое ограничение в условиях связи и не париться.
  3. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Спасибо, разобралась. Получился такой запрос:
    Код:
    Запрос.Текст = "ВЫБРАТЬ
    |	ПланируемоеПоступлениеДенежныхСредств.Ссылка,
    |	ПлатежноеПоручениеВходящее.Ссылка КАК Ссылка1,
    |	ПриходныйКассовыйОрдер.Ссылка КАК Ссылка2,
    |	КорректировкаДолга.Ссылка КАК Ссылка3
    |ИЗ
    |	Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее
    |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПланируемоеПоступлениеДенежныхСредств КАК ПланируемоеПоступлениеДенежныхСредств
    |		ПО ПлатежноеПоручениеВходящее.РасшифровкаПлатежа.Сделка = ПланируемоеПоступлениеДенежныхСредств.РасшифровкаПлатежа.Сделка,
    |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
    |	    ПО ПриходныйКассовыйОрдер.РасшифровкаПлатежа.Сделка = ПланируемоеПоступлениеДенежныхСредств.РасшифровкаПлатежа.Сделка,
    |	    ЛЕВОЕ СОЕДИНЕНИЕ Документ.КорректировкаДолга КАК КорректировкаДолга
    |	    ПО КорректировкаДолга.СуммыДолга.Сделка = ПланируемоеПоступлениеДенежныхСредств.РасшифровкаПлатежа.Сделка
    |ГДЕ
    |	(ПланируемоеПоступлениеДенежныхСредств.ДатаПоступления = ПлатежноеПоручениеВходящее.ДатаОплаты
    |	ИЛИ ПланируемоеПоступлениеДенежныхСредств.ДатаПоступления > ПлатежноеПоручениеВходящее.ДатаОплаты)";
    
    
    У меня вопрос еще такой: как взять документы, которые не попали в эту выборку? (чтобы изменить их реквизит)
  4. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Разобралась. Вот, может кому-нибудь будет полезно:
    Код:
    Выборка = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |	ПланируемоеПоступлениеДенежныхСредств.Ссылка,
    |	ПланируемоеПоступлениеДенежныхСредств.Состояние
    |ИЗ
    |	Документ.ПланируемоеПоступлениеДенежныхСредств КАК ПланируемоеПоступлениеДенежныхСредств";
    ВыборкаВсех = Запрос.Выполнить().Выбрать();
    
    Пока ВыборкаВсех.Следующий() Цикл
    Если Выборка.Найти(ВыборкаВсех.Ссылка) = Неопределено Тогда
    Документ = ВыборкаВсех.Ссылка.ПолучитьОбъект();
    Документ.Состояние = Перечисления.СостоянияОбъектов.Отклонен;
    Документ.Записать();
    КонецЕсли;
    КонецЦикла;
    
    
  5. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    Убрать условие по которому они сюда не попадают)
    потом получаешь Объект , меняешь - Записать()
  6. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    по поводу последнего вопроса. можно сделать так:
    1)полученные документы поместить во временную таблицу.
    2)запросом выбрать все документы ПланируемоеПоступлениеДенежныхСредств, ПлатежноеПоручениеВходящее, ПриходныйКассовыйОрдер, КорректировкаДолга. для этой выборки сделать отбор, отсеивающий документы из п.1
    в условии будет что то типа: не док.ссылка в(ВременнаяТаблицаИз1)

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