Как открыть регистр сведений программно с отбором?

1. polyakovyan 01.03.10 16:17 Сейчас в теме
Подскажите как открыть регистр сведений программно с отбором?если можно то конкретно как в модуле написать?
marku; megatrend; +2 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alexk-is 6534 01.03.10 20:37 Сейчас в теме
(1) Какая конфигурация? Какой регистр сведений? Отбор по каким измерениям?
edu; Fynjy2; +2 1 Ответить
3. polyakovyan 02.03.10 08:40 Сейчас в теме
1.Создан новый регистр ИсторияОсновнойМенеджерКонтрагента
2. Период,Контрагент,ресурс Пользователь
3.в форме элемента Контрагента создна кнопка История где устанавливается основной менеджер

вот при нажатии этой кнопки хочется открывать регистр с отбором по контрагенту и пользователю

конфигурация УТ 10.3
4. alexk-is 6534 02.03.10 10:08 Сейчас в теме
Наверное, как-то так...
Форма = РегистрыСведений.ИсторияОсновнойМенеджерКонтрагента.ПолучитьФормуСписка();
ОтборПоСписку = Форма.РегистрСведенийСписок.Отбор;
ОтборПоКонтрагенту = ОтборПоСписку.Контрагент;
ОтборПоКонтрагенту.Использование = Истина;
ОтборПоКонтрагенту.Значение = Ссылка; // Ссылка на контрагента
ОтборПоКонтрагенту.ВидСравнения = ВидСравнения.Равно;
ОтборПоПользователю = ОтборПоСписку.Пользователь;
ОтборПоПользователю.Использование = Истина;
ОтборПоПользователю.Значение = ОсновнойМенеджер;
ОтборПоПользователю.ВидСравнения = ВидСравнения.Равно;
Форма.Открыть();
Показать
edu; megatrend; armeec; tatoshka0403; sasha12369; user712426; OksDallas; user895546; davdykin; adhocprog; FiZikus; Brook; coollerinc; +13 2 Ответить
5. Borisych 503 02.03.10 15:05 Сейчас в теме
Еще можно запретить отключать эти отборы
6. Borisych 503 02.03.10 15:11 Сейчас в теме
один из вариантов:
ЭлементОтбора (FilterItem)
Установить (Set)
Синтаксис:
Установить(<Значение>, <Использование>) 
Параметры:
<Значение> (необязательный)
Тип: Произвольный. Значение сравнения. 
<Использование> (необязательный)
Тип: Булево. Признак использования отбора по значению.
Значение по умолчанию: Истина 
Описание:
Устанавливает значение отбора и флаг использования. При выполнении данного метода вид сравнения устанавливается в значение Равно. 
Примечание:
Метод имеет смысл применять, если необходимо установить и значение и использование отбора. 
Пример:
СписокКурсыВалют.Отбор.Валюта.Установить(Ссылка);
Показать
user712426; Insanity; +2 Ответить
7. burni4 87 16.05.16 13:01 Сейчас в теме
Вдруг кому пригодится) вот так работает на управляемых формах, процедура НаКлиенте

Парам = Новый Структура; 
    Отбор = Новый Структура; 
    Отбор.Вставить("Сырьё", ПолучаемСырьёДляРегистраСведений(Элементы.Список.ТекущиеДанные.Ссылка)); // то, по чему нужно искать
    Парам.Вставить("Отбор", Отбор); 
     
    ОткрытьФорму("РегистрСведений.ПоследниеЦены.ФормаСписка", Парам);
kaaasteeen; dbachinsky; Mechanik21; tdml; RibD; magv; TaRomashova; tivanitsky; AZel84; sergioevans; seperblunt; ArchAhper; yaroslav.artem; AlekSo; papche; user1226763; user809597; Enziger; kamsky93; AlexandrDmC; DrAku1a; smit1c; ncerber; johny1987; d4rkmesa; Andy_NTG; user659168_xec8787; pbahushevich; sasha12369; izidakg; jaroslav.h; user712426; e-9; AKunitsyn; MonteCriZto; wauri; alexovik; SeerRM; o6opkot; alina0587; Gendelf; zba; xiru; el-gamberro; slitov; uras0vd; pavel_pss; alexn62rus; одинэсник; adhocprog; Огонек; AngV; config; swiss-garant; EMelihoff; +55 Ответить
8. pavel_pss 289 23.11.17 22:23 Сейчас в теме
11. 1C_Casual 162 02.04.21 15:40 Сейчас в теме
(7) Спасибо, позволил себе немного оптимизировать:
Отбор = Новый Структура("ИмяИзмерения", ЗначениеИзмерения);  
ОткрытьФорму("РегистрСведений.ИмяРегистра.ФормаСписка", Новый Структура("Отбор", Отбор));
fuser; user1666798; SQV0; baracuda; +4 1 Ответить
12. Новичок1с 4 26.07.21 12:45 Сейчас в теме
(11)
ОткрытьФорму("РегистрСведений.ИмяРегистра.ФормаСписка", Новый Структура("Отбор", Отбор));



А как быть, если документы в цикле создаются на сервере, а затем их необходимо показать, используя метод ОткрытьФорму, который работает только на клиенте.??

ВыгрузитьПретензия(ТабДок);     //выгружаем данные из запроса в ТЧ
ИзменениеТЧ(СоздатьДокИски); //Меняем некоторые реквизиты табличной части, а затем переходим в процедуру Создать Документы
	
	
	Если ОтборПретензия <> Неопределено Тогда  
		ОткрытьФорму("Документ.КУ_Претензия.ФормаСписка", Новый Структура("Отбор", ОтборПретензия));
	КонецЕсли; //Если ОтборПретензия <> Неопределено Тогда 
		
Показать
13. FatPanzer 26.07.21 12:56 Сейчас в теме
(12) Старт организовать на клиенте, отправить на сервер создание документов, вернуть на клиента массив ссылок на созданные документы.
14. Новичок1с 4 26.07.21 13:15 Сейчас в теме
(13)

А как вернуть вот это не понятно??
15. FatPanzer 26.07.21 13:21 Сейчас в теме
(14) Точно так же как и любая вызываемая функция возвращает результат.
16. Новичок1с 4 26.07.21 19:47 Сейчас в теме
(13)
Форму открыла.
А как установить отбор по дате?
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Дата", НачалоДня(ТекущаяДата()));

датаДок > ДатаНач и ДатаДок < Дата кон??
9. artkor 263 23.11.17 23:47 Сейчас в теме
В принципе, в БСП и в типовых конфигурациях 8.3 достаточно встроенных функций по работе с различного рода отборами, так что хорошим тоном будет не "изобретать свой велосипед", а использовать созданные функции.
Пример открытия подбора "списания денег" из платежного поручения с отбором:

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


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

	ГруппаИЛИ = Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаИЛИ.Представление = "";
	ГруппаИЛИ.ТипГруппы     = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
		БухгалтерскиеОтчетыКлиентСервер.ДобавитьОтбор(ГруппаИЛИ, "ДокументОснование", Объект.Ссылка, ВидСравненияКомпоновкиДанных.Равно);
		БухгалтерскиеОтчетыКлиентСервер.ДобавитьОтбор(ГруппаИЛИ, "ДокументОснование", ,ВидСравненияКомпоновкиДанных.НеЗаполнено);
		
	ГруппаИЛИ = Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаИЛИ.Представление = "";
	ГруппаИЛИ.ТипГруппы     = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
		БухгалтерскиеОтчетыКлиентСервер.ДобавитьОтбор(ГруппаИЛИ, "Контрагент", Объект.Контрагент, ВидСравненияКомпоновкиДанных.Равно);
		БухгалтерскиеОтчетыКлиентСервер.ДобавитьОтбор(ГруппаИЛИ, "Контрагент", ,ВидСравненияКомпоновкиДанных.НеЗаполнено);
		
	ГруппаИЛИ = Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаИЛИ.Представление = "";
	ГруппаИЛИ.ТипГруппы     = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
		БухгалтерскиеОтчетыКлиентСервер.ДобавитьОтбор(ГруппаИЛИ, "ДоговорКонтрагента", Объект.ДоговорКонтрагента, ВидСравненияКомпоновкиДанных.Равно);
		БухгалтерскиеОтчетыКлиентСервер.ДобавитьОтбор(ГруппаИЛИ, "ДоговорКонтрагента", ,ВидСравненияКомпоновкиДанных.НеЗаполнено);
		
	ФормаВыбора.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
	ФормаВыбора.Открыть()
Показать
Hexed; marku; fuser; InJey; PLAstic; ZeroSumGame; +6 Ответить
10. x_Slashman_x 16.11.18 14:09 Сейчас в теме
//Отбор = Новый Структура("Номенклатура", Элементы.Список.ТекущаяСтрока);
	Форма = ОткрытьФорму("РегистрСведений.ЗначенияТочкиЗаказа.ФормаСписка", ,ЭтаФорма);
	Форма.Отбор.Номенклатура.Установить(Элементы.Список.ТекущаяСтрока, Ложь);
	Форма.Отбор.Номенклатура.Использование = Истина;
	Форма.ЭлементыФормы.РегистрСведенийСписок.НастройкаОтбора.Номенклатура.Доступность = Ложь;
	Форма.Открыть();//Открываем форму

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

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