Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 13:54

Добавление флажков на форму регистра сведений ШтатноеРасписаниеОрганизаций

Автор ksander-fars, 05 окт 2016, 05:57

0 Пользователей и 1 гость просматривают эту тему.

ksander-fars

Здравствуйте!
КонфигурацияЗУП 2.5
Появилась необходимость добавления флажков на форму регистра сведений ШтатноеРасписаниеОрганизаций для автоматической печати договоров индивидуальной материальной ответственности. То есть если у должности кладовщик в штатном расписании стоит флажок Договор Индивидуальной материальной ответственности то вместе с трудовым договором при приёме на работу печатать сразу договор материальной ответственности. Проблема встала при добавлении флажков на форму, прописал по аналогии с полями на вкладке дополнительно запись данных флажков, но при открытии должности ошибка :
{РегистрСведений.ШтатноеРасписаниеОрганизаций.Форма.сзв_ФормаЗаписи.Форма(182)}: Поле объекта не обнаружено (ДогИндМатОтв)
      ДогИндМатОтв         = Запись.ДогИндМатОтв;
 

Как сделать правильно? Нужно проставить и записать определённым должностям флажки как признак материальной ответственности.
Код формы штатного расписания организаций:
////////////////////////////////////////////////////////////////////////////////
// ПЕРЕМЕННЫЕ МОДУЛЯ

Перем мПериодДо;
Перем мПодразделениеДо;
Перем мДолжностьДо;

Перем мСписокСпособовРасчетаОплатыТруда;
Перем мСведенияОВидахРасчета;

// Массив ЭУ видимостью которых необходимо управлять в зависимости от учетной политики по персоналу
Перем мМассивЭУ;

//<СЗВ>
//<Лысых М.И. 18.12.2012 21:57:47>
// добавляем реквизит Разряд на форму
Перем ДополнительныеСвойстваД;
Перем СЗВ_мРазрядДо;
//</Лысых М.И.>
//</СЗВ>

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ

Процедура УдалениеЗаписейРегистраНадбавки(пПериод, пПодразделениеОрганизации, пДолжность);
   
   Запрос = Новый Запрос;
   
   Запрос.УстановитьПараметр("Период",                  пПериод);
   Запрос.УстановитьПараметр("ПодразделениеОрганизации",   пПодразделениеОрганизации);
   Запрос.УстановитьПараметр("Должность",                пДолжность);
   
   Запрос.Текст =
   "ВЫБРАТЬ
   |   Надбавки.ПодразделениеОрганизации,
   |   Надбавки.Должность,
   |   Надбавки.ПодразделениеОрганизацииНадбавки,
   |   Надбавки.ДолжностьНадбавки,
   |   Надбавки.Период,
   |   Надбавки.ПериодНадбавки
   |ИЗ
   |   (ВЫБРАТЬ
   |      ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
   |      ШтатноеРасписаниеОрганизаций.Должность КАК Должность,
   |      НадбавкиПоШтатномуРасписаниюОрганизаций.Должность КАК ДолжностьНадбавки,
   |      НадбавкиПоШтатномуРасписаниюОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизацииНадбавки,
   |      ШтатноеРасписаниеОрганизаций.Период КАК Период,
   |      НадбавкиПоШтатномуРасписаниюОрганизаций.Период КАК ПериодНадбавки
   |   ИЗ
   |      РегистрСведений.НадбавкиПоШтатномуРасписаниюОрганизаций КАК НадбавкиПоШтатномуРасписаниюОрганизаций
   |         ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтатноеРасписаниеОрганизаций КАК ШтатноеРасписаниеОрганизаций
   |         ПО НадбавкиПоШтатномуРасписаниюОрганизаций.ПодразделениеОрганизации = ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации
   |            И НадбавкиПоШтатномуРасписаниюОрганизаций.Должность = ШтатноеРасписаниеОрганизаций.Должность
   |            И НадбавкиПоШтатномуРасписаниюОрганизаций.Период = ШтатноеРасписаниеОрганизаций.Период
   |   ГДЕ
   |      НадбавкиПоШтатномуРасписаниюОрганизаций.ПодразделениеОрганизации = &ПодразделениеОрганизации
   |      И НадбавкиПоШтатномуРасписаниюОрганизаций.Должность = &Должность
   |      И НадбавкиПоШтатномуРасписаниюОрганизаций.Период = &Период) КАК Надбавки
   |ГДЕ
   |   (Надбавки.ПодразделениеОрганизации ЕСТЬ NULL
   |         ИЛИ Надбавки.Должность ЕСТЬ NULL )";
   
   
   НаборЗаписей = РегистрыСведений.НадбавкиПоШтатномуРасписаниюОрганизаций.СоздатьНаборЗаписей();
   
   Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
      НаборЗаписей.Отбор.Должность.Установить(Выборка.ПериодНадбавки);
      НаборЗаписей.Отбор.Должность.Установить(Выборка.ДолжностьНадбавки);
      НаборЗаписей.Отбор.ПодразделениеОрганизации.Установить(Выборка.ПодразделениеОрганизацииНадбавки);
      
      НаборЗаписей.Записать(Истина);
   КонецЦикла;
   
КонецПроцедуры

Процедура УдалениеЗаписейРегистраСведенийОштатныхЕдиницах(пПодразделениеОрганизации, пДолжность);
   
   Запрос = Новый Запрос;
   
   Запрос.УстановитьПараметр("ПодразделениеОрганизации",   пПодразделениеОрганизации);
   Запрос.УстановитьПараметр("Должность",                пДолжность);
   
   Запрос.Текст =
   "ВЫБРАТЬ
   |   Сведения.ПодразделениеОрганизации,
   |   Сведения.Должность,
   |   Сведения.ПодразделениеОрганизацииНадбавки,
   |   Сведения.ДолжностьНадбавки
   |ИЗ
   |   (ВЫБРАТЬ
   |      ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
   |      ШтатноеРасписаниеОрганизаций.Должность КАК Должность,
   |      СведенияОШтатныхЕдиницахОрганизации.Должность КАК ДолжностьНадбавки,
   |      СведенияОШтатныхЕдиницахОрганизации.ПодразделениеОрганизации КАК ПодразделениеОрганизацииНадбавки
   |   ИЗ
   |      РегистрСведений.СведенияОШтатныхЕдиницахОрганизаций КАК СведенияОШтатныхЕдиницахОрганизации
   |         ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтатноеРасписаниеОрганизаций КАК ШтатноеРасписаниеОрганизаций
   |         ПО СведенияОШтатныхЕдиницахОрганизации.ПодразделениеОрганизации = ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации
   |            И СведенияОШтатныхЕдиницахОрганизации.Должность = ШтатноеРасписаниеОрганизаций.Должность
   |   ГДЕ
   |      СведенияОШтатныхЕдиницахОрганизации.ПодразделениеОрганизации = &ПодразделениеОрганизации
   |      И СведенияОШтатныхЕдиницахОрганизации.Должность = &Должность) КАК Сведения
   |ГДЕ
   |   (Сведения.ПодразделениеОрганизации ЕСТЬ NULL
   |         ИЛИ Сведения.Должность ЕСТЬ NULL )";
   
   НаборЗаписей = РегистрыСведений.СведенияОШтатныхЕдиницахОрганизаций.СоздатьНаборЗаписей();
   
   Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
      НаборЗаписей.Отбор.Должность.Установить(Выборка.ДолжностьНадбавки);
      НаборЗаписей.Отбор.ПодразделениеОрганизации.Установить(Выборка.ПодразделениеОрганизацииНадбавки);
      
      НаборЗаписей.Записать(Истина);
   КонецЦикла;
   
