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