Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
11 Дек 2017, 03:33
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Отбор по реквизитам ТАБЛИЧНОЙ ЧАСТИ  (Прочитано 3891 раз)

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

Оффлайн matroskin_yanao

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-01-13
  • Сайт: 
  • Профессия: Ученик 1С
Всем доброго времени суток.
Столкнулся с такой задачкой: необходимо сделать отбор по реквизитам ТАБЛИЧНОЙ ЧАСТИ справочника.
В двух словах.
1) Есть справочник "Договоры".
2) Есть справочник "ОПО" (опасные производственные объекты). Владельцем для него является справочник "Договоры".
3) В справочнике "ОПО" есть табличная часть "Экспертиза" с реквизитом "Договор" типа СправочникСсылка.Договоры

Необходимо чтобы из формы элемента справочника "Договоры" открывалась форма списка справочника "ОПО" с отобранными элементами, у которых в табличной части присутствует этот договор.

Если сделать отбор в форме списка "ОПО" (без вызова формы из другой формы), то всё работает:
Цитировать
   Список.Отбор.Элементы.Очистить();
   УсловиеОтбора = Список.Отбор.Элементы.Добавить(тип("ЭлементОтбораКомпоновкиДанных"));
   УсловиеОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Экспертиза.Договор");
   УсловиеОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   УсловиеОтбора.ПравоеЗначение = ДоговорДляОтбора; //переменная, содержащая ссылку на договор
   УсловиеОтбора.Использование = Истина;
   ЭтаФорма.ОбновитьОтображениеДанных();

Если же делать из формы списка справочника "Договоры", то беда беда. Вызываемая форма списка оказывается пустой:
Цитировать
 
   ФормаСпискаОПО = ПолучитьФорму("Справочник.ОПО.ФормаСписка");
   ТекОтбор = ФормаСпискаОПО.Список.Отбор.Элементы;
   ТекОтбор.Очистить();
   УсловиеОтбора = ТекОтбор.Добавить(тип("ЭлементОтбораКомпоновкиДанных"));
   УсловиеОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Экспертиза.Договор");
   УсловиеОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   УсловиеОтбора.ПравоеЗначение = Объект.Наименование; 
   УсловиеОтбора.Использование = Истина;
   ФормаСпискаОПО.ОбновитьОтображениеДанных();   
   ФормаСпискаОПО.Открыть();
   

 Или может есть какие-то другие способы?
Заранее спасибо!


Оффлайн matroskin_yanao

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-01-13
  • Сайт: 
  • Профессия: Ученик 1С
Использовал КриторийОтбора.
Но результат выводится просто списком, а хотелось бы полной формой списка "ОПО".
Добавлено: 08 Мар 2015, 20:17

Попробовал по аналогии:
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=550579
Цитировать
Добрый день! Подскажите, пожалуйста, в чем проблема?
 
Есть справочник Контрагенты. В нем табличная часть Организации (Использование: Для группы и элемента) с реквизитом Организация.
Также в Общие - Критерии отбора создал отбор по данному реквизиту КонтрагентыПоОрганизации.
В форме списка справочника добавил элемент формы Организация с привязанным к нему событием при изменении - ОрганизацияПриИзменении
 
Процедура ОрганизацияПриИзменении(Элемент)
Отбор.КонтрагентыПоОрганизации.Использование = Истина;
Отбор.КонтрагентыПоОрганизации.Установить(Элемент.Значение);
КонецПроцедуры

Что такое в данном случае "Отбор"?

Последний раз редактировалось: matroskin_yanao; 08 Мар 2015, 20:17. Причина: Объединение сообщений

Оффлайн temrmal

  • ***
  • Сообщений: 126
  • РЕПУТАЦИЯ: 15
  • КПД: 12%
  • Регистрация: 2011-11-10
  • Сайт: 
  • Профессия: Программист 8.1
Всем доброго времени суток.
Столкнулся с такой задачкой: необходимо сделать отбор по реквизитам ТАБЛИЧНОЙ ЧАСТИ справочника.
В двух словах.
1) Есть справочник "Договоры".
2) Есть справочник "ОПО" (опасные производственные объекты). Владельцем для него является справочник "Договоры".
3) В справочнике "ОПО" есть табличная часть "Экспертиза" с реквизитом "Договор" типа СправочникСсылка.Договоры

Необходимо чтобы из формы элемента справочника "Договоры" открывалась форма списка справочника "ОПО" с отобранными элементами, у которых в табличной части присутствует этот договор.

Если сделать отбор в форме списка "ОПО" (без вызова формы из другой формы), то всё работает:
Цитировать
   Список.Отбор.Элементы.Очистить();
   УсловиеОтбора = Список.Отбор.Элементы.Добавить(тип("ЭлементОтбораКомпоновкиДанных"));
   УсловиеОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Экспертиза.Договор");
   УсловиеОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   УсловиеОтбора.ПравоеЗначение = ДоговорДляОтбора; //переменная, содержащая ссылку на договор
   УсловиеОтбора.Использование = Истина;
   ЭтаФорма.ОбновитьОтображениеДанных();

Если же делать из формы списка справочника "Договоры", то беда беда. Вызываемая форма списка оказывается пустой:
Цитировать
 
   ФормаСпискаОПО = ПолучитьФорму("Справочник.ОПО.ФормаСписка");
   ТекОтбор = ФормаСпискаОПО.Список.Отбор.Элементы;
   ТекОтбор.Очистить();
   УсловиеОтбора = ТекОтбор.Добавить(тип("ЭлементОтбораКомпоновкиДанных"));
   УсловиеОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Экспертиза.Договор");
   УсловиеОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   УсловиеОтбора.ПравоеЗначение = Объект.Наименование; 
   УсловиеОтбора.Использование = Истина;
   ФормаСпискаОПО.ОбновитьОтображениеДанных();   
   ФормаСпискаОПО.Открыть();
   

 Или может есть какие-то другие способы?
Заранее спасибо!

 УсловиеОтбора.ПравоеЗначение = Объект.Наименование;   - вот это что???? у тебя равно должно быть ссылке

Оффлайн matroskin_yanao

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-01-13
  • Сайт: 
  • Профессия: Ученик 1С
В данном случае это код на форме элемента справочника "Договоры".
Объект.Наименование - это ссылка на реквизит "Наименование" справочника "Договоры". Или я ошибаюсь?

   ФормаСпискаОПО = ПолучитьФорму("Справочник.ОПО.ФормаСписка");
   ТекОтбор = ФормаСпискаОПО.Список.Отбор.Элементы;
   ТекОтбор.Очистить();
   УсловиеОтбора = ТекОтбор.Добавить(тип("ЭлементОтбораКомпоновкиДанных"));
   УсловиеОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Экспертиза.Договор");
   УсловиеОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   УсловиеОтбора.ПравоеЗначение = Объект.Наименование; 
   УсловиеОтбора.Использование = Истина;
   ФормаСпискаОПО.ОбновитьОтображениеДанных();   
   ФормаСпискаОПО.Открыть();

Причем в Настройке списка формы отображается не ПолеКомпоновкиДанных("Экспертиза.Договор"), а ПолеКомпоновкиДанных("Владелец");

Последний раз редактировалось: matroskin_yanao; 09 Мар 2015, 07:38

Оффлайн temrmal

  • ***
  • Сообщений: 126
  • РЕПУТАЦИЯ: 15
  • КПД: 12%
  • Регистрация: 2011-11-10
  • Сайт: 
  • Профессия: Программист 8.1
Договор у вас в экспертизе тип имеет ССЫЛОЧНЫЙ!!! А приравниваете к строке!!!

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
1) Есть справочник "Договоры".
2) Есть справочник "ОПО" (опасные производственные объекты). Владельцем для него является справочник "Договоры".
У вас уже однозначно определена связь договор<->ООП. Зачем еще тулить в ООП табличную часть и там выбирать этот же договор - тайна за семью печатями.


Оффлайн matroskin_yanao

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-01-13
  • Сайт: 
  • Профессия: Ученик 1С
1) Есть справочник "Договоры".
2) Есть справочник "ОПО" (опасные производственные объекты). Владельцем для него является справочник "Договоры".
У вас уже однозначно определена связь договор<->ООП. Зачем еще тулить в ООП табличную часть и там выбирать этот же договор - тайна за семью печатями.
К примеру. У меня есть объект экспертизы. Тот же самый стреловой кран. Раз в три года он проходит экспертизу промышленной безопасности. Каждый раз по новым договорам. Все данные по экспертизам сведены в табличную часть по годам соответственно.

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
1) Есть справочник "Договоры".
2) Есть справочник "ОПО" (опасные производственные объекты). Владельцем для него является справочник "Договоры".
У вас уже однозначно определена связь договор<->ООП. Зачем еще тулить в ООП табличную часть и там выбирать этот же договор - тайна за семью печатями.
К примеру. У меня есть объект экспертизы. Тот же самый стреловой кран. Раз в три года он проходит экспертизу промышленной безопасности. Каждый раз по новым договорам. Все данные по экспертизам сведены в табличную часть по годам соответственно.
Вы однозначно пишите, что ООП подчинен Договору,Один объект имеет только одного владельца.
Каждый раз по новым договорам.
Сколько объектов ООП? Вы что каждый раз меняете подчинение? или не очень понимает что такое "Владелец".



Теги:
 

"Уникальность" строки таблиной части документа

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 1932
Последний ответ 20 Авг 2014, 12:22
от has
Работа с табличной частью в документе. Или Работа с ШАПКОЙ документа

Автор gorbach178500Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 3043
Последний ответ 30 Сен 2011, 20:01
от gorbach178500
УТ 11ред. Есть ли возможность указать серии в заказе покупателя?( в табл. части)

Автор tsaboevРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 3077
Последний ответ 02 Июл 2012, 13:11
от totutotam
Применять ПСН относительно доходов, полученных от субаренды части нежилого помещения, нельзя

Автор newsРаздел Новости

Ответов: 0
Просмотров: 664
Последний ответ 23 Июн 2015, 14:25
от news
отчет с анализом данных таб.части и документа + сумма.Расходы из Остатки.Обороты

Автор ilnur75Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 241
Последний ответ 18 Май 2017, 19:12
от ilnur75

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
160 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
35 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
27 Сообщений
Golickoff Golickoff
27 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 161
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal