Имя: Пароль:
1C
1С v8
Метод СрезПоследних() не срабатывает. Почему -> кто знает?
0 comebodzhi
 
21.05.14
17:13
Написал выборку из регистра сведений с помощью метода СрезПоследних():

СтрОтбора = Новый Структура;
СтрОтбора.Вставить("Номенклатура",СписокДеталей);

ТаблицаСпецификаций = РегистрыСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(Источник.Дата,СтрОтбора);

Не отрабатывает(. Пришлось заменить на следующее:
ЗапросСпец = Новый Запрос;
ЗапросСпец.Текст = "ВЫБРАТЬ
|    ОсновныеСпецификацииНоменклатурыСрезПоследних.Номенклатура,
|    ОсновныеСпецификацииНоменклатурыСрезПоследних.Спецификация
|ИЗ
|    РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(&Дата, Номенклатура В (&Номенклатура)) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних";
        
ЗапросСпец.УстановитьПараметр("Дата",Источник.Дата);                          
ЗапросСпец.УстановитьПараметр("Номенклатура",СписокДеталей);
        
ТаблицаСпецификаций = ЗапросСпец.Выполнить().Выгрузить();

По сути одно и тоже, но почему-то первый вариант не отрабатывает. Кто может сталкивался с похожей проблемой?
1 DefMB
 
21.05.14
17:17
Не понимает он список логично предположить. Попробуй одно значение передать:
СтрОтбора.Вставить("Номенклатура", Номенклатура)
2 Ненавижу 1С
 
гуру
21.05.14
17:19
нельзя в качестве значения в структуре передавать коллекцию
3 comebodzhi
 
21.05.14
17:25
(2) Отвечу так: Можно, в первом случае метод СрезПоследних() отрабатывает, но не всегда (на одном документе работает, на другом нет).
По сути мне нужен был ответ человека, который сталкивался с данной проблемой и нашел решение, а не объясняться с людьми, которые с данной проблемой не сталкивались.
4 comebodzhi
 
21.05.14
17:26
(1) А смысл мне засорять запросами к БД. Похоже про оптимизацию вы не слышали.
5 DefMB
 
21.05.14
17:42
(3) тебе ответили в (1) и (2) более чем понятно. Какого ответа ты здесь еще ждешь?  
(4) ну так и делай все одним запросом, это самое оптимальное решение в твоем случае.
6 delavar
 
21.05.14
17:42
обожаю этот форум. срач можно на пустом месте развести
7 Segate
 
21.05.14
17:47
(4)красавчик, че ) всем нахамил =) а ответы то правильные были. Оптимизацией заниматься тебе рано, коли руки из одного места. штампуй запросы =)
В СП четко написано: значение элемента структуры - задает отбираемое по данному измерению значение.
У тебя измерение регистра имеет тип массив(списокЗначений) или что ты там передаешь?

Тебе в (1) и (2) дали правильные ответы.
8 Segate
 
21.05.14
17:49
(6) клево же? Идеальная тактика:
1) задать вопрос
2)подождать ответ
3)Написать, что все вокруг го вно, я оптимизатор и вообще...!!!1111
4)...
5)PROFIT!
9 salvator
 
21.05.14
17:50
(3) "отрабатывает, но не всегда"
1С вообще капризная дамочка. Захочу - сделаю, захочу - нет.
10 Segate
 
21.05.14
17:52
(9) Я предположу, что у него там где нть отбор стоит и в случае если 1 позиция номенклатуры - передается ссылка, а если 2+ то передается массив. вот и весь секрет. Но ведь ему ловить косяки некогда, он ведь оптимизирует )
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн