Изменение ВидКонтрагента через внешнюю обработку

  1. 9 г. назад

    Народ кто знает как поменять вид контрагента, через внешнюю обработку, никак не хочет меняться. Подскажите малознающему в этой области.

    &НаКлиенте
    Процедура ИзменитьЗначениеВидКонтрагента(Команда)
        ИзменитьЗначениеВидКонтрагента2()
    КонецПроцедуры
    
    &НаСервере
    Процедура ИзменитьЗначениеВидКонтрагента2()
        
        номен = Справочники.Контрагенты;
    элементСсылка = номен.НайтиПоНаименованию("7007");
    Если НЕ элементСсылка.Пустая() тогда
        Сообщить("Найден элемент " + элементСсылка);
    конецЕсли;
    элементОбъект = ЭлементСсылка.ПолучитьОбъект();
    ВидКонтрагента3 = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо;
    элементОбъект.ЮридическоеФизическоеЛицо = ВидКонтрагента3;
    элементОбъект.Записать()  
    КонецПроцедуры
  2. классный код ;)...

  3. Что такое ВидКонтрагента3? Если это константа, и их скорее всего 2, то замени на Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо.

  4. ну теоретически должно сработать... если элемент по наименованию 7007 будет найден..

    Ответы: (4) (7)
  5. (3) Вот это?

    ВидКонтрагента3 = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо;
    элементОбъект.ЮридическоеФизическоеЛицо = ВидКонтрагента3;

    Ответы: (5) (6)
  6. Если ВидКонтрагента3 - это поле на форме, то как оно попадает в серверную процедуру? Я в клиент-сервере не айс, но чую - где-то тут собака порылась...
    (4) гы... заметил. а почему бы не сократить до
    элементОбъект.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо; ?

    Ответы: (7)
  7. (4)а в чем тут может быть ошибка ?

  8. (3) Находит все работает, и поменять могу все поля, кроме этого перечисления.
    (5) Операция производится на сервере, в найденной строке из списка контрагентов

  9. 06.08.2015 15:10:13 отредактировано creatermc

    Всё ок, всё работает, кому надо на заметку для общего развития (опыта, скила и т.п.).

    &НаСервере
    Процедура ИзменитьЗначениеВидКонтрагента2()	
    	номен = Справочники.Контрагенты;
    элементСсылка = номен.НайтиПоНаименованию("7007");
    Если НЕ элементСсылка.Пустая() тогда
    	Сообщить("Найден элемент " + элементСсылка);
    конецЕсли;
    элементОбъект = ЭлементСсылка.ПолучитьОбъект();
    элементОбъект.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо;
    элементОбъект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
    элементОбъект.Записать()  
    КонецПроцедуры

    Спасибо всем кто откликнулся на помощь.

  10. срочно добавить в базу знаний!

  11. Вот так и учатся русские одинэсники, по неработающему коду )

  12. Когда-то маленькие открытия всем казались грандиозными.

  13. Фигня... это не решает проблему, когда вид Контрагента выбирается на форме (гермафродит). Например... Для частного случая - все норм, для серийного - проблема не найдена :)))

или зарегистрируйтесь чтобы ответить!