8.х Автоматически выходило ФИО в Реквизите

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем cobra77777, 29 апр 2013.

  1. TopicStarter Overlay
    cobra77777
    Offline

    cobra77777 Опытный в 1С

    Регистрация:
    20 апр 2012
    Сообщения:
    154
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте ! Подскажите пожалуйста как сделать так чтобы ФИО в Реквизите сразу выходило автоматически при открытии формы.
    Вот код:



    &НаКлиенте
    Процедура СотрудникНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

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

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


    &НаСервере

    Функция ПоискРодителяСотрудники(НаименованиеГр)
    Спр=Справочники.Сотрудники.НайтиПоНаименованию(НаименованиеГр);
    Возврат Спр;

    КонецФункции
  2. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    При открытии какой формы?
    Той, в которой этот код написан?
    Или той, которую открываете (форма выбора справочника "Сотрудники")?
  3. TopicStarter Overlay
    cobra77777
    Offline

    cobra77777 Опытный в 1С

    Регистрация:
    20 апр 2012
    Сообщения:
    154
    Симпатии:
    0
    Баллы:
    26
    Вот : Процедура СотрудникНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
  4. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Если правильно понял, то в событии "ПриСозданииНаСервере" напишите:
    Код:
    Если Параметры.Ключ.Пустая() Тогда
    Объект.СотрудникАвтоматизации = Справочники.Сотрудники.НайтиПоНаименованию("Иванов И.И.");
    КонецЕсли;
    Это если именно в форме надо.
    А вообще, для таких целей правильнее использовать событие модуля объекта "ОбработкаЗаполнения".
  5. TopicStarter Overlay
    cobra77777
    Offline

    cobra77777 Опытный в 1С

    Регистрация:
    20 апр 2012
    Сообщения:
    154
    Симпатии:
    0
    Баллы:
    26
    Не совсем понятно.
  6. TopicStarter Overlay
    cobra77777
    Offline

    cobra77777 Опытный в 1С

    Регистрация:
    20 апр 2012
    Сообщения:
    154
    Симпатии:
    0
    Баллы:
    26
    Спасибо работает.
  7. TopicStarter Overlay
    cobra77777
    Offline

    cobra77777 Опытный в 1С

    Регистрация:
    20 апр 2012
    Сообщения:
    154
    Симпатии:
    0
    Баллы:
    26
    1cUserAndrew для себя хочу УТОЧНИТЬ один момент, правильно что старый код на Сервере остался (как правильнее было бы), а именно:

    ------------------------------------------------------------------------------------------------------------------------------
    &НаСервере
    Функция ПоискРодителяСотрудники(НаименованиеГр)
    Спр=Справочники.Сотрудники.НайтиПоНаименованию(НаименованиеГр);
    Возврат Спр;
    КонецФункции
    ------------------------------------------------------------------------------------------------------------------------------


    &НаКлиенте
    Процедура СотрудникавтоматизацииНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

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

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


    &НаСервере
    Функция ПоискРодителяСотрудники(НаименованиеГр)
    Спр=Справочники.Сотрудники.НайтиПоНаименованию(НаименованиеГр);
    Возврат Спр;
    КонецФункции

    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Параметры.Ключ.Пустая() Тогда
    Объект.СотрудникАвтоматизации = Справочники.Сотрудники.НайтиПоНаименованию("Иванов И.И.");
    КонецЕсли;
    КонецПроцедуры
  8. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    В целом правильно.
    Только в данном случае с точки зрения производительности лучше использовать директиву компиляции не "&НаСервере", а "&НаСервереБезКонтекста", т.к. к данным формы в этой серверной функции Вы не обращаетесь, поэтому незачем всю форму тащить на сервер.

    Код:
    &НаСервереБезКонтекста
    Функция ПоискРодителяСотрудники(НаименованиеГр)
    Спр=Справочники.Сотрудники.НайтиПоНаименованию(НаименованиеГр);
    Возврат Спр;
    КонецФункции

Поделиться этой страницей