Публикации

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

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


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

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

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

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

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

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

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

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

Добавить отбор в списке, в пользовательских настройках

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

Открыть отчет с пользовательскими настройками

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

Запустить внешнее приложение

Выполняет запуск внешнего процесса, с оповещением и ожиданием результата
УФ
6 bolsun 30 4
&НаКлиенте
Процедура КомандаВыполнитьПрограмму(Команда)
	
	СтрокаЗапуска = "C:\Application.exe";
	
	НачатьЗапускПриложения(Новый ОписаниеОповещения("НачатьЗапускПриложенияЗавершение", ЭтотОбъект), СтрокаЗапуска,, Истина);
	
КонецПроцедуры  

&НаКлиенте
Процедура НачатьЗапускПриложенияЗавершение(КодВозврата, ДополнительныеПараметры) Экспорт 
    
    //Вставить обработку завершения выполнения
    
КонецПроцедуры

Инициализация компоновщика настроек, упр формы

Инициализация компоновщика настроек, упр формы, обработка, СКД
5 acsent 78 13
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
СхемаСКД = ОбработкаОбъект.ПолучитьМакет("СхемаСКД");
	
АдресСхемы = ПоместитьВоВременноеХранилище(СхемаСКД, УникальныйИдентификатор);
ИсточникДоступныхНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы);
	
КомпоновщикНастроек.Инициализировать(ИсточникДоступныхНастроек);
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаСКД.НастройкиПоУмолчанию);

Вернуть СКД (источник данных таблица значений)

Вернуть СКД в УФ
3 Андрей 23 4
функция вернутьКомпоновку(СхемаКомпоновкиДанных,ВнешниеНаборыДанных)
	Настройки 					= СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
	КомпоновщикМакета 			= Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки 			= КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки);
	ПроцессорКомпоновкиДанных 	= Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных);
	ТабДок 						= Новый ТабличныйДокумент; //этаФорма.птд1
	ПроцессорВывода 			= Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ТабДок);
	ПроцессорВывода.НачатьВывод();
	Пока Истина Цикл
		ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
		Если ЭлементРезультата = Неопределено Тогда
			Прервать;
		Иначе
			ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
		КонецЕсли;
	КонецЦикла;
	ПроцессорВывода.ЗакончитьВывод();
	//Результат.ПоказатьУровеньГруппировокСтрок(0)
	
	ТабДок.ОтображатьСетку 		= Ложь;
	ТабДок.ОтображатьЗаголовки 	= Ложь;
	ТабДок.ТолькоПросмотр 		= Истина;
	табДок.ПоказатьУровеньГруппировокСтрок(0);
	возврат ТабДок;
конецФункции  //функция вернутьКомпоновку(СхемаКомпоновкиДанных,ВнешниеНаборыДанных,квартал1 = "ХХ",год1 = "ХХХХ",квартал2 = "ХХ",год2 = "ХХХХ")

//************исполенение***************
Рез 			= Запрос.Выполнить().Выгрузить();
	  СхемаКомпоновкиДанных 		= обработкаОбъект.ЭтотОбъект.ПолучитьМакет("форма6и7кратко");
	ВнешниеНаборыДанных 		= Новый Структура;
	ВнешниеНаборыДанных.Вставить("рез",Рез);
	вернутьКомпоновку(СхемаКомпоновкиДанных,ВнешниеНаборыДанных).показать();

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

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

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

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

Особенность (грабля) при работе с Характеристиками через СКД

Испытываю некоторые сложности с формулировкой сути проблемы поэтому опишу свою user-story: В конфигурации БГУ 1.0 есть возможность детализировать аналитику планирования (кассового расхода) с помощью доп. бюджетной классификации: к некоторым счетам привяз... Читать дальше
SDV 26 5