v7: Получить последнее движение по регистру. #638446


#0 by Andreyyy
Чем можно заменить этот тормозной код выполняющийся в цикле:
#1 by zak555
это типа рс периодический ?
#2 by ДенисЧ
select top 1 * from $Регистр.ЦеныНаСкладах рег order by рег.date_time_iddoc
#3 by aka AMIGO
это 7-ка. выбирай документы поступления черным запросом авось поможет
#4 by ДенисЧ
А что, в 7.7.28 появилось в запросе Упорядочить УБЫВ?
#5 by Andreyyy
Это по всей видимости 1С++ ? так и придется браться за изучение.
#6 by ДенисЧ
Он. Но можно и простым ADO :-)
#7 by Andreyyy
Не легче)
#8 by aka AMIGO
нет, еще 28 пока не появилась :)
#9 by dk
зависит от цикла и объема данных можно 1. выбрать в ТЗ все движения по фильтру склад + список номенклатуры 2. отсортировать по дате / документам 3. в цикле искать уже по ТЗ -- но если много оборотов или список номенклатуры большой, то можно проиграть в скорости
#10 by Ёпрст
давно.. по функции можно упорядочить в любом прорядке, почти всё что угодно
#11 by Andreyyy
Подниму ветку. Мне удалось одолеть запуск запроса на 1С++ в DBF, вот что получилось: Поля "date_time_iddoc" в DBF по видимому нет + выдает первое значение по движению, а не последнее. Отсюда два вопроса: 1. Как сделать упорядочивание не только по дате, но и по времени. 2. И как получить последнее движение, как в .
#12 by КонецЦикла
Заглянул бы хоть в дбф и dd Там отдельные поля для даты, времени и иддок
#13 by Andreyyy
С временем разобрался вроде |order by рег.DATE,рег.TIME но какая инструкция нужна для сортировки в обратном порядке не знаю.
#14 by КонецЦикла
ORDER BY ... DESC
#15 by Andreyyy
При варианте order by рег.DATE,рег.TIME DESC Выдает первую запись. А если order by рег.DATE DESC, то не отрабатывает "TOP", но сортирует правильно.
#16 by Andreyyy
+ т.е. выдает все записи
#17 by Andreyyy
Наверное вот так правильно |order by рег.DATE DESC,рег.TIME DESC ? Но как избавиться от всех записей, делать подзапрос ?
#18 by Mikeware
где-то кто-то говорит неправду...
#19 by Andreyyy
ТекстЗапроса = " Выдает две записи.
#20 by ВалераОшкин
Максимум(РегистрЦеныНаСкладах.Период)
#21 by ВалераОшкин
> Чем можно заменить этот тормозной код выполняющийся в цикле Переходом на платформу 8.2
#22 by Andreyyy
+ Но что интересно, у второй записи поле "DATE" одинаковая с первой.
#23 by Andreyyy
Дошло ! Последний документ формирует две записи, одна приход, другая расход, оттого и две. Как выбрать только последний приход ?
#24 by Andreyyy
Всем, спасибо "DEBKRED" спас.
#25 by КонецЦикла
:) Быстро сообразил
#26 by Andreyyy
Блин, беда не приходит одна. Если убираю в фильтре товар, то запрос выдает только одну последнюю запись, а мне хотелось бы все по складу. Это можно как-то побороть и если можно то куда копать ?
#27 by Andreyyy
Медленно в цикле выполняется, один запрос примерно секунду. Был бы благодарен за подсказку как выйти из положения.
#28 by Andreyyy
Однако опять подниму. Не стал париться с , все выгружаю в таблицу значений, она уже отсортирована, остается найти первую строку с товаром и все классно. Возник вопрос как установить условие на позицию документа, в инете нашел только условия на виртуальные таблицы.
#29 by Mikeware
Если флаг БыстрыеДвижения - она уже есть. если флага нет - джойнь с журналом.
#30 by Andreyyy
Попробую переписать, поскольку и соединение сделал через ODBC, а там в DBF нельзя метод "УложитьСписокОбъектов" использовать, а нужно в таком случае через OLE DB. И таблицу брать виртуальную. Вобщем чем дальше в лес, тем больше дров. А такая мелочь нужна.
#31 by Mikeware
"А такая мелочь нужна." тогда давай начинать с задачи, а не с твоего метода ее решения :-)))
#32 by Andreyyy
Есть регистр "Склад,Товар,Цена - Количество". Когда делают перемещение на склад хотелось бы получить последнюю цену этого товара на этом складе. Периодические реквизиты справочника не рассматриваются. Такая вобщем тривиальная задача.
#33 by Mikeware
Если у тебя документ при получении цены уже записан - тебе не требуется УложитьСписокбъектов, тебе надо джойнить с табчастью. Как в запросе к дбф получить последние скопом я не знаю (у драйвера фокса свои фишки), в сиквеле я бы обернул в запрос с Макс(Дата)... гроуп бай  номенклатура
#34 by Andreyyy
Не вариант соединением делать, поскольку обычно в новом документе требуется выполнять эту процедуру, а записывать заставлять пользователя тоже не гуд, может он передумает создавать документ. Вобщем выкрутился как мог, спасибо за наводки.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С