Отредактировано по замечаниям 1С напарника, исправлены баги.

This commit is contained in:
tsvetkoff
2026-08-15 17:56:20 +05:00
parent bcadc737b7
commit 691edc541c
2 changed files with 105 additions and 15 deletions
@@ -499,6 +499,10 @@
<dataPath xsi:type="form:DataPath">
<segments>Объект.Подразделение</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>ПодразделениеПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ПодразделениеРасширеннаяПодсказка</name>
<id>493</id>
@@ -595,7 +599,7 @@
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<readOnly>false</readOnly>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
@@ -608,18 +612,10 @@
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textColor xsi:type="core:ColorRef">
<color>Style.SpecialTextColor</color>
</textColor>
<backColor xsi:type="core:ColorRef">
<color>Style.ReportHeaderBackColor</color>
</backColor>
<textSize>Normal</textSize>
<font xsi:type="core:FontRef">
<font>Style.NormalTextFont</font>
<bold>true</bold>
<italic>false</italic>
<underline>false</underline>
<strikeout>false</strikeout>
<scale>100</scale>
</font>
</extInfo>
</items>
<items xsi:type="form:FormField">
@@ -143,7 +143,7 @@
Возврат ВидВремениСверхурочныеБезПовышеннойОплатыСГЗ;
ИначеЕсли ТекущаяСтатьяФинансирования = СтатьяФинансированияПД Тогда
Возврат ВидВремениСверхурочныеБезПовышеннойОплатыПД;
ИначеЕсли Объект.СтатьяФинансирования = СтатьяФинансированияОМС Тогда
ИначеЕсли ТекущаяСтатьяФинансирования = СтатьяФинансированияОМС Тогда
Возврат ВидВремениСверхурочныеБезПовышеннойОплатыОМС;
КонецЕсли;
КонецФункции // ВидВремениНаСервереПоБукве()
@@ -3101,6 +3101,8 @@
СвойствоДляНаименованияДолжностиОМС = СвойствоСотрудникаНаименованиеДолжностиДляТабеля("ОМС");
ЗначениеВРеквизитФормы(ЭтаОбработка,"Объект");
ЗаполнитьСписокВыбораПодразделений();
КонецПроцедуры
// <Описание процедуры>
@@ -3308,10 +3310,102 @@
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
ЗаполнитьСписокВыбораПодразделений();
ОбновитьСписокЗагруженныхТабелей();
КонецПроцедуры
&НаКлиенте
Процедура ПодразделениеПриИзменении(Элемент)
ЗаполнитьСписокВыбораНаименованийПодразделений();
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеПодразделенияПриИзменении(Элемент)
// Редактируемое поле; дополнительной логики не требуется.
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСписокВыбораПодразделений()
Элементы.Подразделение.СписокВыбора.Очистить();
Элементы.НаименованиеПодразделения.СписокВыбора.Очистить();
Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПС_НастройкиЗагрузкиТабелейСрезПоследних.СтруктурноеПодразделение КАК СтруктурноеПодразделение,
| ПС_НастройкиЗагрузкиТабелейСрезПоследних.НаименованиеПодразделенияПоТабелю КАК НаименованиеПодразделенияПоТабелю
|ИЗ
| РегистрСведений.ПС_НастройкиЗагрузкиТабелей.СрезПоследних(, Организация = &Организация) КАК ПС_НастройкиЗагрузкиТабелейСрезПоследних
|ГДЕ
| ПС_НастройкиЗагрузкиТабелейСрезПоследних.СтруктурноеПодразделение <> &ПустоеПодразделение
|УПОРЯДОЧИТЬ ПО
| СтруктурноеПодразделение";
Запрос.УстановитьПараметр("Организация", Объект.Организация);
Запрос.УстановитьПараметр("ПустоеПодразделение", Справочники.ПодразделенияОрганизаций.ПустаяСсылка());
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат;
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Если ЗначениеЗаполнено(Выборка.СтруктурноеПодразделение) Тогда
Элементы.Подразделение.СписокВыбора.Добавить(Выборка.СтруктурноеПодразделение);
КонецЕсли;
Если ЗначениеЗаполнено(Выборка.НаименованиеПодразделенияПоТабелю) Тогда
Элементы.НаименованиеПодразделения.СписокВыбора.Добавить(
Выборка.НаименованиеПодразделенияПоТабелю,
Выборка.НаименованиеПодразделенияПоТабелю);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСписокВыбораНаименованийПодразделений()
Элементы.НаименованиеПодразделения.СписокВыбора.Очистить();
Если НЕ ЗначениеЗаполнено(Объект.Организация)
ИЛИ НЕ ЗначениеЗаполнено(Объект.Подразделение) Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПС_НастройкиЗагрузкиТабелейСрезПоследних.НаименованиеПодразделенияПоТабелю КАК НаименованиеПодразделенияПоТабелю
|ИЗ
| РегистрСведений.ПС_НастройкиЗагрузкиТабелей.СрезПоследних(, Организация = &Организация
| И СтруктурноеПодразделение = &СтруктурноеПодразделение) КАК ПС_НастройкиЗагрузкиТабелейСрезПоследних
|ГДЕ
| ПС_НастройкиЗагрузкиТабелейСрезПоследних.НаименованиеПодразделенияПоТабелю <> """"
|УПОРЯДОЧИТЬ ПО
| НаименованиеПодразделенияПоТабелю";
Запрос.УстановитьПараметр("Организация", Объект.Организация);
Запрос.УстановитьПараметр("СтруктурноеПодразделение", Объект.Подразделение);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат;
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Элементы.НаименованиеПодразделения.СписокВыбора.Добавить(
Выборка.НаименованиеПодразделенияПоТабелю,
Выборка.НаименованиеПодразделенияПоТабелю);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Асинх Процедура СписокЗагруженныхТабелейВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ТекущиеДанные = Элементы.СписокЗагруженныхТабелей.ТекущиеДанные;