Отбор

1. user1008893 12.11.18 11:34 Сейчас в теме
Подскажите пожалуйста..
Как на такой форме правильно сделать отбор по контрагенту и фирме?
Данные табличное поле,а тип значения Справочник
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
45. independ 1520 12.11.18 14:29 Сейчас в теме
(41) вот так, пример с УТ 10.3

Процедура ОрганизацияПриИзменении(Элемент)
	УстановитьОтбор();
КонецПроцедуры

Процедура КонтрагентПриИзменении(Элемент)
	УстановитьОтбор();
КонецПроцедуры

Процедура УстановитьОтбор()
	ТабличноеПоле1.Отбор.Сбросить();
	ТабличноеПоле1.Отбор.Организация.ВидСравнения=ВидСравнения.Равно;
	ТабличноеПоле1.Отбор.Организация.Значение=Организация;
	ТабличноеПоле1.Отбор.Организация.Установить();
	ТабличноеПоле1.Отбор.Владелец.ВидСравнения=ВидСравнения.Равно;
	ТабличноеПоле1.Отбор.Владелец.Значение=Контрагент;
	ТабличноеПоле1.Отбор.Владелец.Установить();
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
21. independ 1520 12.11.18 13:35 Сейчас в теме
(1) может стоит использовать динамический список вместо Табличного поля, и отборы прикрутить стандартные.
YannikAlx; +1 Ответить
23. YannikAlx 43 12.11.18 13:43 Сейчас в теме
(21) Безусловно это самый простой вариант!
Но мы не знаем к сожалению всех нужд автора...
Может он запросы 1С отрабатывает... ;-)
25. spacecraft 12.11.18 13:46 Сейчас в теме
(23) вот вот, что и требовалось доказать. Найдите мне "ДинамическийСписок" на ОФ.
29. YannikAlx 43 12.11.18 13:57 Сейчас в теме
(25) Что доказать? Что вы скандалист?
Так уже всем ясно кажется...
Да, я не доглядел, что у автора ОФ , тем более это не моя идея была. (Хотя с динамическими списками все очень было красиво ).

Вам же абы устроить ГА-ГА-ГА.
Займитесь делом , а?
Может какую полезную людям обработку хоть сварганьте, или пустота в голове?
30. independ 1520 12.11.18 13:59 Сейчас в теме
Кстати на 1-м скриншоте и есть динамический список на ОФ, так что нужно использовать отборы
31. user1008893 12.11.18 13:59 Сейчас в теме
32. independ 1520 12.11.18 14:01 Сейчас в теме
41. user1008893 12.11.18 14:17 Сейчас в теме
(32)что то не получается,может что не так пишу?
Процедура ФирмаПриИзменении(Элемент)
	СправочникСписок.Отбор.Сбросить();
СправочникСписок.Отбор.Фирма.ВидСравнения=ВидСравнения.Равно;
СправочникСписок.Отбор.Фирма.Значение=ЭлементыФормы.Фирма;
СправочникСписок.Отбор.Фирма.Установить();
КонецПроцедуры


{Обработка.ОтборПоДоговорам.Форма.Форма.Форма(45)}: Ошибка при установке значения атрибута контекста (Значение)
СправочникСписок.Отбор.Фирма.Значение=ЭлементыФормы.Фирма;
по причине:
Неверный тип значения
45. independ 1520 12.11.18 14:29 Сейчас в теме
(41) вот так, пример с УТ 10.3

Процедура ОрганизацияПриИзменении(Элемент)
	УстановитьОтбор();
КонецПроцедуры

Процедура КонтрагентПриИзменении(Элемент)
	УстановитьОтбор();
КонецПроцедуры

Процедура УстановитьОтбор()
	ТабличноеПоле1.Отбор.Сбросить();
	ТабличноеПоле1.Отбор.Организация.ВидСравнения=ВидСравнения.Равно;
	ТабличноеПоле1.Отбор.Организация.Значение=Организация;
	ТабличноеПоле1.Отбор.Организация.Установить();
	ТабличноеПоле1.Отбор.Владелец.ВидСравнения=ВидСравнения.Равно;
	ТабличноеПоле1.Отбор.Владелец.Значение=Контрагент;
	ТабличноеПоле1.Отбор.Владелец.Установить();
КонецПроцедуры
Показать
47. user1008893 12.11.18 14:42 Сейчас в теме
(45)фирма выбирается и работает,а контрагент,что то ошибка выходит Поле объекта не обнаружено (Контрагент)
СправочникСписок.Отбор.Контрагент.ВидСравнения=ВидСравнения.Равно;

Процедура ФирмаПриИзменении(Элемент)
	УстановитьОтборФирма();

КонецПроцедуры

Процедура КонтрагентПриИзменении(Элемент)
	    УстановитьОтборКонтрагент();

КонецПроцедуры

Процедура УстановитьОтборФирма()
СправочникСписок.Отбор.Сбросить();
СправочникСписок.Отбор.Фирма.ВидСравнения=ВидСравнения.Равно;
СправочникСписок.Отбор.Фирма.Значение=Фирма;
СправочникСписок.Отбор.Фирма.Установить();
КонецПроцедуры
Процедура УстановитьОтборКонтрагент()
	СправочникСписок.Отбор.Контрагент.ВидСравнения=ВидСравнения.Равно;
СправочникСписок.Отбор.Контрагент.Значение=Контрагент;
СправочникСписок.Отбор.Контрагент.Установить();	
КонецПроцедуры
Показать
49. vadim1011985 100 12.11.18 14:45 Сейчас в теме
(47)
Процедура УстановитьОтборКонтрагент()
СправочникСписок.Отбор.Контрагент.ВидСравнения=ВидСравнения.Равно;
СправочникСписок.Отбор.Контрагент.Значение=Контрагент;
СправочникСписок.Отбор.Контрагент.Установить();
КонецПроцедуры


у договора нет реквизита Контрагент есть реквизит Владелец
48. user1008893 12.11.18 14:44 Сейчас в теме
(45)а все поменяла на владелец))
26. user1008893 12.11.18 13:50 Сейчас в теме
(21)можно и без запроса,мне просто надор вывести все договора по отбору
27. spacecraft 12.11.18 13:53 Сейчас в теме
(26) покажите свойства реквизита формы ТабличноеПоле1. На закладке Реквизиты
28. user1008893 12.11.18 13:56 Сейчас в теме
(27)мне надо вот в таком сделать отбор
Прикрепленные файлы:
33. YannikAlx 43 12.11.18 14:02 Сейчас в теме
(28) Так у вас заполнилось табличное поле то?
Добавьте реквизиты в табличную часть и в запрос поля и соответствующие из справочника Договоры
И все поля у вас заполнятся
34. user1008893 12.11.18 14:04 Сейчас в теме
(33)все у меня заполнилось,но тк не пойдет
36. vadim1011985 100 12.11.18 14:11 Сейчас в теме
(34) можно немного упростить задачу. У табличного поля есть свойство Связь по владельцу , если там указать поле контрагент , то останется сделать только отбор по фирме
39. YannikAlx 43 12.11.18 14:14 Сейчас в теме
(34) Уточвните почему не пойдет, Что не так , если все заполнилось?
40. user1008893 12.11.18 14:16 Сейчас в теме
(39)Надо чтобы вид был как в справочнике,и при открытии сразу выводились все данные
42. YannikAlx 43 12.11.18 14:18 Сейчас в теме
(40) Я же вам и говорю - создайте в табличной части реквизиты - все которые вы хотите увидеть как в справочнике. И в запросе получите их из справочника. Все на самом деле прозрачно и очень просто , когда поймете этот простой механизм.
43. user1008893 12.11.18 14:19 Сейчас в теме
(42)так и сделала,сказали не пойдет
44. YannikAlx 43 12.11.18 14:23 Сейчас в теме
(43) Ясно.
Это типа тестовое задание?
Тогда может условия озвучите?
46. user1008893 12.11.18 14:30 Сейчас в теме
(44)Вывести все договора и установить отбор по фирме и контрагенту
50. YannikAlx 43 12.11.18 14:50 Сейчас в теме
(46) Ясно , то есть сначала необходимо увидеть все , а по мере изменений реквизитов - сокращение в табличной части?
Все же и это можно реализовать также в предложенном мной варианте.
У вас текст процедуры с запросом в какой Процедуре лежит?

