Имя: Пароль:
1C
1С v8
Как в запросе при проведении учитывать предыдущие движения этого докумета?
,
0 Lentina
 
30.09.11
09:54
Добрый день.

Документ должен делать следующие движения:

Сначала перемещать с одного места хранения на другое (по среднему)
Затем со второго места хранения должен списывать (тоже по среднему)

Когда я выполняю запрос для расчета средней стоимости для второго движения, я передаю параметр МоментВремени(). Но тогда не учитывается первое движение. Как корректно сделать?
1 PR
 
30.09.11
09:54
Движения.Записать();
2 Lentina
 
30.09.11
10:02
Нет, все равно не видит
3 Goggy
 
30.09.11
10:04
Валюнь, озвуч плз фоточку для дальнейшего возможного обьснения :)
4 Axel2009
 
30.09.11
10:14
ну используй границу включая момент времени
5 Lentina
 
30.09.11
10:15
Я сделала дата+1, работает, но мне кажется это не верно.

Axel2009, ок, попробую сейчас
6 Lentina
 
30.09.11
10:22
Axel2009, чего-то я или туплю или не поняла.
Ты же не о движениях границы периода?
7 Axel2009
 
30.09.11
10:54
Новый Граница(Новый МоментВремени, ВидГраницы.Включая)
8 Axel2009
 
30.09.11
10:55
это вместо параметра МоментВремени
9 jump if zero
 
30.09.11
11:07
испоьзвать новую методику , сначала пишем движения в конце записи блокируем, потом читаем остатки с учетом этих движений.

http://nashe1c.ru/materials-view.jsp?id=321
10 Axel2009
 
30.09.11
11:11
(9) псц методика. записать а потом проверить, то что на запись уходит 50% времени пофигу.
можно сделать через объединить и не надо будет соединять ничего. и NULL не будет.
11 unregistered
 
30.09.11
11:21
(10) Ты не понял сути методики. К тому же в данном конкретном случае она не применима - (9) не к месту тут.
12 Irbis
 
30.09.11
11:24
А сложить остатки с сформированнными движениями никак?
13 Axel2009
 
30.09.11
11:35
(11) ну ну, прям пипец как там все сложно.
суть записать в базу и считать получившиеся остатки. запись занимает 50% времени. в итоге увеличивается время проведения, даже учитывая соединение и проверку пипец какую тяжелую для сервера ЕСТЬNULL
14 ssh2006
 
30.09.11
11:50
предполагается что в новой методике у док-та установлено свойство удаления движений "удалять автоматически при отмене проведения". Таким образом в обработке проведения существующие движения не удаляются, поэтому нужно сделать явную запись движений. после чего проконтролировать остатки. В купе с тем, что [Ведь мы чаще все же записываем документ с правильными цифрами и он проводится, чем документы которые уводят остатки в минус] оптимизация налицо
15 Axel2009
 
30.09.11
12:01
(14) ну да, в идеальных базах где работает один человек, и нет конкуренции за отгрузку, выйграем 0.01%. соглашусь, на лицо.
16 unregistered
 
30.09.11
12:16
(15) Плюс уменьшение времени блокировок. Так что как раз в условиях конкуренции за отгрузку методика выигрывает.
Ну изучи ты её повнимательнее... Хотя бы Радченко полистай.
17 Axel2009
 
30.09.11
12:32
(16) в каком месте уменьшение времени блокировок?
18 pumbaEO
 
30.09.11
12:33
(17) только одна блокировка на запись, а в старом варианте сначала чтение, потом на запись.
19 ssh2006
 
30.09.11
12:34
(17) перед получением остатков по старой методике ты уже сначала накладываешь блокировку от чтения
20 unregistered
 
30.09.11
12:35
(17) Чукча писатель? Иди Радченко читай.
21 Axel2009
 
30.09.11
13:32
(18) да пофигу сколько блокировок, вопрос во времени блокировок.
(19) и чем это поможет снизить общее время блокировки?
(20) сам иди читай, только книги по блокировочникам, а не Радченко.
22 ssh2006
 
30.09.11
13:41
(21) тебе правда непонятен этот момент?
23 Axel2009
 
30.09.11
13:49
(22) чем снизить общее время блокировки - правда не понятен.
из приведеной выше ссылки автор пишет в чем плюс его методики:
"Посмотрите, мы избавились от соединений, и, что не маловажно, от проверки типа значения NULL. Запрос получит данные только по отрицательным остаткам и покажет их пользователю!"
то что автор не умеет строить запросы - лично его проблемы.
хорошо что он не начал распаляться про блокировки, видимо про них он ничего не знает, хоть тут молодец.
24 unregistered
 
30.09.11
13:52
(22) Не обращай внимания. Axel2009 - nипичный тролль - будет возмущаться и нести ахинею не имеющую к вопросу отношения, но хрен прочтет то, что ему сказали. Спорить с такими бесполезно.
25 vladenoff
 
30.09.11
13:58
Думаю в любом случае надо делать как минимум две записи движений.

Сначала записываем первое движение, потом учитываем его в запросе. После формирования второй порции движений опять пишем его в базу.

Но, думаю это не совсем правильно идеологически. Более правильно первую порцию сформировать в таблицу значений, потом её в качестве параметра использовать в запросе для формирования второй порции, сформировать все движения и ОДИН раз записать в БД.
26 Axel2009
 
30.09.11
13:59
(24) ты реально чучка или притворяешься?
ты читал не Радченко, а вообще информацию по блокировочникам, что и когда блокировка вешается и когда она снимается? смотрел профайлер на эту тему, анализировал сам поведение сервера СУБД? вот пошукай хотябы годик, потом поговорим на одном уровне.
27 unregistered
 
30.09.11
14:28
(26) >> потом поговорим

И не подумаю. :)

А по блокировкам в самой статье из (9) практически ни чего нет. Видимо от этого твоё возмущение...
28 Vladal
 
30.09.11
14:31
(3) В Кодексе Мисты написано, что фоточкой поинтересоваться можно после решения проблемы
29 Axel2009
 
30.09.11
14:33
(27) тогда говорить про блокировки бессмысленно.
а на тему блокировок начал не я, а в (16), удивительно твое сообщение! я говорил только про время проведения.
30 vladenoff
 
30.09.11
14:51
(0)
"я передаю параметр МоментВремени()"

После записи попробуй передать в запрос не МоментВремени() а "новый Граница(....МоментВремени(), ВидГраници.Включая)"
31 ssh2006
 
30.09.11
15:00
(29) посмотри еще вот это http://gilev.blogspot.com/2010/07/1_23.html
там и про блокировку есть
32 Axel2009
 
30.09.11
15:28
(31) прочитал про управляемые блокировки. спасибо. в автоматическом режиме блокировки повесятся уже в самом начале транзакции, когда произойдет в явном виде запись регистров
про универсализацию понял не сразу, ну да для универсальных типовых баз - лучшее решение, чтобы весь штат прогеров дышал в одну дудку, а не было как дышло.
и принимаю, что осознал факт универсализации. но факт уменьшения времени транзакций - не согласен. впрочем кому это уже интересно? только тем, кому реальна важна скорость.
33 Lentina
 
05.10.11
10:03
Axel2009, спасибо Вам!