bdd2

"Разрушающий" контроль (анализ актуальности движений документа)

Опубликовал Сергей Большаков (axae) в раздел Обработки - Обработка документов

Обработка, позволяющая определить, какие документы при перепроведении изменят свои движения.

На выкладывание этой обработки меня сподвигла публикация http://infostart.ru/public/22269/  от KukA.5

Иногда бывает, что при изменении каких-либо данных требуется перепроведение документов. Не всегда понятно каких-именно. Обработка позволяет определить какие документы при перепроведении изменят свои движения. Не сказать, что обработка будет действовать на всех конфигурациях, так бывают конфигурации, некоторые документы которых закрыты от непосредственного проведения, в закрытом периоде и т.п.

Несмотря на название, обработка ничего не разрушает, действия производятся в откатываемых транзакциях.

Обработка делает следующее:

  1. НАЧАЛО ТРАНЗАКЦИИ

  2. Запоминает текущие движения документа

  3. Отменяет проведение документа

  4. Проводит документ

  5. Сравнивает движения документа

  6. ОТКАТ ТРАНЗАКЦИИ

Побочный эффект - определение количества проведенных документов за период, возможность выбора проверяемых документов, а так же просмотр их списка и открытие для просмотра в достаточно удобном дереве.

Результаты сравнения (если есть различия в движениях) выводятся в окно сообщений.

Безусловно, после "реального" проведения выявленных документов может понадобиться проведение других документов...

Скачать файлы

Наименование Файл Версия Размер
Обработка
.epf 16,86Kb
05.09.14
232
.epf 16,86Kb 232 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Сергей (Che) Коцюра (CheBurator) 3366 01.07.10 18:43 Сейчас в теме
2. Евгений Люлюк (Evg-Lylyk) 1990 01.07.10 19:40 Сейчас в теме
3. Игорь Исхаков (Ish_2) 954 01.07.10 19:46 Сейчас в теме
(1) Ты бы предложил нелобовой подход. Интересно.
4. Eugeneer (Eugeneer) 01.07.10 20:24 Сейчас в теме
а в чем смысл? какое практическое применение?
5. Eugeneer (Eugeneer) 01.07.10 20:25 Сейчас в теме
Она никогда не отследит возможные изменения движений документа если они зависят от движения других документов!! Например по партии провели док задним и в итоге последующие доки изменят свлои движения, причем накатывающей волной.
Этого тут нет. Поставил бы минус. Потому что бестолковая обработка.
Aleksey.Bochkov; +1 Ответить 2
6. Олег (simol) 02.07.10 00:58 Сейчас в теме
Зато можно узнать с какого документа начинается.
7. Сергей Большаков (axae) 44 02.07.10 07:38 Сейчас в теме
(6) Да, действительно, видимо на вопрос "с какого документа требуется перепроведение?" эта обработка сможет ответить в определенных случаях.
(4) Но я думаю, эта обработка не для практического применения (она же ничего не изменяет в базе). Она скорее для теоретического интереса: "а где, когда и как у нас здесь начинаются косяки?"
(5) Да конечно, никогда не отследит. Никто не отследит, не зная конкретных последовательностей документов конкретных конфигураций.
В нашей бухгалтерии страх боятся перепроводить документы: "А вдруг изменятся оборотки? У нас уже всё сведено!". Я предложил эту идею такого контроля актуальности движений нашим админам базы данных и своему начальнику - они поддержали...
А при такой "накатывающей" волне требуется просто перепроводить документы по партии. Для этого я админам делал другую, простую обработку перепроведения по конкретной партии, причем с выбором всего одной партии и только по бухгалтерии 8.1 - но и этого им было достаточно. А обработка "разрушающего контроля" поможет найти начало нарушения последовательности по партии (6).
(1) А какой нелобовой подход может быть для решения задачи "какие документы при перепроведении изменят свои движения"?
8. Игорь Исхаков (Ish_2) 954 02.07.10 08:06 Сейчас в теме
(5) Эээ... Ты - сразу минус...
Лучше дождаться от автора убедительного примера в каких случаях применение обработки эффективно.
9. Eugeneer (Eugeneer) 02.07.10 09:18 Сейчас в теме
(6) вы видимо не в курсе что такое последовательность документов. кстати по которой делается аналогичный запрос - что нужно будет перепровести, и даже можно управлять процессом.
10. Eugeneer (Eugeneer) 02.07.10 09:21 Сейчас в теме
(7)"В нашей бухгалтерии страх боятся перепроводить документы: "А вдруг изменятся оборотки? У нас уже всё сведено!"" Ну так и сделайте, чтобы посследовательность вост анавливалась до здачи отчетности. У нас обычно перепроводят отчетный период до сдачи отчетности, потом ставят запрет редактирования и все.
А еще лучше сделать регламентную процедуру которая автоматом каждый день восстанавливает последовательность. И вообще надо строить работу чтобы задним числом не работали.
11. ediks (ediks) 317 02.07.10 09:22 Сейчас в теме
Лично я воспринимаю данный портал как сборник идей, некую копилку (выкладывание обработок с ИТС и т.д. для накручивания рейтинга не считаем). В данном случае идея мне понравилась, хотя я пока не вижу практического применения для себя. Ну а если кому-то обработка не подошла сразу без доработки напильником, то это не повод размахивать шашкой. IMHO
12. Сергей (Che) Коцюра (CheBurator) 3366 02.07.10 10:15 Сейчас в теме
(10) о чем вы говорите? бухтя в принципе не может работать без заднего числа. потому что в бухии все время бардак. потому что вместо того, чтобы чел который принес авансовый отчет дней через 20 - накатать взыскание - они у него этот отчет примут и начнут задним числом вносить...
13. rhtr Иванов (rhtr) 56 02.07.10 10:36 Сейчас в теме
При разработки конфы полезная приблуда))Немного под себя тисануть и у сё.))ИДЕЯ +
14. Bizon2005 (8c1.ru) 02.07.10 10:48 Сейчас в теме
Переделанная УТ 10.2.8.2, при нажатии "отобрать документы":

