| 
    
            
         
         | 
    
  | 
Получение остатков по регистру без учета текущего документа | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        shane13    
     13.07.11 
            ✎
    13:39 
 | 
         
        Всем привет! туплю...
  
        Как при проведении документа получить остатки по регистру, который он двигает, без учета движений этого самого документа??? Вот отрывок кода: Запрос.УстановитьПараметр("Момент", Новый Граница(Объект.МоментВремени(), ВидГраницы.Исключая); РегистрНакопления.ДолгиКлиентов.Остатки(&Момент,) КАК ДолгиКлиентовОстатки" или так: Запрос.УстановитьПараметр("Момент", Объект.Дата-1); РегистрНакопления.ДолгиКлиентов.Остатки(&Момент,) КАК ДолгиКлиентовОстатки" В обоих случаях движения этого документа попадают((( Что не так? Хелп!  | 
|||
| 
    1
    
        Maxus43    
     13.07.11 
            ✎
    13:41 
 | 
         
        во втором то не может попасть точно, чудес не бывает     
         | 
|||
| 
    2
    
        Maxus43    
     13.07.11 
            ✎
    13:44 
 | 
         
        Объект.Дата - что в отладчике? что-то не так помоему     
         | 
|||
| 
    3
    
        ice777    
     13.07.11 
            ✎
    13:44 
 | 
         
        Регистратор<>&Ссылка ?
  
        Ccылка - твой док.  | 
|||
| 
    4
    
        Maxus43    
     13.07.11 
            ✎
    13:45 
 | 
         
        (3) у остатков?     
         | 
|||
| 
    5
    
        ice777    
     13.07.11 
            ✎
    13:46 
 | 
         
        (4) тогда использовать что-то другое.     
         | 
|||
| 
    6
    
        shane13    
     13.07.11 
            ✎
    13:46 
 | 
         
        (2) дата на 1 сек. меньше моего документа, не пойму где заковырка...     
         | 
|||
| 
    7
    
        Escander    
     13.07.11 
            ✎
    13:46 
 | 
         
        (0) только по варианту 1     
         | 
|||
| 
    8
    
        Maxus43    
     13.07.11 
            ✎
    13:47 
 | 
         
        Граница всегда работала, зачем другое. помоему что то не так делается в (0)     
         | 
|||
| 
    9
    
        73    
     13.07.11 
            ✎
    13:47 
 | 
         
        (0) Остатки вроде и так НА. т.е. исключая...     
         | 
|||
| 
    10
    
        unregistered    
     13.07.11 
            ✎
    13:47 
 | 
         
        В обоих случаях остатки будет получены на момент ДО проведения документа. Даже если в первом случае указать просто момент времени, а не границу, и во втором случае просто Объект.Дата (без "-1").
  
        Остатки всегда получатся на начало переданного параметра Период, кроме случая границы вида "Включая".  | 
|||
| 
    11
    
        Maxus43    
     13.07.11 
            ✎
    13:47 
 | 
         
        (9) для очистки совести     
         | 
|||
| 
    12
    
        shane13    
     13.07.11 
            ✎
    13:48 
 | 
         
        мне тоже первый вариант кажется правильным, ведь в 1 сек может быть несколько доков.     
         | 
|||
| 
    13
    
        73    
     13.07.11 
            ✎
    13:49 
 | 
         
        (2)+ что в Объект ?     
         | 
|||
| 
    14
    
        ice777    
     13.07.11 
            ✎
    13:49 
 | 
         
        я переписал кучу запросов у себя с остатков на остаткиИобороты, только для того, чтоб отсеять регистратор.
  
        но мне это только и надо было. а то, что ТС пытается проделать - это получить остатки до опред. момента.  | 
|||
| 
    15
    
        unregistered    
     13.07.11 
            ✎
    13:50 
 | 
         
        А вообще правильно:
  
        Запрос.УстановитьПараметр("Момент", Объект.МоментВремени()) Если запрос к виртуальной таблице Остатки регистра накопления...  | 
|||
| 
    16
    
        unregistered    
     13.07.11 
            ✎
    13:51 
 | 
         
        (14) >> переписал кучу запросов у себя с остатков на остаткиИобороты, только для того, чтоб отсеять регистратор.
  
        Чаво? А смысл в чем?  | 
|||
| 
    17
    
        shane13    
     13.07.11 
            ✎
    13:52 
 | 
         
        (13) немного наврала во втором без объект написано
  
        Запрос.УстановитьПараметр("Момент", Дата-1); РегистрНакопления.ДолгиКлиентов.Остатки(&Момент,) КАК ДолгиКлиентовОстатки"  | 
|||
| 
    18
    
        ice777    
     13.07.11 
            ✎
    13:52 
 | 
         
        (16) см замечание (4)     
         | 
|||
| 
    19
    
        Ayvengo    
     13.07.11 
            ✎
    13:53 
 | 
         
        (0) Получаешь таблица остатков на дату документа или на какую там тебе надо. 
  
        Создаешь таблицу в которой будет количество, которое предполагаемо будет добавлено в регистр. Ну и соединяешь это все в запросе, а потом получаешь нужные тебе данные. Имеет смысл, если документ у тебя уже был проведен. В противном случае нет смысла :)  | 
|||
| 
    20
    
        shane13    
     13.07.11 
            ✎
    13:55 
 | 
         
        (19) т.е. первый вариант не будет получать остатки на документ?     
         | 
|||
| 
    21
    
        ice777    
     13.07.11 
            ✎
    13:55 
 | 
         
        (19) имеено, что еще смотреть, проведен или нет и т.п. Пальцев не жалко? )     
         | 
|||
| 
    22
    
        unregistered    
     13.07.11 
            ✎
    13:56 
 | 
         
        (18) Всё равно ни чего не понимаю.
  
        Если мне нужны остатки на момент времени, зачем тянуть тяжелую таблица ОстаткиИОбороты, когда всё есть в таблице Остатки, получаемой из итоговых таблиц?  | 
|||
| 
    23
    
        Ayvengo    
     13.07.11 
            ✎
    13:56 
 | 
         
        (22) ни в коем разе нельзя тянуть, зачем систему лишний раз нагружать? :)     
         | 
|||
| 
    24
    
        shane13    
     13.07.11 
            ✎
    13:57 
 | 
         
        и все-таки как получить остатки до проведения документа?     
         | 
|||
| 
    25
    
        ice777    
     13.07.11 
            ✎
    13:57 
 | 
         
        (22) чтоб не выкручиваться с регистратором.     
         | 
|||
| 
    26
    
        unregistered    
     13.07.11 
            ✎
    13:57 
 | 
         
        Автор! Докажи, что ты не врешь, утверждая (0)!
  
        (1) +100500 >> чудес не бывает  | 
|||
| 
    27
    
        ice777    
     13.07.11 
            ✎
    13:58 
 | 
         
        (22) чтобы не выкручиваться с отсутствием Регистратора в остатках )     
         | 
|||
| 
    28
    
        unregistered    
     13.07.11 
            ✎
    13:58 
 | 
         
        (25) Что значит "выкручиваться" с тем, чего нет в остатках?
  
        Или сами себе трудности создаем, чтобы потом понаустанавливать отборы на регистраторы?  | 
|||
| 
    29
    
        ice777    
     13.07.11 
            ✎
    14:00 
 | 
         
        (28) перечитай (0). ему нужны движения, кроме сделанных определенным регистратором.     
         | 
|||
| 
    30
    
        shane13    
     13.07.11 
            ✎
    14:00 
 | 
         
        (26) я смотрю отладчиком при проведении(((((     
         | 
|||
| 
    31
    
        ice777    
     13.07.11 
            ✎
    14:03 
 | 
         
        (30) запусти лучше конструктор запросов и сделай все быстро без геморроя. из ОстатковИ Оборотов. Все равно траффик не сильно поднимется, ты же только остаток верншь.     
         | 
|||
| 
    32
    
        unregistered    
     13.07.11 
            ✎
    14:14 
 | 
         
        (29) Перечитываю (0): 
  
        получить ОСТАТКИ по регистру, который он двигает, БЕЗ учета движений Может я конечно чего-то не понимаю....  | 
|||
| 
    33
    
        shane13    
     13.07.11 
            ✎
    14:16 
 | 
         
        (32)все верно понимаешь!!!     
         | 
|||
| 
    34
    
        unregistered    
     13.07.11 
            ✎
    14:16 
 | 
         
        Впрочем, если нравиться, развлекайтесь... :)     
         | 
|||
| 
    35
    
        Maxus43    
     13.07.11 
            ✎
    14:18 
 | 
         
        (33) в консоль запросов запихни запрос свой, и проверь на проведённом и не проведённом документе своём     
         | 
|||
| 
    36
    
        Ayvengo    
     13.07.11 
            ✎
    14:21 
 | 
         
        (0) А в регистре период какой попадает?     
         | 
|||
| 
    37
    
        unregistered    
     13.07.11 
            ✎
    14:22 
 | 
         
        (33) В (0) написана явная неправда. Чудес не бывает. Даже если с моментом и границей могут быть какие-нибудь проблемы, то получение остатков на "Дата-1" ну ни как не может вернуть остатки, включающие движения документа.
  
        Показывай уже запрос. И вообще. Где всё это происходит? Не в обработке проведения часом? Если да, то что там с автоматическим удалением движений? можно еще тупо в самом начале проведения написать Движения.ДолгиКлиентов.Записать(), записав таким образом пустой набор записей.  | 
|||
| 
    38
    
        shane13    
     13.07.11 
            ✎
    14:29 
 | 
         
        (37)происходит это все в обработке проведения, верно догадались
  
        В начале пишу так: Движения.ДолгиКлиентов.Записывать = Истина; Движения.ДолгиКлиентов.Очистить();  | 
|||
| 
    39
    
        shane13    
     13.07.11 
            ✎
    14:29 
 | 
         
        (37) удаление движений стоит: удалять автоматически при отмене проведения     
         | 
|||
| 
    40
    
        Maxus43    
     13.07.11 
            ✎
    14:30 
 | 
         
        да какая разница где? только если по странной логике движения в регистр делаются не на дату документа     
         | 
|||
| 
    41
    
        Ayvengo    
     13.07.11 
            ✎
    14:30 
 | 
         
        (38) период какой в регистре ... дата ?? или начало дня или чего там? :)     
         | 
|||
| 
    42
    
        Maxus43    
     13.07.11 
            ✎
    14:30 
 | 
         
        (39) При перепроведении не удалит     
         | 
|||
| 
    43
    
        shane13    
     13.07.11 
            ✎
    14:34 
 | 
         
        (42) ого!     
         | 
|||
| 
    44
    
        hhhh    
     13.07.11 
            ✎
    14:37 
 | 
         
        (37) чего ты прикалываешься? Бывают чудеса. Ну например, как ты думаешь, зачем во всех документах в типовых вставлено свойство "ДатаДокументаСдвинутаВперед"? Вот в (0) именно такой случай. Дата (и момент) сдвинута вперед, а движения остались далеко пазади.     
         | 
|||
| 
    45
    
        shane13    
     13.07.11 
            ✎
    14:38 
 | 
         
        (37)+ (42) Спасибо вам большое!
  
        и правда при перепроведении в таком режиме движения не удаляются. Сделала Движения.ДолгиКлиентов.Записать() и все ОК!!!  | 
|||
| 
    46
    
        shane13    
     13.07.11 
            ✎
    14:39 
 | 
         
        (44) не совсем понятно, это как?     
         | 
|||
| 
    47
    
        Maxus43    
     13.07.11 
            ✎
    14:40 
 | 
         
        (46) Это (40) значит, движения не на дату документа     
         | 
|||
| 
    48
    
        Maxus43    
     13.07.11 
            ✎
    14:40 
 | 
         
        (44) во всех? всмысле новых только? на старых такого нет     
         | 
|||
| 
    49
    
        shane13    
     13.07.11 
            ✎
    14:42 
 | 
         
        у мну движения делаются на дату документа     
         | 
|||
| 
    50
    
        unregistered    
     13.07.11 
            ✎
    14:52 
 | 
         
        (44) (48) В старых такого нет. Предположу, что тут обыгрывается история, когда перепроводится документ, у которого изменили дату. Тут и смотриться - куда переместили документ - вперёд или назад относительно старых движений.
  
        Чтобы не делать запись пустого набора и при этом быть уверенным, что в результат запроса по остаткам не попадут старые движения этого-же документа. Ну.... это как-бы догадка. Я последние типовые не видел. :)  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |