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

Когда в базе скапливается много информации – проще все данные хранить в регистрах – место существенно экономится и файловые вариант 1Ски не так сильно распухает. Встает вопрос – как работать с регистром сведений в 1С, если записей порядка нескольких миллионов. Запросы ко всем записям подвисают. Поэтому эффективней подбирать нужное количество записей и обрабатывать. Как осуществить подбор записей регистра сведений в табличное поле на форме обработки. Привожу довольно топорный код – желающие могут его доработать.

Кнопка Подбор на форме обработки:

Процедура КоманднаяПанель2Подбор(Кнопка)
	
	ФормаВыбора = РегистрыСведений.Курсы.ПолучитьФорму("ФормаСписка");
	ФормаВыбора.ВладелецФормы = ЭтаФорма;
	//ФормаВыбора.Открыть();
	ФормаВыбора.РежимВыбора = Истина;
	ФормаВыбора.ЗакрыватьПриЗакрытииВладельца = Истина;
	ФормаВыбора.ЗакрыватьПриВыборе = Истина;
 	ВыбранныйЭлемент = ФормаВыбора.ОткрытьМодально();
	Для Каждого Эл Из ВыбранныйЭлемент.Домен Цикл
		Стр = Домены.Добавить();
		Стр.Домен = Эл.АдресСайта;
	КонецЦикла;

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

Далее в самой форме списка регистра сведений добавляем следующую процедуру выбора:

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

	Стр=Новый Структура;
    Стр.Вставить("Домен",Элемент.ВыделенныеСтроки);
    //Стр.Вставить("Коэффициент",Элемент.ТекущиеДанные.Коэффициент);
    ОповеститьОВыборе(Стр);
    СтандартнаяОбработка=Ложь;
КонецПроцедуры
 

Т.е. работает таким образом – нажали подбор, открылся список регистра сведений, выделили несколько строк, нажали ввод – строки влетели в табличное поле на форме обработки.

В типовых конфах можно смотреть как сделана КонтактаяИнформация – там по цивильней все выглядит.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>