|
v7: Получить последнюю запись из регистра остатков
| ☑ |
0
Gera1t
27.08.18
✎
10:44
|
Здравствуйте!
Нужно в ТИС 7.7 из регистра остатков Заказы получить планируемую дату поступления номенклатуры.
Сделал вот так:
РегЗаказы.УстановитьФильтр(Фирма, Номенклатура);
РегЗаказы.ВыбратьИтоги();
Пока РегЗаказы.ПолучитьИтог() = 1 Цикл
Док = РегЗаказы.ЗаказПоставщику;
КонецЦикла;
Т.е. фильтрую регистр по номенклатуре, потом выборку перебираю и выбираю документ из последней записи, а из него получаю дату поступления.
Подскажите пожалуйста, есть ли способ сделать это более оптимально, без перебора?
|
|
1
Gera1t
27.08.18
✎
10:48
|
Конечно если планируемых поступлений больше 1, то можно сверять текущую дату с датой поступления и останавливать цикл.
|
|
2
бомболюк
27.08.18
✎
10:49
|
1. проверь может там работает какой нить метод типа ОбратныйПорядок(1);
2. выгрузить итоги в ТЗ и взять данные из последней строки
|
|
3
Эльниньо
27.08.18
✎
11:08
|
Выбирать надо не итоги, а движения с ОбратныйПорядок(1)
|
|
4
NSSerg
27.08.18
✎
11:13
|
(0) Ты выбираешь не движения, а итоги.
А движения выбираются вот так -
рег.установитьЗначениеФильтра("Товар",Товар);
рег.обратныйпорядок(1);
рег.выбратьдвижения(,);
Пока рег.получитьдвижение()=1 цикл
|
|
5
Злопчинский
28.08.18
✎
17:03
|
(2) бред
.
Какой обратный порядок? вы о чем?
я мог две недели назад заказать товары у поставщика, которые придут завтра.. А после этого заказа могло быть еще тысяча заказов с датой поступления более ранней или более поздней. и выбрать движения даст записи в том порядке в котором они писались в базу, а не в порядке плановых дат поступления.
.
"Нужно в ТИС 7.7 из регистра остатков Заказы получить планируемую дату поступления номенклатуры."
РегЗаказы = СоздатьОбъект("Регистр.Заявки");
РегЗаказы.УстановитьЗначениеФильтра("Фирма",ВыбФирма,1);
РегЗаказы.УстановитьЗначениеФильтра("Номенклатура",ВыбНоменклатура,1);
ТЗ = ""; РегЗаказы.ВыгрузитьИтоги(ТЗ,0);
ТЗ.НоваяКолонка("ПлановаяДатаПоступления","Дата");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
ТЗ.ПлановаяДатаПоступления = ТЗ.ЗаказПоставщику.ДатаОтгрузки; //ДатаОтгрузки реквизит шапки, плановая дата поступления
КонецЦикла;
ТЗ.Сортировать("ПлановаяДатаПоступления+");
ТЗ.ПолучитьСтрокуПоНомеру(1);
БлижайшаяДатаПоступления = ТЗ.ПлановаяДатаПоступления;
Если БлижайшаяДатаПоступления < ТекущаяДата() Тогда
Сообщить("Менеджеры - тридварасы, не закрывают неактуальные заказы");
КонецЕсли;
|
|