Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 16:43

Структура() в 8.2

Автор 1cka, 03 сен 2014, 13:46

0 Пользователей и 1 гость просматривают эту тему.

1cka

Хочу отобрать цены как срез последних на дату
Делаю так:
Период = ОкончаниеПериодаОтчета;
СтруктураОтбора = Новый Структура();
СтруктураОтбора.Вставить("ТипЦен", Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Плановая"));
СтруктураОтбора.Вставить("Номенклатура", СокрЛП(стр2.Номенклатура));
СтруктураОтбора.Вставить("ХарактеристикаНоменклатуры", СокрЛП(стр2.ХарактеристикаНоменклатуры));
Цена = РегистрыСведений.ЦеныНоменклатуры.Получить(Период, СтруктураОтбора).Цена;

отрабатывает, но определяет цены на конкретную дату. как указать чтобы определялись цены как срез последних на дату?

Kironten

Есть же СрезПоследних, в чем проблема?
РегистрыСведений.ЦеныНоменклатуры.СрезПоследних(<КонецПериода>, <Отбор>)

1cka

Цитата: Kironten от 03 сен 2014, 13:57
Есть же СрезПоследних, в чем проблема?
РегистрыСведений.ЦеныНоменклатуры.СрезПоследних(<КонецПериода>, <Отбор>)
где тогда писать Ресурс - мне нужна Цена?
нужно ли использовать Получить()?
вся проблема в последней строке...

Kironten

Цитата: 1cka от 03 сен 2014, 14:12
где тогда писать Ресурс - мне нужна Цена?
нужно ли использовать Получить()?
вся проблема в последней строке...
Вы получаете срез, т.е. все найденные записи в регистре по отбору. На выходе получается таблица значений. Один ресурс (например цену) вы получите, только обрабатывая ТЗ обращаясь к колонке цена.
Если же вам нужен ОДИН последний ресурс, то вы неверно сформулировали вопрос. В таком случае вам нужен метод - ПолучитьПоследнее().

has

По мне так проще запросом получить.

1cka


Период = ОкончаниеПериодаОтчета;
СтруктураОтбора = Новый Структура();
СтруктураОтбора.Вставить("ТипЦен", Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Плановая"));
СтруктураОтбора.Вставить("Номенклатура", стр2.Номенклатура);
СтруктураОтбора.Вставить("ХарактеристикаНоменклатуры", стр2.ХарактеристикаНоменклатуры);
Цена = РегистрыСведений.ЦеныНоменклатуры.ПолучитьПоследнее(Период, СтруктураОтбора).Цена;

все получилось с ПолучитьПоследнее() и убрала СокрЛП() в отборе
Всем спасибо!

Добавлено: 04 сен 2014, 10:50


Цитата: has от 04 сен 2014, 07:08
По мне так проще запросом получить.
ну может быть))
решила сделать так)))

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск