#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ДокументСсылка = Параметры.ДокументСсылка;
Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДокументСсылка, "Дата");
ДокументДата = Реквизиты.Дата;
ДокументОрганизация = Справочники.Организации.ПустаяСсылка();
ТребуетсяДетализация = Ложь;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыЗапросДанныхРезультат
&НаКлиенте
Процедура РезультатВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ИмяРезультата = Элемент.Имя;
ИмяРеквизита = СтрЗаменить(Поле.Имя, ИмяРезультата, "");
Если ИмяРеквизита <> "К" Тогда
ЭлементКоллекции = ЭтаФорма[ИмяРезультата].НайтиПоИдентификатору(ВыбраннаяСтрока);
ПоказатьЗначение(Неопределено, ЭлементКоллекции[ИмяРеквизита]);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
#Область ЗапросДанных
&НаКлиенте
Процедура ЗагрузитьЗапросДанных(Команда)
ИнициализироватьЗапросДанных();
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьЗапросДанных(Команда)
ВыполнитьЗапросы(Новый Структура("ЗапросДанных", "Данные"));
КонецПроцедуры
#КонецОбласти
#Область ДетальныеДанные
&НаКлиенте
Процедура ЗагрузитьЗапросДетальныхДанных(Команда)
ИнициализироватьЗапросДетальныхДанных();
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьЗапросДетальныхДанных(Команда)
Запросы = Новый Структура;
Запросы.Вставить("ЗапросДанных", "Данные");
Запросы.Вставить("ЗапросДетальныхДанных", "ДетальныеДанные");
ВыполнитьЗапросы(Запросы);
КонецПроцедуры
#КонецОбласти
#Область ЗапросСчетов
&НаКлиенте
Процедура ЗагрузитьЗапросСчетов(Команда)
ИнициализироватьЗапросСчетов();
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьЗапросСчетов(Команда)
ВыполнитьЗапросы(Новый Структура("ЗапросСчетов", "Счета"));
КонецПроцедуры
#КонецОбласти
#Область ЗапросПодготовкиДанных
&НаКлиенте
Процедура ЗагрузитьЗапросПодготовкиДанных(Команда)
ИнициализироватьЗапросПодготовкиДанных();
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьЗапросПодготовкиДанных(Команда)
Запросы = Новый Структура;
Запросы.Вставить("ЗапросДанных", "Данные");
Запросы.Вставить("ЗапросДетальныхДанных", "ДетальныеДанные");
Запросы.Вставить("ЗапросПодготовкиДанных", "ДанныеДляСопоставления");
ВыполнитьЗапросы(Запросы);
КонецПроцедуры
#КонецОбласти
#Область ЗапросПрочихСчетов
&НаКлиенте
Процедура ЗагрузитьЗапросПрочихСчетов(Команда)
ИнициализироватьЗапросПрочихСчетов();
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьЗапросПрочихСчетов(Команда)
ВыполнитьЗапросы(Новый Структура("ЗапросПрочихСчетов", "ПрочиеСчета"));
КонецПроцедуры
#КонецОбласти
#Область ЗапросСопоставлений
&НаКлиенте
Процедура ЗагрузитьЗапросСопоставлений(Команда)
ИнициализироватьЗапросСопоставлений();
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьЗапросСопоставлений(Команда)
Запросы = Новый Структура;
Запросы.Вставить("ЗапросДанных", "Данные");
Запросы.Вставить("ЗапросСчетов", "Счета");
Запросы.Вставить("ЗапросДетальныхДанных", "ДетальныеДанные");
Запросы.Вставить("ЗапросПодготовкиДанных", "ДанныеДляСопоставления");
Запросы.Вставить("ЗапросПрочихСчетов", "ПрочиеСчета");
Запросы.Вставить("ЗапросСопоставлений", "РезультатСопоставления");
ВыполнитьЗапросы(Запросы);
КонецПроцедуры
#КонецОбласти
#Область ЗапросПроверки
&НаКлиенте
Процедура ЗагрузитьЗапросПроверки(Команда)
ИнициализироватьЗапросПроверки();
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьЗапросПроверки(Команда)
Запросы = Новый Структура;
Запросы.Вставить("ЗапросДанных", "Данные");
Запросы.Вставить("ЗапросСчетов", "Счета");
Запросы.Вставить("ЗапросДетальныхДанных", "ДетальныеДанные");
Запросы.Вставить("ЗапросПодготовкиДанных", "ДанныеДляСопоставления");
Запросы.Вставить("ЗапросПрочихСчетов", "ПрочиеСчета");
Запросы.Вставить("ЗапросСопоставлений", "РезультатСопоставления");
Запросы.Вставить("ЗапросПроверки");
ВыполнитьЗапросы(Запросы);
КонецПроцедуры
#КонецОбласти
#Область ЗапросХозрасчетный
&НаКлиенте
Процедура ЗагрузитьЗапросХозрасчетный(Команда)
ИнициализироватьЗапросХозрасчетный();
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьЗапросХозрасчетный(Команда)
Запросы = Новый Структура;
Запросы.Вставить("ЗапросДанных", "Данные");
Запросы.Вставить("ЗапросСчетов", "Счета");
Запросы.Вставить("ЗапросДетальныхДанных", "ДетальныеДанные");
Запросы.Вставить("ЗапросПодготовкиДанных", "ДанныеДляСопоставления");
Запросы.Вставить("ЗапросПрочихСчетов", "ПрочиеСчета");
Запросы.Вставить("ЗапросСопоставлений", "РезультатСопоставления");
Запросы.Вставить("ЗапросПроверки", "ОшибкиПроверки");
Запросы.Вставить("ЗапросХозрасчетный" );
ВыполнитьЗапросы(Запросы);
КонецПроцедуры
#КонецОбласти
#Область ЗапросВТ
&НаКлиенте
Процедура ВыполнитьЗапросВТ(Команда)
ВыполнитьЗапросы(Новый Структура("ЗапросВТ", ИмяВременнойТаблицы));
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьЗапросВТ(Команда)
ИнициализироватьЗапросВТ();
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормы
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормы
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ВыполнитьЗапросы(ОписаниеЗапросов)
ВременныеТаблицы = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = ВременныеТаблицы;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Данные.Период КАК Период,
| Данные.Регистратор КАК Ссылка,
| Данные.Организация КАК Организация,
| Данные.Организация.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| Данные.ДатаОтражения КАК ДатаОтражения
|ПОМЕСТИТЬ РазрезыКОтражению
|ИЗ
| РегистрСведений.ОтражениеДокументовВРеглУчете КАК Данные
|ГДЕ
| Данные.Регистратор = &Ссылка
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| РазрезыКОтражению.Ссылка КАК Ссылка,
| РазрезыКОтражению.Период КАК Период
|ПОМЕСТИТЬ ДокументыКОтражению
|ИЗ
| РазрезыКОтражению КАК РазрезыКОтражению
|";
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Выполнить();
ЗапросПланаСчетов = РеглУчетВыборкиСерверПовтИсп.ЗапросПланаСчетов();
ЗапросПланаСчетов.МенеджерВременныхТаблиц = ВременныеТаблицы;
ЗапросПланаСчетов.Выполнить();
ОсновныеПараметры = РеглУчетВыборкиСерверПовтИсп.ПараметрыОтраженияРеглУчетаПоУмолчанию(Истина);
ТипыДокументов = РеглУчетВыборкиСерверПовтИсп.ТипыДокументовКПоследовательномуОтражению();
Если ТипыДокументов.Найти(ТипЗнч(ДокументСсылка)) <> Неопределено Тогда
РеглУчетПроведениеСервер.ДополнитьПараметрыОтраженияРеглУчетаДляДокументовПоследовательногоОтражения(ОсновныеПараметры, ДокументСсылка, ДокументДата);
КонецЕсли;
Для Каждого Описание Из ОписаниеЗапросов Цикл
Если Не ЗначениеЗаполнено(ЭтаФорма[Описание.Ключ + "Текст"]) Тогда
Выполнить("Инициализировать" + Описание.Ключ + "();");
КонецЕсли;
Если ЗначениеЗаполнено(Описание.Значение) Тогда
ТекстЗапроса = ";" + Символы.ПС + " ВЫБРАТЬ * ИЗ " + Описание.Значение;
Иначе
ТекстЗапроса = "";
КонецЕсли;
Запрос = Новый Запрос(ЭтаФорма[Описание.Ключ + "Текст"] + ТекстЗапроса);
Запрос.МенеджерВременныхТаблиц = ВременныеТаблицы;
РасчетСебестоимостиНДС.ДополнитьСтруктуруПараметровДетализацииПартийНДСРеглУчет(Запрос, ОсновныеПараметры, ДокументСсылка.Метаданные().Имя);
РеглУчетПроведениеСервер.ЗаполнениеПараметровЗапросаИПрочихФункциональныхОпций(Запрос, ОсновныеПараметры);
Результат = Запрос.Выполнить();
ИмяТаблицыРезультата = Описание.Ключ + "Результат";
ПодготовитьКолонкиТаблицы(ИмяТаблицыРезультата, Результат.Колонки);
Таблица = Результат.Выгрузить();
Если Описание.Ключ = "ЗапросПроверки" Тогда
РегистрыСведений.СчетаРеглУчетаТребующиеНастройки.ПроверитьКорректностьЗаполнения(Таблица, ДокументСсылка, Истина);
КонецЕсли;
ЭтаФорма[ИмяТаблицыРезультата].Загрузить(Таблица);
Если ИмяТаблицыРезультата = "ЗапросДетальныхДанныхРезультат" Тогда
ТребуетсяДетализация = ЗапросДетальныхДанныхРезультат.Количество();
КонецЕсли;
КонецЦикла;
ВременныеТаблицы.Закрыть();
КонецПроцедуры
&НаСервере
Процедура ПодготовитьКолонкиТаблицы(ИмяКорневогоРеквизита, Колонки)
ОбъектXDTO = СериализаторXDTO.ЗаписатьXDTO(Новый ОписаниеТипов("Строка"));
ОбъектXDTO.TypeSet.Добавить(Новый РасширенноеИмяXML("http://v8.1c.ru/8.1/data/enterprise/current-config", "AnyRef"));
ТипВсеСсылки = СериализаторXDTO.ПрочитатьXDTO(ОбъектXDTO);
УдаляемыеРеквизиты = Новый Массив;
ИмеющиесяРеквизиты = ПолучитьРеквизиты(ИмяКорневогоРеквизита);
Для Каждого Реквизит Из ИмеющиесяРеквизиты Цикл
Если Реквизит.Имя = "К" Тогда
Продолжить;
КонецЕсли;
УдаляемыеРеквизиты.Добавить(ИмяКорневогоРеквизита + "." + Реквизит.Имя);
КонецЦикла;
НовыеРеквизиты = Новый Массив;
Для Каждого Колонка Из Колонки Цикл
ТипРеквизита = ?(ЗначениеЗаполнено(Колонка.ТипЗначения), Колонка.ТипЗначения, ТипВсеСсылки);
НовыйРеквизит = Новый РеквизитФормы(Колонка.Имя, ТипРеквизита, ИмяКорневогоРеквизита);
НовыеРеквизиты.Добавить(НовыйРеквизит);
КонецЦикла;
ПропускаемыйЭлемент = Элементы[ИмяКорневогоРеквизита + "К"];
УдаляемыеЭлементы = Новый Массив;
Для Каждого Элемент Из Элементы[ИмяКорневогоРеквизита].ПодчиненныеЭлементы Цикл
Если Элемент = ПропускаемыйЭлемент Тогда
Продолжить;
КонецЕсли;
УдаляемыеЭлементы.Добавить(Элемент);
КонецЦикла;
Для Каждого Элемент Из УдаляемыеЭлементы Цикл
УдалитьОформлениеЭлемента(Элемент.Имя);
Элементы.Удалить(Элемент);
КонецЦикла;
ИзменитьРеквизиты(НовыеРеквизиты, УдаляемыеРеквизиты);
Для Каждого Колонка Из Колонки Цикл
Элемент = Элементы.Добавить(ИмяКорневогоРеквизита + Колонка.Имя, Тип("ПолеФормы"), Элементы[ИмяКорневогоРеквизита]);
Элемент.ПутьКДанным = ИмяКорневогоРеквизита + "." + Колонка.Имя;
УстановитьОформлениеЭлемента(Элемент.Имя, Элемент.ПутьКДанным);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура УстановитьОформлениеЭлемента(ИмяЭлемента, ИмяРеквизита)
Сравнения = ВидСравненияКомпоновкиДанных;
Накопление = ВидДвиженияНакопления;
ДтКт = ВидДвиженияБухгалтерии;
ЦветСерый = ЦветаСтиля.ЦветТекстаНеактуальногоСписка;
ЦветМинуса = ЦветаСтиля.ЦветОтрицательногоЧисла;
ЦветПоля = ЦветаСтиля.ЦветТекстаПоля;
ПустаяСсылка = "{00000000-0000-0000-0000-000000000000}";
ВидыОформления = Новый Массив;
ДобавитьВидОформления(ВидыОформления, "НЕЗАПОЛНЕНО", Сравнения.НеЗаполнено, "", ПустаяСсылка, ЦветСерый);
ДобавитьВидОформления(ВидыОформления, "ПУСТАЯСТРОКА", Сравнения.Равно, "", НСтр("ru='пустая строка'"), ЦветСерый);
ДобавитьВидОформления(ВидыОформления, "NULL", Сравнения.Равно, Null, "<<NULL>>", ЦветСерый);
ДобавитьВидОформления(ВидыОформления, "НОЛЬ", Сравнения.Равно, 0, "0.0", ЦветСерый);
ДобавитьВидОформления(ВидыОформления, "ПРИХОД", Сравнения.Равно, Накопление.Приход, Накопление.Приход, ЦветПоля);
ДобавитьВидОформления(ВидыОформления, "РАСХОД", Сравнения.Равно, Накопление.Расход, Накопление.Расход, ЦветПоля);
ДобавитьВидОформления(ВидыОформления, "ДЕБЕТ", Сравнения.Равно, ДтКт.Дебет, ДтКт.Дебет, ЦветПоля);
ДобавитьВидОформления(ВидыОформления, "КРЕДИТ", Сравнения.Равно, ДтКт.Кредит, ДтКт.Кредит, ЦветПоля);
ДобавитьВидОформления(ВидыОформления, "МЕНЬШЕНУЛЯ", Сравнения.Меньше, 0., Неопределено, ЦветМинуса);
ДобавитьВидОформления(ВидыОформления, "НЕОПРЕДЕЛЕНО", Сравнения.Равно, Неопределено, НСтр("ru='<<НЕОПРЕДЕЛЕНО>>'"), ЦветСерый);
ДобавитьВидОформления(ВидыОформления, "ЛОЖЬ", Сравнения.Равно, Ложь, Ложь, ЦветСерый);
ДобавитьВидОформления(ВидыОформления, "ИСТИНА", Сравнения.Равно, Истина, Истина, ЦветПоля);
Для Каждого ВидОформления Из ВидыОформления Цикл
ОписаниеОформления = ЭтаФорма.УсловноеОформление.Элементы.Добавить();
ОписаниеОформления.Использование = Истина;
ОписаниеОформления.ИдентификаторПользовательскойНастройки = ИмяЭлемента + " = " + ВидОформления.Имя;
Отбор = ОписаниеОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.Использование = Истина;
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяРеквизита);
Отбор.ВидСравнения = ВидОформления.ВидСравнения;
Отбор.ПравоеЗначение = ВидОформления.ПравоеЗначение;
Поле = ОписаниеОформления.Поля.Элементы.Добавить();
Поле.Использование = Истина;
Поле.Поле = Новый ПолеКомпоновкиДанных(ИмяЭлемента);
Оформление = ОписаниеОформления.Оформление.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ЦветТекста"));
Оформление.Использование = Истина;
Оформление.Значение = ВидОформления.ЦветТекста;
Если Неопределено <> ВидОформления.Текст Тогда
Оформление = ОписаниеОформления.Оформление.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Текст"));
Оформление.Использование = Истина;
Оформление.Значение = ВидОформления.Текст;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ДобавитьВидОформления(ВидыОформления, ИмяОформления, ВидСравнения, ПравоеЗначение, Текст, ЦветТекста)
ВидОформления = Новый Структура;
ВидОформления.Вставить("Имя", ИмяОформления);
ВидОформления.Вставить("ВидСравнения", ВидСравнения);
ВидОформления.Вставить("ПравоеЗначение", ПравоеЗначение);
ВидОформления.Вставить("Текст", Текст);
ВидОформления.Вставить("ЦветТекста", ЦветТекста);
ВидыОформления.Добавить(ВидОформления);
КонецПроцедуры
&НаСервере
Процедура УдалитьОформлениеЭлемента(ИмяЭлемента)
УдаляемыеОписания = Новый Массив;
Для Каждого ОписаниеОформления Из ЭтаФорма.УсловноеОформление.Элементы Цикл
Если СтрНайти(ОписаниеОформления.ИдентификаторПользовательскойНастройки, ИмяЭлемента) > 0 Тогда
УдаляемыеОписания.Добавить(ОписаниеОформления);
КонецЕсли;
КонецЦикла;
Для Каждого УдаляемоеОписание Из УдаляемыеОписания Цикл
ЭтаФорма.УсловноеОформление.Элементы.Удалить(УдаляемоеОписание);
КонецЦикла;
КонецПроцедуры
#Область ИнициализацияЗапросов
&НаСервере
Процедура ИнициализироватьЗапросДанных()
МетаданныеСсылки = ДокументСсылка.Метаданные();
ЭтоОбъектРасчетов = РеглУчетВыборкиСерверПовтИсп.ЭтоОбъектРасчетов(МетаданныеСсылки.Имя);
ЗапросДанных = РеглУчетВыборкиСерверПовтИсп.ЗапросДанных(МетаданныеСсылки.Имя, ЭтоОбъектРасчетов);
ЗапросДанныхТекст = ЗапросДанных.Текст;
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьЗапросДетальныхДанных()
Если Не ЗначениеЗаполнено(ЗапросДанныхТекст) Тогда
ИнициализироватьЗапросДанных();
КонецЕсли;
ЗамещатьНастройкиНалогообложения = СтрНайти(ЗапросДанныхТекст, "РаздельныйУчет_НастройкиНалогообложенияПрибыли") > 0;
ЗапросДетальныхДанных =
РеглУчетПроведениеСервер.ЗапросДетальныхДанных(Новый МенеджерВременныхТаблиц, Ложь, ЗамещатьНастройкиНалогообложения);
ЗапросДетальныхДанныхТекст = ЗапросДетальныхДанных.Текст;
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьЗапросСчетов()
ЗапросСчетов = РеглУчетВыборкиСерверПовтИсп.ЗапросСчетов();
ЗапросСчетовТекст = ЗапросСчетов.Текст;
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьЗапросПодготовкиДанных()
ЗапросОбработкиДанных = РеглУчетВыборкиСерверПовтИсп.ЗапросОбработкиДанных(Истина,, ТребуетсяДетализация);
ЗапросПодготовкиДанныхТекст = ЗапросОбработкиДанных.Текст;
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьЗапросПрочихСчетов()
ЗапросПрочихСчетов = РеглУчетВыборкиСерверПовтИсп.ЗапросПрочихСчетов();
ЗапросПрочихСчетовТекст = ЗапросПрочихСчетов.Текст;
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьЗапросСопоставлений()
ЗапросСопоставлений = РеглУчетВыборкиСерверПовтИсп.ЗапросСопоставлений(Ложь, Истина);
ЗапросСопоставленийТекст = ЗапросСопоставлений.Текст;
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьЗапросПроверки()
ЗапросПроверки = РеглУчетВыборкиСерверПовтИсп.ЗапросПроверки();
ЗапросПроверкиТекст = ЗапросПроверки.Текст;
ТекстИтогов = "ИТОГИ ПО
| Ссылка, Организация, ДатаОтражения
|";
ЗапросПроверкиТекст = СтрЗаменить(ЗапросПроверкиТекст, ТекстИтогов, "");
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьЗапросХозрасчетный()
ЗапросХозрасчетный = РеглУчетВыборкиСерверПовтИсп.ЗапросХозрасчетный();
ЗапросХозрасчетныйТекст = ЗапросХозрасчетный.Текст;
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьЗапросВТ()
МетаданныеСсылки = ДокументСсылка.Метаданные();
ЭтоОбъектРасчетов = РеглУчетВыборкиСерверПовтИсп.ЭтоОбъектРасчетов(МетаданныеСсылки.Имя);
ЗапросДанных = РеглУчетВыборкиСерверПовтИсп.ЗапросДанных(МетаданныеСсылки.Имя, ЭтоОбъектРасчетов);
ЗапросВТТекст = ЗапросДанных.Текст;
КонецПроцедуры
#КонецОбласти
#КонецОбласти