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