КонецПроцедуры

Процедура ЗаполнитьРеквизитыНабораЗаписей(Набор, Подразделение, Должность, Период = Неопределено)
   
   Набор.Отбор.Должность.Установить(Должность);
   Набор.Отбор.ПодразделениеОрганизации.Установить(ПодразделениеОрганизации);
   Если Период <> Неопределено Тогда
      Набор.Отбор.Период.Установить(Период);
   КонецЕсли;
   
   Для Каждого Запись Из Набор Цикл
      Запись.ПодразделениеОрганизации   = ПодразделениеОрганизации;
      Запись.Должность            = Должность;
      Если Период <> Неопределено Тогда
         Запись.Период            = Период;
      КонецЕсли;
   КонецЦикла;
   
КонецПроцедуры

Процедура УстановитьЗаголовкиОрганизацийВФорме()
   
   ЭлементыФормы.ПодразделениеОрганизации.Подсказка = ОбщегоНазначенияЗК.ПреобразоватьСтрокуИнтерфейса("Подразделение организации");
   
   УстановитьЗаголовокФормыЗаписиШтатногоРасписания();
   
КонецПроцедуры // УстановитьЗаголовкиОрганизацийВФорме()

Процедура УстановитьЗаголовокФормыЗаписиШтатногоРасписания()
   
   СтрокаОписания = ОбщегоНазначенияЗК.ПреобразоватьСтрокуИнтерфейса("Штатное расписание организации");
   
   АвтоЗаголовок = Ложь; // заголовок будем писать сами
   Заголовок = СтрокаОписания + ": " + ПодразделениеОрганизации + " " + Должность;
   
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ

Процедура ПриОткрытии()
   
   ТабличноеПолеНадбавки.Отбор.Период.Установить(Период);
   ТабличноеПолеНадбавки.Отбор.Должность.Установить(Должность);
   ТабличноеПолеНадбавки.Отбор.ПодразделениеОрганизации.Установить(ПодразделениеОрганизации);
   ТабличноеПолеНадбавки.Прочитать();
   
   мПериодДо         = Период;
   мДолжностьДо      = Должность;
   мПодразделениеДо   = ПодразделениеОрганизации;
   
   НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.Должность.Значение      = Должность;
   НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.Должность.Использование   = Истина;
   
   НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.ПодразделениеОрганизации.Значение         = ПодразделениеОрганизации;
   НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.ПодразделениеОрганизации.Использование   = Истина;
   
   НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Прочитать();
   Если НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Количество() > 0 тогда
      Запись                = НаборЗаписейСведенияОШтатныхЕдиницахОрганизации[0];
      Информация            = Запись.Информация;
      ДолжностныеОбязанности   = Запись.ДолжностныеОбязанности;
      ДолженЗнать            = Запись.ДолженЗнать;
      ТребованияККвалификации   = Запись.ТребованияККвалификации;
      ДогИндМатОтв         = Запись.ДогИндМатОтв;
      ДогКоллМатОтв         = Запись.ДогКоллМатОтв;
      
   КонецЕсли;
   
   // формируем список значений способов расчета для ввода вида надбавки
   мСписокСпособовРасчетаОплатыТруда = ПроведениеРасчетовПереопределяемый.ПолучитьСписокВариантовНадбавок();
   
   // Установим видимость реквизитов в зависимости от уч.политики по персоналу организаций
   мМассивЭУ = Новый Массив();
   мМассивЭУ.Добавить(ЭлементыФормы.ТабличноеПолеНадбавки.Колонки.Валюта1);
   мМассивЭУ.Добавить(ЭлементыФормы.ТабличноеПолеНадбавки.Колонки.Валюта2);
   мМассивЭУ.Добавить(ЭлементыФормы.ТабличноеПолеНадбавки.Колонки.Валюта3);
   мМассивЭУ.Добавить(ЭлементыФормы.ТабличноеПолеНадбавки.Колонки.Валюта4);
   мМассивЭУ.Добавить(ЭлементыФормы.ТабличноеПолеНадбавки.Колонки.Валюта5);
   мМассивЭУ.Добавить(ЭлементыФормы.ТабличноеПолеНадбавки.Колонки.Валюта6);
   мМассивЭУ.Добавить(ЭлементыФормы.ТабличноеПолеНадбавки.Колонки.Валюта6);
   мМассивЭУ.Добавить(ЭлементыФормы.НадписьВалютаТарифнойСтавки);
   мМассивЭУ.Добавить(ЭлементыФормы.ВалютаТарифнойСтавки);
   РаботаСДиалогамиПереопределяемый.УстановитьВидимостьЭУПоУчетнойПолитикеПоПерсоналу(мМассивЭУ,глЗначениеПеременной("глУчетнаяПолитикаПоПерсоналуОрганизации"),ПодразделениеОрганизации.Владелец);
   
   УстановитьЗаголовкиОрганизацийВФорме();
   
КонецПроцедуры

Процедура ПриЗаписи(Отказ)
   
   УдалениеЗаписейРегистраНадбавки(мПериодДо, мПодразделениеДо, мДолжностьДо);
   УдалениеЗаписейРегистраСведенийОштатныхЕдиницах(мПодразделениеДо, мДолжностьДо);
   
   УдалениеЗаписейРегистраНадбавки(Период, ПодразделениеОрганизации, Должность);
   УдалениеЗаписейРегистраСведенийОштатныхЕдиницах(ПодразделениеОрганизации, Должность);
   
   Если ТабличноеПолеНадбавки.Модифицированность() Тогда
      СообщениеОбОшибке = Ложь;
      ТекстСообщения = "";
      КолЗаписей = ТабличноеПолеНадбавки.Количество();
      Для инд = 1 по КолЗаписей Цикл
         Запись = ТабличноеПолеНадбавки[инд-1];
         Если НЕ ЗначениеЗаполнено(Запись.ВидНадбавки) тогда
            ТекстСообщения = ?(СообщениеОбОшибке, ТекстСообщения + Символы.ПС,ТекстСообщения) + "Поле ""Вид надбавки"" не может быть пустым!";
            СообщениеОбОшибке = Истина;
         КонецЕсли;
         Если Запись.ВидНадбавки.ТребуетВводаТарифногоРазряда Тогда
            ТекстСообщения = ?(СообщениеОбОшибке, ТекстСообщения + Символы.ПС,ТекстСообщения) + "Нельзя выбирать вид надбавки требующий ввода тарифного разряда!";
            СообщениеОбОшибке = Истина;
         КонецЕсли;
      КонецЦикла;
      
      Если СообщениеОбОшибке Тогда
         ТекстСообщения = ТекстСообщения+ Символы.ПС + "Запись строки штатного расписания отменена!";
         Сообщить(ТекстСообщения);
         Отказ = Истина;
         ЭтаФорма.Модифицированность = Истина;
         Возврат;
      КонецЕсли;
         
      ТабличноеПолеНадбавки.Записать(Истина);
   КонецЕсли;
   
   Если НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Количество() = 0 тогда
      
      НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.Должность.Значение      = Должность;
      НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.Должность.Использование    = Истина;
      
      НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.ПодразделениеОрганизации.Значение            = ПодразделениеОрганизации;
      НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.ПодразделениеОрганизации.Использование   = Истина;
      
      Запись = НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Добавить();
   Иначе
      Запись = НаборЗаписейСведенияОШтатныхЕдиницахОрганизации[0];
   КонецЕсли;
   
   Если Запись.Информация              <> Информация ИЛИ
       Запись.ДолжностныеОбязанности     <> ДолжностныеОбязанности ИЛИ
       Запись.ДолженЗнать           <> ДолженЗнать ИЛИ
       Запись.ТребованияККвалификации  <> ТребованияККвалификации ИЛИ
       Запись.Должность              <> Должность ИЛИ
       Запись.ПодразделениеОрганизации <> ПодразделениеОрганизации ИЛИ
       Запись.ДогИндМатОтв          <> ДогИндМатОтв ИЛИ
       Запись.ДогКоллМатОтв          <> ДогКоллМатОтв Тогда
      Запись                      = НаборЗаписейСведенияОШтатныхЕдиницахОрганизации[0];
      Запись.Должность            = Должность;
      Запись.ПодразделениеОрганизации = ПодразделениеОрганизации;
      Запись.Информация            = Информация;
      Запись.ДолжностныеОбязанности   = ДолжностныеОбязанности;
      Запись.ДолженЗнать            = ДолженЗнать;
      Запись.ТребованияККвалификации   = ТребованияККвалификации;
      Запись.ДогИндМатОтв            = ДогИндМатОтв;
      Запись.ДогКоллМатОтв         = ДогКоллМатОтв;

      НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Записать(Истина);
   КонецЕсли;
   
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ УПРАВЛЕНИЯ ФОРМЫ

Процедура ПодразделениеОрганизацииПриИзменении(Элемент)
   
   ЗаполнитьРеквизитыНабораЗаписей(ТабличноеПолеНадбавки, ПодразделениеОрганизации, Должность, Период);
   ЗаполнитьРеквизитыНабораЗаписей(НаборЗаписейСведенияОШтатныхЕдиницахОрганизации, ПодразделениеОрганизации, Должность);
   
   РаботаСДиалогамиПереопределяемый.УстановитьВидимостьЭУПоУчетнойПолитикеПоПерсоналу(мМассивЭУ,глЗначениеПеременной("глУчетнаяПолитикаПоПерсоналуОрганизации"),ПодразделениеОрганизации.Владелец);
   
   УстановитьЗаголовокФормыЗаписиШтатногоРасписания();
   
КонецПроцедуры

Процедура ДолжностьПриИзменении(Элемент)
   
   ЗаполнитьРеквизитыНабораЗаписей(ТабличноеПолеНадбавки, ПодразделениеОрганизации, Должность, Период);
   ЗаполнитьРеквизитыНабораЗаписей(НаборЗаписейСведенияОШтатныхЕдиницахОрганизации, ПодразделениеОрганизации, Должность);
   
   УстановитьЗаголовокФормыЗаписиШтатногоРасписания();
   
КонецПроцедуры

Процедура МинимальнаяТарифнаяСтавкаПриИзменении(Элемент)
   
   Если МаксимальнаяТарифнаяСтавка < МинимальнаяТарифнаяСтавка Тогда
      МаксимальнаяТарифнаяСтавка = МинимальнаяТарифнаяСтавка;
   КонецЕсли;
   
КонецПроцедуры

Процедура МаксимальнаяТарифнаяСтавкаПриИзменении(Элемент)
   
   Если МаксимальнаяТарифнаяСтавка < МинимальнаяТарифнаяСтавка Тогда
      МинимальнаяТарифнаяСтавка = МаксимальнаяТарифнаяСтавка;
   КонецЕсли;
   
КонецПроцедуры

Процедура ПериодПриИзменении(Элемент)
   
   ЗаполнитьРеквизитыНабораЗаписей(ТабличноеПолеНадбавки, ПодразделениеОрганизации, Должность, Период);
   
КонецПроцедуры

