Приоритеты оплаты / Модуль менеджера

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

// Определяет настройки начального заполнения элементов
//
// Параметры:
//  Настройки - Структура - настройки заполнения:
//   * ПриНачальномЗаполненииЭлемента - Булево - Если Истина, то для каждого элемента будет
//      вызвана процедура индивидуального заполнения ПриНачальномЗаполненииЭлемента.
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
	
	Настройки.ПриНачальномЗаполненииЭлемента = Истина;
	
КонецПроцедуры

// Вызывается при начальном заполнении справочника.
//
// Параметры:
//  КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций.
//  Элементы   - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов
//                                 справочника.
//  ТабличныеЧасти - Структура - Ключ - Имя табличной части объекта.
//                               Значение - Выгрузка в таблицу значений пустой табличной части.
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
	
	Элемент = Элементы.Добавить();
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Высокий'", КодыЯзыков); // @НСтр-2
	Элемент.РеквизитДопУпорядочивания = 1;

	Элемент = Элементы.Добавить();
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Средний'", КодыЯзыков); // @НСтр-2
	Элемент.РеквизитДопУпорядочивания = 2;

	Элемент = Элементы.Добавить();
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Низкий'", КодыЯзыков); // @НСтр-2
	Элемент.РеквизитДопУпорядочивания = 3;
	
КонецПроцедуры

// Вызывается при начальном заполнении создаваемого элемента.
//
// Параметры:
//  Объект                  - СправочникОбъект.ПриоритетыОплаты - заполняемый объект.
//  Данные                  - СтрокаТаблицыЗначений - данные заполнения.
//  ДополнительныеПараметры - Структура - Дополнительные параметры.
//
Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт

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

// Возвращает самый низкий приоритет
//
// Возвращаемое значение:
//	СправочникСсылка.Приоритеты - самый низкий приоритет.
//
Функция ПолучитьНизшийПриоритет() Экспорт
	
	Результат = Справочники.Приоритеты.ПустаяСсылка();
	
	Запрос = Новый Запрос(
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
	|	Приоритеты.Ссылка                    КАК Приоритет,
	|	Приоритеты.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания
	|ИЗ
	|	Справочник.ПриоритетыОплаты КАК Приоритеты
	|ГДЕ
	|	НЕ Приоритеты.ПометкаУдаления
	|
	|УПОРЯДОЧИТЬ ПО
	|	РеквизитДопУпорядочивания УБЫВ");
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Если НЕ РезультатЗапроса.Пустой() Тогда
		
		Выборка = РезультатЗапроса.Выбрать();
		Выборка.Следующий();
		Результат = Выборка.Приоритет;
		
	КонецЕсли;
		
	Возврат Результат;
	
КонецФункции

// Возвращает самый высокий приоритет
//
// Возвращаемое значение:
//	СправочникСсылка.Приоритеты -  самый высокий приоритет.
//
Функция ПолучитьВысшийПриоритет() Экспорт
	
	Результат = Справочники.Приоритеты.ПустаяСсылка();
	
	Запрос = Новый Запрос(
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
	|	Приоритеты.Ссылка                    КАК Приоритет,
	|	Приоритеты.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания
	|ИЗ
	|	Справочник.ПриоритетыОплаты КАК Приоритеты
	|ГДЕ
	|	НЕ Приоритеты.ПометкаУдаления
	|
	|УПОРЯДОЧИТЬ ПО
	|	РеквизитДопУпорядочивания ВОЗР");
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Если НЕ РезультатЗапроса.Пустой() Тогда
		
		Выборка = РезультатЗапроса.Выбрать();
		Выборка.Следующий();
		Результат = Выборка.Приоритет;
		
	КонецЕсли;
		
	Возврат Результат;
	
КонецФункции

// Получает приоритет, используемый для заполнения новых документов
//
// Возвращаемое значение:
//	СправочникСсылка.ПриоритетыОплаты - приоритет по умолчанию.
//
Функция ПолучитьПриоритетПоУмолчанию(Знач Приоритет) Экспорт
	
	Результат = Справочники.ПриоритетыОплаты.ПустаяСсылка();
	
	Если ЗначениеЗаполнено(Приоритет) Тогда
		
		Результат = Приоритет;
		
	Иначе
		
		Запрос = Новый Запрос(
		"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
		|	Приоритеты.Приоритет                 КАК Приоритет,
		|	Приоритеты.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания
		|ИЗ
		|	(ВЫБРАТЬ ПЕРВЫЕ 2
		|		Приоритеты.Ссылка                    КАК Приоритет,
		|		Приоритеты.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания
		|	ИЗ
		|		Справочник.ПриоритетыОплаты КАК Приоритеты
		|	ГДЕ
		|		НЕ Приоритеты.ПометкаУдаления
		|	
		|	УПОРЯДОЧИТЬ ПО
		|		РеквизитДопУпорядочивания УБЫВ) КАК Приоритеты
		|
		|УПОРЯДОЧИТЬ ПО
		|	РеквизитДопУпорядочивания ВОЗР");
		
		РезультатЗапроса = Запрос.Выполнить();
		
		Если Не РезультатЗапроса.Пустой() Тогда
			Выборка = РезультатЗапроса.Выбрать();
			Выборка.Следующий();
			Результат = Выборка.Приоритет;
		КонецЕсли;
		
	КонецЕсли;
	
	Возврат Результат;
	
КонецФункции

#КонецОбласти

#КонецЕсли

#Область ОбработчикиСобытий

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

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

#КонецЕсли

Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
	// СтандартныеПодсистемы.БазоваяФункциональность
	МультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка);
	// Конец СтандартныеПодсистемы.БазоваяФункциональность
КонецПроцедуры

Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
	// СтандартныеПодсистемы.БазоваяФункциональность
	МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
	// Конец СтандартныеПодсистемы.БазоваяФункциональность
КонецПроцедуры

#КонецОбласти

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#КонецЕсли

Связанные материалы