Структура предприятия / Модуль менеджера

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

#Область ПрограммныйИнтерфейс
	
// Возвращает имена реквизитов, которые не должны отображаться в списке реквизитов обработки ГрупповоеИзменениеОбъектов.
//
//	Возвращаемое значение:
//		Массив - массив имен реквизитов.
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
	
	НеРедактируемыеРеквизиты = Новый Массив;
	
	Возврат НеРедактируемыеРеквизиты;
	
КонецФункции

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

// Получает подразделение-диспетчер, если оно одно в ИБ
//  Если подразделение-диспетчер не передано в качестве параметра или передано пустое,
//  возвращает единственное в информационной базе подразделение-диспетчер.
//  Если подразделений-диспетчеров в базе несколько,
//  возвращает подразделение-диспетчер из настроек пользователя.
//  Если подразделение-диспетчер не указано в настройках пользователя,
//  возвращает пустое подразделение.
//
// Параметры:
//  Пользователь - СправочникСсылка.Пользователи - ссылка на пользователя.
// 
// Возвращаемое значение:
//  СправочникСсылка.СтруктураПредприятия - подразделение-диспетчер по умолчанию.
//
Функция ПолучитьПодразделениеДиспетчерПоУмолчанию(Знач Пользователь = Неопределено) Экспорт
	
		Подразделение = Справочники.СтруктураПредприятия.ПустаяСсылка();
	
	Возврат Подразделение;

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

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

// Возвращает признак использования нескольких подразделений-диспетчеров.
// 
// Возвращаемое значение:
//  Булево - Истина, если используется несколько подразделений-диспетчеров.
//
Функция ИспользуетсяНесколькоПодразделенийДиспетчеров() Экспорт
	
	Возврат КоличествоПодразделенийДиспетчеров() > 1;
	
КонецФункции



#Область Команды

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

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

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт

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

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

// СтандартныеПодсистемы.УправлениеДоступом

// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт

	Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(Ссылка)";

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

// Конец СтандартныеПодсистемы.УправлениеДоступом

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

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

#КонецЕсли

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

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

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

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

#Область СлужебныеПроцедурыИФункции

#Область Печать

// Заполняет список команд печати.
// 
// Параметры:
//   КомандыПечати - см. УправлениеПечатью.СоздатьКоллекциюКомандПечати
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
КонецПроцедуры

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

#Область Отчеты

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

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

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

#КонецЕсли

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