{Форма.Форма(167)}: Ошибка при вызове метода контекста (Выполнить): {(7, 2)}: Неоднозначное поле "ЧекККМ.Проведен"
<<?>>ЧекККМ.Проведен = ИСТИНА
Выборка = Запрос.Выполнить().Выбрать();
по причине:
{(7, 2)}: Неоднозначное поле "ЧекККМ.Проведен"
<<?>>ЧекККМ.Проведен = ИСТИНА


15. Сергей Большаков (axae) 44 02.07.10 12:42 Сейчас в теме
(14) Спасибо, не люблю, когда что-то не работает :( Найду УТ 10.2.8.2, посмотрю
(13) А как при разработке конфы может пригодится?
(11) Скорее ради идеи и писалась обработка, практическое применение обработке видимо каждый придумывает самостоятельно :D
16. Александр Хомяк (logarifm) 960 02.07.10 13:35 Сейчас в теме
А вот теперь такое.

Проведение отменилось. Потом проводим документ и получаем неизвестную ошибку и поскольку в 1с нету вложенных транзакций и когда документ проводится то возникает дополнительная транзакция ошибка будет следуещего текста:

"В данной транзакции уже были ошибки" и опля, мы имеем в итоге распроведенный документв нормальном заднем периоде, при устранении ошибки проведения мы еще имеем и не те движения так как документ может уже не те данные взять!!!
17. Сергей Большаков (axae) 44 02.07.10 15:20 Сейчас в теме
(16) Это не хорошо. Вот это не хорошо.
Какой вариант решения может быть для обработки?
А в таком случае придется видимо восстанавливать выгрузкой/загрузкой из копии базы документ с движениями...
18. Александр Хомяк (logarifm) 960 02.07.10 15:27 Сейчас в теме
Да нет решения. На копии разве только делать и все.
19. Александр Хомяк (logarifm) 960 02.07.10 15:55 Сейчас в теме
собственно после описанной ошибки в (16) обработка приобретает свою суть указанную в теме поста. То есть "Разрушающий"
20. Eugeneer (Eugeneer) 02.07.10 16:09 Сейчас в теме
:D надо ставить плюс)) чем больше разрушенных баз - тем больше работы программистам)
21. Игорь Исхаков (Ish_2) 954 02.07.10 17:44 Сейчас в теме
(16) Правильно ли я понял ? Проверить нет возможности.
Запускаем текущую обработку для одного документа , в которой происходит откатывание транзакции. Затем интерактивно открываем этот же документ и проводим.
И тогда выдается сообщение "В данной транзакции уже были ошибки" ? Так ?

Такая картина представляется очень странной. Из-за того что мы не смогли один раз провести документ (откат транзакции по каким -либо причинам) - мы не можем в следующий раз его провести.
22. Александр Хомяк (logarifm) 960 02.07.10 18:38 Сейчас в теме
(21) нет не правильно поняли. Все это происходит во время работы обработки. А поскольку была отмена проведения и при следуещем проведении возникла ошибка система попытается откатать транзакцию, а вложенных транзакций 1С не поддерживает и таким образом будем иметь не проведенный документ.

