Переключение на Главную Страницу Страницы: 1 2 [3]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Как отредактировать движения документов по регистрам остатков? (число прочтений - 11586 )
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #30 - 27. Марта 2012 :: 12:46
Печать  
Faith No More писал(а) 27. Марта 2012 :: 12:39:
Я согласен, что камней - много.

Задача следующая: поддерживать актуальность взаиморасчётов в режиме реального времени. Сейчас просрочка и прочие данные, которые можно получить из этого раздела учёта, справедливы только утром, после ночного перепроведения базы. Если в течение дня меняли задним числом документы, просрочка может стать неактуальной.
Т.е. нужно в течение дня перепроводить цепочки документов. Чтоб не вешать базу и не утыкаться в "Документ заблокирован...", хочу попробовать рассчитывать движения и писать их в регистр, не трогая документы.

Z1 писал(а) 27. Марта 2012 :: 12:23:
Faith No More писал(а) 27. Марта 2012 :: 10:31:
Стоит задача:
  • удалить движения документа по определённому регистру;
  • записать на их место новые;
  • откорректировать таблицу итогов регистра с учётом предыдущих двух действий с таблицей движений.


Затруднение вызывает выполнение 3-го пункта. Задача заключается в постоянном выполнении таких действий параллельно с работой пользователей. Поэтому пересчёт итогов - не решение.

Подскажите, плиз.

Спасибо.

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


Так Вы по любому будете упираться
"Документ заблокирован..." ну и тем более вешать базу.
У меня  похожая задача сделана так
отсрочки вынесены в отдельный регистр.
Регистр не зависит ни от каких последовательностей
ночью он разноситься по оплатам. Если что-то надо срочно закрыть днем то запускается таже самая ночная обработка только с установленным конкретным клиентом ( остальных клиентов пропускаем).
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #31 - 27. Марта 2012 :: 12:59
Печать  
Ну, если ничего не писать самому - то так, например:

Примерчик


чорт, я это ужо советовал в первом посте Печаль

ЗЫ: а итоги можешь и сам толкать - алгоритм известный
Олег Садовников, например, на мисте выкладывал, как он у себя итоги толкает при своём ручном проведении
  
Наверх
 
IP записан
 
Faith No More
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 27. Марта 2012
Пол: Мужской
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #32 - 27. Марта 2012 :: 15:06
Печать  
Z1: вешать не буду, т.к. двину только 1 регистр с заранее рассчитанными движениями. Остальные затратные по времени расчёты - остатков товаров и пр. - делать будет не нужно.
Eprst: за Садовникова - спасибо, поищу.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #33 - 27. Марта 2012 :: 15:28
Печать  
Faith No More писал(а) 27. Марта 2012 :: 15:06:
Z1: вешать не буду, т.к. двину только 1 регистр с заранее рассчитанными движениями. Остальные затратные по времени расчёты - остатков товаров и пр. - делать будет не нужно.

Так Вам на время даже записи Ваших движений ra и пересчета
rg ( а вот это уже серьезно и тем более если Вы пересчитывать rg будете на 1с ) нужно будет устанавливать монопольную блокировку на _1sjourn и на ra и rg  ну и как следсвтие выигрыш будет практически нулевой по сравнению со стандартным проведением (т.к. база и так уже нагружена если была бы не нагружена то и задача такая не встала бы )

пост написан из предположения что работаете в стандартной по 1с системе блокировок.
  
Наверх
 
IP записан
 
Faith No More
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 27. Марта 2012
Пол: Мужской
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #34 - 27. Марта 2012 :: 15:42
Печать  
Нет, немного иначе: я заранее, без блокировок и транзакций посчитаю - какие движения мне нужно сделать, положу их в ТЗ, и останется только прочитать ТЗ и двинуть регистр.

Z1 писал(а) 27. Марта 2012 :: 15:28:
Faith No More писал(а) 27. Марта 2012 :: 15:06:
Z1: вешать не буду, т.к. двину только 1 регистр с заранее рассчитанными движениями. Остальные затратные по времени расчёты - остатков товаров и пр. - делать будет не нужно.

Так Вам на время даже записи Ваших движений ra и пересчета
rg ( а вот это уже серьезно и тем более если Вы пересчитывать rg будете на 1с ) нужно будет устанавливать монопольную блокировку на _1sjourn и на ra и rg  ну и как следсвтие выигрыш будет практически нулевой по сравнению со стандартным проведением (т.к. база и так уже нагружена если была бы не нагружена то и задача такая не встала бы )

пост написан из предположения что работаете в стандартной по 1с системе блокировок.

  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #35 - 27. Марта 2012 :: 16:07
Печать  
Faith No More писал(а) 27. Марта 2012 :: 15:42:
Нет, немного иначе: я заранее, без блокировок и транзакций посчитаю - какие движения мне нужно сделать, положу их в ТЗ, и останется только прочитать ТЗ и двинуть регистр.

Z1 писал(а) 27. Марта 2012 :: 15:28:
Faith No More писал(а) 27. Марта 2012 :: 15:06:
Z1: вешать не буду, т.к. двину только 1 регистр с заранее рассчитанными движениями. Остальные затратные по времени расчёты - остатков товаров и пр. - делать будет не нужно.

Так Вам на время даже записи Ваших движений ra и пересчета
rg ( а вот это уже серьезно и тем более если Вы пересчитывать rg будете на 1с ) нужно будет устанавливать монопольную блокировку на _1sjourn и на ra и rg  ну и как следсвтие выигрыш будет практически нулевой по сравнению со стандартным проведением (т.к. база и так уже нагружена если была бы не нагружена то и задача такая не встала бы )

пост написан из предположения что работаете в стандартной по 1с системе блокировок.


так после того как вы просчитали (и даже во время Вашего счета)
и только собираетесь открыть кто-то другой ( другая сессия ) может
открыть док и двинуть этот регистр тогда Ваша ТЗ будет содержать
уже неверные данные и по всем периодам которые есть в ывшей ТЗ,
получите неправильные данные в rg.

Еще пример пока Вы считаете другая ссесия (т.к. к моменту окончания расчета может быть даже и ничего не будет заблокировано)  может отменить (или пометить на удаление ) проведение документ двигающий Ваш rg.
Результат тот же что и в предыдущем параграфе.
  
Наверх
 
IP записан
 
Faith No More
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 27. Марта 2012
Пол: Мужской
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #36 - 27. Марта 2012 :: 16:21
Печать  
Согласен, скользкий путь.
Однако, факт того, что кто-то перепровёл этот или другой документ по этому клиенту, будет автоматически зафиксирован, и программа повторит процесс с самого раннего документа.

Z1 писал(а) 27. Марта 2012 :: 16:07:
Faith No More писал(а) 27. Марта 2012 :: 15:42:
Нет, немного иначе: я заранее, без блокировок и транзакций посчитаю - какие движения мне нужно сделать, положу их в ТЗ, и останется только прочитать ТЗ и двинуть регистр.

Z1 писал(а) 27. Марта 2012 :: 15:28:
Faith No More писал(а) 27. Марта 2012 :: 15:06:
Z1: вешать не буду, т.к. двину только 1 регистр с заранее рассчитанными движениями. Остальные затратные по времени расчёты - остатков товаров и пр. - делать будет не нужно.

Так Вам на время даже записи Ваших движений ra и пересчета
rg ( а вот это уже серьезно и тем более если Вы пересчитывать rg будете на 1с ) нужно будет устанавливать монопольную блокировку на _1sjourn и на ra и rg  ну и как следсвтие выигрыш будет практически нулевой по сравнению со стандартным проведением (т.к. база и так уже нагружена если была бы не нагружена то и задача такая не встала бы )

пост написан из предположения что работаете в стандартной по 1с системе блокировок.


так после того как вы просчитали (и даже во время Вашего счета)
и только собираетесь открыть кто-то другой ( другая сессия ) может
открыть док и двинуть этот регистр тогда Ваша ТЗ будет содержать
уже неверные данные и по всем периодам которые есть в ывшей ТЗ,
получите неправильные данные в rg.

Еще пример пока Вы считаете другая ссесия (т.к. к моменту окончания расчета может быть даже и ничего не будет заблокировано)  может отменить (или пометить на удаление ) проведение документ двигающий Ваш rg.
Результат тот же что и в предыдущем параграфе.

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 
ОтправитьПечать