Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   восстановление последовательности... (http://forums.kuban.ru/f1040/vosstanovlenie_posledovatel-nosti-3756531.html)

7d5x 23.02.2013 21:19

восстановление последовательности...
 
в процедуре глвосстановлениепоследовательности()
в конце есть кусок:
Если (МонопольныйРежим()>0)
и (СтараяПозицияТА <> ПолучитьПозициюТА())
Тогда
УстановитьТАПо(СтараяПозицияТА);
КонецЕсли;
ведь пр последовательном проведении текущаяТА не будет равна СтаройТА и последует установить ТА на СтаруюТА...
объясните пожалуйста что тут делается-не понимаю...

Чучундер 23.02.2013 21:22

смотри - есть ли транзакции.. если транзакция текущая - ошибки при восстановлении возможжно откатывает на конец последней зафиксиованнйо транзакции

СthuIhu 23.02.2013 21:24

перед проведением ТА запоминается в жту переменную; при проведении ТА двигается с проводимым документом (так быстрее проводится); по завершении - возвращается обратно на место.
чонеясно?

СthuIhu 23.02.2013 21:26

(1): проведение в транзакции???? руки нахрен оторвать тому горе-программисту.
а восстановление ТА "взад" - через переменную модуля, в процедуре, которая при начале проведения пакована "Форма.ОбработкаОжидани("ТаСамаяПроцедура",1);"

7d5x 23.02.2013 21:28

1. не вижу там намёка на транзакцию... посмотрел как вариант- напрмер при удае выкидывает раньше а при еудаче дойдет до этого конца- и такого не вижу там...

СthuIhu 23.02.2013 21:29

(4): Намёк - в документации: проведение документа выполняется в транзакции, которая автоматически организуется движком.

СthuIhu 23.02.2013 21:30

(5): но это не важно...

7d5x 23.02.2013 21:32

2. почему возвращкается на место??? разве при восстановлении последовательности проведение каждого документа уже не двигает ТА до этого документа????

7d5x 23.02.2013 21:33

можно ли этот кусок закоментарить?

СthuIhu 23.02.2013 21:35

(7): бросай ты 1с... не твоё это...

7d5x 23.02.2013 21:38

9) объясни уж коли знаешь зачем УстановитьТАПо(СтараяПозицияТА)- когда ТА устанавливается каждым документом...

СthuIhu 23.02.2013 21:40

(10): у тебя ошибка в базовой посылке - поэтому сформулированный тобой вопрос лишен смысла, и, соответственно, не имеет ответа (никакого).

СthuIhu 23.02.2013 21:41

(8): [b]работает?.. НЕ ТРОГАЙ!!![/b]

7d5x 23.02.2013 21:46

10. вопрос некорректный ?? :-)) тот же аопрос иначе:
в цикле перебора документов есть такая фраза:
УстановитьТаНА(ТекДок)
зачем надо после цикла:
УстановитьТАПо(СтараяПозицияТА);
:-)))

7d5x 23.02.2013 21:47

12/в том то дело- не работает!!

СthuIhu 23.02.2013 21:52

(11): это не тот же вопрос. в том вопросе не указывалось, что ТА двигается программно.
Ответ: потому что позиция последнего проведенного документа может отличаться от исходной позиции ТА (позиции, на которую была установле ТА до начала проведения документов).
(12): а как ты определил, что "не работает"?..

СthuIhu 23.02.2013 21:53

блин. (15) - к (13) и (14).

7d5x 23.02.2013 21:58

Я не понимаю каким образом позиция последнего проведенного документа может тличаться от исходной позиции ТА???
она если каким то моментом отличится- это будет предцдущий документ- но никак не СтараяТА которю запомнили в начале процедуры...

СthuIhu 23.02.2013 22:02

(17): значит ты тупой.
вот смотри.
ТА - на 2-е февраля. 1-2 февраля куча проведенных документов.
Бухгалтер перепроводит документы за январь перед балансом и формированием отчетов.
ТА виснет на последнем документе от 31-го января.
3-го февраля люди приходят на работу. Пытаются провести новые документы. И поминаюют незлым тихим словом тупого семь-дэ-пять-хе...

7d5x 23.02.2013 22:13

18.осмысливаю сказанное пока что...
у меня такая ситуация ТА 20.02.11
-нажимаю восстановить последовательность
-проведение выкидывает документ допусти реализация от 30.02.11 не проводитс в виду отсутствия количества-
а дальше очень долго до сегодняшнего дня до ТА вижу идет подсчет и обработка документов
а потом вываливаетс последов не восстановлена...

почему сразу при онаружении проблемы не останавливается подсчет- мне каджется что этот кусок делает такую задержку..

Чучундер 23.02.2013 22:14

(30 вот ты блин умный... А как организовать цепочку документов - заявка-реализация-псотупление-заявка-перемещение-еще что-нибудь..? пр условии - что если ошибка хотя бы в одном доек - откатываем назад все... - ?

Reaper 23.02.2013 22:30

19-7d5x > Что такое ТА по твоему?

7d5x 23.02.2013 22:33

20. я вообще про транзакции не говорю... меня беспокоит восстановлении последовательности провисает надолго при обнаружении что какой то документ уже выявил что послеовательность до ТА не восстановима...

7d5x 23.02.2013 22:44

21.ТА- почти как последний проведенный актуальный документ...
ГП- позиция на которой итоговые регистры подсчитаны правильно а далее могут быть косяки...

СthuIhu 23.02.2013 22:51

(20): не тупи. в документации написано - и это соответствует истине! - "1с НЕ ПОДДЕРЖИВАЕТ ВЛОЖЕННЫЕ ТРАНЗАКЦИИ". Проведение - транзакция. Оберни пере-проведение в транзакцию, откати внешнюю транзакцию - получишь или пере-проведенный (вопреки отмене внешней транзакции) документ, или глюк какой (помню у одного умника в транзакции было завернуто до едреней фени всего - включая корректировки и пометки на удаление - так там цирк был феерический - в виде наличия движений у помеченного на удаление документа (а чо, он его помеченным на удаление на входе внешней транзакции получил, а внутри - снял пометку удаления, провел, потом чо-то проверил - и отменил транзакцию, ох, веселуха была - ведь у непроведенного документа штатной кнопкой движения даже не посмотришь).
ещё раз. по слогам. как дворник-дворнику. по секрету и только тебе: за проведение, завернутое в транзакции - нужно отрубать руки и простреливать коленку.

СthuIhu 23.02.2013 22:59

(22): перенос ТА производится долго если в период переноса попадает граница периодичности регистров: при этом на каждую такую границу выполняется перерасчет итогов (по итогам на начало периода и оборотам за период). если регистры закрыты криво - делается долго. каждое преодоление ТА при её передвижении границы периодичности - как открытие периода (вспомни - сколько времени у тебя занимает открытие периода первого числа каждого месяца).
По-другому - никак. двигаешь ТА "назад" - будь любезен по окончании поставить е' на прежнее место, двигаешь ТА вперед - см.первій абзац.

7d5x 23.02.2013 23:00

24/ я о том же -в стандартноу процедуре глвосстановлениепоследовательности() нет тракзакции, там есть цикл перебора документов где сначала устанаввитьТАна этот док а потом проводится документ, а вне этого цикла в конце есть кусок- вернуть СтараюТА на место....

СthuIhu 23.02.2013 23:01

(23): ещё раз. по слогам. оставь ты в покое 1с, ну не твое это - иди заниматься чем-нибудь другим, желательно, мало связанным с логикой (в музыканты, например, ну или в писатели)

СthuIhu 23.02.2013 23:02

(26): не лезь в наш с коллегой разговор - он к твоей проблеме ну никаким боком не относится..

7d5x 23.02.2013 23:03

25. как ускорить восстановление посследовательности?

7d5x 23.02.2013 23:08

29/ Ну я не разработчик 1С как чучундер, но имею право возмущаться и просить помощи от него же как все таки хоть врукопашную но максимально быстрее перепровести всю базу- стандартными средставми очень- меня скорее уволят сем закончится перепроведение :-)))

Reaper 23.02.2013 23:15

[quote=7d5x;29217660]как ускорить восстановление посследовательности?[/quote]
+
[quote=7d5x;29217716]Ну я не разработчик 1С как чучундер[/quote]
=
Никак.

Чучундер 23.02.2013 23:35

(24) > у и только тебе: за проведение, завернутое в транзакции - нужно отрубать руки и простреливать коленку.
- я в курске! но, тем не менее юзаю - траблов пока не наблюдалось, хз знает почему. может потому что откатов как таковых мизерно мало у меня притаких транзакциях..? хз...
но, как ты заметил - и я поддерживаю - с опаской я к этому отношусь и если есть возможность - лучше это не юзать. Но если нет внешней транзакции - поддержание "целостности" бизнес цепочки становится трудоемкой задачей...

Чучундер 23.02.2013 23:41

(30). Вариант вообщем один (если ШТАТНО).
1. сдвинуть ТА на "начало" - перепроводить только со сдвигом ТА!! - тогда не рассчитываются временные итоги, что ускоряет проведение (без сдвига ТА) на порядок!!!
2. обеспечить закрытие регистров на момент переноса итогов на новый период!!! зачастую именно перенос итогов - открытие нового периода является супермегазтратной из-за незакрытых регистров (часто не закрывают неподтвержденные заявки и просто заявки покупателей - они висят годами - также и заказы поставщикам, комиссии, кассу, ВООБЩЕ НЕ ФОРМИРУЮТ регламентые доки "формирование книги продаж/покупок" - это все приводит к получасовыем и даже МНОГОЧАСОВЫМ открытиям новых периодов).
3. если есть возможность - перепроведение делай с контролем остатков ПО ФИРМЕ (а не "по компании" или "без контроля") - это получается быстрее чем другие варианты.
4. как вариант - если совсем все плохо - переписать (купить) на прямые запросы перепроведение по партиям и остаткам - они вреямзатратнее всего)

Helen1986 24.02.2013 00:13

(32)
"поддержание "целостности" бизнес цепочки становится трудоемкой задачей... "


заметь, понятие последовательности имеется только в 1це, родившееся из-за тупости разработчиков. Они просто не смогли решить эту проблему

в других то системах этого нет

Reaper 24.02.2013 00:26

34-Helen1986 > Дно двойное ощущаю в словах твоих. Систем других, пожалуйста, примеры приведи ты.

СthuIhu 24.02.2013 00:29

(3): даладно. просто накопительное хранение объектов, без учета зависимости содержания, поведения и самой возможности наличия оних объектов от других - тоже "другая система".

7d5x 24.02.2013 01:08

33/ что значит обеспечить закрытие регистров- как обеспечить ?

Чучундер 24.02.2013 01:32

(34) не, тут у меня другая цепочка-последовательность... к последовательности доков в терминахцэ не относится

Чучундер 24.02.2013 01:34

(37) если есть приход по одному набору измерений - то должен быть и расход в носль по такому же набору измерений. если база файловая - сортируй файлы по размеру и ищи пару файлов по регистру - если в этой паре RG больше чем RA - все, капец... RG должен быть существенно меньше чем RA


Текущее время: 09:44. Часовой пояс GMT +3.