Запрос немного меняем...
Я правда не знаю что со справочником Фирмы - проверьте правильно ли я его указал


ВЫБРАТЬ  
	Договоры.Ссылка КАК Ссылка,
	Договоры.Наименование КАК Наименование,
	Договоры.Контрагент КАК Контрагент
ИЗ
	Справочник.Договоры КАК Договоры
ГДЕ
	&Контрагент = Значение(Справочник.Контрагенты.ПустаяСсылка) ИЛИ Договоры..Владелец.Ссылка= &Контрагент
И     &Фирма= Значение(Справочник.Фирмы.ПустаяСсылка) ИЛИ Договоры..Фирма = &Фирма
Показать

Этот запрос выдаст вам все что вам необходимо.
Если будут пустые параметры - выдаст все договоры, а по мере заполнения &Контрагент, &Фирма будет выдавать все меньше.
Его просто необходимо перезапускать при изменении полей с Контрагентом и Фирмой
2. YannikAlx 43 12.11.18 12:02 Сейчас в теме
Ну так после изменения Реквизита Контрагент - заполняйте Табличноеполе1 свое.
Данными из запроса обычно с параметром &Контрагент/
3. user1008893 12.11.18 12:05 Сейчас в теме
(2)у меня вот такой запрос есть
Процедура НайтиНажатие(Элемент)
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Договоры.Ссылка
	|ИЗ
	|	Справочник.Договоры КАК Договоры
	|ГДЕ
	|Договоры.Владелец.Ссылка = &Контрагент
	|	И Договоры.Фирма = &Фирма";
	Запрос.УстановитьПараметр("Контрагент",Контрагент);
	Запрос.УстановитьПараметр("Фирма",Фирма);
	результатЗапроса=Запрос.Выполнить().Выгрузить();
	ЭлементыФормы.ТабличноеПоле1.Значение=результатЗапроса;
	ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
	
	
	
КонецПроцедуры
Показать
4. YannikAlx 43 12.11.18 12:18 Сейчас в теме
Выгружать нужно не в элементформы а в реквизит и создавать колонки ни к чему...
5. user1008893 12.11.18 12:24 Сейчас в теме
(4)
Выгружать нужно не в элементформы а в реквизит

Не поняла
6. YannikAlx 43 12.11.18 12:27 Сейчас в теме
У вас есть реквизит Табличноеполе1
Вот в него и выгружайте результат запроса
В элементы не грузят ничего...
7. YannikAlx 43 12.11.18 12:29 Сейчас в теме
Примерно так
Объект.Табличноеполе1.Загрузить(Запрос.Выполнить().Выгрузить());
Но я не знаю структуры ваших данных
8. user1008893 12.11.18 12:33 Сейчас в теме
(7)
Объект.Табличноеполе1.Загрузить(Запрос.Выполнить().Выгрузить());

Метод объекта не обнаружен (Загрузить)
9. user1008893 12.11.18 12:37 Сейчас в теме
(7)сделала вот так,но отбор не работает
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Договоры.Ссылка
	|ИЗ
	|	Справочник.Договоры КАК Договоры
	|ГДЕ
	|Договоры.Владелец.Ссылка = &Контрагент
	|	И Договоры.Фирма = &Фирма";
	Запрос.УстановитьПараметр("Контрагент",Контрагент);
	Запрос.УстановитьПараметр("Фирма",Фирма);
		ЗаполнитьЗначенияСвойств(ТабличноеПоле1,Запрос.Выполнить().Выгрузить());
Показать
10. user1008893 12.11.18 12:44 Сейчас в теме
у меня же нет табличной части
11. YannikAlx 43 12.11.18 12:47 Сейчас в теме
У вас должна быть табличная часть в обработке
с реквизитом табличной части "Ссылка" - ибо так вы в запросе указали
и вот в нее можно загружать результат выгрузки запроса предложенным выше способом.

Кроме того проверяйте чтобы не было пустыми значения параметров запроса.
Вы проверили в отладке результат выгрузки не пустой?
12. user1008893 12.11.18 12:54 Сейчас в теме
(11)так?
Да проверяла,не пустой
Прикрепленные файлы:
13. spacecraft 12.11.18 12:57 Сейчас в теме
(12) внимательно посмотрите реквизиты ТабличноеПоле1. Они не соответствует тому, что пытаетесь загрузить. Должны имена полей и типы соответствовать.
17. YannikAlx 43 12.11.18 13:19 Сейчас в теме
(13) Вам поговорить не с кем?
Где вы увидели несоответствующие реквизиты-то?
Тем более что все работает ;-))
18. spacecraft 12.11.18 13:22 Сейчас в теме
(17) если вы невнимательны, то это ваши проблемы.
Смотрите скрин в шапке. Там ТабличноеПоле1 и даже видна часть реквизитов этого поля. Вот и нужно в запросе получить эти данные и загрузить в реквизит формы ТабличноеПоле1.
19. YannikAlx 43 12.11.18 13:28 Сейчас в теме
(18) Вы снова путаете мягкое с теплым!
В шапке одно, в (12), про которое вы пытаетесь встревать совсем другое!!
Может вы научитесь быть внимательным когда-нибудь?
Картинка в шапке ДАВНО неактуальна, ибо ушли от того механизма...
20. spacecraft 12.11.18 13:31 Сейчас в теме
(19) это вы пытаетесь увести в сторону. Приплети Табличную часть.
Нужно же просто в запросе получить нужные данные с именами и типами соответствующими реквизитам ТабличноеПоле1 и загрузить в реквизит формы ТабличноеПоле1. Все.
22. YannikAlx 43 12.11.18 13:39 Сейчас в теме
(20) Если вы такой Умный, то что ж нету у вас ни одной живой обработки на сайте?
Или вы тут просто потрепаться да поскандалить?
Адреналин потратить?
Польза реальная от вас нулевая к сожалению....
А мой совет работает у человека и не только этот совет...
24. spacecraft 12.11.18 13:44 Сейчас в теме
(22) в Москву из Питера можно и через Америку попасть. Только не оптимально.
Чем мой совет в (20) не правильный и польза нулевая?
35. YannikAlx 43 12.11.18 14:10 Сейчас в теме
(24) Польза нулевая потому, что после вашего появления в этой теме начался бардак!
Оптимально конечно писать писать писать комментарии и Ничего самому не делать...
Это ж доводить до ума надо, чтоб заработало.... Тут ляпнул и в кусты...
38. vadim1011985 100 12.11.18 14:12 Сейчас в теме
(35) Так от Вас обоих пользы нет , либо помогаете либо идете в другую тему выяснять личные отношения
37. YannikAlx 43 12.11.18 14:12 Сейчас в теме
(20) Я эту рекомендацию дал еще в (2) посте и если бы вы не устроили тут бардак , вопрос давно решился бы
14. YannikAlx 43 12.11.18 13:01 Сейчас в теме
Так если вы выложили свою табличную часть на форму , то после загрузки в нее данных , они сразу появятся на форме
15. user1008893 12.11.18 13:05 Сейчас в теме
(14)да,так и есть,все работает. Но данные надо выводить вот такие как в табличном поле
Так то я могла и просто в список значений вывести
16. YannikAlx 43 12.11.18 13:17 Сейчас в теме
И в чем проблемы? Все данные получайте в запросе, только реквизиты создайте у табличного поля соответствующие
alex-l19041; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот