Документы по основным средствам / Модуль менеджера

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

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

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

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

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

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

// 
// Возвращаемое значение:
//  Строка - Ключ назначения формы по умолчанию
Функция КлючНазначенияФормыПоУмолчанию() Экспорт
	
	Возврат "ДокументыОС";
	
КонецФункции

// 
// Параметры:
//  Параметры - Структура - 
// 
// Возвращаемое значение:
//  ФорматированнаяСтрока - Данные рабочего места
Функция ДанныеРабочегоМеста(Параметры) Экспорт

	Гиперссылка = Неопределено;
	
	СписокГиперСсылок = Новый Массив;
	
	Если ПравоДоступа("ИнтерактивноеДобавление", Метаданные.Документы.ПринятиеКУчетуОС2_4)
		ИЛИ ПравоДоступа("ИнтерактивноеДобавление", Метаданные.Документы.ПринятиеКУчетуУзловКомпонентовАмортизации)
		ИЛИ ПравоДоступа("ИнтерактивноеДобавление", Метаданные.Документы.МодернизацияОС2_4) Тогда
		
		ТекстГиперСсылки = ГиперСсылкаПринятиеКУчету(Параметры);
		СписокГиперссылок.Добавить(" ");
		СписокГиперссылок.Добавить(ТекстГиперСсылки);
	
	КонецЕсли;
	
	//++ Локализация
	
	Если ПравоДоступа("ИнтерактивноеДобавление", Метаданные.Документы.СписаниеОС2_4) Тогда
		
		ТекстГиперСсылки = ГиперСсылкаСписание(Параметры);
		СписокГиперссылок.Добавить(" ");
		СписокГиперссылок.Добавить(ТекстГиперСсылки);
			
	КонецЕсли;
		
	//-- Локализация
	
	Если ПравоДоступа("Просмотр", Метаданные.Обработки.ИсправлениеОшибокВУчетеОС) Тогда
		ТекстГиперСсылки = ГиперСсылкаИсправлениеОшибокВУчетеОС(Параметры);
		СписокГиперссылок.Добавить(" ");
		СписокГиперссылок.Добавить(ТекстГиперСсылки);
	КонецЕсли;
		
	Если СписокГиперСсылок.Количество() <> 0 Тогда
		СписокГиперСсылок.Вставить(0, НСтр("ru = 'К оформлению:'"));
		Гиперссылка = Новый ФорматированнаяСтрока(СписокГиперСсылок);
	КонецЕсли;
	
	Возврат Гиперссылка;
	
КонецФункции

Функция ГиперСсылкаПринятиеКУчету(Параметры)

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

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

Функция ГиперСсылкаИсправлениеОшибокВУчетеОС(Параметры)

	ТекстГиперссылки = НСтр("ru = 'Исправление ошибок в учете'");
	ЦветГиперссылки = Неопределено;
	
	Гиперссылка = Новый ФорматированнаяСтрока(ТекстГиперссылки,, ЦветГиперссылки,, "#ИсправлениеОшибокВУчетеОС");
	
	Возврат Гиперссылка;
	
КонецФункции

//++ Локализация

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

	ТекстГиперссылки = НСтр("ru = 'Списание'");
	Если Результат.Пустой() Тогда
		ЦветГиперссылки = ЦветаСтиля.НезаполненноеПолеТаблицы;
	Иначе
		ЦветГиперссылки = Неопределено;
	КонецЕсли;
	
	Гиперссылка = Новый ФорматированнаяСтрока(ТекстГиперссылки,, ЦветГиперссылки,, "#СписаниеОС");
	
	Возврат Гиперссылка;
	
КонецФункции

//-- Локализация

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

#КонецЕсли

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