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

Автозаполнение реквизита табличной части документа при изменении одного реквизита

Автор Ирина1109, 26 авг 2015, 12:25

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

Ирина1109

Всем добрый день!
Я совсем недавно начала изучать 1С.
Сейчас стоит следующая задача: Есть документ "ПродажаЛицензии", который включает в себя реквизиты - Клиент(тип СправочникСсылка.Клиенты), СрокДействия, Стоимость. Далее был создан 2 документ - "НачислениеАбонентскойПлаты", который содержит табличную часть со следующими реквизитами - Клиент(тип СправочникСсылка.Клиенты), СрокДействия, Стоимость, АбонентскаяПлата. Мне нужно сделать так, чтобы при выборе Клиента в ТЧ автоматически заполнялись реквизиты СрокДействия и Стоимость из первого документа. Для этого я создала форму и создала событие ПриИзменении на "Клиент", написала следующий код:

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

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


Так не работает. Выдает ошибку при запуске:

        {Документ.НачислениеАбонентскойПлаты.Форма.ФормаДокумента.Форма(14)}: Недостаточно фактических параметров
      Стоим =  Документы.ПродажаЛицензии.НайтиПоРеквизиту("Клиент").Стоимость;


Уже третий день сижу с этой проблемой, помогите пожалуйста разобраться   

cska-fanat-kz

ДокументМенеджер.<Имя документа> (DocumentManager.<Имя документа>)
НайтиПоРеквизиту (FindByAttribute)
Синтаксис:

НайтиПоРеквизиту(<ИмяРеквизита>, <ЗначениеРеквизита>)
Параметры:

<ИмяРеквизита> (обязательный)

Тип: Строка.
Имя реквизита, как он задан в конфигураторе, по значению которого осуществляется поиск. Тип значения произвольный, кроме ХранилищеЗначения и строк произвольной длины.
<ЗначениеРеквизита> (обязательный)

Тип: Произвольный.
Значение реквизита, по которому должен выполняться поиск.
Возвращаемое значение:

Тип: ДокументСсылка.
Ссылка на найденный документ. Если не существует ни одного документа с требуемым значением реквизита, то будет возвращена пустая ссылка.
Описание:

Осуществляет поиск документа по реквизиту.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:

Если существует несколько документов с указанным значением реквизита, то будет найден только один из них.
Для реквизитов типа Строка поиск осуществляется по точному соответствию.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Ирина1109

Цитата: cska-fanat-kz от 26 авг 2015, 12:30
ДокументМенеджер.<Имя документа> (DocumentManager.<Имя документа>)
НайтиПоРеквизиту (FindByAttribute)
Синтаксис:

НайтиПоРеквизиту(<ИмяРеквизита>, <ЗначениеРеквизита>)
Параметры:

<ИмяРеквизита> (обязательный)

Тип: Строка.
Имя реквизита, как он задан в конфигураторе, по значению которого осуществляется поиск. Тип значения произвольный, кроме ХранилищеЗначения и строк произвольной длины.
<ЗначениеРеквизита> (обязательный)

Тип: Произвольный.
Значение реквизита, по которому должен выполняться поиск.
Возвращаемое значение:

Тип: ДокументСсылка.
Ссылка на найденный документ. Если не существует ни одного документа с требуемым значением реквизита, то будет возвращена пустая ссылка.
Описание:

Осуществляет поиск документа по реквизиту.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:

Если существует несколько документов с указанным значением реквизита, то будет найден только один из них.
Для реквизитов типа Строка поиск осуществляется по точному соответствию.

Если честно, то до меня не очень дошло, что мне надо изменить((

cska-fanat-kz

у метода НайтиПоРеквизиту - 2 параметра - Имя и значение реквизита. и оба обязательные.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

vitasw

Цитата: cska-fanat-kz от 26 авг 2015, 12:30НайтиПоРеквизиту(<ИмяРеквизита>, <ЗначениеРеквизита>)
Параметры:

<ИмяРеквизита> (обязательный)

Тип: Строка.
Имя реквизита, как он задан в конфигураторе, по значению которого осуществляется поиск. Тип значения произвольный, кроме ХранилищеЗначения и строк произвольной длины.
<ЗначениеРеквизита> (обязательный)

Тип: Произвольный.
Значение реквизита, по которому должен выполняться поиск.
Возвращаемое значение:
2 параметра, у вас 1

Ирина1109

Цитата: vitasw от 26 авг 2015, 13:22
Цитата: cska-fanat-kz от 26 авг 2015, 12:30НайтиПоРеквизиту(<ИмяРеквизита>, <ЗначениеРеквизита>)
Параметры:

<ИмяРеквизита> (обязательный)

Тип: Строка.
Имя реквизита, как он задан в конфигураторе, по значению которого осуществляется поиск. Тип значения произвольный, кроме ХранилищеЗначения и строк произвольной длины.
<ЗначениеРеквизита> (обязательный)

Тип: Произвольный.
Значение реквизита, по которому должен выполняться поиск.
Возвращаемое значение:
2 параметра, у вас 1

А что может быть в качестве значения?

vitasw

Вы издеваетесь?! Чтобы использовать "НайтиПоРеквизиту" нужно указать по какому реквизиту искать и значение этого реквизита.

Ирина1109

Цитата: vitasw от 26 авг 2015, 16:58
Вы издеваетесь?! Чтобы использовать "НайтиПоРеквизиту" нужно указать по какому реквизиту искать и значение этого реквизита.

Спасибо, извините за глупые вопросы

cska-fanat-kz

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

Ирина1109

Цитата: cska-fanat-kz от 27 авг 2015, 06:03
Стоим =  Документы.ПродажаЛицензии.НайтиПоРеквизиту("Клиент", Элемент).Стоимость;

Спасибо большое! До меня дошло)

У меня возник еще один вопрос. Если Вам не сложно, могли бы Вы ответить

Как можно найти значение реквизита табличной части документа, чтобы записать его в другой документ?


Добавлено: 27 авг 2015, 11:58


Есть 2 документа: НачислениеАбонентскойПлаты и ОплатаАбонентскойПлаты. В первом документе есть табличная часть,котораявключает реквизит - абонентская плата. В документе ОплатаАбонентскойПлаты я создала 2 реквизита- Клиент и АбонентскаяПлата. Надо чтобы при заполнении реквизита Клиент автоматически проставлялось значение АбонентскаяПлата из первого документа.

Подскажите пожалуйста как это реализовать?

Теги:

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

Рейтинг@Mail.ru

Поиск