8.х Найти нужный документ в списке документов

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

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

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

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

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    У вас сам код страдает.
    Код:
    ВыборкаВсех = Документы.ПланируемоеПоступлениеДенежныхСредств.Выбрать();
    
    Такое зачем? Все вынести в запрос!
    Ваша задача решается один запросом.
  3. TopicStarter Overlay
    Вселенная
    Offline

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

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Что-то торможу... как?
  4. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    а что он у тебя в результате выводит?в чём ошибка?
  5. TopicStarter Overlay
    Вселенная
    Offline

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

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Еще и связывает документы даже если поля Сделка пустые.

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