Процедура ТабличноеПолеНадбавкиПриПолученииДанных(Элемент, ОформленияСтрок)
   
   РаботаСДиалогамиЗК.ЗаполнитьСведенияОВидахРасчетаОформляемыхСтрок(мСведенияОВидахРасчета, ОформленияСтрок, "ВидНадбавки");

   Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
      
      ДанныеСтроки = ОформлениеСтроки.ДанныеСтроки;
      
      СведенияОВидеРасчета = мСведенияОВидахРасчета[ДанныеСтроки.ВидНадбавки];
      ТолькоПросмотрЯчеек = Ложь;
      
      ЕстьПоказатели = Ложь;
      Для СчПоказателей = 1 По 6 Цикл
         Если СчПоказателей <= СведенияОВидеРасчета["КоличествоПоказателей"] Тогда
            ВидимостьПоказателяИВалюты = Истина;
            Если СведенияОВидеРасчета["Показатель" + СчПоказателей + "НаименованиеВидимость"] Тогда
               ОформлениеСтроки.Ячейки["НаименованиеПоказатель" + СчПоказателей].Видимость = Истина;
               ЕстьПоказатели = Истина;
               ОформлениеСтроки.Ячейки["НаименованиеПоказатель" + СчПоказателей].УстановитьТекст(СведенияОВидеРасчета["Показатель" + СчПоказателей + "Наименование"]);
            Иначе
               ОформлениеСтроки.Ячейки["НаименованиеПоказатель" + СчПоказателей].Видимость = Ложь;
            КонецЕсли;
            Если ВидимостьПоказателяИВалюты Тогда
               ОформлениеСтроки.Ячейки["Показатель" + СчПоказателей].Видимость = СведенияОВидеРасчета["Показатель" + СчПоказателей + "Видимость"];
               ОформлениеСтроки.Ячейки["Валюта" + СчПоказателей].Видимость = СведенияОВидеРасчета["Валюта" + СчПоказателей + "Видимость"];
            Иначе
               ОформлениеСтроки.Ячейки["Показатель" + СчПоказателей].Видимость = Ложь;
               ОформлениеСтроки.Ячейки["Валюта" + СчПоказателей].Видимость = Ложь;
            КонецЕсли;
            ОформлениеСтроки.Ячейки["Валюта" + СчПоказателей].ТолькоПросмотр = (НЕ СведенияОВидеРасчета["Валюта" + СчПоказателей + "Видимость"]) ИЛИ (ТолькоПросмотрЯчеек);
            ОформлениеСтроки.Ячейки["Показатель" + СчПоказателей].ТолькоПросмотр = ТолькоПросмотрЯчеек;
         Иначе
            ОформлениеСтроки.Ячейки["НаименованиеПоказатель" + СчПоказателей].Видимость = Ложь;
            ОформлениеСтроки.Ячейки["Показатель" + СчПоказателей].Видимость = Ложь;
            ОформлениеСтроки.Ячейки["Валюта" + СчПоказателей].Видимость = Ложь;         
         КонецЕсли;
      КонецЦикла;
      
      Если не ЕстьПоказатели Тогда
         Если ЗначениеЗаполнено(ДанныеСтроки.ВидНадбавки) Тогда
            ОформлениеСтроки.Ячейки["НаименованиеПоказатель1"].УстановитьТекст("<вводится ежемесячно>");
            ОформлениеСтроки.Ячейки["НаименованиеПоказатель1"].Видимость = Истина;
            ОформлениеСтроки.Ячейки["Валюта1"].Видимость = Истина;
         Иначе
            ОформлениеСтроки.Ячейки["НаименованиеПоказатель1"].Видимость = Ложь;
            ОформлениеСтроки.Ячейки["Валюта1"].Видимость = Ложь;
         КонецЕсли;
         ОформлениеСтроки.Ячейки["Показатель1"].ТолькоПросмотр = Истина;
      КонецЕсли;
      ОформлениеСтроки.Ячейки.Показатели.Видимость = Ложь;
      
   КонецЦикла;
   
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ КОЛОНОК ТАБЛИЧНОГО ПОЛЯ "ТабличноеПолеНадбавки"

// Процедура - обработчик события "ПриИзменении" реквизита "ВидНадбавки".
//
Процедура ТабличноеПолеНадбавкиВидНадбавкиПриИзменении(Элемент)
   
   СведенияОВидеРасчета = РаботаСДиалогамиЗК.ПолучитьСведенияОВидеРасчетаСхемыМотивации(мСведенияОВидахРасчета, Элемент.Значение);
   Для СчПоказателей = 1 По Мин(СведенияОВидеРасчета["КоличествоПоказателей"],6) Цикл
      Если НЕ ЗначениеЗаполнено(ЭлементыФормы.ТабличноеПолеНадбавки.ТекущиеДанные["Валюта" + СчПоказателей]) И
         СведенияОВидеРасчета["Валюта" + СчПоказателей + "Видимость"] Тогда
         ЭлементыФормы.ТабличноеПолеНадбавки.ТекущиеДанные["Валюта" + СчПоказателей] = Справочники.Валюты.ПустаяСсылка();
      КонецЕсли;
      Если НЕ СведенияОВидеРасчета["Валюта" + СчПоказателей + "Видимость"] Тогда
         ЭлементыФормы.ТабличноеПолеНадбавки.ТекущиеДанные["Валюта" + СчПоказателей] = Справочники.Валюты.ПустаяСсылка();
      КонецЕсли;
      Если НЕ СведенияОВидеРасчета["Показатель" + СчПоказателей + "Видимость"] Тогда
         ЭлементыФормы.ТабличноеПолеНадбавки.ТекущиеДанные["Показатель" + СчПоказателей] = 0;
      КонецЕсли;
   КонецЦикла;

   РаботаСДиалогамиЗК.УстановитьФорматЗначенийПоказателей(ЭлементыФормы.ТабличноеПолеНадбавки, мСведенияОВидахРасчета, "ВидНадбавки");
   
КонецПроцедуры

// Процедура - обработчик события "НачалоВыбора" реквизита "ВидНадбавки".
//
Процедура ТабличноеПолеНадбавкиВидНадбавкиНачалоВыбора(Элемент, СтандартнаяОбработка)
   
   СтандартнаяОбработка = Ложь;
   
   //Предложим для выбора список расчетов, для расчета которых не требуется ввода тарифного разряда
   мФормаВыбораВидаРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ПолучитьФормуВыбора("ФормаВыбора", Элемент, "дляРегистраНадбавкиПоШтатномуРасписаниюОрганизаций");
   
   мФормаВыбораВидаРасчета.НачальноеЗначениеВыбора   = Элемент.Значение;
   
   мФормаВыбораВидаРасчета.Отбор.ТребуетВводаТарифногоРазряда.Установить(ЛОЖЬ);
   мФормаВыбораВидаРасчета.Отбор.ВидВремени.Установить(Перечисления.ВидыВремени.ДополнительноОплачиваемоеВПределахНормы);
   
   мФормаВыбораВидаРасчета.Отбор.СпособРасчета.ВидСравнения   = ВидСравнения.ВСписке;
   мФормаВыбораВидаРасчета.Отбор.СпособРасчета.Значение      = мСписокСпособовРасчетаОплатыТруда;
   мФормаВыбораВидаРасчета.Отбор.СпособРасчета.Использование   = ИСТИНА;
   
   мФормаВыбораВидаРасчета.Отбор.Ссылка.ВидСравнения   = ВидСравнения.НеРавно;
   мФормаВыбораВидаРасчета.Отбор.Ссылка.Значение      = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.РайонныйКоэффициент;
   мФормаВыбораВидаРасчета.Отбор.Ссылка.Использование   = ИСТИНА;
   
   мФормаВыбораВидаРасчета.Открыть();

КонецПроцедуры

// Процедура - обработчик события "АвтоПодборТекста" реквизита "ВидНадбавки".
//
Процедура ТабличноеПолеНадбавкиВидНадбавкиАвтоПодборТекста(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка)
   
   ПроцедурыПоискаПоСтроке.АвтоПодборТекстаВЭлементеУправления(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка,Новый Структура("ТребуетВводаТарифногоРазряда,СпособРасчета,ВидВремени",Ложь,мСписокСпособовРасчетаОплатыТруда,Перечисления.ВидыВремени.ДополнительноОплачиваемоеВПределахНормы), Тип("ПланВидовРасчетаСсылка.ОсновныеНачисленияОрганизаций"));

КонецПроцедуры

// Процедура - обработчик события "ОкончаниеВводаТекста" реквизита "ВидНадбавки".
//
Процедура ТабличноеПолеНадбавкиВидНадбавкиОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
   
   ПроцедурыПоискаПоСтроке.ОкончаниеВводаТекстаВЭлементеУправления(Элемент, Текст, Значение, СтандартнаяОбработка, Новый Структура("ТребуетВводаТарифногоРазряда,СпособРасчета,ВидВремени",Ложь,мСписокСпособовРасчетаОплатыТруда,Перечисления.ВидыВремени.ДополнительноОплачиваемоеВПределахНормы), ЭтаФорма, Тип("ПланВидовРасчетаСсылка.ОсновныеНачисленияОрганизаций"), Ложь, Ложь, Неопределено, Ложь);
   
КонецПроцедуры

Процедура ТабличноеПолеНадбавкиПриАктивизацииСтроки(Элемент)
   
   ПодключитьОбработчикОжидания("ОбработчикОжиданияТабличноеПолеНадбавкиПриАктивизацииСтроки", 0.05, Истина);
   
КонецПроцедуры

Процедура ОбработчикОжиданияТабличноеПолеНадбавкиПриАктивизацииСтроки()
   
   РаботаСДиалогамиЗК.УстановитьФорматЗначенийПоказателей(ЭлементыФормы.ТабличноеПолеНадбавки, мСведенияОВидахРасчета, "ВидНадбавки");
   
КонецПроцедуры

//<СЗВ>
//<Лысых М.И. 18.12.2012 21:54:19>
// добавляем реквизит Разряд на форму

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СЗВ

Процедура сзв_УстановитьДействияФормы()

   События = Новый Массив;
   События.Добавить("ПриОткрытии");
   События.Добавить("ПриЗаписи");

      
   Для каждого ТиповоеСобытие Из События Цикл
      
      ТекДействие   = Строка(ПолучитьДействие(ТиповоеСобытие));
      ИмяСобытияНов = "сзв_"+ТиповоеСобытие;
      
      // Типовой обработчик назначен - кэшируем его имя.
      Если НЕ ПустаяСтрока(ТекДействие) Тогда
         
         КлючТиповогоСобытия = "сзв_Типовой_"+ТиповоеСобытие;
         ДополнительныеСвойстваД.Вставить(КлючТиповогоСобытия,ТекДействие);
         
      КонецЕсли;
      
      УстановитьДействие(ТиповоеСобытие,Новый Действие(ИмяСобытияНов));
      
   КонецЦикла;   

КонецПроцедуры // сзв_УстановитьДействияФормы()
     
Процедура сзв_ПриОткрытии()
   // Блок кода перед выполнением типового события открытия
   // Вызываем типовой обработчикПередОткрытием
   Если ДополнительныеСвойстваД.Свойство("сзв_Типовой_ПриОткрытии") Тогда
      КодВыполнения = ДополнительныеСвойстваД.сзв_Типовой_ПриОткрытии+"()";
      Выполнить(КодВыполнения);
   КонецЕсли;
   
   ///////////////////////////////////////////////////////////////////////////////////////////////////////////
   ТабличноеПолеНадбавки.Отбор.Период.Установить(Период);
   ТабличноеПолеНадбавки.Отбор.Должность.Установить(Должность);
   ТабличноеПолеНадбавки.Отбор.ПодразделениеОрганизации.Установить(ПодразделениеОрганизации);
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:22:50>
   // добавляем реквизит Разряд
   ТабличноеПолеНадбавки.Отбор.СЗВ_Разряд.Установить(СЗВ_Разряд);
   //</Лысых М.И.>
   //</СЗВ>
   ТабличноеПолеНадбавки.Прочитать();
   
   мПериодДо         = Период;
   мДолжностьДо      = Должность;
   СЗВ_мРазрядДо       = СЗВ_Разряд;
   мПодразделениеДо   = ПодразделениеОрганизации;
   
   НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.Должность.Значение      = Должность;
   НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.Должность.Использование   = Истина;
   
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:21:53>
   // добавляем реквизит Разряд
   НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.СЗВ_Разряд.Значение      = СЗВ_Разряд;
   НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.СЗВ_Разряд.Использование   = Истина;
   //</Лысых М.И.>
   //</СЗВ>
   
   НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.ПодразделениеОрганизации.Значение         = ПодразделениеОрганизации;
   НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.ПодразделениеОрганизации.Использование   = Истина;
   
   НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Прочитать();
   Если НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Количество() > 0 тогда
      Запись                = НаборЗаписейСведенияОШтатныхЕдиницахОрганизации[0];
      Информация            = Запись.Информация;
      ДолжностныеОбязанности   = Запись.ДолжностныеОбязанности;
      ДолженЗнать            = Запись.ДолженЗнать;
      ТребованияККвалификации   = Запись.ТребованияККвалификации;
      ДогИндМатОтв         = Запись.ДогИндМатОтв;
      ДогКоллМатОтв         = Запись.ДогКоллМатОтв;
   КонецЕсли;
    /////////////////////////////////////////////////////////////////////////////////////////////////////////
   ЭлементыФормы.Панель1.Высота = ЭлементыФормы.Панель1.Высота - 19 - 2*5;
   ЭлементыФормы.Панель1.Верх = ЭлементыФормы.Панель1.Верх + 19 + 2*5;
   
   НовПоле = ЭлементыФормы.Добавить(Тип("Надпись"),"СЗВ_НадписьРазряд",Истина);
   НовПоле.Данные = "";
   НовПоле.Заголовок = "Разряд";
   НовПоле.Доступность = Истина;
   НовПоле.Верх = 56;
   НовПоле.Высота = 19;
   НовПоле.Ширина = 84;
   НовПоле.Лево = 8;
   НовПоле.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Лево;
   НовПоле.ВертикальноеПоложение = ВертикальноеПоложение.Верх;

   НовПоле = ЭлементыФормы.Добавить(Тип("ПолеВвода"),"СЗВ_Разряд",Истина);
   НовПоле.Данные = "СЗВ_Разряд";
   НовПоле.Доступность = Истина;
   НовПоле.Верх = 56;
   НовПоле.Высота = 19;
   НовПоле.Ширина = 160;
   НовПоле.Лево = 94;
   НовПоле.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Лево;
   НовПоле.ВертикальноеПоложение = ВертикальноеПоложение.Верх;
   НовПоле.УстановитьДействие("ПриИзменении",Новый Действие("СЗВ_РазрядПриИзменении"));
   //НовПоле.УстановитьДействие("НачалоВыбораИзСписка",Новый Действие("СЗВ_РазрядНачалоВыбораИзСписка"));
   
   //СписокДолжностей = СЗВ_Доработки_Разряд.Доп_ПроцедурыУправленияПерсоналом_ВыбратьИзШтатногоРасписанияОрганизации("СЗВ_Разряд", ПодразделениеОрганизации.Владелец, ЭтаФорма);
   //      
   //КоличествоЗначений = СписокДолжностей.Количество();
   //НовПоле.КнопкаСпискаВыбора = КоличествоЗначений > 0;
   
   ЭлементыФормы.ПодразделениеОрганизации.УстановитьДействие("ПриИзменении",Новый Действие("СЗВ_ПодразделениеОрганизацииПриИзменении"));
   ЭлементыФормы.Должность.УстановитьДействие("ПриИзменении",Новый Действие("СЗВ_ДолжностьПриИзменении"));
   ЭлементыФормы.Период.УстановитьДействие("ПриИзменении",Новый Действие("СЗВ_ПериодПриИзменении"));
