|
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); БлижайшаяДатаПоступления = ТЗ.ПлановаяДатаПоступления; Если БлижайшаяДатаПоступления < ТекущаяДата() Тогда Сообщить("Менеджеры - тридварасы, не закрывают неактуальные заказы"); КонецЕсли; |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |