Имя: Пароль:
1C
1С v8
v8: Поле объекта не обнаружено (СреднийБалл)
0 Bli3world
 
17.06.14
19:24
Есть такие документы 1. УспеваемостьГруппа и 2. УспеваемостьПоФакультету. Нужно при заполнении 2 дока при выборе дисциплины в табличной части заполнить поле СреднийБаллГруппы из реквизита СреднийБалл 1 дока.
Почему ругается вот на это?


Процедура ВедомостьДисциплинаПриИзменении(Элемент)
СтрокаТабличнойЧасти = ЭлементыФормы.Ведомость.ТекущиеДанные;
СтрокаТабличнойЧасти.СреднийБалл = Документы.УспеваемостьГруппа.НайтиПоРеквизиту("СреднийБалл",Документы.УспеваемостьГруппа.СреднийБалл);
НаименовДисциплины = СтрокаТабличнойЧасти.Дисциплина;
СтрокаТабличнойЧасти.СреднийБалл = ВозвратДисциплины(НаименовДисциплины);
КонецПроцедуры


Вот служебные сообщения:
{Документ.УспеваемостьПоФакультету.Форма.ФормаДокумента(4)}: Поле объекта не обнаружено (СреднийБалл)
СтрокаТабличнойЧасти.СреднийБаллГруппы = Документы.УспеваемостьГруппа.НайтиПоРеквизиту("СреднийБалл",Документы.УспеваемостьГруппа.СреднийБалл);
1 shuhard
 
17.06.14
19:25
(0) учи запросы
за такой код на дипломе кол поставят
2 Irbis
 
17.06.14
19:27
вроде ясно написано поле объекта не обнаружено.
3 Wobland
 
17.06.14
19:27
а ничо так. СтрокаТабличнойЧасти.СреднийБалл - то ли документ, то ли число, то ли ещё ерундень какая..
4 Bli3world
 
17.06.14
19:33
А из регистра накопления вытащить этот средний балл можно?
5 Wobland
 
17.06.14
19:36
(4) это техническое любопытство или ты разрешения спрашиваешь?
6 Bli3world
 
17.06.14
19:38
не знаю как назвать это. вчера пробовал запросом, все равно "поле объекта не обнаружено"
7 Irbis
 
17.06.14
19:46
(6) То есть если в комнате никого нет, на голос не отзывается, то нужно рявкнуть в матюгальник, и поле меатериализуется?
8 hhhh
 
17.06.14
19:46
(6) в упор не вижу где у тебя "поле СреднийБаллГруппы"?
9 Irbis
 
17.06.14
19:49
(8) Это поле как раз, скорее всего имеется. Тупой комп ясно пишет какого поля не обнаружил.
10 hhhh
 
17.06.14
19:52
(9) по заданию нужно заполнить поле СреднийБаллГруппы. Вы как спец видите это поле а его коде или скорее всего видите?
11 Bli3world
 
17.06.14
19:53
я так понимаю запрос тоже фиговый

Процедура ВедомостьДисциплинаПриИзменении(Элемент)
    
Запрос = Новый Запрос;
    Запрос.Текст ="ВЫБРАТЬ
|    СреднийБаллОбороты.СреднийБаллОборот
|ИЗ
|    РегистрНакопления.СреднийБалл.Обороты КАК СреднийБаллОбороты";
Запрос.УстановитьПараметр("СреднийБалл", ЭтотОбъект.Ведомость.СреднийБалл);
РезультатЗапроса = Запрос.Выполнить();
ЭтотОбъект.Ведомость.СреднийБалл.Загрузить(РезультатЗапроса.Выгрузить());
КонецПроцедуры
12 Irbis
 
17.06.14
19:57
(11) Правильно понимаешь
(10) Текст сообщения об ошибке прочитай
13 Bli3world
 
17.06.14
19:58
во

