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