Тоесть, откат происходит сам 1С, а вот в обработке указывается ОтменаТранзакции поскольку возникли ошибки и здесь будет болт мягко говоря. 1С скажет, что уже были ошибки в данной транзакции, таким образом повторюсь, обработка сначала распровела документа в транзакции потом попыталась его провести для сравнения движений и тут во время проведения возникла ошибка, 1С откатывает автоматом данную транзакцию, а обработка видит Ошибка надо откатать транзакцию обратно и вернуть проведение в первичное состояние документа, но не судьба этому уже не быть...
23. Александр Хомяк (logarifm) 960 02.07.10 18:43 Сейчас в теме
Вот такая вот ошибка не хорошая и опасная! Уже проходил это!
24. Игорь Исхаков (Ish_2) 954 02.07.10 18:59 Сейчас в теме
25. Сергей Большаков (axae) 44 02.07.10 23:41 Сейчас в теме
(22) Мы ведь запомнили первоначальные движения документа... Можно ли отследить эту ошибку и при ее возникновении вернуть движения документа на место прямыми записями в регистры?
26. Олег (simol) 04.07.10 22:27 Сейчас в теме
(9)Более чем осведомлен и мне знакомо, что граница последовательности и то, что я написал в (6) это разные вещи(документы, даты). Это Вы скорее больше теоретик, чем практик (не примите это в обиду).
27. Виталий (nafa) 624 06.07.10 15:36 Сейчас в теме
По поводу (16) - не понимаю в чем здесь проблема? Ну распровелся документ - и что страшного. Старые движения то у нас сохранились. Записываем их назад и все.
(Для новеньких: В 1С 8 проводками (движениями) можно управлять независимо от записи (проведения) самого документа.)

А обработка реально очень полезная.
28. Александр Хомяк (logarifm) 960 06.07.10 15:45 Сейчас в теме
(27) А страшное в том, что документ останеться не проведенным!
29. Виталий (nafa) 624 06.07.10 21:18 Сейчас в теме
(28) Документу просто устанавливаем признак что он проведен. (Без вызова процедуры проведения).
30. Яков Коган (Yashazz) 1940 07.07.10 09:47 Сейчас в теме
Мдя. Вообще делать проведение, которое само по себе системная транзакция, внутри объявленной транзакции - моветон. Ish_2 очень правильно всё сказал. Это будет недиагностируемое выпадание посреди процесса.
Можно ведь читать старые движения, а потом насильно вписывать их по окончании транзакции для каждого документа. Так и опасность пессимистических блокировок поменьше.
Кроме того, сама обработка неряшливо сделана. Хелп почти никакой, рекомендации 1С не соблюдены, да ещё малопонятный макет про Альфа-авто болтается.
Не ахти, в общем.
31. Сергей Большаков (axae) 44 08.07.10 07:16 Сейчас в теме
(30) Макет да, лишний здесь. А где можно ознакомиться с рекомендациями 1С?
32. Сергей Большаков (axae) 44 08.07.10 07:52 Сейчас в теме
(30) Можно и читать старые движения...
Я думаю здесь еще есть вопрос на какой базе делается это: либо на рабочей, либо на копии. Если на рабочей, то и там и там опасность:
В моем случае (с откатами транзакций) есть вероятность ее слетания при сбое проведения.
В случае с восстановлением движений я думаю есть вероятность, что какой-нибудь документ успеет увидеть новые, до того, как перезапишутся старые.
33. Яков Коган (Yashazz) 1940 08.07.10 10:46 Сейчас в теме
(31) На дисках ИТС.
Да и мелочей полно. Почему, например, юзверю можно всяко править дерево результатов? Жмякнет на del, потом сам через пять минут впадёт в ступор.

(32) Будем говорить про самый экстрим (про который, например, я пишу свою обработку, чем-то похожую на вашу), считаем, что рабочая база. Некогда туда-сюда архивы делать, экспериментировать. Насчёт "увидеть новые до перезаписи старых" - да, такое возможно. Однако стоит помозговать, может, удастся и это обойти...
34. Малышко В.Н. (molot) 275 08.07.10 17:27 Сейчас в теме
(30) >рекомендации 1С не соблюдены

Да за соблюдение их стандартов вообще расстреливать надо, ес чессно... Вот это ты задвинул...
35. Яков Коган (Yashazz) 1940 08.07.10 17:44 Сейчас в теме
(34) За советы писать директивы клиента и сервера в модуле надо расстреливать? Впрочем, сие оффтоп.
36. Малышко В.Н. (molot) 275 08.07.10 18:14 Сейчас в теме
(35) Если это имелось ввиду в посте №30, то это уже не "рекомендации 1С не соблюдены", а "безграмотно закодировано".

ЗЫ. Я никого не хотел обидеть, бо код и не смотрел даже...
37. Надежда Иванова (Nadezhda09) 12.07.10 07:57 Сейчас в теме
Спасибо!
Запускаю на копии БД.
Выдаваемые сообщения позволяют разобраться с ситуацией до того, как будет запущено восстановление в рабочей базе.
Очень полезная обработка!