|
Как правильно ПолучитьПоследнее из регистра сведений | ☑ | ||
---|---|---|---|---|
0
Artemy55
25.06.15
✎
11:59
|
Такую ошибку выдал мне, при выборе номенклатуры в режиме предприятия. Понимаю, что вопрос неправильно задан, мало информации...
{ОбщийМодуль.РаботаСоСправочниками.Модуль(6)}: Ошибка при вызове метода контекста (ПолучитьПоследнее) ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор); по причине: Недопустимое значение параметра (параметр номер '2') |
|||
1
DTXqueque
25.06.15
✎
12:00
|
>Понимаю, что вопрос неправильно задан, мало информации...
Верно понимаешь. Вопрос то в чем? |
|||
2
Господин ПЖ
25.06.15
✎
12:04
|
кривой отбор, что не ясно
|
|||
3
D_E_S_131
25.06.15
✎
12:05
|
Если ты программист, то смотри синтаксис по методу ПолучитьПоследнее() и проверяй, соответственно, в отладчике что у тебя попадает в в параметр "Отбор".
|
|||
4
Mitriy
25.06.15
✎
12:06
|
(2) не кривой, а вообще не отбор...
|
|||
5
Адский плющ
25.06.15
✎
12:28
|
(4) Не факт. Если в отборе присутствуют поля не соответствующие измерениям будет такая же картина.
|
|||
6
Господин ПЖ
25.06.15
✎
12:29
|
(4) это тоже туда инкапсулируется ;)
|
|||
7
hhhh
25.06.15
✎
12:32
|
(5) еще вариант: в отборе должно быть только одно измерение, а у автора несколько.
|
|||
8
Ненавижу 1С
гуру
25.06.15
✎
12:39
|
запросом делай
|
|||
9
palpetrovich
25.06.15
✎
12:48
|
(0) ежели это в типовой конфигурации - вопрос к разработчикам, ежели сам наваял - сам понимаешь :)
|
|||
10
Artemy55
26.06.15
✎
12:37
|
мм...
Ну вот код Функция РозничнаяЦена (АктуальнаяДата, ЭлементНоменклатуры) Экспорт // Создать воспомогательный объект "Отбор" Отбор = Новый Структура ("Номенклатура", ЭлементНоменклатуры); // Получить актуальны значения ресурсов регистра. ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор); Возврат ЗначенияРесурсов.Цена; КонецФункции Вот ошибка из консоли, которую выдаёт, когда меняешь номенклатуру, должно подставить цену из регистра сведений, при выборе номенклатуры. Вроде... {ОбщийМодуль.РаботаСоСправочниками.Модуль(6)}: Ошибка при вызове метода контекста (ПолучитьПоследнее) ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор); по причине: Недопустимое значение параметра (параметр номер '2') Недопустимое значение параметра (параметр номер '2') |
|||
11
Enterprise
26.06.15
✎
12:41
|
(10) "ЭлементНоменклатуры" это что?
|
|||
12
Artemy55
26.06.15
✎
12:56
|
(11) не знаю.. нету такой переменной в форме документа откуда запрашивает эту функцию. Эта функция в глоб.модулях. Конфигурация учебная, могу расшарить.
|
|||
13
Mitriy
26.06.15
✎
12:57
|
возможно, нужна не структура, а фиксированная структура...
|
|||
14
mTema32
26.06.15
✎
13:00
|
(0) Код похож на пример из книжки Радченко "Практическое пособие разработчика"
|
|||
15
Мимохожий Однако
26.06.15
✎
13:02
|
Традиционно: встань в конфигураторе на ошибку, запусти отладчик, посмотри, какое значение в ЭлементНоменклатуры
|
|||
16
mTema32
26.06.15
✎
13:03
|
(0) Все по книжке делал? Все галки там у модуля проставил?
В модул формы при изменении номенклатуры так? // Получить текущую строку табличной части. СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные; // Установить цену. СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(Объект.Дата, СтрокаТабличнойЧасти.Номенклатура); |
|||
17
Artemy55
26.06.15
✎
13:05
|
(14) Да, именно оно, по 8.3
|
|||
18
Artemy55
26.06.15
✎
13:06
|
(15) Тыкаюсь. Забыл как вызвать это окно в отладчике....
|
|||
19
Artemy55
26.06.15
✎
13:07
|
(16) Да, вот так
СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные; // Установить цену. СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(Объект.Дата, СтрокаТабличнойЧасти.Номенклатура); |
|||
20
AllJoke
26.06.15
✎
13:10
|
(18) Shift+F9
|
|||
21
AllJoke
26.06.15
✎
13:13
|
+ (20) либо в Конфигураторе меню Отладка - Вычислить выражение
|
|||
22
Artemy55
26.06.15
✎
13:15
|
ЭлементНоменклатуры – ссылка на элемент справочника Номен-
клатура, для которого мы хотим получить розничную цену. я не знаю каким образом эта ссылка задана, я не писал таокго в коде и в свойствах тоже нигде не прописывал... не понятно.. |
|||
23
hhhh
26.06.15
✎
13:18
|
ошибка не здесь: Функция РозничнаяЦена покажи как вызываешь.
|
|||
24
Artemy55
26.06.15
✎
13:19
|
(23)
&НаКлиенте Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент) // Получить текущую строку табличной части. СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные; // Установить цену. СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(Объект.Дата, СтрокаТабличнойЧасти.Номенклатура); // Пересчитать сумму строки. РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти); КонецПроцедуры |
|||
25
Artemy55
26.06.15
✎
13:25
|
||||
26
Mitriy
26.06.15
✎
13:31
|
Отбор = Новый Структура ("Измерение1", ЭлементНоменклатуры);
|
|||
27
Artemy55
26.06.15
✎
14:08
|
(26) Что это значит?
|
|||
28
Mitriy
26.06.15
✎
14:11
|
(27) это значит, что измерение у тебя не "Номенклатура"
|
|||
29
Artemy55
28.06.15
✎
13:32
|
(28) Ну не знаю.. всё равно не понятно
Функция РозничнаяЦена (АктуальнаяДата, ЭлементНоменклатуры) Экспорт // Создать воспомогательный объект "Отбор" Отбор = Новый Структура ("Номенклатура", ЭлементНоменклатуры); // Получить актуальны значения ресурсов регистра. ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор); Возврат ЗначенияРесурсов.Цена; КонецФункции |
|||
30
Рэйв
28.06.15
✎
14:16
|
(29)Если не можешь, ну запросом тогда.
Если конечно ты и про запросы ветку не поднимешь... |
|||
31
hhhh
28.06.15
✎
15:43
|
(29) В регистре сведений Цены у тебя нет поля Номенклатура. Посмотри внимательнее на этот регистр.
|
|||
32
Artemy55
28.06.15
✎
17:01
|
(31) Я не дал название измерению Номенклатура в регистре сведений, забыл просто. Спасибо, исправил свою ошибку, всё заработало))
|
|||
33
ДенисЧ
28.06.15
✎
17:06
|
Гениально....
|
|||
34
Loki Evil
28.06.15
✎
18:21
|
Могу посоветовать не использовать объектную модель для чтения данных воооооообще, а использовать запросы и особенно конструктор запросов - никаких таких проблем бы не возникло, сразу же бы увидели в конструкторе, что с таблицей регистра беда.
Скорость работы запросов на уровне, а за счет более тонкой фильтрации данных часто удается отобрать лучше и в итоге работает намного быстрее. Это не говоря о запросах по нескольким таблицам. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |