Вход | Регистрация

1С:Предприятие ::

Метки: 

v7: Получить последнюю запись из регистра остатков

Я
   Gera1t
 
27.08.18 - 10:44
Здравствуйте!
Нужно в ТИС 7.7 из регистра остатков Заказы получить планируемую дату поступления номенклатуры.
Сделал вот так:
            РегЗаказы.УстановитьФильтр(Фирма, Номенклатура);
            РегЗаказы.ВыбратьИтоги();
            Пока РегЗаказы.ПолучитьИтог() = 1 Цикл
                Док = РегЗаказы.ЗаказПоставщику;
            КонецЦикла; 

Т.е. фильтрую регистр по номенклатуре, потом выборку перебираю и выбираю документ из последней записи, а из него получаю дату поступления.
Подскажите пожалуйста, есть ли способ сделать это более оптимально, без перебора?
 
 
   Gera1t
 
1 - 27.08.18 - 10:48
Конечно если планируемых поступлений больше 1, то можно сверять текущую дату с датой поступления и останавливать цикл.
   бомболюк
 
2 - 27.08.18 - 10:49
1. проверь может там работает какой нить метод типа ОбратныйПорядок(1);
2. выгрузить итоги в ТЗ и взять данные из последней строки
   Эльниньо
 
3 - 27.08.18 - 11:08
Выбирать надо не итоги, а движения с ОбратныйПорядок(1)
   NSSerg
 
4 - 27.08.18 - 11:13
(0) Ты выбираешь не движения, а итоги.
А движения выбираются вот так -

рег.установитьЗначениеФильтра("Товар",Товар);
рег.обратныйпорядок(1);
рег.выбратьдвижения(,);
Пока рег.получитьдвижение()=1 цикл
   Злопчинский
 
Ведущий
5 - 28.08.18 - 17:03
(2) бред
.
Какой обратный порядок? вы о чем?
я мог две недели назад заказать товары у поставщика, которые придут завтра.. А после этого заказа могло быть еще тысяча заказов с датой поступления более ранней или более поздней. и выбрать движения даст записи в том порядке в котором они писались в базу, а не в порядке плановых дат поступления.
.
"Нужно в ТИС 7.7 из регистра остатков Заказы получить планируемую дату поступления номенклатуры."

РегЗаказы = СоздатьОбъект("Регистр.Заявки");
РегЗаказы.УстановитьЗначениеФильтра("Фирма",ВыбФирма,1); 
РегЗаказы.УстановитьЗначениеФильтра("Номенклатура",ВыбНоменклатура,1);
ТЗ = ""; РегЗаказы.ВыгрузитьИтоги(ТЗ,0);
ТЗ.НоваяКолонка("ПлановаяДатаПоступления","Дата");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
  ТЗ.ПлановаяДатаПоступления = ТЗ.ЗаказПоставщику.ДатаОтгрузки;//ДатаОтгрузки реквизит шапки, плановая дата поступления

КонецЦикла;
ТЗ.Сортировать("ПлановаяДатаПоступления+");
ТЗ.ПолучитьСтрокуПоНомеру(1);
БлижайшаяДатаПоступления = ТЗ.ПлановаяДатаПоступления;
Если БлижайшаяДатаПоступления < ТекущаяДата() Тогда
  Сообщить("Менеджеры - тридварасы, не закрывают неактуальные заказы");
КонецЕсли;


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует