Шаблоны кода 1С


Добавить новый Назад

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

УФ СКД

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

Поиск кириллицы в строке

Ищет кириллицу в строке.

кириллица

Добавил: Dmitry Zhurbenko
Функция ПоискКириллицы(Текст) Экспорт;
Для i=1040 по 1103 цикл
	Результат = Найти (Текст, Символ(i));
	Если Результат>0 Тогда
		Возврат Истина;
	КонецЕсли; 
КонецЦикла;
Возврат Ложь;

КонецФункции;
Добавить комментарий

транслитерация

транслитерация

Добавил: Dmitry Zhurbenko
Функция ЗаменитьСимволы (Источник,Текст,Замена) Экспорт
Результат = Текст;
Для Сч = 1 По СтрДлина(Источник) Цикл
Результат = СтрЗаменить(Результат,Сред(Источник,Сч,1),Сред(Замена,Сч,1));
КонецЦикла;
Возврат Результат;    
КонецФункции 

Функция Транслитерация(Знач Слово) Экспорт
Слово = НРег(Слово);
Слово=СтрЗаменить(Слово,"ш","sh");
Слово=СтрЗаменить(Слово,"щ","shh");
Слово=СтрЗаменить(Слово,"ж","zh");
Слово=СтрЗаменить(Слово,"ц","ts");
Слово=СтрЗаменить(Слово,"ь","'");
Слово=СтрЗаменить(Слово,"ъ", Символ(34)); //двойная кавычка
Слово=СтрЗаменить(Слово,"ч","ch");
Слово=СтрЗаменить(Слово,"её","yeyo");
Слово=СтрЗаменить(Слово,"ёе","yoye");
Слово=СтрЗаменить(Слово,"я","ya");
Слово=СтрЗаменить(Слово,"ю","yu");
Слово=СтрЗаменить(Слово," - ","-");
Слово=СтрЗаменить(Слово," -","-");
Слово=СтрЗаменить(Слово,"- ","-");
Слово=СтрЗаменить(Слово," ","-");
Слово=ЗаменитьСимволы("абвгдезийклмнопрстуфыэ",Слово,"abvgdezijklmnoprstufye");
Возврат Слово;
КонецФункции
Добавить комментарий

Изменение формы справочника в зависимости от папки

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

Установка границы

Установка границы

Граница

Добавил: Александр
ПоследовательностьДляРегистрации = Последовательности.РасчетыПоПриобретениюОрганизации;
ПоследовательностьДляРегистрации.УстановитьГраницу(Новый МоментВремени(НачалоМесяца(НаДату)),Новый Структура("Организация",Организация));
ПоследовательностьДляРегистрации = Последовательности.РасчетыПоРеализацииОрганизации;
ПоследовательностьДляРегистрации.УстановитьГраницу(Новый МоментВремени(НачалоМесяца(НаДату)),Новый Структура("Организация",Организация));
Добавить комментарий

Запись в Журнал

Журнал регистрации

Проверка

Добавил: Александр
ИнформацияОбОшибке = ИнформацияОбОшибке();
ТекстСообщения = НСтр("ru = 'Ошибка при регистрации компоненты comcntr.'") + Символы.ПС;
ДобавитьСообщениеДляЖурналаРегистрации(НСтр("ru = 'Регистрация компоненты comcntr'"), "Ошибка", 
ТекстСообщения + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
ОбщегоНазначения.ЗаписатьСобытияВЖурналРегистрации(СообщенияДляЖурналаРегистрации);
Предупреждение(ТекстСообщения + НСтр("ru = 'Подробн ости см. в Журнале регистрации.'"));
Добавить комментарий

Дополнительные свойства

Изменение дополнительных свойств

8.2 ДопСвойства УТ 10.3

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

Значение полей в расшифровке СКД

Значение полей в расшифровке СКД

расшифровка СКД

&НаСервереБезКонтекста 
Функция ПолучитьЗначениеПоляРасшифровкиНаСервере(ИдентификаторРасшифровки, АдресДанныхРасшифровки)
	
    ДанныеРасшифровки = ПолучитьИзВременногоХранилища(АдресДанныхРасшифровки);
	ЭлементРасшифровки = ДанныеРасшифровки.Элементы[ИдентификаторРасшифровки];
	
	МассивРодителей = Новый Массив;
	МассивРодителей.Добавить(ЭлементРасшифровки.ПолучитьПоля());
	
	Родители = ЭлементРасшифровки.ПолучитьРодителей();
	ЗаполнитьМассивРодителей(МассивРодителей, Родители);
	
	Результат = Новый Соответствие;
	Для Счетчик = 1 по МассивРодителей.Количество() Цикл 
		
		// Обойдем в обратном порядке, чтобы поставить условия в порядке группировок			
		ПоляКомпоновки = МассивРодителей[МассивРодителей.Количество() - Счетчик];
		Для каждого ПолеКомпоновки из ПоляКомпоновки Цикл
			
			//Если ПолеКомпоновки.Иерархия Тогда
			//	Продолжить;
			//КонецЕсли;	
			
			Результат.Вставить(ПолеКомпоновки.Поле, ПолеКомпоновки.Значение);
			
		КонецЦикла;	
		
	КонецЦикла;	
	
	Возврат Результат;
	
КонецФункции

&НаСервереБезКонтекста 
Процедура ЗаполнитьМассивРодителей(МассивРодителей, Родители)
	
	Для каждого Родитель из Родители Цикл
		
		Если ТипЗнч(Родитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
			МассивРодителей.Добавить(Родитель.ПолучитьПоля());
			
		ИначеЕсли ТипЗнч(Родитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
			
		КонецЕсли;	
		
		Родители = Родитель.ПолучитьРодителей();
		Если Родители.Количество() > 0 Тогда
			ЗаполнитьМассивРодителей(МассивРодителей, Родители);
		КонецЕсли;	
		
	КонецЦикла;	

КонецПроцедуры	
Добавить комментарий

Значение из буфера обмена

Возвращает текстовое значение буфера обмена

8.2

Добавил: Dmitry Zhurbenko
Функция ПолучитьТекстИзБуфераОбмена() Экспорт
  #Если Клиент Тогда
    Объект = Новый COMОбъект("htmlfile");
    Возврат Объект.ParentWindow.ClipboardData.Getdata("Text");
  #КонецЕсли
КонецФункции
Комментарии: 2

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

создает отбор в схеме компоновки данных

8.2

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

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

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

TurboConf

Удобный поиск шаблонов кода

прямо в Конфигураторе

Узнать подробнее