Публикации

БСП
Разработки

Найдено результатов: 32


Отслеживание изменений отбора

изменение отбора, обработчик изменения отбора
2 DiKSer 11 2
//Подключаем обработчик изменения на отбор в данном случае у регистра сведений список при открытии- 
Процедура ПриОткрытии()
    ПодключитьОбработчикИзмененияДанных("РегистрСведенийСписок.Отбор", "ОбработкаОтбора",Истина);
	
	ОбработкаОтбора(Неопределено);
КонецПроцедуры

Процедура ОбработкаОтбора(Элемент)
	
    // Элемент - то что изменилось в Отборе - например Период.ВидСравнения
    // тут можно обработать изменения отбора 
		
КонецПроцедуры

Отбор по таблице значений

Отбор строк по таблице значений
1 gorenski 1
СтруктураОтбора = Новый Структура("Номенклатура,ХарактеристикаНоменклатуры", ЗначениеОтбора.Номенклатура, ЗначениеОтбора.ХарактеристикаНоменклатуры);
РезультатОтбора = ТаблицаЗначений.НайтиСтроки(СтруктураОтбора);
//Если РезультатОтбора.Количество() > 0 Тогда
//	СтрокаОтбора = РезультатОтбора[0];
//КонецЕсли;
Для каждого СтрокаОтбора Из РезультатОтбора Цикл
	
КонецЦикла;

Открыть форму выбора с отбором (УФ)

3 Артур 39 1 4
&НаКлиенте
Процедура КнопкаВыбрать(Команда)

    НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных;

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

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

    ПараметрыВыбора = Новый Структура;
    ПараметрыВыбора.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
    ПараметрыВыбора.Вставить("РежимВыбора",Истина);
    ПараметрыВыбора.Вставить("МножественныйВыбор",Истина);

    ОбработкаВыбора = Новый ОписаниеОповещения("ВыбратьДокументКонец", ЭтаФорма);

    ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыВыбора,
            ЭтаФорма, , , , ОбработкаВыбора);
КонецПроцедуры
 
&НаКлиенте
Процедура ВыбратьДокументКонец(Значение, ДопПараметры) Экспорт
    Если Значение = Неопределено Тогда ///Тут массив с выбранными документами получится 
        Возврат;
    КонецЕсли;
     
     
КонецПроцедуры

Перенести отбор СКД

Перенести отбор СКД из одного компоновщика в другой
2 acsent 83 1 14
Процедура ПеренестиОтбор(ОтборПриемник, ОтборИсточник)
	
	Для каждого ЭлементИсточник Из ОтборИсточник.Элементы Цикл
		
		Если ТипЗнч(ЭлементИсточник) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда
			
			Если ТипЗнч(ЭлементИсточник.ЛевоеЗначение) = Тип("ПолеКомпоновкиДанных") Тогда
			
				Если ОтборПриемник.ДоступныеПоляОтбора.НайтиПоле(ЭлементИсточник.ЛевоеЗначение) = Неопределено Тогда
					Продолжить;
				КонецЕсли;	
			
			КонецЕсли;
		
		КонецЕсли;	
		
		ЭлементПриемник = ОтборПриемник.Элементы.Добавить(ТипЗнч(ЭлементИсточник));
		ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник);
		
		Если ТипЗнч(ЭлементИсточник) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
			ПеренестиОтбор(ЭлементПриемник, ЭлементИсточник);
		КонецЕсли;	
		
	КонецЦикла;	
	
КонецПроцедуры

Создать отбор в скд

создает отбор в схеме компоновки данных
8.2
3 vxxsas 3 1
//очистка тек. отбора
КомпоновщикНастроек.Настройки.Отбор.Элементы.Очистить();

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

//очистим таб поле
ЭлементыФормы.Результат.Очистить();
//перекомпонуем результат
СкомпоноватьРезультат(ЭлементыФормы.Результат, ДанныеРасшифровки);

Изменение событий в отборе СКД

Изменение событий в отборе СКД (обычные формы)
3 acsent 83 1 14
ЭлементыФормы.Отбор.Колонки.ПравоеЗначениеДляКраткогоОтображенияЭлемента.ЭлементУправления.УстановитьДействие("НачалоВыбора", Новый Действие("ОтборНачалоВыбора"));

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

Открытие формы выбора с отбором

Приведен пример открытия формы выбора с отбором по контрагенту и по периоду, как для управляемых форм так и для обычных.
Для открытия форм следует применять метод глобального контекста ОткрытьФорму (при использовании версии платформы 1С:Предприятие 8.2 и более ранних версий - также ОткрытьФормуМодально). Применение альтернативного способа, с получением формы и ее последующим... Читать дальше
1 Razlagutt 4

Установить отбор пользовательских настроек динамического списка

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

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

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

Связанные документы

Поиск по критериям отбора связанных документов по ссылке ВыбДок - документ для которого ищем связные
6 ROXy 24 1 2
СвязанныеДокументы = КритерииОтбора.СвязанныеДокументы.Найти(ВыбДок);
Для Каждого ТекСвязанныйДокумент из СвязанныеДокументы Цикл
Сообщить(ТекСвязанныйДокумент);
КонецЦикла;

Остатки по регистру накопления при отборе по реквизиту регистратора

Добрый день! При добавлении отбора по реквизиту регистратора в запросе или например "фильтрация" регистратора по типу документа (регистратор ссылка Документ....). Как при этом правильно расчитать начальные и конечные остатки? При добавлении отбора он сумир... Читать дальше