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

Автоматическая подстановка значения в табличную часть документа.

Автор Korzh, 29 мая 2023, 22:48

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

Korzh

Добрый день.Подскажите как сделать правильно, только учусь. :dfbbdrfb:
Есть документ ПродажаАбонемента с реквизитом ДатаОкончанияАбонемента и документ ЗаписиНаТренировки с реквизитом одноименным в табличной части Клиенты.Нужно осуществить автоматическую подстановку даты окончания абонемента из ПродажаАбонемента в ЗаписиНаТренировки при выборе ФИО клиента в табличной части ЗаписиНаТренировки, а также вывод информации в поле надписи если дата окончания меньше текущей даты.Сделал через Регистр сведений, чтобы подцеплялись актуальные даты абонементов.

В отладке выводит ошибку

Метод объекта не обнаружен (ДатаОкончанияАбонемента)
{Документ.ЗаписиНаТренировки.Форма.ФормаДокумента.Форма(26)}:ДатаОкончанияАбонемента = Объект.ДатаОкончанияАбонемента();
{Документ.ЗаписиНаТренировки.Форма.ФормаДокумента.Форма(4)}:ЗаполнитьТабличнуюЧасть();

И заполняет даты автоматически(а не при выборе клиента) только проведенных документов  после создания Регистра Сведений(что собственно логично  :bleh:  ), клиента выбрать не могу.



&НаКлиенте
Процедура КлиентыПриИзменении(Отказ)
   
    ЗаполнитьТабличнуюЧасть();
   
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьТабличнуюЧасть() 
Запрос = Новый Запрос;
    Запрос.Текст =
"ВЫБРАТЬ
| ДанныеОбОкончанииАбонимента.ФИОклиента КАК ФИОклиента,
| ДанныеОбОкончанииАбонимента.ДатаОкончанияАбонемента КАК ДатаОкончанияАбонемента
|ИЗ
| РегистрСведений.ДанныеОбОкончанииАбонимента КАК ДанныеОбОкончанииАбонимента";

    РезультатЗапроса = Запрос.Выполнить().Выгрузить();
   
    Для каждого Стр из РезультатЗапроса Цикл
        НоваяСтрока = Объект.ТабличнаяЧасть.Добавить();

        НоваяСтрока.ДатаОкончанияАбонемента = Стр.ДатаОкончанияАбонемента;
КонецЦикла ;
ТекДата = ТекущаяДата();
ДатаОкончанияАбонемента = Объект.ДатаОкончанияАбонемента();
 
Если ДатаОкончанияАбонемента < ТекДата
тогда
Инфо = "Нужно приобрести новый абонемент!";

иначе
Инфо = "Дата окончания абонемента = " + ДатаОкончанияАбонемента; 

КонецЕсли;

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





alexandr_ll

Korzh, Korzh, Должно быть вместо
    ДатаОкончанияАбонемента = Объект.ДатаОкончанияАбонемента();

    ДатаОкончанияАбонемента = Объект.ДатаОкончанияАбонемента;

Korzh

Поле объекта не обнаружено (ДатаОкончанияАбонемента)
{Документ.ЗаписиНаТренировки.Форма.ФормаДокумента.Форма(26)}:ДатаОкончанияАбонемента = Объект.ДатаОкончанияАбонемента;
{Документ.ЗаписиНаТренировки.Форма.ФормаДокумента.Форма(4)}:ЗаполнитьТабличнуюЧасть();

Ошибку выводит такую при изменении. Заполнение просто дат в табличной части, клиента добавить не могу.

alexandr_ll

Korzh, Ну где-то же есть дата окончания абонемента. Где?

Теги:

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

Рейтинг@Mail.ru

Поиск