Имя: Пароль:
1C
1С v8
Автоматическое заполнение поля Цена
, ,
0 swerlana
 
04.02.15
00:35
{ОбщийМодуль.РаботаСоСправочниками.Модуль(10)}: Значение не является значением объектного типа (Цена)
Возврат ЗначенияРесурсов.Цена;


Выдает такую ошибку. Помогите исправить, срочно!

Код, общего модуся Работа со справочниками

Функция РозничнаяЦена(АктуальнаяДата,
ЭлементУслуги) Экспорт
// Создать вспомогательный объект Отбор
Отбор = Новый Структура("Услуга",
ЭлементУслуги);
// Получить актуальные значения ресурсов регистра
ЗначенияРесурсов =
РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата,
Отбор);
    Возврат ЗначенияРесурсов.Цена;
КонецФункции
1 Крошка Ру
 
04.02.15
00:49
(0) Это означает, что ПолучитьПоследнее() по такому отбору не находит строки в регистре, а ты из отсутствующей строки пытаешься цену получить. Естественно, оно ругается.
А, вообще, отладчиком пользуйся, да.
3 swerlana
 
04.02.15
00:56
(1) Что же такого с ценой не так?
Чуть поправила

Функция РозничнаяЦена(АктуальнаяДата,
ЭлементНоменклатуры) Экспорт
// Создать вспомогательный объект Отбор

Отбор = Новый Структура("Номенклатура",
ЭлементНоменклатуры);
// Получить актуальные значения ресурсов регистра

ЗначенияРесурсов =
РегистрыСведений.Цены.ПолучитьПоследнее(Отбор);
Возврат ЗначенияРесурсов.Цена;
КонецФункции

Новая ошибка.
{ОбщийМодуль.РаботаСоСправочниками.Модуль(9)}: Значение не является значением объектного типа (Цена)
Возврат ЗначенияРесурсов.Цена;

Вразуми глупенькую, как отладчиком воспользоваться?
4 GROOVY
 
04.02.15
01:07
(3) Что возвращает ПолучитьПоследнее()?
5 swerlana
 
04.02.15
01:12
(4) Сделать отбор, получить из регистра сведений цену, прикрепленную к услугам
6 GROOVY
 
04.02.15
01:24
(5) Вы не ответили на мой вопрос.
7 swerlana
 
04.02.15
01:30
(6) Может подскажете?Я чего то вообще уже :(
8 swerlana
 
04.02.15
01:38
А как посмотреть результаты выполнения?
Выводит ошибку

{ОбщийМодуль.РаботаСоСправочниками.Модуль(8)}: Значение не является значением объектного типа (Цена)
Возврат ЗначенияРесурсов.Цена;


Похоже до возврата переменной дело не доходит
9 swerlana
 
04.02.15
01:40
При коде в Общем модуле "Работа со справочником"
10 swerlana
 
04.02.15
01:40
Функция РозничнаяЦена(АктуальнаяДата,
ЭлементУслуги) Экспорт
// Создать вспомогательный объект Отбор
Отбор = Новый Структура("Услуга",
ЭлементУслуги);
// Получить актуальные значения ресурсов регистра
ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(Отбор);
Возврат ЗначенияРесурсов.Цена;
КонецФункции
11 swerlana
 
04.02.15
01:47
Как надо обозначить ЦЕНУ, чтобы она уходила в счет.
Если ЦЕНА находится в табличной части документа "выполненные услуги" на одном уровне с "услугами", с которыми привязана в регистре сведений
12 GROOVY
 
04.02.15
01:50
Да чтож такое!

Что у Вас метод возвращает? Что там в переменной "ЗначенияРесурсов"?
13 swerlana
 
04.02.15
01:52
(12) ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(Отбор);
14 GROOVY
 
04.02.15
01:53
Зашибись.
15 GROOVY
 
04.02.15
01:54
Давайте так. Какой тип значения имеет переменная ЗначенияРесурсов?
16 swerlana
 
04.02.15
02:01
Должна быть числовой. но программа предлагает по дате. Мне эту дату и не надо. Может без нее как то переделать?
17 GROOVY
 
04.02.15
02:06
Да ладно. А что в синтаксис-помощнике написано, что возвращает метод "ПолучитьПоследнее"?
18 swerlana
 
04.02.15
02:10
РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>)
ПолучитьПоследнее (GetLast)
Синтаксис:

ПолучитьПоследнее(<КонецПериода>, <Отбор>)
Параметры:

<КонецПериода> (необязательный)

Тип: Дата; МоментВремени; Граница.
Определяет момент времени, по который необходимо получить значения ресурсов. Может задаваться значениями типа Дата, МоментВремени или Граница. Если параметр не указан, то будут возвращены значения ресурсов самой последней записи регистра.
<Отбор> (необязательный)

Тип: Структура.
19 GROOVY
 
04.02.15
02:11
Так. А почему Вы говорите, что у Вас в переменной число или дата?
20 swerlana
 
04.02.15
02:13
Простите, глупость сморозила
21 GROOVY
 
04.02.15
02:21
Теперь посмотрите, что в самой переменной. Это делается отладчиком. Точка останова F9 Запуск в режиме отладки F5, вычислить выражение - shift+F9
22 swerlana
 
04.02.15
02:33
{(1,81)}: Ошибка в выражении
ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата,Отбор);
23 GROOVY
 
04.02.15
02:47
Удачи Вам.
24 swerlana
 
04.02.15
02:53
(23) Спасибо Вам! Но я так и не знаю пока, как ее исправить
25 razlagator
 
04.02.15
03:02
(24) через ПолучитьПоследнее() вы не получите цену, используйте СрезПоследних(), плюс там нужно учесть ТипЦены...
26 razlagator
 
04.02.15
03:03
(24) а вообще, без фото не взлетит
27 swerlana
 
04.02.15
03:06
(26) фото чего нужно?
28 swerlana
 
04.02.15
03:09
&НаКлиенте
//Процедура Выполняемая_работаУслугаПриИзменении(Элемент)
    // Получить текущую строку табличной части
//СтрокаТабличнойЧасти = Элементы. Выполняемая_работа.ТекущиеДанные;
// Установить цену
//СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(Объект.Дата,СтрокаТабличнойЧасти.Услуга);
// Пересчитать сумму строки
//СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена;
//КонецПроцедуры


это я позакрывала, чтоб пока другое делаю, не ругался
29 Mankubus
 
04.02.15
06:22
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.