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

Доступ к значению табличной части справочника, подсчет кол-ва строк

Автор scully-wolf, 05 июл 2015, 20:36

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

scully-wolf

Здравствуйте! Весь день маюсь с этой проблемой, я только учусь работе с 1С и не понимаю некоторых задач.
У меня есть Справочник(Контрагенты) с реквизитами: Контрагент(вместо Наименование), КоличествоКонтактныхЛиц. Также у него есть табличная чать(КонтактныеЛица) с реквизитами: ФИО, телефон, должность.
Есть документ События с реквизитами Перезвонить(тип дата) и табличной частью(СписокСобытий)с реквизитами: Сотрудник(выбор из справочника Сотрудники), Контрагент(выбор из справочника Контрагенты), КонтактноеЛицо, ОписаниеЗвонка.
Как сделать так, чтобы при выборе значения в поле ТЧ Контрагент автоматически заполнялась поле ТЧ КонтактноеЛицо( бралсь первая запись ТЧти КонтактныеЛица ФИО выбранного Контрагента из справочника Контрагенты). ???
Пытаюсь сделать так:


Процедура СписокСобытийКонтрагентПриИзменении(Элемент)
строка1=Элементы.СписокСобытий.ТекущиеДанные;
    строка1.КонтактноеЛицо=ПолучитьКонтактноеЛицоКонтрагенты(строка1.Контрагент);

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

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

И вот ошибка:
Цитировать{Документ.События.Форма.ФормаДокумента.Форма(16)}: Поле объекта не обнаружено (ФИО)
       Возврат Наименование.КонтактныеЛица.ФИО

Как сделать правильно?

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

KrivosheevEV

ЦитироватьТакже, как подсчитать количество записей табличной части справочника и потом передать в реквизит справочника? значение я умею передавать, но подсчитать не знаю как.(
Помогите пожалуйста!.


LexaK

scully-wolf, у вас, кот здесь ошибка

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


Если вы правильно, описали структуру вашего справочника,
КонтактныеЛица - это табличная часть через точку (.) вы не получите значение поля,
вам необходимо сначала указать из какой строки вы хотите получить значение поля, обращение к строке можно сделать например так КонтактныеЛица[0]
иногда бывает что табличная часть не заполнена, поэтому надо проверять есть ли в ней данные (строки). в общем ваша функция выглядела бы так,


&НаСервереБезКонтекста
Функция ПолучитьКонтактноеЛицоКонтрагенты(Контрагент)

    Если Контрагент.КонтактныеЛица.Количество() > 0 Тогда
        //есть данные о Контактных лицах, берем первого
        Возврат Контрагент.КонтактныеЛица[0].ФИО;
    Иначе
        //нет данные о Контактных лицах,
        Возврат Неопределено;
    ЕонецЕсли;

КонецФункции


попробуйте, возможны синтаксические ошибки, исправьте.
если помогло нажмите: Спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск