OnlyGoRush
@OnlyGoRush
Студент

Как обратиться к полям формы документа в 1С:Предприятие 8.2?

Здравствуйте, появилась у меня задача: посчитать в документе годовую оценку ученика исходя из результатов его работы в каждой четверти. Понятно, что нужно всего лишь посчитать среднее арифметическое, что совершенно казалось бы не трудно, но появились те самые НО.
Для этого нужно обратиться к полю "Годовая" и присвоить ему выражение наподобие ("Iчетверть"+"IIчетверть"+"IIIчетверть"+"IVчетверть")/4. НО как вот обратиться к этим полям?
В попытках найти ответ прошарил различные форумы и нашел-таки код, который бы мне более-менее смог бы подойти, но пришлось его изменить, так как ссылается он немного к другим данным.

Вот код, который написал:
&НаКлиенте
Процедура СписокНоменклатурыIчетвертьПриИзменении(Элемент)
	Стр=Элементы.СписокНоменклатуры.ТекущиеДанные;
	Стр.Годовая = (Стр.Iчетверть+Стр.IIчетверть+Стр.IIIчетверть+Стр.IVчетверть)/4;
КонецПроцедуры

&НаКлиенте
Процедура СписокНоменклатурыIIчетвертьПриИзменении(Элемент)
	Стр=Элементы.СписокНоменклатуры.ТекущиеДанные;
	Стр.Годовая = (Стр.Iчетверть+Стр.IIчетверть+Стр.IIIчетверть+Стр.IVчетверть)/4;
КонецПроцедуры

&НаКлиенте
Процедура СписокНоменклатурыIIIчетвертьПриИзменении(Элемент)
	Стр=Элементы.СписокНоменклатуры.ТекущиеДанные;
	Стр.Годовая = (Стр.Iчетверть+Стр.IIчетверть+Стр.IIIчетверть+Стр.IVчетверть)/4;
КонецПроцедуры

&НаКлиенте
Процедура СписокНоменклатурыIVчетвертьПриИзменении(Элемент)
	Стр=Элементы.СписокНоменклатуры.ТекущиеДанные;
	Стр.Годовая = (Стр.Iчетверть+Стр.IIчетверть+Стр.IIIчетверть+Стр.IVчетверть)/4;
КонецПроцедуры


А так выглядит форма:
5c0fce31838b6664571348.png
Все бы хорошо, но видимо я неверно обращаюсь к этим данным и поэтому не могу с ними работать. Подскажите, что мне следует поменять в своем коде?

Вот источник, откуда я пытался найти решение:
  • Вопрос задан
  • 2228 просмотров
Решения вопроса 1
@Dementor
программист, архитектор, аналитик
Во первых, что за список номенклатуры? Удалите все нафиг.
Далее в модуле формы пропишите всего одну процедуру, вызов которой пропишите всем вашим четверым полям в первый из обработчиков - ПриИзменении:

&НаКлиенте
Процедура ОценкаЧетвертиПриИзменении(Элемент)
  Объект.Годовая = (Объект.Iчетверть+Объект.IIчетверть+Объект.IIIчетверть+Объект.IVчетверть)/4;
КонецПроцедуры


Собственно все :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@GZamza
Должно быть вот так:

&НаКлиенте
Процедура СписокНоменклатурыIVчетвертьПриИзменении(Элемент)
Элементы.Годовая = (Элементы.Iчетверть+Элементы.IIчетверть+Элементы.IIIчетверть+Элементы.IVчетверть)/4;
КонецПроцедуры
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы