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