КонецПроцедуры // сзв_ПередОткрытием()

Процедура СЗВ_ПодразделениеОрганизацииПриИзменении(Элемент)
   
   СЗВ_ЗаполнитьРеквизитыНабораЗаписей(ТабличноеПолеНадбавки, ПодразделениеОрганизации, Должность, СЗВ_Разряд, Период);
   СЗВ_ЗаполнитьРеквизитыНабораЗаписей(НаборЗаписейСведенияОШтатныхЕдиницахОрганизации, ПодразделениеОрганизации, Должность, СЗВ_Разряд);
   
   РаботаСДиалогамиПереопределяемый.УстановитьВидимостьЭУПоУчетнойПолитикеПоПерсоналу(мМассивЭУ,глЗначениеПеременной("глУчетнаяПолитикаПоПерсоналуОрганизации"),ПодразделениеОрганизации.Владелец);
   
   УстановитьЗаголовокФормыЗаписиШтатногоРасписания();
   
КонецПроцедуры

Процедура СЗВ_ДолжностьПриИзменении(Элемент)
   
   СЗВ_ЗаполнитьРеквизитыНабораЗаписей(ТабличноеПолеНадбавки, ПодразделениеОрганизации, Должность, СЗВ_Разряд, Период);
   СЗВ_ЗаполнитьРеквизитыНабораЗаписей(НаборЗаписейСведенияОШтатныхЕдиницахОрганизации, ПодразделениеОрганизации, Должность, СЗВ_Разряд);
   
   УстановитьЗаголовокФормыЗаписиШтатногоРасписания();
   
КонецПроцедуры

Процедура СЗВ_РазрядПриИзменении(Элемент)
   
   СЗВ_ЗаполнитьРеквизитыНабораЗаписей(ТабличноеПолеНадбавки, ПодразделениеОрганизации, Должность, СЗВ_Разряд, Период);
   СЗВ_ЗаполнитьРеквизитыНабораЗаписей(НаборЗаписейСведенияОШтатныхЕдиницахОрганизации, ПодразделениеОрганизации, Должность, СЗВ_Разряд);
   
   УстановитьЗаголовокФормыЗаписиШтатногоРасписания();
   
КонецПроцедуры

Процедура СЗВ_ПериодПриИзменении(Элемент)
   
   СЗВ_ЗаполнитьРеквизитыНабораЗаписей(ТабличноеПолеНадбавки, ПодразделениеОрганизации, Должность, СЗВ_Разряд, Период);
   
КонецПроцедуры

Процедура СЗВ_РазрядНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
   
   СтандартнаяОбработка = Ложь;
   
   СписокВыбора = СЗВ_Доработки_Разряд.Доп_ПроцедурыУправленияПерсоналом_ВыбратьИзШтатногоРасписанияОрганизации("СЗВ_Разряд", ПодразделениеОрганизации.Владелец, ЭтаФорма);
                            
   Элемент.ВысотаСпискаВыбора = Мин(10, СписокВыбора.Количество());
   ЭлементСписка = ВыбратьИзСписка(СписокВыбора,Элемент,СписокВыбора.НайтиПоЗначению(Элемент.Значение));
   Если ЭлементСписка <> Неопределено Тогда
      Элемент.Значение = ЭлементСписка.Значение;
   КонецЕсли;
   
КонецПроцедуры

Процедура СЗВ_ЗаполнитьРеквизитыНабораЗаписей(Набор, Подразделение, Должность, СЗВ_Разряд, Период = Неопределено)
   
   Набор.Отбор.Должность.Установить(Должность);
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:17:59>
   // добавляем реквизит Разряд
   Набор.Отбор.СЗВ_Разряд.Установить(СЗВ_Разряд);   
   //</Лысых М.И.>
   //</СЗВ>
   Набор.Отбор.ПодразделениеОрганизации.Установить(ПодразделениеОрганизации);
   Если Период <> Неопределено Тогда
      Набор.Отбор.Период.Установить(Период);
   КонецЕсли;
   
   Для Каждого Запись Из Набор Цикл
      Запись.ПодразделениеОрганизации   = ПодразделениеОрганизации;
      //<СЗВ>
      //<Лысых М.И. 23.12.2012 18:18:05>
      // добавляем реквизит Разряд
      Запись.СЗВ_Разряд            = СЗВ_Разряд;
      //</Лысых М.И.>
      //</СЗВ>
      Запись.Должность            = Должность;
      Если Период <> Неопределено Тогда
         Запись.Период            = Период;
      КонецЕсли;
   КонецЦикла;
   
КонецПроцедуры

