v7: Запрос Остатков за минусом резервов #695394


#0 by Double_Medved
Помогите плиз, что-то туплю, что-то явно проще делается. Мне нужно сделать запрос свободных остатков выбранной номенклатуры на всех складах. То есть из ОстатковТМЦ отнять РезервыТМЦ. Чую что этот запрос выглядит проще чем у меня
#1 by povar
смотри отчет Остатки ТМЦ в типовой ТиС
#2 by Double_Medved
А подскажи плиз как можно нормально посмотреть в отладчике текст запроса? А то он выводится в одну строку, и видимо еще где-то обрывается, не все видно, я вот поэтому и не смог передрать (
#3 by aka AMIGO
ВыбраннаяНоменклатура - один элемент? тогда ИМХО - гораздо проще сделать обращением к регистрам ЗЫ. ну, проверить только запятые
#4 by aka AMIGO
в отладчике обрывается на 255-м символе
#5 by Double_Medved
я потому и хочу запросом, потому что запросом быстрее. У меня там в документе у любой выбранной строки показывается остаток номенклатуры, чтобы менеджеры не путались.
#6 by aka AMIGO
ну, твоя воля.. у меня именно так считаются остатки в каждой строке документов, тормозов не замечено. ЗЫ. если на дату дока - то временный расчет НА(ТекущийДок..
#7 by aka AMIGO
а почему в запросе у тебя функция "НачОст(" ? вроде-б нелогично
#8 by Double_Medved
А можешь рассказать как там примерно дело обстоит? Просто с ТА я заманался. То есть вот например создают новый документ - он же будет после ТА,это надо брать тогда остатки на ТА? И вот если открывают старый документ? Тогда делать временный расчет на текущий документ? Я что-то путаюсь когда надо делать временный расчет, а когда не надо
#9 by Кукуев
Попробуй сделать вывод Предупреждение(ТекстЗапроса);
#10 by aka AMIGO
ты всё в принципе правильно говоришь. Временный расчет - на определенную точку временной оси, это может быть дата, или документ ""..создают новый документ - он же будет после ТА,это надо брать тогда остатки на ТА?"" - да, и временный расчет в этом случае не нужен, т.е. как в ""..если открывают старый документ? Тогда делать временный расчет на текущий документ?"" - да. Ост = РегОст.СводныйОстаток(... ...
#11 by Кукуев
+ После формирования текста запроса, естественно :)
#12 by aka AMIGO
+ забыл: РегОст.      УстановитьЗначениеФильтра("Номенклатура",ТвояНоменклатура,?); ...
#13 by Double_Medved
Спасибо, я видимо сделал ошибку в том что я всегда делал ВременныйРасчет, даже в новых документах, за счет этого шло торможение. Попробую делать ВременныйРасчет только для старых документов, их все равно реже открывают.
#14 by Double_Medved
Спасибо, попробую
#15 by aka AMIGO
хороший пример - в модуле документа, напрмер, "ЗаявкаПокупателя", если глянуть в процедуру ПроведениеПоРегистрам там быстренько проверяется наличие ТМЦ на предмет записи в регистры заявок и резервов.. С проверкой ИтогиАктуальны.. модифицируй под себя..
#16 by Double_Medved
Подскажите а как правильно получать ТА? ПолучитьДатуТА Возвращает саму дату или время тоже? Например создали и провели документ сегодня в 10.00. Потом значит в 12.00 создают новый документ. Я сравниваю ДатаДок и ТА, и они выходит будут равны? Там же нет учета времени? Тогда в 12.00 в не проведенном документе он покажет остаток на 10.00, и это правильно. Потом ТА при проведении переместится в 12.00. И вот тут откроют документ  который был в 10.00. Сравним ДатаДок и ТА. Они будут равны или нет? Дата одна, время разное. Если там только дата - то даты будут равны и он посчитает на ТА, о она стоит в 12.00, и выходит что остаток будет некорректный.... Вот что меня гложет, в дате только дата или еще и время?
#17 by aka AMIGO
описание внутр.яз есть? посмотри ч1 стр292 ИтогиАктуальны, там рассказано много чего про это
#18 by Double_Medved
Вроде все работает, считает остатки до проведения документа, и даже после его проведения показывает остатки на позицию документа, до его проведения. При создании документа после ТА - смотрит остатки на конец ТА
#19 by Double_Medved
Распознаватель понаставил много пустых строк, сории, может как-то не так копирнул
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

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