|
1С 8.3 РегистрСведений ЦеныНоменклатуры | ☑ | ||
---|---|---|---|---|
0
kat2504
10.02.17
✎
16:21
|
Помогите не могу понять в чем ошибка.
На базе конфигурации Управление Сервисным Центром Есть Справочник Номенклатура, откуда и беру наименование услуг Есть РегистрыСведений ЦеныНоменклатуры, который хранит цены на услуги и товары. (Измерения -- Номенклатура, Характеристика, Ресурсы -- Цена) Есть Документ НовыйДоговор, В нем табличная часть УслугиПоТарифам в ней строки Наименование, Характиристика, Цена Мне Надо чтобы при заведении документа НовыыйДоговор, когда я выбираю наименование автоматически подставлялась Характеристика и Цена Итак: Документ НовыйДоговор: ФормаДокумента &НаКлиенте Процедура УслугиПоТарифуНаименованиеПриИзменении(Элемент) Стр=Элементы.УслугиПоТарифу.ТекущиеДанные; Стр.Цена=ОбщиеФункции.ЦенаНаДень(Объект.Дата,Стр.Наименование); КонецПроцедуры Далее в: ОбщийМодуль ОбщиеФункции: Модуль Функция ЦенаНаДень(ДатаНовогоДоговора,Наименование) Экспорт ЦенаНаименования=Наименование.Цена; Отбор=Новый Структура("Цена",ЦенаНаименования); ИнформацияИзРегистра=РегистрыСведений.ЦеныНоменклатуры.ПолучитьПоследнее(ДатаНовогоДоговора,Отбор); Возврат ИнформацияИзРегистра.Цена; КонецФункции При проверках Синтаксических ошибок не обнаружено! Но когда заходишь в программу при заведении документа после внесения наименования выдает ошибку: {ОбщийМодуль.ОбщиеФункции.Модуль(2)}: Поле объекта не обнаружено (Цена) ЦенаНаименования=Наименование.Цена; Что не так? |
|||
1
gorakh
10.02.17
✎
16:23
|
Поставь остановку по ошибке и увидешь, что там NULL.
|
|||
2
h-sp
10.02.17
✎
16:27
|
так, наверно
Отбор=Новый Структура("Номенклатура",Номенклатура); |
|||
3
kat2504
10.02.17
✎
22:40
|
Выдает тогда такую ошибку, но уже сразу в конфигураторе
{ОбщийМодуль.ОбщиеФункции.Модуль(3,39)}: Переменная не определена (Номенклатура) Отбор=Новый Структура("Номенклатура",<<?>>Номенклатура); (Проверка: Сервер) |
|||
4
Любопытная
10.02.17
✎
22:50
|
Ну так вы с умом копируйте, а не прямо так. У вас де в вашем воде нигде не объявлена переменная Номенклатура, у вас там Наименование. А по первоначальной ошибке - у Наименования поди нет реквизита Цена, вот и возникает ошибка. Кто этот код писал вообще?
|
|||
5
kat2504
10.02.17
✎
23:10
|
Так как не смогла найти ошибку, поэтому и прошу помощи, напишите код как он должен быть где допущены ошибки
Вариант вместо Наименования везде Номенклатура, пробовала, выдает туже ошибку что и с Наименованием |
|||
6
EvgeniuXP
10.02.17
✎
23:53
|
Исправить очень просто, запускаешь отладчик, ставишь точку останова, смотришь у обоих переменных какой тип и присваиваешь одинаковый тип. Если в наименование строка - то и присваивай строку, если цена число - то и число присваивай.
|
|||
7
EvgeniuXP
10.02.17
✎
23:55
|
А лучше сходить на учебу - а то наделаешь так, что потом всю жизнь будешь исправлять свои творения :)
|
|||
8
jsmith82
11.02.17
✎
00:02
|
//Наименование - реквизит ТЧ. Видимо, справочник Номенклатура, просто название тупое
Функция ЦенаНаДень(ДатаНовогоДоговора,Наименование) Экспорт Отбор=Новый Структура("Номенклатура",Наименование); ИнформацияИзРегистра=РегистрыСведений.ЦеныНоменклатуры.ПолучитьПоследнее(ДатаНовогоДоговора,Отбор); Возврат ИнформацияИзРегистра.Цена; КонецФункции |
|||
9
kat2504
11.02.17
✎
18:38
|
jsmith82 Спасибо огромное, все заработало, все правильно сделали.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |