Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Ошибка в процедуре ОбработкаВыбора          
pqvv Подменю пользователя
сообщение 03.11.16, 16:42
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 53
Из: Марганец
Спасибо сказали: 0 раз
Рейтинг: 0

Здравствуйте, уважаемые эксперты ! Вопрос касается 1С:Предприятие 8.3 (8.3.8.1652), конфигурация УПП 1.3.46.1., управляемая форма. В форме "Передача материалов в эксплуатацию" в табличной части, в поле "МатериалыФизЛицо" автоматически вызывается справочник физ.лиц. Задача состояла в том, чтобы вместо него вызывался справочник сотрудников организации. В процедуре Обработка выбора возникает ошибка "Поле объекта не обнаружено (Значение)". Форма выбора возвращает ВыбранноеЗначение, в отладчике видно его тип СправочникСсылка.СотрудникиОрганизаций и само значение. Также правильно отрабатывает Сообщить(ВыбранноеЗначение). Думаю, что у меня ошибка в инструкции Элемент.Значение. подскажите, пожалуйста, как исправить.
&НаКлиенте
Процедура МатериалыФизЛицоОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;

Если ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.СотрудникиОрганизаций") Тогда
        Элемент.Значение = ВыбранноеЗначение.Физлицо;
        Сообщить(ВыбранноеЗначение);
    Иначе
        Элемент.Значение = ВыбранноеЗначение;
    КонецЕсли;



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

Vofka Подменю пользователя
сообщение 03.11.16, 16:51
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Нельзя на клиенте обращаться к реквизитам ссылки через точку. То есть вот так ВыбранноеЗначение.Физлицо. Надо это вынести в отдельную функцию:

&НаСервереБезКонтекста
Функция ПолучитьФизЛицоИзСотрудника(Сотрудник)
    Возврат Сотрудник.Физлицо;
КонецФункции


И соответственно:

Элемент.Значение = ПолучитьФизЛицоИзСотрудника(ВыбранноеЗначение);

pqvv Подменю пользователя
сообщение 03.11.16, 17:03
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 53
Из: Марганец
Спасибо сказали: 0 раз
Рейтинг: 0

Vofka @ Сегодня, 16:51 * ,
В какой модуль поместить функцию, подскажите пожалуйста ?

Vofka Подменю пользователя
сообщение 03.11.16, 17:06
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

В модуль формы. Туда же, где у вас находится процедура МатериалыФизЛицоОбработкаВыбора.

pqvv Подменю пользователя
сообщение 03.11.16, 17:17
Сообщение #5

Говорящий
***
Группа: Пользователи
Сообщений: 53
Из: Марганец
Спасибо сказали: 0 раз
Рейтинг: 0

Vofka @ Сегодня, 17:06 * Сделано, не помогло. Привожу текст модуля
&НаСервереБезКонтекста
Функция ПолучитьФизЛицоИзСотрудника(Сотрудник)
    Возврат Сотрудник.Физлицо;
КонецФункции

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

&НаКлиенте
Процедура МатериалыФизЛицоОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;

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

logist Подменю пользователя
сообщение 03.11.16, 17:47
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(pqvv @ 03.11.16, 18:17) *
Элемент.Значение

У Элемента нет Значения, это всего лишь элемент формы, ему в данному случае нельзя ничего присвоить. Обращаться надо к Текущим данным (Элементы.Материалы.ТекущиеДанные) или к строке объекта (Объект.Материалы.Получить())

Как-то так
&НаСервереБезКонтекста
Функция ПолучитьФизЛицоИзСотрудника(Сотрудник)
    Если ТипЗнч(Сотрудник) = Тип("СправочникСсылка.СотрудникиОрганизаций") Тогда
        Возврат Сотрудник.Физлицо;
    Иначе
        Возврат Сотрудник;
    КонецЕсли;
КонецФункции

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

&НаКлиенте
Процедура МатериалыФизЛицоОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Элементы.Материалы.ТекущиеДанные.ФизЛицо = ПолучитьФизЛицоИзСотрудника(ВыбранноеЗначение);
КонецПроцедуры


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: pqvv,

pqvv Подменю пользователя
сообщение 04.11.16, 8:09
Сообщение #7

Говорящий
***
Группа: Пользователи
Сообщений: 53
Из: Марганец
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(logist @ 03.11.16, 17:47) *
У Элемента нет Значения, это всего лишь элемент формы, ему в данному случае нельзя ничего присвоить. Обращаться надо к Текущим данным (Элементы.Материалы.ТекущиеДанные) или к строке объекта (Объект.Материалы.Получить())
Как-то так

Спасибо, работает ! Подскажите, пожалуйста, что толкового почитать про разработку упр. форм и тонкого клиента ?

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.04.24, 21:02
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!