Процедура СЗВ_ПриЗаписи(Отказ)
   
   // полностью подменяется
   
   СЗВ_УдалениеЗаписейРегистраНадбавки(мПериодДо, мПодразделениеДо, мДолжностьДо, СЗВ_мРазрядДо);
   СЗВ_УдалениеЗаписейРегистраСведенийОштатныхЕдиницах(мПодразделениеДо, мДолжностьДо, СЗВ_мРазрядДо);
   
   СЗВ_УдалениеЗаписейРегистраНадбавки(Период, ПодразделениеОрганизации, Должность, СЗВ_Разряд);
   СЗВ_УдалениеЗаписейРегистраСведенийОштатныхЕдиницах(ПодразделениеОрганизации, Должность, СЗВ_Разряд);
   
   Если ТабличноеПолеНадбавки.Модифицированность() Тогда
      СообщениеОбОшибке = Ложь;
      ТекстСообщения = "";
      КолЗаписей = ТабличноеПолеНадбавки.Количество();
      Для инд = 1 по КолЗаписей Цикл
         Запись = ТабличноеПолеНадбавки[инд-1];
         Если НЕ ЗначениеЗаполнено(Запись.ВидНадбавки) тогда
            ТекстСообщения = ?(СообщениеОбОшибке, ТекстСообщения + Символы.ПС,ТекстСообщения) + "Поле ""Вид надбавки"" не может быть пустым!";
            СообщениеОбОшибке = Истина;
         КонецЕсли;
         Если Запись.ВидНадбавки.ТребуетВводаТарифногоРазряда Тогда
            ТекстСообщения = ?(СообщениеОбОшибке, ТекстСообщения + Символы.ПС,ТекстСообщения) + "Нельзя выбирать вид надбавки требующий ввода тарифного разряда!";
            СообщениеОбОшибке = Истина;
         КонецЕсли;
      КонецЦикла;
      
      Если СообщениеОбОшибке Тогда
         ТекстСообщения = ТекстСообщения+ Символы.ПС + "Запись строки штатного расписания отменена!";
         Сообщить(ТекстСообщения);
         Отказ = Истина;
         ЭтаФорма.Модифицированность = Истина;
         Возврат;
      КонецЕсли;
         
      ТабличноеПолеНадбавки.Записать(Истина);
   КонецЕсли;
   
   Если НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Количество() = 0 тогда
      
      НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.Должность.Значение      = Должность;
      НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.Должность.Использование    = Истина;
      
      //<СЗВ>
      //<Лысых М.И. 23.12.2012 18:25:44>
      // добавляем реквизит Разряд
      НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.СЗВ_Разряд.Значение      = СЗВ_Разряд;
      НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.СЗВ_Разряд.Использование    = Истина;
      //</Лысых М.И.>
      //</СЗВ>
      
      НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.ПодразделениеОрганизации.Значение            = ПодразделениеОрганизации;
      НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Отбор.ПодразделениеОрганизации.Использование   = Истина;
      
      Запись = НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Добавить();
   Иначе
      Запись = НаборЗаписейСведенияОШтатныхЕдиницахОрганизации[0];
   КонецЕсли;
   
   Если Запись.Информация              <> Информация ИЛИ
       Запись.ДолжностныеОбязанности     <> ДолжностныеОбязанности ИЛИ
       Запись.ДолженЗнать           <> ДолженЗнать ИЛИ
       Запись.ТребованияККвалификации  <> ТребованияККвалификации ИЛИ
       Запись.Должность              <> Должность ИЛИ
       Запись.ДогИндМатОтв             <> ДогИндМатОтв ИЛИ
       Запись.ДогКоллМатОтв            <> ДогКоллМатОтв ИЛИ
       //<СЗВ>
       //<Лысых М.И. 23.12.2012 18:26:11>
       // добавляем реквизит Разряд
       Запись.СЗВ_Разряд              <> СЗВ_Разряд ИЛИ
       //</Лысых М.И.>
       //</СЗВ>
       Запись.ПодразделениеОрганизации <> ПодразделениеОрганизации тогда
      Запись                      = НаборЗаписейСведенияОШтатныхЕдиницахОрганизации[0];
      Запись.Должность            = Должность;
      //<СЗВ>
      //<Лысых М.И. 23.12.2012 18:26:32>
      // добавляем реквизит Разряд
      Запись.СЗВ_Разряд            = СЗВ_Разряд;
      //</Лысых М.И.>
      //</СЗВ>
      Запись.ПодразделениеОрганизации = ПодразделениеОрганизации;
      Запись.Информация            = Информация;
      Запись.ДолжностныеОбязанности   = ДолжностныеОбязанности;
      Запись.ДолженЗнать            = ДолженЗнать;
      Запись.ТребованияККвалификации   = ТребованияККвалификации;
      Запись.ДогИндМатОтв             = ДогИндМатОтв;
      Запись.ДогКоллМатОтв            = ДогКоллМатОтв;
      
      НаборЗаписейСведенияОШтатныхЕдиницахОрганизации.Записать(Истина);
   КонецЕсли;
   
КонецПроцедуры

Процедура СЗВ_УдалениеЗаписейРегистраНадбавки(пПериод, пПодразделениеОрганизации, пДолжность, пРазряд);
   
   Запрос = Новый Запрос;
   
   Запрос.УстановитьПараметр("Период",                  пПериод);
   Запрос.УстановитьПараметр("ПодразделениеОрганизации",   пПодразделениеОрганизации);
   Запрос.УстановитьПараметр("Должность",                пДолжность);
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:27:47>
   // добавляем реквизит Разряд
   Запрос.УстановитьПараметр("СЗВ_Разряд",             пРазряд);   
   //</Лысых М.И.>
   //</СЗВ>
   
   Запрос.Текст =
   "ВЫБРАТЬ
   |   Надбавки.ПодразделениеОрганизации,
   |   Надбавки.Должность,
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:28:28>
   // добавляем реквизит Разряд
   |   Надбавки.СЗВ_Разряд,
   |   Надбавки.СЗВ_РазрядНадбавки,
   //</Лысых М.И.>
   //</СЗВ>
   |   Надбавки.ПодразделениеОрганизацииНадбавки,
   |   Надбавки.ДолжностьНадбавки,
   |   Надбавки.Период,
   |   Надбавки.ПериодНадбавки
   |ИЗ
   |   (ВЫБРАТЬ
   |      ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
   |      ШтатноеРасписаниеОрганизаций.Должность КАК Должность,
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:29:23>
   // добавляем реквизит Разряд
   |      ШтатноеРасписаниеОрганизаций.СЗВ_Разряд КАК СЗВ_Разряд,
    |      НадбавкиПоШтатномуРасписаниюОрганизаций.СЗВ_Разряд КАК СЗВ_РазрядНадбавки,
   //</Лысых М.И.>
   //</СЗВ>
   |      НадбавкиПоШтатномуРасписаниюОрганизаций.Должность КАК ДолжностьНадбавки,
   |      НадбавкиПоШтатномуРасписаниюОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизацииНадбавки,
   |      ШтатноеРасписаниеОрганизаций.Период КАК Период,
   |      НадбавкиПоШтатномуРасписаниюОрганизаций.Период КАК ПериодНадбавки
   |   ИЗ
   |      РегистрСведений.НадбавкиПоШтатномуРасписаниюОрганизаций КАК НадбавкиПоШтатномуРасписаниюОрганизаций
   |         ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтатноеРасписаниеОрганизаций КАК ШтатноеРасписаниеОрганизаций
   |         ПО НадбавкиПоШтатномуРасписаниюОрганизаций.ПодразделениеОрганизации = ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации
   |            И НадбавкиПоШтатномуРасписаниюОрганизаций.Должность = ШтатноеРасписаниеОрганизаций.Должность
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:30:07>
   // добавляем реквизит Разряд
   |            И НадбавкиПоШтатномуРасписаниюОрганизаций.СЗВ_Разряд = ШтатноеРасписаниеОрганизаций.СЗВ_Разряд   
   //</Лысых М.И.>
   //</СЗВ>
   |            И НадбавкиПоШтатномуРасписаниюОрганизаций.Период = ШтатноеРасписаниеОрганизаций.Период
   |   ГДЕ
   |      НадбавкиПоШтатномуРасписаниюОрганизаций.ПодразделениеОрганизации = &ПодразделениеОрганизации
   |      И НадбавкиПоШтатномуРасписаниюОрганизаций.Должность = &Должность
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:30:31>
   // добавляем реквизит Разряд
   |      И НадбавкиПоШтатномуРасписаниюОрганизаций.СЗВ_Разряд = &СЗВ_Разряд   
   //</Лысых М.И.>
   //</СЗВ>
   |      И НадбавкиПоШтатномуРасписаниюОрганизаций.Период = &Период) КАК Надбавки
   |ГДЕ
   |   (Надбавки.ПодразделениеОрганизации ЕСТЬ NULL
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:30:51>
   // добавляем реквизит Разряд
   |         ИЛИ Надбавки.СЗВ_Разряд ЕСТЬ NULL
   //</Лысых М.И.>
   //</СЗВ>
   |         ИЛИ Надбавки.Должность ЕСТЬ NULL )";
   
   
   НаборЗаписей = РегистрыСведений.НадбавкиПоШтатномуРасписаниюОрганизаций.СоздатьНаборЗаписей();
   
   Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
      НаборЗаписей.Отбор.Должность.Установить(Выборка.ПериодНадбавки);
      НаборЗаписей.Отбор.Должность.Установить(Выборка.ДолжностьНадбавки);
      //<СЗВ>
      //<Лысых М.И. 23.12.2012 18:31:27>
      // добавляем реквизит Разряд
      НаборЗаписей.Отбор.СЗВ_Разряд.Установить(Выборка.СЗВ_РазрядНадбавки);
      //</Лысых М.И.>
      //</СЗВ>
      НаборЗаписей.Отбор.ПодразделениеОрганизации.Установить(Выборка.ПодразделениеОрганизацииНадбавки);
      
      НаборЗаписей.Записать(Истина);
   КонецЦикла;
   
