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


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

Как выбрать наибольшее значение из ТЗ

Как выбрать наибольшее значение из ТЗ

Как выбрать наибольшее значение из ТЗ

ИстДанных = Новый ОписаниеИсточникаДанных(ТЗ);
ИстДанных.Колонки.Кол.Итог = "Максимум(Кол)" ;
ПостроительЗапроса = Новый ПостроительЗапроса; 
ПостроительЗапроса.ИсточникДанных = ИстДанных; 
Результат = ПостроительЗапроса.Результат; // тип РезультатЗапроса     
 
ТЗРез = Результат.Выгрузить();
МаксКол = ТЗРез[0].Кол;
Добавить комментарий

Раскрасить даты календаря

Процкдура раскрашивает даты в календаре

календарь дата

Процедура ПроизводственныйКалендарьПриВыводеПериода(Элемент, ОформлениеПериода)
	Попытка 
		МассивДат = ПоискДатВРегистреСведениийДатыКурсов ();
		Для Каждого ДатаПериода Из ОформлениеПериода.Даты Цикл
			Если МассивДат.Найти(ДатаПериода.Дата) <> Неопределено Тогда
				ДатаПериода.ЦветФона = webЦвета.БледноЗеленый;
			КонецЕсли;
			Если ДеньНедели(ДатаПериода.Дата)>=6 Тогда
				ДатаПериода.ЦветТекста = webЦвета.Красный; 
			КонецЕсли;
		КонецЦикла;
	Исключение
	КонецПопытки;
КонецПроцедуры
Добавить комментарий

Программное открытие отчета или обработки из справочника "ВнешниеОбработки"

Функция открывает внешний отчет или обработку из справочника "ВнешниеОбработки", нужно передать только имя обработки.

отчет обработка внешний программно

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

Запрет выгрузки в КД по дате запрета редактирования

ПередКонвертациейОбъекта, глобальное событие

КД Дата запрета

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

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

УФ СКД

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

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

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

кириллица

Добавил: 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 = 'Подробн ости см. в Журнале регистрации.'"));
Добавить комментарий

TurboConf

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

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

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