Процедура ВедомостьДисциплинаПриИзменении(Элемент)
СтрокаТабличнойЧасти = ЭлементыФормы.Ведомость.ТекущиеДанные;
СтрокаТабличнойЧасти.СреднийБаллГруппы = Документы.УспеваемостьГруппа.НайтиПоРеквизиту("СреднийБалл",Документы.УспеваемостьГруппа.СреднийБалл);
НаименовДисциплины = СтрокаТабличнойЧасти.Дисциплина;
СтрокаТабличнойЧасти.СреднийБаллГруппы = ВозвратДисциплины(НаименовДисциплины);
КонецПроцедуры


{Документ.УспеваемостьПоФакультету1.Форма.ФормаДокумента(4)}: Поле объекта не обнаружено (СреднийБалл)
СтрокаТабличнойЧасти.СреднийБаллГруппы = Документы.УспеваемостьГруппа.НайтиПоРеквизиту("СреднийБалл",Документы.УспеваемостьГруппа.СреднийБалл);


Где он это поле не может найти? я этого не понимаю
14 Irbis
 
17.06.14
20:02
Это тоже написано, в строке 4
15 Bli3world
 
17.06.14
20:05
Эт вижу что в 4 строке. А под объектом понимается док из которого этот реквизит вытаскивается или док в котором создается
16 Irbis
 
17.06.14
20:10
(15) Я могу сделать "удачное" предположение, но не буду. Поскольку в таком виде этот код не работоспособен.  отладчик сам заглянешь, или у тебя урезанная поставка.
17 Bli3world
 
17.06.14
20:11
1С Предприятие 8.1 (Учебная версия).
18 Irbis
 
17.06.14
20:16
Отладчик есть? Посмотри тип у конструкции Документы.УспеваемостьГруппа.СреднийБалл
19 VRednaia
 
17.06.14
20:18
20 Bli3world
 
17.06.14
20:19
УспеваемостьГруппы.СреднийБалл тип число, длина 3, точность 2.

УспеваемостьПоФакультету1.СреднийБаллГруппы тип число, длина 3, точность 2.
21 Irbis
 
17.06.14
20:21
(20) Неа, это твои инсинуации на тему "Что хотелось бы иметь", а что отладчик на такую конструкцию говорит.
22 Bli3world
 
17.06.14
20:25
это точно есть, сам ставил
23 Irbis
 
17.06.14
20:27
(22) Это и есть "инсинуации", а господин Де Баггер что по этому повод говорит?
24 Bli3world
 
17.06.14
20:30
отладчик эт который с точками останова?
25 Irbis
 
17.06.14
20:31
(24) Ну хотя бы этот.
26 Bli3world
 
17.06.14
20:34
желтую стрелку кидает на 4 строку и "Ошибка времени выполнения: {Документ.УспеваемостьПоФакультету1.Форма.ФормаДокумента(4)}: Поле объекта не обнаружено (СреднийБалл) в модуле Документ.УспеваемостьПоФакультету1.Форма.ФормаДокумента, строка 4"
27 Irbis
 
17.06.14
20:38
(26) Опять за рыбу деньги?
28 Bli3world
 
17.06.14
20:40
как тебе базу кинуть? я в этом 1с дуб дубом, а на практику требуют эту фигню
29 Irbis
 
17.06.14
20:43
Не надо в меня базой кидать! Лучше учись, студент. А то всю жизнь контейнером для сетевых пакетов в флоппинет работать будешь.
30 H A D G E H O G s
 
17.06.14
20:44
(0) Лобанов, это ты штоле?
31 Bli3world
 
17.06.14
20:45
дык елы палы. вот тольк эта байда и не получается. третий день бьюсь
32 Bli3world
 
17.06.14
20:46
(30) Допустим. а ты кто?
33 Irbis
 
17.06.14
20:46
(31) Не есть, пока не сделаешь пробовал? Очень даже в твоём случае помогает, прямо таки просветляет мозги.
34 Bli3world
 
17.06.14
20:47
(33) пробовал. с утра кофе и во время рвания волос лимонад
35 Irbis
 
17.06.14
20:49
(34) Вот с этой минуты не ешь и не пей ока эту фигню не сделаешь. Через три-четыре дня все окажется просто, как три рубля после стирки.
36 Bli3world
 
17.06.14
20:50
злые вы, уйду от вас
37 Мигало
 
17.06.14
20:52
Так тебе и надо
38 Irbis
 
17.06.14
20:52
(36) В толпе друг друга мы узнали,

Сошлись и разойдемся вновь.

Была без радостей любовь,

Разлука будет без печали
39 фобка
 
17.06.14
20:59
Сформулируй вопрос. В течении 1 минуты отвечу
40 Bli3world
 
17.06.14
21:06
(39) как вставить значение реквизита из док1 в поле док2 при изменении поля выбора в табчасти док2?
41 H A D G E H O G s
 
17.06.14
21:09
(32) Я тебя видел в Интернах.
42 фобка
 
17.06.14
21:09
(40) сложноватая формулировка...
ты все делаешь правильно почти, только "ТекущиеДанные" тебе дадут название элементов на форме, а не в табличной части объекта
43 фобка
 
17.06.14
21:11
+42 все очень просто проверяется, поставь точку останова здесь "СтрокаТабличнойЧасти.СреднийБалл = " и посомтри отладчиком какие доступные поля у тебя есть для "СтрокаТабличнойЧасти"
44 фобка
 
17.06.14
21:15
>Документы.УспеваемостьГруппа.НайтиПоРеквизиту("СреднийБалл"

Это реквизит шапки?
45 фобка
 
17.06.14
21:16
вот эту строку удаляем

СтрокаТабличнойЧасти.СреднийБалл = Документы.УспеваемостьГруппа.НайтиПоРеквизиту("СреднийБалл",Документы.УспеваемостьГруппа.СреднийБалл);
46 Bli3world
 
17.06.14
21:17
47 фобка
 
17.06.14
21:22
алгоритм такой:
1. Ищем ссылку на документ из которого берем значения
2.
СтрокаТабличнойЧасти = ЭлементыФормы.Ведомость.ТекущиеДанные;
3. НашаДисциплина = СтрокаТабличнойЧасти.Дисциплина;
4. Ищем НашаДисциплина в табличной части Док1:
МассивСтрок = Док1.ТЧДока1.НайтиСтроки(Новый Структура("Дисциплина", НашаДисциплина ));
Если МассивСтрок.Количество() = 0 Тогда
Сообщить("В док1 нет такой дисциплины");
Возврат;
КонецЕсли;
5. Если нашли СтрокаТабличнойЧасти.СреднийБалл = МассивСтрок [0].СреднийБалл
6. Всё
48 Irbis
 
17.06.14
21:23
(47) А если в массиве строк окажется больше одной?
49 фобка
 
17.06.14
21:25
(48) это никого не волнует, берем первую. Учет тонкостей для этого примера не нужен
50 фобка
 
17.06.14
21:27
да, это можно всё на запросах сделать. Но если уже есть  ссылка на Док1, то вариант с запросами, как тут сверху кто-то писал, для чудиков
51 фобка
 
17.06.14
21:29
запрос нужен только для поиска Док1
52 фобка
 
17.06.14
21:54
коррект по скрину:

47 - 17.06.14 - 21:22
алгоритм такой:
1. СтрокаТабличнойЧасти = ЭлементыФормы.Ведомость.ТекущиеДанные;
2. НашаДисциплина = СтрокаТабличнойЧасти.Дисциплина;
3.
ТекстЗапроса = "Выбрать Док1.СреднийБал СреднийБал Из Документ.УспеваемостьГруппа как Док1 Где Док1.Дисциплина = &Дисциплина и Док1.Семестр = &Семестр";
Запрос = Новый Запрос(ТЕкстЗапроса);
Запрос.Параметры.Вставить("Семестр", Объект.Семестр);
Запрос.Параметры.Вставить("Дисциплина ", НашаДисциплина);
//тут еще параметры, например факультет и еще чтото для идентификации
Результат = Запрос.Выполнить().Выбрать();
4.
Если Не Результат.Следующий() Тогда
  Сообщить("Не нашел Док1");
  Возврат;
КонецЕсли;
СтрокаТабличнойЧасти.СреднийБалл  = Результат.СреднийБал;
5. Всё
53 Bli3world
 
17.06.14
22:14
(52) Спасибо огроменное!!! очень выручил