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

Отбор по двум родителям

Автор Artjomrgv, 13 мая 2017, 20:26

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

Artjomrgv

Коллеги, как в отборе указать два родителя, чтобы помимо папки Клиенты искать например в папке Поставщики?

НовСтр.Контрагент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Выборка.Контрагент.ИНН, Справочники.Контрагенты.НайтиПоНаименованию("Клиенты"))

Справочники.Контрагенты.НайтиПоНаименованию("Клиенты") -  наименование папки Родитель.

Дмитрий Медведков

Никак, при данном отборе возможно указать только одного родителя.
Если хотите отбор по нескольким, используйте запрос с условием Справочник.Ссылка В Иерархии(&Родитель1,&Родитель2,...&РодительN)
coderstar.ru - Отчеты, обработки и расширения 1С. Самоучители по Бухгалтерии 3.0 и Торговле 11.4

Artjomrgv

Цитата: Дмитрий Медведков от 14 мая 2017, 21:54
Никак, при данном отборе возможно указать только одного родителя.
Если хотите отбор по нескольким, используйте запрос с условием Справочник.Ссылка В Иерархии(&Родитель1,&Родитель2,...&РодительN)

Я создаю нового контрагента в справочнике, в каком именно месте должен быть запрос.

Дмитрий Медведков

Отправьте текст вашего кода (полный), я покажу место
coderstar.ru - Отчеты, обработки и расширения 1С. Самоучители по Бухгалтерии 3.0 и Торговле 11.4

ilyay

Если это форма, можно установить отбор "в списке", где указать нужных родителей. Попробуйте при открытии формы передать параметр "отбор" типа структура, где ключ = "Родитель", а значение - массив или список значений, содержащих ссылки.

Artjomrgv

Цитата: Дмитрий Медведков от 15 мая 2017, 09:48
Отправьте текст вашего кода (полный), я покажу место

Если полностью:
Запрос = База.NewObject("Запрос");   
   Запрос.Текст =
    "ВЫБРАТЬ
   |   ХозрасчетныйОбороты.Субконто3 КАК Номенклатура,
   |   ХозрасчетныйОбороты.Организация,
   |   ХозрасчетныйОбороты.КорСубконто1 КАК Контрагент,
   |   ХозрасчетныйОбороты.КорСубконто2 КАК Договор,
   |   ХозрасчетныйОбороты.КорСубконто1.ОКН КАК ОКН,
   |   НАЧАЛОПЕРИОДА(ХозрасчетныйОбороты.Период, ДЕНЬ) КАК ДатаДокумента,
   |   СУММА(-ХозрасчетныйОбороты.СуммаОборот) КАК СуммаБезНДС,
   |   СУММА(-ХозрасчетныйОбороты.СуммаОборот) КАК СуммаСНДС
   |ИЗ
   |   РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, Счет В (&Счета91), , Организация.ИНН = &ОрганизацияИНН, , ) КАК ХозрасчетныйОбороты
   |
   |СГРУППИРОВАТЬ ПО
   |   ХозрасчетныйОбороты.Субконто3,
   |   ХозрасчетныйОбороты.Организация,
   |   ХозрасчетныйОбороты.КорСубконто1,
   |   ХозрасчетныйОбороты.КорСубконто2,
   |   НАЧАЛОПЕРИОДА(ХозрасчетныйОбороты.Период, ДЕНЬ),
   |   ХозрасчетныйОбороты.КорСубконто1.ОКН
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |   ""#Номенклатура"",
   |   ХозрасчетныйОбороты.Организация,
   |   ХозрасчетныйОбороты.Субконто1,
   |   ХозрасчетныйОбороты.Субконто2,
   |   ХозрасчетныйОбороты.Субконто1.ОКН,
   |   НАЧАЛОПЕРИОДА(ХозрасчетныйОбороты.Период, ДЕНЬ),
   |   СУММА(ХозрасчетныйОбороты.СуммаОборот),
   |   СУММА(ХозрасчетныйОбороты.СуммаОборот)
   |ИЗ
   |   РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, Счет = &Счет7606, , Организация.ИНН = &ОрганизацияИНН, КорСчет = &Счет7609, ) КАК ХозрасчетныйОбороты
   |
   |СГРУППИРОВАТЬ ПО
   |   ХозрасчетныйОбороты.Организация,
   |   НАЧАЛОПЕРИОДА(ХозрасчетныйОбороты.Период, ДЕНЬ),
   |   ХозрасчетныйОбороты.Субконто1,
   |   ХозрасчетныйОбороты.Субконто2,
   |   ХозрасчетныйОбороты.Субконто1.ОКН
   |
   |УПОРЯДОЧИТЬ ПО
   |   ДатаДокумента,
   |   Контрагент";   
      
   Запрос.УстановитьПараметр("ДатаНачала", НачалоМесяца(Объект.Месяц));
   Запрос.УстановитьПараметр("ДатаОкончания", КонецМесяца(Объект.Месяц));
   Счета91 = База.NewObject("СписокЗначений");
   Счета91.Добавить(База.ПланыСчетов.Хозрасчетный.ВыручкаНеЕНВД);
   
   Счет7606 = База.ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПокупателямиИЗаказчиками;
   
   Счет7609 = База.ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами;   
   
   Запрос.УстановитьПараметр("Счет7606", Счет7606);
   Запрос.УстановитьПараметр("Счет7609", Счет7609);
   
   


   
   Запрос.УстановитьПараметр("Счета91", Счета91);
   Запрос.УстановитьПараметр("ОрганизацияИНН", Объект.Организация.ИНН);
   
   
   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
   
   Пока Выборка.Следующий() Цикл
      
       НовСтр =  Объект.Выручка.Добавить();
      
      НовСтр.Организация = Объект.Организация;
      НовСтр.ДатаДокумента = Выборка.ДатаДокумента;
      
      Попытка
      Если ПустаяСтрока(Выборка.Контрагент.ИНН)  Тогда
         НовСтр.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(Выборка.Контрагент.Description, Истина, Справочники.Контрагенты.НайтиПоНаименованию("Клиенты"));
      Иначе
         НовСтр.Контрагент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Выборка.Контрагент.ИНН, Справочники.Контрагенты.НайтиПоНаименованию("Клиенты"));
      КонецЕсли;
      
      Если    Выборка.Контрагент.ОКН.Description<>"" Тогда
      НовСтр.ОКН = Справочники.ОбъектОКН.НайтиПоРеквизиту("НаименованиеФастком",Выборка.Контрагент.ОКН.Description);
   КонецЕсли;
   

wise

(5) поискал в группе "Клиенты"
Цитата: Artjomrgv от 18 мая 2017, 14:34КонтрагентКлиент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Выборка.Контрагент.ИНН, Справочники.Контрагенты.НайтиПоНаименованию("Клиенты"));
поищи и в группе "Поставщики"
НовСтр.Контрагент=?(ЗначениеЗаполнено(КонтрагентКлиент), КонтрагентКлиент, Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Выборка.Контрагент.ИНН, Справочники.Контрагенты.НайтиПоНаименованию("Поставщики")));
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Artjomrgv

Цитата: wise от 18 мая 2017, 14:52
(5) поискал в группе "Клиенты"
Цитата: Artjomrgv от 18 мая 2017, 14:34КонтрагентКлиент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Выборка.Контрагент.ИНН, Справочники.Контрагенты.НайтиПоНаименованию("Клиенты"));
поищи и в группе "Поставщики"
НовСтр.Контрагент=?(ЗначениеЗаполнено(КонтрагентКлиент), КонтрагентКлиент, Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Выборка.Контрагент.ИНН, Справочники.Контрагенты.НайтиПоНаименованию("Поставщики")));

Точно, это же так просто. Спасибо.

Теги: 1С 8.3. УФ 

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

72541

Ответов: 1
Просмотров: 573

3322

Ответов: 6
Просмотров: 6844

48415

Ответов: 1
Просмотров: 1042

59448

Ответов: 2
Просмотров: 696

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

Поиск