Публикации

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

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


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

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

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

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

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

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

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

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

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

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

Программная обработка расшифровки отчета на СКД на обычных формах

Igozz 24 1 2
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
   Перем ВыполненноеДействие;

   // Запретим стандартную обработку расшифровки
 
    СтандартнаяОбработка = Ложь;

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

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


        Иначе
            
             // При других действиях - создадим новый отчет, откроем форму, сформируем отчет в ней
 
            Отчет = Отчеты[Метаданные().Имя].Создать();
            Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
            Форма = Отчет.ПолучитьФорму();
            Форма.ОбновитьОтчет();
            Форма.Открыть();

        КонецЕсли;
	КонецЕсли;
КонецПроцедуры

Диалог выбора каталога

Yuriy K. 18 2
 Режим = РежимДиалогаВыбораФайла.ВыборКаталога; 
ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); 
ДиалогОткрытия.Каталог = ""; 
ДиалогОткрытия.МножественныйВыбор = Ложь; 
ДиалогОткрытия.Заголовок = "Выберите каталог"; 

Если ДиалогОткрытия.Выбрать() Тогда 
	ПутьККаталогу = ДиалогОткрытия.Каталог; 
КонецЕсли;   

Диалог выбора файла

Стандартный диалог выбора файла
10 slavik 10 1
    Режим = РежимДиалогаВыбораФайла.Открытие; 
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); 
    ДиалогОткрытияФайла.ПолноеИмяФайла = ""; 
    Фильтр = "Текст(*.txt)|*.txt"; 
    ДиалогОткрытияФайла.Фильтр = Фильтр; 
    ДиалогОткрытияФайла.МножественныйВыбор = Ложь; 
    ДиалогОткрытияФайла.Заголовок = "Выберите файл"; 

    Если ДиалогОткрытияФайла.Выбрать() Тогда 
        ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла; 
    КонецЕсли;

Вызов формы подбора в управляемой форме

2 Андрей 23 4
	П = Новый Структура;
	ФормаВыбора = ПолучитьФорму("Документ.расходТовара.Форма.подбор",П,этаФорма);
	ФормаВыбора.Открыть();

Открытие формы с последующим вызовом формы завершения

Автор: HostHost

3 FastCode 37 5
ОткрытьФорму("Справочник.Сотрудники.Форма.ФормаЭлемента",,ЭтотОбъект,,,, Новый ОписаниеОповещения("ЗагрузитьИзExcelЗавершение", ЭтотОбъект), РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

Выбор записи по номеру из НЕПРОНУМЕРОВАННОЙ таблицы

Расчёт медианы числовых рядов запросом

Автор: ildarovich

FastCode 37 5
ВЫБРАТЬ
    0 КАК Х
ПОМЕСТИТЬ Бит

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    1
;
ВЫБРАТЬ
    NULL КАК Х
ПОМЕСТИТЬ Сдвиг
ИЗ
    Бит КАК Б0,
    Бит КАК Б1,
    Бит КАК Б2,
    Бит КАК Б3,
    Бит КАК Б4,
    Бит КАК Б5,
    Бит КАК Б6,
    Бит КАК Б7
ГДЕ
    Б0.Х + 2 * (Б1.Х + 2 * (Б2.Х + 2 * (Б3.Х + 2 * (Б4.Х + 2 * (Б5.Х + 2 * (Б6.Х + 2 * Б7.Х)))))) < 256 - &Номер
;
ВЫБРАТЬ
    Дано.Х КАК Х
ПОМЕСТИТЬ Дано
ИЗ 
&Дано КАК Дано
;
ВЫБРАТЬ ПЕРВЫЕ 2
    ВЗ.Х
ИЗ
    (ВЫБРАТЬ ПЕРВЫЕ 256
        ВЗ.Х
    ИЗ
        (ВЫБРАТЬ
            Сдвиг.Х
        ИЗ
            Сдвиг КАК Сдвиг
        
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
            Дано.Х
        ИЗ
            Дано КАК Дано) КАК ВЗ
    
    УПОРЯДОЧИТЬ ПО
        Х) КАК ВЗ

УПОРЯДОЧИТЬ ПО
    Х УБЫВ

Добавить элемент в обычную форму

Программное создание элемента в обычной форме
ПолеВвода = ЭлементыФормы.Добавить(Тип("ПолеВвода"), <НаименованиеЭлемента>, Истина, <Панель>);
ПолеВвода.Данные = <ПутьКДанным>;
ПолеВвода.Верх = <Верх>;
ПолеВвода.Высота = <Высота>;
ПолеВвода.Лево = <Лево>;
ПолеВвода.Ширина = <Ширина>;
ПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Лево, <КкомуПривязываемся>, <ККакойЕгоГранице>);
ПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Право, <КкомуПривязываемся>, <ККакойЕгоГранице>);
ПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Верх, <КкомуПривязываемся>, <ККакойЕгоГранице>);
ПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Низ, <КкомуПривязываемся>, <ККакойЕгоГранице>);

Заполнение реквизитов формы из ТЧ

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


&НаСервере
Процедура УстановитьЗначениеЭлемента(ИмяЭлемента,ЗначениеЭлемента)
	
	ПутьКДаннымЭлемента = ВернутьПутьКДаннымЭлемента(ИмяЭлемента);
	Если Лев(ПутьКДаннымЭлемента,7) = "Объект." Тогда
		
		ПутьКДаннымЭлемента = СтрЗаменить(ПутьКДаннымЭлемента,"Объект.","");
		Объект[ПутьКДаннымЭлемента] = ЗначениеЭлемента;
		
	Иначе
		
		ЭтаФорма[ПутьКДаннымЭлемента] = ЗначениеЭлемента;
		
	КонецЕсли;
	
КонецПроцедуры


&НаСервере
Процедура УстановитьЗначениеЭлементаТабличнойЧасти(ТЧИмя,ИмяЭлемента,ЗначениеЭлемента)

	ПутьКДаннымТЧ = ВернутьПутьКДаннымЭлемента(ТЧИмя);

	Если Лев(ПутьКДаннымТЧ,7) = "Объект." Тогда
		
		ПутьКДаннымТЧ = СтрЗаменить(ПутьКДаннымТЧ,"Объект.","");
		Если Объект[ПутьКДаннымТЧ].Количество() = 0 Тогда
			
			СтрокаТЧ = Объект[ПутьКДаннымТЧ].Добавить();
			СтрокаТЧ[ИмяЭлемента] = ЗначениеЭлемента;
			
		Иначе
			
			СтрокаТЧ = Объект[ПутьКДаннымТЧ].Получить(0);
			СтрокаТЧ[ИмяЭлемента] = ЗначениеЭлемента;
			
		КонецЕсли;
		
	Иначе
		
		Если ЭтаФорма[ПутьКДаннымТЧ].Количество() = 0 Тогда
			
			СтрокаТЧ = ЭтаФорма[ПутьКДаннымТЧ].Добавить();
			СтрокаТЧ[ИмяЭлемента] = ЗначениеЭлемента;
			
		Иначе
			
			СтрокаТЧ = ЭтаФорма[ПутьКДаннымТЧ].Получить(0);
			СтрокаТЧ[ИмяЭлемента] = ЗначениеЭлемента;
			
		КонецЕсли;
		
	КонецЕсли;

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

&НаСервере
Функция ВернутьПутьКДаннымЭлемента(ИмяЭлемента)

	Возврат Элементы[ИмяЭлемента].ПутьКДанным;

КонецФункции