#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область Команды
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("ОсновныеСредства");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
МеханизмыДокумента.Добавить("УчетДоходовРасходов");
МеханизмыДокумента.Добавить("ОборотныеРегистрыУправленческогоУчета");
ПереоценкаОСЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
КонецПроцедуры
#КонецОбласти
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
Команда = ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если Команда <> Неопределено Тогда
Команда.ВидимостьВФормах = "ФормаСписка";
КонецЕсли;
ПереоценкаОСЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании, Порядок = 0) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.ПереоценкаОС2_4) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ПереоценкаОС2_4.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ПереоценкаОС2_4);
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьВнеоборотныеАктивы2_4";
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.Порядок = Порядок;
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
ПереоценкаОСЛокализация.ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры);
КонецПроцедуры
#КонецОбласти
#Область ДляВызоваИзДругихПодсистем
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)";
КонецПроцедуры
#КонецОбласти
#Область Проведение
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.ПереоценкаОС2_4") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка, ДопПараметры);
ТекстыЗапроса = Новый СписокЗначений;
ТекстЗапросаТаблицаРеестрДокументов(ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДокументыПоОС(ТекстыЗапроса, Регистры);
ПереоценкаОСЛокализация.ДополнитьТекстыЗапросовПроведения(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
ТаблицыДвижений = ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
Возврат ТаблицыДвижений;
КонецФункции
Функция ТаблицыОтложенногоФормированияДвижений(МенеджерВременныхТаблиц) Экспорт
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
ПолучитьДанныеДокумента(Запрос);
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализацииПоПериодам(Запрос, Запрос.Параметры,, "ВтСписокДокументов");
ЗначенияПараметровПроведения = ЗначенияПараметровПроведения();
Для каждого КлючИЗначение Из ЗначенияПараметровПроведения Цикл
Запрос.УстановитьПараметр(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
ТекстыЗапроса = Новый СписокЗначений;
ВнеоборотныеАктивыСлужебный.ТекстыЗапросаПриПереоценке(Запрос, ТекстыЗапроса, "ОС", Неопределено);
ТекстЗапросаТаблицаПараметрыАмортизацииОСУУ(Запрос, ТекстыЗапроса, Неопределено);
ПереоценкаОСЛокализация.ТаблицыОтложенногоФормированияДвижений(Запрос, ТекстыЗапроса);
ТаблицыДвижений = ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса);
Возврат ТаблицыДвижений;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Проведение
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Возврат ИсточникиДанных;
КонецФункции
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.ПереоценкаОС2_4";
ЗначенияПараметров = ЗначенияПараметровПроведения();
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("НомерНаПечать", """""");
ВЗапросеЕстьИсточник = Истина;
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(ТекстыЗапроса, ИмяРегистра);
СинонимТаблицыДокумента = "ДанныеДокумента";
ИначеЕсли ИмяРегистра = "ДокументыПоОС" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаДокументыПоОС(ТекстыЗапроса, ИмяРегистра);
СинонимТаблицыДокумента = "ДанныеДокумента";
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
Если ИмяРегистра = "РеестрДокументов"
ИЛИ ИмяРегистра = "ДокументыПоОС" Тогда
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник,
ПереопределениеРасчетаПараметров);
Иначе
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросМеханизмаПроведения(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ПереопределениеРасчетаПараметров);
КонецЕсли;
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка, ДопПараметры)
ПроведениеДокументов.ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка, ДопПараметры);
СформироватьТаблицуВтСписокДокументов(Запрос);
ПолучитьДанныеДокумента(Запрос);
Запрос.Текст =
"ВЫБРАТЬ
| ДанныеДокумента.Период КАК Период,
| ДанныеДокумента.Номер КАК Номер
|ИЗ
| ДанныеДокументаРеквизиты КАК ДанныеДокумента
|";
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
ЗначенияПараметровПроведения = ЗначенияПараметровПроведения(Реквизиты);
Для каждого КлючИЗначение Из ЗначенияПараметровПроведения Цикл
Запрос.УстановитьПараметр(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализации(Запрос, Реквизиты);
КонецПроцедуры
Процедура СформироватьТаблицуВтСписокДокументов(Запрос)
Запрос.Текст =
"ВЫБРАТЬ
| СписокДокументов.Ссылка КАК Ссылка,
| СписокДокументов.Организация КАК Организация,
| СписокДокументов.Дата КАК Период
|
|ПОМЕСТИТЬ ВтСписокДокументов
|
|ИЗ
| Документ.ПереоценкаОС2_4 КАК СписокДокументов
|
|ГДЕ
| СписокДокументов.Ссылка = &Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|";
Запрос.Выполнить();
КонецПроцедуры
Процедура ПолучитьДанныеДокумента(Запрос)
СписокЗапросов = Новый Массив;
#Область ДанныеДокументаРеквизиты
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Дата КАК Период,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Организация.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| ДанныеДокумента.Ответственный КАК Ответственный,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеДокумента.ОтражатьВРеглУчете КАК ОтражатьВРеглУчете,
| ДанныеДокумента.ОтражатьВУпрУчете КАК ОтражатьВУпрУчете,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.СтатьяДоходов КАК СтатьяДоходов,
| ДанныеДокумента.АналитикаДоходов КАК АналитикаДоходов,
| ДанныеДокумента.ПодразделениеДоходов КАК ПодразделениеДоходов,
| ДанныеДокумента.НаправлениеДеятельностиДоходов КАК НаправлениеДеятельностиДоходов,
| ДанныеДокумента.ПодразделениеИНаправлениеДеятельностиДоходовСовпадаютСДаннымиУчета КАК ПодразделениеИНаправлениеДеятельностиДоходовСовпадаютСДаннымиУчета,
| ДанныеДокумента.СтатьяРасходов КАК СтатьяРасходов,
| ДанныеДокумента.АналитикаРасходов КАК АналитикаРасходов,
| ДанныеДокумента.ПодразделениеРасходов КАК ПодразделениеРасходов,
| ДанныеДокумента.НаправлениеДеятельностиРасходов КАК НаправлениеДеятельностиРасходов,
| ДанныеДокумента.ПодразделениеИНаправлениеДеятельностиСовпадаютСДаннымиУчета КАК ПодразделениеИНаправлениеДеятельностиСовпадаютСДаннымиУчета,
| ДанныеДокумента.СобытиеОС КАК СобытиеОС,
| ДанныеДокумента.ПереоценкаПоСправедливойСтоимости КАК ПереоценкаПоСправедливойСтоимости,
| ЕСТЬNULL(ДанныеДокумента.СтатьяРасходов.ПринятиеКналоговомуУчету, ИСТИНА) КАК ПринятиеКНалоговомуУчету,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереоценкаОС) КАК ХозяйственнаяОперация
|
|ПОМЕСТИТЬ ДанныеДокументаРеквизиты
|
|ИЗ
| Документ.ПереоценкаОС2_4 КАК ДанныеДокумента
|
|ГДЕ
| ДанныеДокумента.Ссылка В (
| ВЫБРАТЬ
| ВтСписокДокументов.Ссылка
| ИЗ
| ВтСписокДокументов КАК ВтСписокДокументов)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка";
СписокЗапросов.Добавить(ТекстЗапроса);
#КонецОбласти
#Область ДанныеДокументаТаблицаОС
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаДокумента.Ссылка.Организация КАК Организация,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаДокумента.ОсновноеСредство КАК ОбъектУчета,
| ТаблицаДокумента.ОсновноеСредство КАК ОсновноеСредство,
| ТаблицаДокумента.СтоимостьУУ КАК СтоимостьУУ,
| ТаблицаДокумента.СтоимостьБУ КАК СтоимостьБУ
|
|ПОМЕСТИТЬ ДанныеДокументаТаблицаОС
|
|ИЗ
| Документ.ПереоценкаОС2_4.ОС КАК ТаблицаДокумента
|
|ГДЕ
| ТаблицаДокумента.Ссылка В (
| ВЫБРАТЬ
| ВтСписокДокументов.Ссылка
| ИЗ
| ВтСписокДокументов КАК ВтСписокДокументов)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка,
| ОсновноеСредство
|";
СписокЗапросов.Добавить(ТекстЗапроса);
#КонецОбласти
Запрос.Текст = СтрСоединить(СписокЗапросов, ОбщегоНазначения.РазделительПакетаЗапросов());
Запрос.Выполнить();
КонецПроцедуры
Функция ЗначенияПараметровПроведения(Реквизиты = Неопределено)
ЗначенияПараметровПроведения = Новый Структура;
ЗначенияПараметровПроведения.Вставить("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Документ.ПереоценкаОС2_4"));
ЗначенияПараметровПроведения.Вставить("НазваниеДокумента", НСтр("ru='Переоценка ОС'"));
ЗначенияПараметровПроведения.Вставить("ХозяйственнаяОперация", Перечисления.ХозяйственныеОперации.ПереоценкаОС);
ЗначенияПараметровПроведения.Вставить("НастройкаХозяйственнойОперации", Справочники.НастройкиХозяйственныхОпераций.ПереоценкаОС);
ЗначенияПараметровПроведения.Вставить("ВедетсяРегламентированныйУчетВНА", ВнеоборотныеАктивыСлужебный.ВедетсяРегламентированныйУчетВНА());
ЗначенияПараметровПроведения.Вставить("СтатьяАП_ОбъектУчета", ПланыВидовХарактеристик.СтатьиАктивовПассивов.УпрБалансОсновныеСредства);
ЗначенияПараметровПроведения.Вставить("ХО_УвеличениеСтоимости", Перечисления.ХозяйственныеОперации.УвеличениеСтоимостиОС);
ЗначенияПараметровПроведения.Вставить("ХО_УвеличениеСтоимостиЗаСчетУценки", Перечисления.ХозяйственныеОперации.УвеличениеСтоимостиОСЗаСчетУценки);
ЗначенияПараметровПроведения.Вставить("ХО_УменьшениеСтоимости", Перечисления.ХозяйственныеОперации.УменьшениеСтоимостиОС);
ЗначенияПараметровПроведения.Вставить("ХО_УменьшениеСтоимостиЗаСчетДооценки", Перечисления.ХозяйственныеОперации.УменьшениеСтоимостиОСЗаСчетДооценки);
ЗначенияПараметровПроведения.Вставить("ХО_УвеличениеАмортизации", Перечисления.ХозяйственныеОперации.УвеличениеАмортизацииОС);
ЗначенияПараметровПроведения.Вставить("ХО_УвеличениеАмортизацииЗаСчетУценки", Перечисления.ХозяйственныеОперации.УвеличениеАмортизацииОСЗаСчетУценки);
ЗначенияПараметровПроведения.Вставить("ХО_УменьшениеАмортизации", Перечисления.ХозяйственныеОперации.УменьшениеАмортизацииОС);
ЗначенияПараметровПроведения.Вставить("ХО_УменьшениеАмортизацииЗаСчетДооценки", Перечисления.ХозяйственныеОперации.УменьшениеАмортизацииОСЗаСчетДооценки);
ЗначенияПараметровПроведения.Вставить("НастройкаХО_УвеличениеСтоимости", Справочники.НастройкиХозяйственныхОпераций.УвеличениеСтоимостиОС);
ЗначенияПараметровПроведения.Вставить("НастройкаХО_УвеличениеСтоимостиЗаСчетУценки", Справочники.НастройкиХозяйственныхОпераций.УвеличениеСтоимостиОСЗаСчетУценки);
ЗначенияПараметровПроведения.Вставить("НастройкаХО_УменьшениеСтоимости", Справочники.НастройкиХозяйственныхОпераций.УменьшениеСтоимостиОС);
ЗначенияПараметровПроведения.Вставить("НастройкаХО_УменьшениеСтоимостиЗаСчетДооценки", Справочники.НастройкиХозяйственныхОпераций.УменьшениеСтоимостиОСЗаСчетДооценки);
ЗначенияПараметровПроведения.Вставить("НастройкаХО_УвеличениеАмортизации", Справочники.НастройкиХозяйственныхОпераций.УвеличениеАмортизацииОС);
ЗначенияПараметровПроведения.Вставить("НастройкаХО_УвеличениеАмортизацииЗаСчетУценки", Справочники.НастройкиХозяйственныхОпераций.УвеличениеАмортизацииОСЗаСчетУценки);
ЗначенияПараметровПроведения.Вставить("НастройкаХО_УменьшениеАмортизации", Справочники.НастройкиХозяйственныхОпераций.УменьшениеАмортизацииОС);
ЗначенияПараметровПроведения.Вставить("НастройкаХО_УменьшениеАмортизацииЗаСчетДооценки", Справочники.НастройкиХозяйственныхОпераций.УменьшениеАмортизацииОСЗаСчетДооценки);
ЗначенияПараметровПроведения.Вставить("ХО_УменьшениеАмортизацииСальдовыйМетод", Перечисления.ХозяйственныеОперации.УменьшениеАмортизацииОССальдовыйМетод);
ЗначенияПараметровПроведения.Вставить("НастройкаХО_УменьшениеАмортизацииСальдовыйМетод", Справочники.НастройкиХозяйственныхОпераций.УменьшениеАмортизацииОССальдовыйМетод);
ЗначенияПараметровПроведения.Вставить("ХО_ВосстановлениеУбыткаОтОбесценения", Перечисления.ХозяйственныеОперации.ВосстановлениеУбыткаОтОбесценения);
ЗначенияПараметровПроведения.Вставить("НастройкаХО_ВосстановлениеУбыткаОтОбесценения", Справочники.НастройкиХозяйственныхОпераций.ВосстановлениеУбыткаОтОбесценения);
Если Реквизиты <> Неопределено Тогда
ЗначенияПараметровПроведения.Вставить("НомерНаПечать", ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Реквизиты.Номер));
ЗначенияПараметровПроведения.Вставить("КонецДня", Новый Граница(КонецДня(Реквизиты.Период), ВидГраницы.Включая));
КонецЕсли;
Возврат ЗначенияПараметровПроведения;
КонецФункции
Функция ТекстЗапросаТаблицаДокументыПоОС(ТекстыЗапроса, Регистры)
ИмяРегистра = "ДокументыПоОС";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ЕСТЬNULL(ТаблицаОС.НомерСтроки-1, 0) КАК НомерЗаписи,
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.Проведен КАК Проведен,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &ИдентификаторМетаданных КАК ТипСсылки,
| ДанныеДокумента.ОтражатьВРеглУчете КАК ОтражатьВРеглУчете,
| ДанныеДокумента.ОтражатьВУпрУчете КАК ОтражатьВУпрУчете,
| ДанныеДокумента.СобытиеОС КАК СобытиеОС,
| ТаблицаОС.ОсновноеСредство КАК ОсновноеСредство
|
|ИЗ
| Документ.ПереоценкаОС2_4 КАК ДанныеДокумента
|
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПереоценкаОС2_4.ОС КАК ТаблицаОС
| ПО ДанныеДокумента.Ссылка = ТаблицаОС.Ссылка
|
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаРеестрДокументов(ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Дата КАК ДатаДокументаИБ,
| ДанныеДокумента.Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| ДанныеДокумента.Организация КАК Организация,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.Ответственный КАК Ответственный,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| ДанныеДокумента.Дата КАК ДатаПервичногоДокумента,
| &НомерНаПечать КАК НомерПервичногоДокумента,
| ЛОЖЬ КАК СторноИсправление,
| НЕОПРЕДЕЛЕНО КАК СторнируемыйДокумент,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ДанныеДокумента.Дата КАК ДатаОтраженияВУчете,
| НЕОПРЕДЕЛЕНО КАК Приоритет
|
|ИЗ
| Документ.ПереоценкаОС2_4 КАК ДанныеДокумента
|
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ТекстЗапросаТаблицаПараметрыАмортизацииОСУУ(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПараметрыАмортизацииОСУУ";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат;
КонецЕсли;
ВнеоборотныеАктивыСлужебный.ТекстЗапросаТаблицаВтПараметрыАмортизацииОСУУ(ТекстыЗапроса);
ВнеоборотныеАктивыСлужебный.ТекстЗапросаТаблицаВтУчетнаяПолитикаФинансовогоУчета(ТекстыЗапроса);
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Регистратор,
| ДанныеДокумента.Период КАК Период,
| ДанныеДокумента.Организация КАК Организация,
| ТаблицаОС.ОсновноеСредство КАК ОсновноеСредство,
|
| ПараметрыАмортизацииОСУУ.ДатаПоследнегоИзменения КАК ДатаПоследнегоИзменения,
| ПараметрыАмортизацииОСУУ.СрокИспользования КАК СрокИспользования,
| ПараметрыАмортизацииОСУУ.КоэффициентУскорения КАК КоэффициентУскорения,
| ПараметрыАмортизацииОСУУ.МетодНачисленияАмортизации КАК МетодНачисленияАмортизации,
| ПараметрыАмортизацииОСУУ.ЛиквидационнаяСтоимость КАК ЛиквидационнаяСтоимость,
| ПараметрыАмортизацииОСУУ.ЛиквидационнаяСтоимостьРегл КАК ЛиквидационнаяСтоимостьРегл,
|
| ПараметрыАмортизацииОСУУ.ОбъемПродукцииРаботДляВычисленияАмортизации КАК ОбъемПродукцииРаботДляВычисленияАмортизации,
| ПараметрыАмортизацииОСУУ.СрокИспользованияДляВычисленияАмортизации КАК СрокИспользованияДляВычисленияАмортизации,
|
| ВЫБОР
| КОГДА ПараметрыАмортизацииОСУУ.СрокИспользования <> ПараметрыАмортизацииОСУУ.СрокИспользованияДляВычисленияАмортизации
| ТОГДА ТаблицаОС.СтоимостьУУ
| - (ЕСТЬNULL(АмортизацияВНА.Амортизация, 0)
| + ЕСТЬNULL(ТаблицаПереоценки.СуммаДооценкиАмортизацииУУ, 0)
| - ЕСТЬNULL(ТаблицаПереоценки.СуммаУценкиАмортизацииУУ, 0))
| ИНАЧЕ ПараметрыАмортизацииОСУУ.СтоимостьДляВычисленияАмортизации
| + ЕСТЬNULL(ТаблицаПереоценки.СуммаДооценкиСтоимостиУУ, 0)
| - ЕСТЬNULL(ТаблицаПереоценки.СуммаУценкиСтоимостиУУ, 0)
| КОНЕЦ КАК СтоимостьДляВычисленияАмортизации,
|
| ВЫБОР
| КОГДА &ВедетсяРегламентированныйУчетВНА
| ТОГДА 0
| КОГДА ПараметрыАмортизацииОСУУ.СрокИспользования <> ПараметрыАмортизацииОСУУ.СрокИспользованияДляВычисленияАмортизации
| ТОГДА ТаблицаОС.СтоимостьБУ
| - (ЕСТЬNULL(АмортизацияВНА.АмортизацияРегл, 0)
| + ЕСТЬNULL(ТаблицаПереоценки.СуммаДооценкиАмортизацииБУ, 0)
| - ЕСТЬNULL(ТаблицаПереоценки.СуммаУценкиАмортизацииБУ, 0))
| ИНАЧЕ ПараметрыАмортизацииОСУУ.СтоимостьДляВычисленияАмортизациирегл
| + ЕСТЬNULL(ТаблицаПереоценки.СуммаДооценкиСтоимостиБУ, 0)
| - ЕСТЬNULL(ТаблицаПереоценки.СуммаУценкиСтоимостиБУ, 0)
| КОНЕЦ КАК СтоимостьДляВычисленияАмортизацииРегл
|
|ИЗ
| ДанныеДокументаРеквизиты КАК ДанныеДокумента
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеДокументаТаблицаОС КАК ТаблицаОС
| ПО ДанныеДокумента.Ссылка = ТаблицаОС.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаПереоценки КАК ТаблицаПереоценки
| ПО ТаблицаПереоценки.Ссылка = ТаблицаОС.Ссылка
| И ТаблицаПереоценки.ОбъектУчета = ТаблицаОС.ОсновноеСредство
|
| ЛЕВОЕ СОЕДИНЕНИЕ втПараметрыАмортизацииОСУУ КАК ПараметрыАмортизацииОСУУ
| ПО ПараметрыАмортизацииОСУУ.Ссылка = ТаблицаОС.Ссылка
| И ПараметрыАмортизацииОСУУ.ОсновноеСредство = ТаблицаОС.ОсновноеСредство
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АмортизацияВНА КАК АмортизацияВНА
| ПО АмортизацияВНА.Ссылка = ТаблицаОС.Ссылка
| И АмортизацияВНА.ОбъектУчета = ТаблицаОС.ОсновноеСредство
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтУчетнаяПолитикаФинансовогоУчета КАК УчетнаяПолитика
| ПО УчетнаяПолитика.Ссылка = ДанныеДокумента.Ссылка
|
|ГДЕ
| ДанныеДокумента.ОтражатьВУпрУчете
| И ЕСТЬNULL(УчетнаяПолитика.ПорядокУчетаВНА, ЗНАЧЕНИЕ(Перечисление.ПорядокУчетаВНА.ПоСтандартамМУ)) <> ЗНАЧЕНИЕ(Перечисление.ПорядокУчетаВНА.ПоСтандартамМУ)
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
КонецПроцедуры
#КонецОбласти
#Область ПроведениеПоРеглУчету
Функция ТекстЗапросаВТОтраженияВРеглУчете() Экспорт
Возврат ПереоценкаОСЛокализация.ТекстЗапросаВТОтраженияВРеглУчете();
КонецФункции
Функция ТекстОтраженияВРеглУчете() Экспорт
Возврат ПереоценкаОСЛокализация.ТекстОтраженияВРеглУчете();
КонецФункции
#КонецОбласти
#Область Печать
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
ПереоценкаОСЛокализация.ДобавитьКомандыПечати(КомандыПечати);
КонецПроцедуры
#КонецОбласти
#Область Прочее
Функция ПараметрыВыбораСтатейИАналитик() Экспорт
ПараметрыВыбораСтатьиИАналитики = Новый Массив;
ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
ПараметрыВыбора.ПутьКДанным = "Объект";
ПараметрыВыбора.Статья = "СтатьяРасходов";
ПараметрыВыбора.ДоступностьПоОперации = Неопределено;
ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
ПараметрыВыбора.АналитикаРасходов = "АналитикаРасходов";
ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("СтатьяРасходов");
ПараметрыВыбора.ЭлементыФормы.АналитикаРасходов.Добавить("АналитикаРасходов");
ПараметрыВыбораСтатьиИАналитики.Добавить(ПараметрыВыбора);
ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
ПараметрыВыбора.ПутьКДанным = "Объект";
ПараметрыВыбора.Статья = "СтатьяДоходов";
ПараметрыВыбора.ДоступностьПоОперации = Неопределено;
ПараметрыВыбора.ВыборСтатьиДоходов = Истина;
ПараметрыВыбора.АналитикаДоходов = "АналитикаДоходов";
ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("СтатьяДоходов");
ПараметрыВыбора.ЭлементыФормы.АналитикаДоходов.Добавить("АналитикаДоходов");
ПараметрыВыбораСтатьиИАналитики.Добавить(ПараметрыВыбора);
Возврат ПараметрыВыбораСтатьиИАналитики;
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецЕсли