Автоматический Расчёт Суммы аренды в Документе в 1С конфигурации

1. NikitaSergeevich 04.06.25 15:32 Сейчас в теме
Здравствуйте!

Разрабатываю учебную конфигурацию 1С:Предприятие 8.3 (учебная версия) для курсовой работы на тему "Прокат электроинструментов". В конфигурации есть:

Справочник "Инструменты" – содержит реквизит Тариф (число) — стоимость аренды за 1 день.

Документ "Аренда" – содержит табличную часть Инструменты, в которой указывается:
- арендованный инструмент
- дата выдачи
- дата возврата
- количество дней
- и сумма.

Хочу сделать так, чтобы при заполнении строк табличной части документа автоматически рассчитывалась сумма:
Сумма = КоличествоДней × Тариф, где
КоличествоДней = ДатаВозврата - ДатаВыдачи.

❗ Проблема
Я пытаюсь получить Тариф из справочника Инструменты для выбранного в строке инструмента, но при обращении вот так: Строка.Сумма = Строка.КоличествоДней * Строка.Инструмент.Тариф;
выдаёт ошибку: Поле объекта не обнаружено (Тариф)

❓Вопросы:
Как правильно получить доступ к реквизиту Тариф для выбранного в строке документа инструмента?

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

Буду благодарен за пример корректного кода или объяснение, как правильно обращаться к данным справочника из строки табличной части документа.

Спасибо!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Bukaska 148 04.06.25 16:26 Сейчас в теме
(1)
Поле объекта не обнаружено (Тариф)

ВЫ в модуле формы сидите.. там должна быть процедура на клиенте с Обращением к переменным: Элементы.Инструменты.ТекущиеДанные.ИмяРеквизита.
А вообще более чем через одну точку обращаться - не оптимально, нужно бы прикинуть запрос и выборкой из запроса получить данные. Но тогда нужно создапть процедуры на клиенте и на сервере, так как запросы на клиенте не существуют.
Можете скинуть мне конфигурацию? Я бы прикинула что там можно сделать.
4. NikitaSergeevich 04.06.25 16:32 Сейчас в теме
(2) Да, конечно
Спасибо что помогаете!
Прикрепленные файлы:
1Cv8.dt
7. Bukaska 148 04.06.25 23:12 Сейчас в теме
(4) лучше бы канеш запросами.
Если база выгрузится пустая, то покажу потом при видеовстрече на своем компе. Бывает такой баг.
Сейчас все работает. Ставить путь к данным через четыре точки - неоптимально. Сделала запросами.
Возможно я где-то что-то недоделала, но просто показала вариант, что в модуле формы лучше обращаться через элементы, а в случае нужных данных из других глубинных реквизитов лучше сгонять на сервер.
В общем модуле явно строки ТЧ нету.
мы обращаемся из модуля формы и передаем туда из строкиТЧ наш инструмент, а в серверном контексте модуля есть инструмент, но без строки ТЧ))). В общем если будут вопросы, то пишите. Чем смогу - отвечу)
Прикрепленные файлы:
АрендаТЗ.dt
8. Bukaska 148 05.06.25 10:57 Сейчас в теме
(4) нескромный вопрос, а тариф через справочник, это у вас ТЗ такое? Ну хотя в учебных целях может быть все что угодно, даже неоптимально. Главное понять как оно все работает).
Могу только сказать что тариф через справочник скорее неоптимально. Сейчас запрос работает за счет того, что там всего две строчки. Но вы представьте, что у вас сегодня аренда дрели 450р, завтра 500, через месяц 1000. Тогда как какими параметрами будете хватать нужный вариант. Сейчас их нет, безщ них пока что работает.
Я бы сделала эти тарифы лучше через регистр сведений, там всегда по срезу последних в запросе на дату можно получить последний нужный рабочий вариант, ну или через объектную модель запроса методом ПолучитьПоследнее(). Но первый все же лучше.
Сейчас пока вариант рабочий за счет того, что у вас один тариф на каждый инструмент, но если оно будет меняться.....)))
9. NikitaSergeevich 05.06.25 22:22 Сейчас в теме
(8) Спасибо вам большое!!! Я вообще не был уверен что кто-то ответит мне, а вы прям очень вникли в вопрос и стараетесь помочь, спасибо вам! Я уже завтра тогда попробую сделать через регистр сведений и через запрос. А насчет того что тариф через справочник, нет, не было такого ТЗ, это я просто так начал делать, потому что плохо разбираюсь в 1С)
3. starjevschik 04.06.25 16:31 Сейчас в теме
1 надо сначала разобраться, в какой версии делаешь, реализация зависит от "управляемости форм"
2 потом надо узнать, где, в какой процедуре, при каком событии и как именно это все выполняется, что такое "Строка" в этом коде и вообще все подробности
3 потом можно будет понять, как это сделать правильно, но!
4 преподаватель получает зарплату за ответы на такие вопросы, почему хочешь лишить его работы? ему же обидно, вместо него, профессионала с высшим образованием, его студенты спрашивают каких-то неизвестных анонимов недоучек...
5. NikitaSergeevich 04.06.25 16:34 Сейчас в теме
(3) Да дело в том, что преподаватель у нас сам не разбирается особо) Приходится спрашивать здесь
10. NikitaSergeevich 05.06.25 22:27 Сейчас в теме
6. miniogn 47 04.06.25 16:59 Сейчас в теме
Тариф надо так же добавить в таблицу.
Что бы работало:
Строка.Сумма = Строка.КоличествоДней * Строка.Тариф;

А тариф заполнять при выборе инструмента.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот