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