Имя: Пароль:
1C
1С v8
Значение не является значением объектного типа (Тариф)
,
0 liliputochka
 
12.07.13
15:45
Добрый день,
это мое первое самостоятельное задание, и я не знаю что делать: у меня выдается ошибка:


Значение не является значением объектного типа (Тариф)
НоваяСтрока.Тариф               = ?(ЗначениеЗаполнено(СтрокаДн.Тариф), СтрокаДн.Тариф, СтрокаОбщ.Тариф);

Идет ссылка на строку:

НоваяСтрока.Тариф               = ?(ЗначениеЗаполнено(СтрокаДн.Тариф), СтрокаДн.Тариф, СтрокаОбщ.Тариф);

Где в 1С можно посмотреть какие там переменные есть? Как вообще начинать работу с 1С? Может где-то нужно прописать этот параметр? Подскажите, прямо не знаю что делать - кода много что с ним делать не знаю.
1 Ненавижу 1С
 
гуру
12.07.13
15:47
позвони гению 1с
2 Rovan
 
гуру
12.07.13
15:48
в отладчике нажми Shift-F9
3 Asmody
 
12.07.13
15:48
(0) можно слева от кода ткнуть мышкой, появится красная точка — точка останова. на этом месте программа при выполнении остановится и можно будет посмотреть значения переменных. это называется "отрадка"
4 Asmody
 
12.07.13
15:49
отрадка = отладка
5 IBTM
 
12.07.13
15:51
да лан чтовы, может задание в этом и заключается, добится появления этой ошибки
6 liliputochka
 
12.07.13
16:02
"в отладчике нажми Shift-F9"

ничего не происходит. Что должно было появиться?
7 liliputochka
 
12.07.13
16:03
"позвони гению 1с"
не подскажите его телефончик? ;)
8 liliputochka
 
12.07.13
16:05
"задание в этом и заключается, добится появления этой ошибки"

задание в том, чтобы устранить ошибки и сформировать отчет.
9 liliputochka
 
12.07.13
16:08
"можно будет посмотреть значения переменных"

К сожалению,только попадает на эту строку сразу же выдает ошибку. Но вот на строке перед ней:

НоваяСтрока.ТарифДляВывода      = "" + НоваяСтрока.Тариф;


Выдает, что тип данных, переменной НоваяСтрока.Тариф, не определено.
10 IBTM
 
12.07.13
16:10
(6) диалоговое окно

(7) тебе городской или сотовый?

(8) ну хоть, что то
11 Asmody
 
12.07.13
16:10
(9) а что выдаёт НоваяСтрока?
12 Maxus43
 
12.07.13
16:11
(9) горячее... что нужно сделать? чтоб не было неопределено. Найти почему такое и исправить, либо проверку сделать, что если неопределено, то не заполнять те поля где ругается
13 Ненавижу 1С
 
гуру
12.07.13
16:11
(7) смотри тут http://fixin.com.ru/
14 Maxus43
 
12.07.13
16:14
не ведись на фиксина, плохому учат
15 liliputochka
 
12.07.13
16:17
"тебе городской или сотовый?"

можно и тот, и другой. Нужно разнообразие.
16 IBTM
 
12.07.13
16:18
(15) любишь поиграть в разные ролевые игры?
17 IBTM
 
12.07.13
16:19
(16) это не сюда))
18 liliputochka
 
12.07.13
16:20
(<a href="http://www.forum.mista.ru/topic.php?id=672758#11">11</a>)
чтобы не гадали код (некоторый кусок):

Если Не СтрокаДн = Неопределено Или Не СтрокаОбщ = Неопределено Тогда
               НоваяСтрока = ТаблицаНачисления.Добавить();
               
               НоваяСтрока.Услуга              = Услуга;
               НоваяСтрока.ВидУслуги           = ВидУслуги;
               НоваяСтрока.ВидТарифа           = Перечисления.КВП_ВидыТарифов.Дневной;
               НоваяСтрока.ВидДляВывода        = " - дн. начисление";
               НоваяСтрока.ТарифДляВывода      = "" + НоваяСтрока.Тариф;
НоваяСтрока.Тариф               = ?(ЗначениеЗаполнено(СтрокаДн.Тариф), СтрокаДн.Тариф, СтрокаОбщ.Тариф);
19 George Wheels
 
12.07.13
16:31
Из этого кода ничего не поймёшь.
Лучше посмотри в отладчике структуру "ТаблицаНачисления", "СтрокаДн" и "СтрокаОбщ"
20 liliputochka
 
12.07.13
16:37
Структура "ТаблицаНачисления":

НоваяСтрока = ТаблицаНачисления.Добавить();
       
       НоваяСтрока.Услуга              = Услуга;
       НоваяСтрока.ВидУслуги           = ВидУслуги;
       НоваяСтрока.ВидДляВывода        = "" + ВидУслуги + ":";
       НоваяСтрока.ЕдИзм               = ЕдИзм;
       НоваяСтрока.РазмерНормы         = РазмерНормыИнд;
       НоваяСтрока.РазмерНормыОбщ      = РазмерНормыОбщ;
       НоваяСтрока.КоличествоИПУ       = КоличествоИПУ;
       НоваяСтрока.КоличествоОПУ       = КоличествоОПУ;                        
       НоваяСтрока.НачисленоИПУ        = НачисленоИПУ;
       НоваяСтрока.НачисленоОПУ        = НачисленоОПУ;
       НоваяСтрока.Начислено           = Начислено;
       НоваяСтрока.Перерасчет          = Перерасчет;
       НоваяСтрока.Льгота              = ПолучитьЛьготуПоТекущейУслуге(ТаблицаЛьготСправочно, Льгота, Услуга, СтруктураНастроек.ЛьготыСправочно);
       НоваяСтрока.КОплатеИПУ          = НачисленоИПУ + ((Перерасчет - Льгота) * КоэффициентИПУ);
       НоваяСтрока.КОплатеОПУ          = НачисленоОПУ + ((Перерасчет - Льгота) * (1 - КоэффициентИПУ));
       НоваяСтрока.КОплате             =    НоваяСтрока.КОплатеИПУ + НоваяСтрока.КОплатеОПУ;
       НоваяСтрока.УслугаПоСчетчикам   = Истина;
       НоваяСтрока.ОбщИДнТарифыНеРавны = Не ДневнойИОбщийТарифыРавны;


структура "СтрокаДн" и "СтрокаОбщ":

СтрокаОбщ = ТаблицаПоУслуге.Найти(Перечисления.КВП_ВидыТарифов.Общий,   "ВидТарифа");
   СтрокаДн  = ТаблицаПоУслуге.Найти(Перечисления.КВП_ВидыТарифов.Дневной, "ВидТарифа");


структура "ТаблицаПоУслуге":

Перерасчет    = ТаблицаПоУслуге.Итог("Перерасчет");
   Льгота        = ТаблицаПоУслуге.Итог("Льгота");
   КоличествоИПУ = ТаблицаПоУслуге.Итог("КоличествоИПУ");
   КоличествоОПУ = ТаблицаПоУслуге.Итог("КоличествоОПУ");
   НачисленоИПУ  = ТаблицаПоУслуге.Итог("НачисленоИПУ");
   НачисленоОПУ  = ТаблицаПоУслуге.Итог("НачисленоОПУ");

И вообще-то мне передаются эти структуры:
Процедура ДетализироватьПоВидамТарифа(СтрокаУслуги, ЛицевойСчет, ТаблицаПоУслуге, ТаблицаНачисления,
                                   СтруктураНастроек, ТаблицаЛьготСправочно, РазмерНормыИнд, РазмерНормыОбщ)
21 liliputochka
 
12.07.13
16:45
(16) унизить девушку - много труда не надо.
22 StAsya_1c
 
12.07.13
17:14
Скорее всего, СтрокаОбщ у тебя = неопределено, ну или СтрокаДн.
Поставь проверку что ли

Если СтрокаДн <> Неопределено Тогда
  НоваяСтрока.Тариф               = ?(ЗначениеЗаполнено(СтрокаДн.Тариф), СтрокаДн.Тариф, ?(СтрокаОбщ=Неопределено, 0, СтрокаОбщ.Тариф);
Иначе
  НоваяСтрока.Тариф  =?(СтрокаОбщ=Неопределено, 0, СтрокаОбщ.Тариф);
КонецЕсли;
23 liliputochka
 
13.07.13
13:15
(22) А что означает "=?" в коде?
24 George Wheels
 
13.07.13
13:47
(23) =? - это вопрос любви.

?Девушка, ты со мной пойдешь? И два варианта ответа.
25 liliputochka
 
15.07.13
16:53
(22) - вроде помогло, спасибо, но только НоваяСтрока.Тариф не выводится в отчете при формировании
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн