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