КонецПроцедуры

Процедура СЗВ_УдалениеЗаписейРегистраСведенийОштатныхЕдиницах(пПодразделениеОрганизации, пДолжность, пРазряд);
   
   Запрос = Новый Запрос;
   
   Запрос.УстановитьПараметр("ПодразделениеОрганизации",   пПодразделениеОрганизации);
   Запрос.УстановитьПараметр("Должность",                пДолжность);
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:31:58>
   // добавляем реквизит Разряд
   Запрос.УстановитьПараметр("СЗВ_Разряд",             пРазряд);   
   //</Лысых М.И.>
   //</СЗВ>
   
   Запрос.Текст =
   "ВЫБРАТЬ
   |   Сведения.ПодразделениеОрганизации,
   |   Сведения.Должность,
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:32:24>
   // добавляем реквизит Разряд
   |   Сведения.СЗВ_Разряд,
   |   Сведения.СЗВ_РазрядНадбавки,
   //</Лысых М.И.>
   //</СЗВ>
   |   Сведения.ПодразделениеОрганизацииНадбавки,
   |   Сведения.ДолжностьНадбавки
   |ИЗ
   |   (ВЫБРАТЬ
   |      ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
   |      ШтатноеРасписаниеОрганизаций.Должность КАК Должность,
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:32:24>
   // добавляем реквизит Разряд
   |      ШтатноеРасписаниеОрганизаций.СЗВ_Разряд как СЗВ_Разряд,
   |      СведенияОШтатныхЕдиницахОрганизации.СЗВ_Разряд как СЗВ_РазрядНадбавки,
   //</Лысых М.И.>
   //</СЗВ>
   |      СведенияОШтатныхЕдиницахОрганизации.Должность КАК ДолжностьНадбавки,
   |      СведенияОШтатныхЕдиницахОрганизации.ПодразделениеОрганизации КАК ПодразделениеОрганизацииНадбавки
   |   ИЗ
   |      РегистрСведений.СведенияОШтатныхЕдиницахОрганизаций КАК СведенияОШтатныхЕдиницахОрганизации
   |         ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтатноеРасписаниеОрганизаций КАК ШтатноеРасписаниеОрганизаций
   |         ПО СведенияОШтатныхЕдиницахОрганизации.ПодразделениеОрганизации = ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации
   |            И СведенияОШтатныхЕдиницахОрганизации.Должность = ШтатноеРасписаниеОрганизаций.Должность
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:33:48>
   // добавляем реквизит Разряд
   |            И СведенияОШтатныхЕдиницахОрганизации.СЗВ_Разряд = ШтатноеРасписаниеОрганизаций.СЗВ_Разряд
   //</Лысых М.И.>
   //</СЗВ>
   |   ГДЕ
   |      СведенияОШтатныхЕдиницахОрганизации.ПодразделениеОрганизации = &ПодразделениеОрганизации
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:34:10>
   // добавляем реквизит Разряд
   |      И СведенияОШтатныхЕдиницахОрганизации.СЗВ_Разряд = &СЗВ_Разряд
   //</Лысых М.И.>
   //</СЗВ>
   |      И СведенияОШтатныхЕдиницахОрганизации.Должность = &Должность) КАК Сведения
   |ГДЕ
   |   (Сведения.ПодразделениеОрганизации ЕСТЬ NULL
   //<СЗВ>
   //<Лысых М.И. 23.12.2012 18:34:38>
   // добавляем реквизит Разряд
   |         ИЛИ Сведения.СЗВ_Разряд ЕСТЬ NULL
   //</Лысых М.И.>
   //</СЗВ>
   |         ИЛИ Сведения.Должность ЕСТЬ NULL )";
   
   НаборЗаписей = РегистрыСведений.СведенияОШтатныхЕдиницахОрганизаций.СоздатьНаборЗаписей();
   
   Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
      НаборЗаписей.Отбор.Должность.Установить(Выборка.ДолжностьНадбавки);
      НаборЗаписей.Отбор.ПодразделениеОрганизации.Установить(Выборка.ПодразделениеОрганизацииНадбавки);
      //<СЗВ>
      //<Лысых М.И. 23.12.2012 18:34:54>
      // добавляем реквизит Разряд
      НаборЗаписей.Отбор.СЗВ_Разряд.Установить(Выборка.СЗВ_РазрядНадбавки);
      //</Лысых М.И.>
      //</СЗВ>
      НаборЗаписей.Записать(Истина);
   КонецЦикла;
   
КонецПроцедуры


//</Лысых М.И.>
//</СЗВ>

////////////////////////////////////////////////////////////////////////////////
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ
//

мСведенияОВидахРасчета = Новый Соответствие;

//<СЗВ>
//<Лысых М.И. 18.12.2012 21:53:53>
// добавляем реквизит Разряд на форму
ДополнительныеСвойстваД = Новый Структура;
СЗВ_УстановитьДействияФормы();
//</Лысых М.И.>
//</СЗВ>


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск