Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 авг 2021, 20:58

Критерий отбора связанные документы

Автор margo, 22 окт 2020, 09:28

0 Пользователей и 2 гостей просматривают эту тему.

margo

Подскажите как из связанных документов получить выборку документов разных типов и обработать их?

LexaK

если настроен Критерий отбора, подчиненные документы
тогда так, для того что бы выбрать все дерево, используйте это код в рекурсивном вызове
//а еще, самое простое, посмотрите или возьмите готовый код, в своей (любой типовой) базе отчет Структура подчиненности или отчет Связанные документы
в разных базах называется по разному


//***** Создание запроса
лкЗапрос=Новый Запрос;
лкЗапрос.УстановитьПараметр("Документ",прСтрДер.Ссылка);
лкЗапрос.Текст="ВЫБРАТЬ Ссылка ИЗ КритерийОтбора.ПодчиненныеДокументы(&Документ)";

//***** Выполнение и обход результата запроса
лкВыборка=лкЗапрос.Выполнить().Выбрать();
Пока лкВыборка.Следующий() Цикл
//лкВыборка.Ссылка - подчиненный документ;
//... здесь ваш код
КонецЦикла;
ответ Понравился? (в смысле пригодился?)

margo

Цитата: LexaK от 22 окт 2020, 10:15
если настроен Критерий отбора, подчиненные документы
тогда так, для того что бы выбрать все дерево, используйте это код в рекурсивном вызове
//а еще, самое простое, посмотрите или возьмите готовый код, в своей (любой типовой) базе отчет Структура подчиненности или отчет Связанные документы
в разных базах называется по разному


//***** Создание запроса
лкЗапрос=Новый Запрос;
лкЗапрос.УстановитьПараметр("Документ",прСтрДер.Ссылка);
лкЗапрос.Текст="ВЫБРАТЬ Ссылка ИЗ КритерийОтбора.ПодчиненныеДокументы(&Документ)";

//***** Выполнение и обход результата запроса
лкВыборка=лкЗапрос.Выполнить().Выбрать();
Пока лкВыборка.Следующий() Цикл
//лкВыборка.Ссылка - подчиненный документ;
//... здесь ваш код
КонецЦикла;



дело в том,ч то у меня получается пакет выборок, их нужно посместить в одну и посортировать по дате, а потом перепровести. в чем проблема : 1. как поместить их все в одну выборку (результаты всех пакетов) 2. если у меня в связи нет Поступление безналичных денежных средств, тогда запрос вообще пустой в результате. вот мой код:
Заказ = Неопределено;
   
   Запрос = Новый Запрос;
   Запрос.Текст =
      //"ВЫБРАТЬ
      //|   СвязанныеДокументы.Ссылка
      //|ИЗ
      //|   КритерийОтбора.СвязанныеДокументы(&Документ) КАК СвязанныеДокументы
      //|ГДЕ
      //|   СвязанныеДокументы.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
      //|   И СвязанныеДокументы.Ссылка.ПометкаУдаления = ЛОЖЬ
      //|;
      //|
      //|////////////////////////////////////////////////////////////////////////////////
      //|ВЫБРАТЬ
      //|   СвязанныеДокументы.Ссылка
      //|ИЗ
      //|   КритерийОтбора.СвязанныеДокументы(&Документ) КАК СвязанныеДокументы
      //|ГДЕ
      //|   СвязанныеДокументы.Ссылка ССЫЛКА Документ.ВозвратТоваровОтКлиента
      //|   И СвязанныеДокументы.Ссылка.ПометкаУдаления = ЛОЖЬ
      //|;
      //|
      //|////////////////////////////////////////////////////////////////////////////////
      //|ВЫБРАТЬ
      //|   СвязанныеДокументы.Ссылка
      //|ИЗ
      //|   КритерийОтбора.СвязанныеДокументы(&Документ) КАК СвязанныеДокументы
      //|ГДЕ
      //|   СвязанныеДокументы.Ссылка ССЫЛКА Документ.ВзаимозачетЗадолженности
      //|   И СвязанныеДокументы.Ссылка.ПометкаУдаления = ЛОЖЬ
      //|;
      //|
      //|////////////////////////////////////////////////////////////////////////////////
      //|ВЫБРАТЬ
      //|   СвязанныеДокументы.Ссылка
      //|ИЗ
      //|   КритерийОтбора.СвязанныеДокументы(&Документ) КАК СвязанныеДокументы
      //|ГДЕ
      //|   СвязанныеДокументы.Ссылка ССЫЛКА Документ.СписаниеЗадолженности
      //|   И СвязанныеДокументы.Ссылка.ПометкаУдаления = ЛОЖЬ
      //|;
      //|
      //|////////////////////////////////////////////////////////////////////////////////
      //|ВЫБРАТЬ
      //|   СвязанныеДокументы.Ссылка
      //|ИЗ
      //|   КритерийОтбора.СвязанныеДокументы(&Документ) КАК СвязанныеДокументы
      //|ГДЕ
      //|   СвязанныеДокументы.Ссылка ССЫЛКА Документ.НалоговаяНакладная
      //|   И СвязанныеДокументы.Ссылка.ПометкаУдаления = ЛОЖЬ
      //|;
      //|
      //|////////////////////////////////////////////////////////////////////////////////
      //|ВЫБРАТЬ
      //|   СвязанныеДокументы.Ссылка
      //|ИЗ
      //|   КритерийОтбора.СвязанныеДокументы(&Документ) КАК СвязанныеДокументы
      //|ГДЕ
      //|   СвязанныеДокументы.Ссылка ССЫЛКА Документ.Приложение2КНалоговойНакладной
      //|   И СвязанныеДокументы.Ссылка.ПометкаУдаления = ЛОЖЬ
      //|;
      //|
      //|////////////////////////////////////////////////////////////////////////////////
      //|ВЫБРАТЬ
      //|   СвязанныеДокументы.Ссылка
      //|ИЗ
      //|   КритерийОтбора.СвязанныеДокументы(&Документ) КАК СвязанныеДокументы
      //|ГДЕ
      //|   СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
      //|   И СвязанныеДокументы.Ссылка.ПометкаУдаления = ЛОЖЬ
      //|   И СвязанныеДокументы.Ссылка.ХозяйственнаяОперация.Ссылка = ЗНАЧЕНИЕ(перечисление.хозяйственныеоперации.поступлениеоплатыотклиента)
      //|;
      //|
      //|////////////////////////////////////////////////////////////////////////////////
      //|ВЫБРАТЬ
      //|   СвязанныеДокументы.Ссылка
      //|ИЗ
      //|   КритерийОтбора.СвязанныеДокументы(&Документ) КАК СвязанныеДокументы
      //|ГДЕ
      //|   СвязанныеДокументы.Ссылка ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
      //|   И СвязанныеДокументы.Ссылка.ПометкаУдаления = ЛОЖЬ
      //|   И СвязанныеДокументы.Ссылка.ХозяйственнаяОперация.Ссылка = ЗНАЧЕНИЕ(перечисление.хозяйственныеоперации.возвратоплатыклиенту)";
   
   Запрос.УстановитьПараметр("Документ", Заказ);
   
   Результаты = Запрос.ВыполнитьПакет();
   
   //Таблица = новый массив;
   
   РТУ = Результаты[0].выбрать();
   
   //таблица.Добавить(рту);
   //Пока рту.
   
   //Результаты.Вы
   //ВыборкаРеализацияТоваровУслуг = Результаты[0].Выбрать();
   //ВыборкаРеализацияТоваровУслуг.Следующий();
   //
   //ВыборкаРасходныйОрдерНаТовары = Результаты[1].Выбрать();
   //ВыборкаРасходныйОрдерНаТовары.Следующий();
   
   //Возврат  (ВыборкаРеализацияТоваровУслуг <> Неопределено И ВыборкаРеализацияТоваровУслуг.КоличествоСвязанныхДокументов <> 0)
   //      ИЛИ  (ВыборкаРасходныйОрдерНаТовары <> Неопределено И ВыборкаРасходныйОрдерНаТовары.КоличествоСвязанныхДокументов <> 0)   
   

LexaK

так оставьте один запрос, и вот это:
ЦитироватьСвязанныеДокументы.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
- уберите!

попробуйте запрос сначала в консоли запросов!
в одну колонку Ссылка вам вернутся как раз документы разных типов (все какие есть подчиненные)
ответ Понравился? (в смысле пригодился?)

margo

Цитата: LexaK от 22 окт 2020, 11:00
так оставьте один запрос, и вот это:
ЦитироватьСвязанныеДокументы.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
- уберите!

попробуйте запрос сначала в консоли запросов!
в одну колонку Ссылка вам вернутся как раз документы разных типов (все какие есть подчиненные)

:) гы... точно) будем пробоавть)
Добавлено: 22 окт 2020, 13:25


Цитата: LexaK от 22 окт 2020, 11:00
так оставьте один запрос, и вот это:
ЦитироватьСвязанныеДокументы.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
- уберите!

попробуйте запрос сначала в консоли запросов!
в одну колонку Ссылка вам вернутся как раз документы разных типов (все какие есть подчиненные)

в консоли все получилось, а вот в обработке выборка пустая почему-то :dfbsdfbsdf:

margo

все получилось, спасибо большое

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск