Имя: Пароль:
1C
1С v8
При вызове метода ОповеститьОВыборе() данные не передаются в ОбработкуВыбора
0 dart909
 
20.07.15
13:37
Есть справочник Сотрудники с реквизитом Должности. Имеется форма выбора . Есть документ с реквизитом Диспетчер типа СправочникСсылка.Сотрудники. Поле Диспетчер в форме документа не заполняется из формы выбора и не понимаю почему метод не вызывает обработку. Помоги разобраться

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ТекущаяСтрока = Элемент.ТекущиеДанные;
    ОповеститьОВыборе(ТекущаяСтрока.Ссылка);
    //Оповестить("ВодительНачалоВыбора",ТекущаяСтрока);
КонецПроцедуры

&НаКлиенте
Процедура ДиспетчерОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    Элемент.Диспетчер = ВыбранноеЗначение// Вставить содержимое обработчика.
КонецПроцедуры
1 dart909
 
20.07.15
13:37
е*
2 cw014
 
20.07.15
13:41
ДиспетчерОбработкаВыбора - данное событие к полю "Диспетчер" точно привязано? А как открывается форма выбора?
3 dart909
 
20.07.15
13:44
(2) Точно привязано

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

&НаСервере  
Функция ПолучитьДолжностьДиспетчер()
    Диспетчер = Справочники.Должности.НайтиПоНаименованию("Диспетчер");
    Возврат Диспетчер
КонецФункции
4 cw014
 
20.07.15
13:45
ФормаВыбора = ПолучитьФорму("Справочник.Сотрудники.ФормаВыбора");

А почему ты получаешь абстрактную форму?
5 cw014
 
20.07.15
13:45
Как она по твоему должна определить, кого оповещать о выборе?
6 dart909
 
20.07.15
13:49
(5) Подскажите, как правильно нужно написать?
7 Lexey_
 
20.07.15
13:50
последний ответ в Не открывается форма выбора
не помог?без  всяких ОповеститьОВыборе
8 cw014
 
20.07.15
13:50
(6) Читаем СП, долго думаем:

Глобальный контекст.ПолучитьФорму (Global context.GetForm)
Глобальный контекст (Global context)
ПолучитьФорму (GetForm)
Синтаксис:

ПолучитьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>)
Параметры:

<ИмяФормы> (обязательный)

Тип: Строка.
Имя формы. Образуется как полный путь к объекту метаданных Форма (например, "Справочник.Контрагенты.Форма.ФормаОбъекта", "ОбщаяФорма.ФормаСохраненияФайла") или как полный путь к прикладному объекту, дополненный именем формы по умолчанию (например, "Справочник.Товары.ФормаВыбора").
Имена форм по умолчанию:
ФормаОбъекта (ObjectForm) - форма объекта по умолчанию;
ФормаГруппы (FolderForm) - форма группы по умолчанию;
ФормаЗаписи (RecordForm) - форма записи регистра по умолчанию;
ФормаСписка (ListForm) - форма списка по умолчанию;
ФормаВыбора (ChoiceForm) - форма выбора по умолчанию;
ФормаВыбораГруппы (FolderChoiceForm) - форма выбора группы по умолчанию;
ФормаКонстант (ConstantsForm) - форма констант по умолчанию для обычного режима, установленная как форма констант для конфигурации;
Форма (Form) - форма константы, отчета и обработки по умолчанию;
ОбщаяФорма (CommonForm) - общая форма;
ФормаНастроек (SettingsForm) - форма настроек отчета по умолчанию;
ФормаЗагрузки (LoadForm) - форма загрузки настроек;
ФормаСохранения (SaveForm) - форма сохранения настроек;
ФормаВарианта (VariantForm) - форма редактирования варианта отчета;
ФормаЗагрузкиПользовательскихНастроекОтчетов (ReportUserSettingsLoadForm) - форма загрузки настроек отчета;
ФормаСохраненияПользовательскихНастроекОтчетов (ReportUserSettingsSaveForm) - форма сохранения настроек отчета;
ФормаЗагрузкиВариантовОтчетов (ReportVariantsLoadForm) - форма загрузки варианта отчета;
ФормаСохраненияВариантовОтчетов (ReportVariantsSaveForm) - форма сохранения варианта отчета;
ФормаЗагрузкиНастроекДанныхФорм (FormDataSettingsLoadForm) - форма загрузки настроек данных форм;
ФормаСохраненияНастроекДанныхФорм (FormDataSettingsSaveForm) - форма сохранения настроек данных форм.
Например, для получения общей формы "ОбщиеНастройки" следует в модуле написать код:
Форма = ПолучитьФорму("ОбщаяФорма.ОбщиеНастройки");


Имена ФормаЗагрузкиПользовательскихНастроекОтчетов, ФормаСохраненияПользовательскихНастроекОтчетов, ФормаЗагрузкиВариантовОтчетов, ФормаСохраненияВариантовОтчетов, ФормаЗагрузкиНастроекДанныхФорм и ФормаСохраненияНастроекДанныхФорм нужно использовать без имени объектов метаданных.
Для внешних отчетов и обработок имя формы задается следующим образом:
ВнешнийОтчет.<имя отчета>.Форма.<имя формы>;
ВнешнийОтчет.<имя отчета>.<имя стандартной формы>;
ВнешняяОбработка.<имя обработки>.Форма.<имя формы>;
ВнешняяОбработка.<имя обработки>.<имя стандартной формы>.
При этом внешний отчет или обработка должны быть предварительно зарегистрированы в системе.
<Параметры> (необязательный)

Тип: Структура.
Параметры формы. Ключ структуры - имя параметра, а значение - значение параметра формы. Имя элемента должно совпадать с именем параметра структуры.
П = Новый Структура("Ключ", Поставщик);
Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", П);
Форма.Открыть();


<Владелец> (необязательный)

Владелец формы - форма или элемент управления другой формы.
<Уникальность> (необязательный)

Тип: Произвольный.
В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм. Если будет найдена форма с таким же ключом уникальности, вместо открытия новой формы будет активизирована найденная форма.
Ложь - искать форму с ключом уникальности по умолчанию, Истина - не искать форму вообще, любое другое значение устанавливает ключ уникальности, по которому будет произведен поиск.
Значение по умолчанию: Ложь
<Окно> (необязательный)

Тип: ОкноКлиентскогоПриложения; ВариантОткрытияОкна.
Окно приложения, в котором будет открыта форма.
Применимо только для управляемой формы. Окном может быть только основное окно приложения или вспомогательное окно формы.
Если указан тип ВариантОткрытияОкна, окно формы будет создано согласно выбранному варианту.
Возвращаемое значение:

Тип: Форма; УправляемаяФорма.

Описание:

Получает форму или управляемую форму. Перед получением осуществляется поиск уже открытой такой же формы.
Поиск осуществляется по типу формы, значениям ключевых параметров формы, владельцу формы, пользовательскому ключу уникальности.
Если в параметре <Уникальность> передано значение Истина, то поиск уже открытых форм не осуществляется.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.
Примечание:

В тонком и веб-клиенте получает только управляемую форму.
Обычные формы внешних обработок не поддерживаются.
Если при получении обычной формы в параметре <ИмяФормы> указано не стандартное имя формы, передаваемые параметры не обрабатываются.
В процессе выполнения может быть несколько обращений к серверу. Часть из них кэшируются. Как минимум одно обращение к серверу есть всегда и оно не кэшируется. Кэширование зависит от версии платформы и версии конфигурации в целом. Если установлена низкая скорость соединения и не указывается текущая строка, то кэшируется форма выбора. Очистка кэша осуществляется с периодичностью в 20 мин. Удаляются формы, которые не использовались в этот период времени.
См. также:

Глобальный контекст, метод ОткрытьФорму
Глобальный контекст, метод ОткрытьФормуМодально
Глобальный контекст, метод ПолучитьОбщуюФорму
9 dart909
 
20.07.15
13:58
(8) Я не установил Владельца
10 dart909
 
20.07.15
14:03
(7) нет не помог(
11 cw014
 
20.07.15
14:13
(9) БИНГО!!!!
12 dart909
 
20.07.15
14:18
(11) Окей вставил, все равно событие не вызывается
13 cw014
 
20.07.15
14:27
(12) А кого ты вставил?
14 dart909
 
20.07.15
14:30
(13)  Элемент формы
15 dart909
 
20.07.15
14:33
ФормаВыбора = ПолучитьФорму("Справочник.ТранспортныеСредства.ФормаВыбора",, Элемент);
16 cw014
 
20.07.15
14:35
(15) Давай текст и скриншоты, что у тебя все события корректно присвоены
17 svinus
 
20.07.15
14:38
(0) РежимВыбора на списке Истина ?
18 dart909
 
20.07.15
14:40
(16) Как здесь скрин вставить?
19 dart909
 
20.07.15
14:41
(17) Истина
20 svinus
 
20.07.15
15:16
(19) В таком виде попробуй

Фрм.ВладелецФормы = Элемент;
Фрм.Открыть();
21 dart909
 
20.07.15
15:19
(20) Офигеть заработало)))
22 dart909
 
20.07.15
15:21
(21) Событие вызывается только вот поле все равно не заполняется
23 dart909
 
20.07.15
15:35
Все сделал, можно закрыть)
24 aka AMIGO
 
20.07.15
15:36
(18) как вставить изображение: http://pics.rsh.ru/

(23) это решается не тобой.