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

Помогите оптимизировать код.

Автор AlenkaInt, 11 июн 2013, 18:30

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

AlenkaInt

Здравствуйте. Есть задача - Создать обработку, в которой пользователь вводит данные "Наименование", "Телефон", "ИНН", по кнопке создается элемент в справочнике "Контрагенты" и форма этого элемента автоматически открывается.
Я в модуле обработки написала такой код:
&НаКлиенте
Процедура СоздатьЭлемент(Команда)
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("Телефон", Телефон);
    ПараметрыФормы.Вставить("ИНН", ИНН);
    ПараметрыФормы.Вставить("Наименование", Наименование);
    ОткрытьФорму("Справочник.Контрагенты.Форма.ФормаЭлемента1", ПараметрыФормы);
КонецПроцедуры
В модуле формы справочника такой:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Перем Телефон;
    Перем ИНН;
    Перем Наименование;   
    Если Параметры.Свойство("Телефон", Телефон) Тогда
        Объект.Телефон = Телефон;   
    КонецЕсли;
    Если Параметры.Свойство("ИНН", ИНН) Тогда
        Объект.ИНН = ИНН;   
    КонецЕсли;
    Если Параметры.Свойство("Наименование", Наименование) Тогда
        Объект.Наименование = Наименование;   
    КонецЕсли;
КонецПроцедуры
Такой код работает, но не нравится решение, много условных операторов, как то не оптимально. Подскажите, может есть какая то возможность в одном Если все заполнить? Спасибо :-)

Dethmontt

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
  Если Не Параметры = Неопределено Тогда
     ЗаполнитьЗначенияСвойств(Объект,Параметры);
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

Ну или такой вариант (работает только если у реквизитов установлена галочка "Заполнять из данных заполнения")


&НаКлиенте
Процедура СоздатьЭлемент(Команда)
ЗначенияЗаполнения = Новый Структура("ЗначенияЗаполнения");
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Телефон", Телефон);
    ПараметрыФормы.Вставить("ИНН", ИНН);
    ПараметрыФормы.Вставить("Наименование", Наименование);

ЗначенияЗаполнения.Вставить("ЗначенияЗаполнения",ПараметрыФормы);
ОткрытьФорму("Справочник.Контрагенты.ФормаОбъекта",ЗначенияЗаполнения);
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

AlenkaInt

Спасибо! Да, так работает.

Теги:

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

Рейтинг@Mail.ru

Поиск