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


1C++ rocks!

Сообщений: 68
Местоположение: Новосибирск
Зарегистрирован: 12. Сентября 2011
Пол: Мужской
Коррекность скрипта для очистки регистра
23. Ноября 2011 :: 16:07
Печать  
Доброе время суток!
---
Из обработки 1CQA.ert, которую можно взять здесь:
http://infostart.ru/public/98982/
во имя искоренения партионного учета
совершено "злодеяние"  Улыбка
в виде следующего скрипта:

Код
Выбрать все
UPDATE Жур
SET Жур.RF328=0
FROM
$Регистр.ПартииНаличие as Рег (NOLOCK)
INNER JOIN
_1SJOURN as Жур (NOLOCK) ON (Рег.IDDOC=Жур.IDDOC)

GO -- UPDATE Жур.RF328=0

/* глMDW.ИдРегистра(""ПартииНаличие"") = 328   -  флаг движения по регистру */

TRUNCATE TABLE $Регистр.ПартииНаличие
GO -- TRUNCATE ПартииНаличие 



После этого были пересчитаны итоги обработкой УстановкаТА.ert,
которую можно взять здесь:
http://www.dev.citykirov.ru/
---
Два вопроса ("на фига это все" прошу не спрашивать Подмигивание ):
1) Насколько скрипт и последующий пересчет итогов все коррекно сделали в базе?  Что где нужно еще может быть поправить??
2) На что вообще влияют поля в таблице _1sjourn имеющие имя вида 'RF<РегистрИД>' ???
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Коррекность скрипта для очистки регистра
Ответ #1 - 23. Ноября 2011 :: 16:13
Печать  
по  Вашему коду
Вы сначала выборочно меняете записи в  $Регистр.ПартииНаличие
а после этого очищаете все таблицу $Регистр.ПартииНаличие

вместо Вашего кода этот код
Код
Выбрать все
UPDATE _1sjourn SET RF328=0 where RF328<>0
 




по пункту два лучше Вы сами разберитесь с rf полями
и только после этого пишите какой либо код по обнулению регистров.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Коррекность скрипта для очистки регистра
Ответ #2 - 23. Ноября 2011 :: 16:47
Печать  
А к чему такой пиар во всех темах древней поделки -консольки ?
  
Наверх
 
IP записан
 
ЮраОС
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 68
Местоположение: Новосибирск
Зарегистрирован: 12. Сентября 2011
Пол: Мужской
Re: Коррекность скрипта для очистки регистра
Ответ #3 - 23. Ноября 2011 :: 16:47
Печать  
Z1 писал(а) 23. Ноября 2011 :: 16:13:
по  Вашему коду
Вы сначала выборочно меняете записи в  $Регистр.ПартииНаличие
а после этого очищаете все таблицу $Регистр.ПартииНаличие

вместо Вашего кода этот код
Код
Выбрать все
UPDATE _1sjourn SET RF328=0 where RF328<>0
 


Z1!!! Читай в тексте запроса внимательней:
UPDATE Жур FROM ... и т.д.  Язык


по пункту два лучше Вы сами разберитесь с rf полями
и только после этого пишите какой либо код по обнулению регистров.

  
Наверх
IP записан
 
ЮраОС
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 68
Местоположение: Новосибирск
Зарегистрирован: 12. Сентября 2011
Пол: Мужской
Re: Коррекность скрипта для очистки регистра
Ответ #4 - 23. Ноября 2011 :: 16:49
Печать  
Eprst писал(а) 23. Ноября 2011 :: 16:47:
А к чему такой пиар во всех темах древней поделки -консольки ?

есть новее давай! Улыбка
  
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Коррекность скрипта для очистки регистра
Ответ #5 - 23. Ноября 2011 :: 16:50
Печать  
У меня есть своя. Не дам.
Ты на вопрос так и не ответил. Ты автор, или делать нечего ?
  
Наверх
 
IP записан
 
ЮраОС
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 68
Местоположение: Новосибирск
Зарегистрирован: 12. Сентября 2011
Пол: Мужской
Re: Коррекность скрипта для очистки регистра
Ответ #6 - 23. Ноября 2011 :: 16:52
Печать  
Eprst писал(а) 23. Ноября 2011 :: 16:50:
У меня есть своя. Не дам.
Ты на вопрос так и не ответил. Ты автор, или делать нечего ?

Автор консльки Дмитрий Ощепков dmitro-75@mail.ru ну естественоо каждый для себя что-то подделывает.
  
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Коррекность скрипта для очистки регистра
Ответ #7 - 23. Ноября 2011 :: 16:53
Печать  
ЗЫ: ACTCNT еще не почистил, не говоря уже о модулях документов.
+Итоги пересчитывать не надо было, достаточно было сделать трункейт таблички итогов регистра.
  
Наверх
 
IP записан
 
ЮраОС
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 68
Местоположение: Новосибирск
Зарегистрирован: 12. Сентября 2011
Пол: Мужской
Re: Коррекность скрипта для очистки регистра
Ответ #8 - 23. Ноября 2011 :: 16:53
Печать  
Eprst писал(а) 23. Ноября 2011 :: 16:50:
У меня есть своя. Не дам.
Ты на вопрос так и не ответил. Ты автор, или делать нечего ?

а если по существу темы, она ме больше интересует???
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Коррекность скрипта для очистки регистра
Ответ #9 - 23. Ноября 2011 :: 16:59
Печать  
ЮраОС писал(а) 23. Ноября 2011 :: 16:47:
Z1 писал(а) 23. Ноября 2011 :: 16:13:
по  Вашему коду
Вы сначала выборочно меняете записи в  $Регистр.ПартииНаличие
а после этого очищаете все таблицу $Регистр.ПартииНаличие

вместо Вашего кода этот код
Код
Выбрать все
UPDATE _1sjourn SET RF328=0 where RF328<>0
 


Z1!!! Читай в тексте запроса внимательней:
UPDATE Жур FROM ... и т.д.  Язык


по пункту два лучше Вы сами разберитесь с rf полями
и только после этого пишите какой либо код по обнулению регистров.


Так я прочитал
Твой код если находит  документ в таблице регистров то обнуляет флаг rf  этого регистра.
Мой код делает тоже самое только гораздо быстрее и с меньшей нагрузкой на sql Сервер.

PS если есть какое-либо рассогласование флага rf и таблицы регистра
то это говорит о том что нет логической целостности данных базы.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Коррекность скрипта для очистки регистра
Ответ #10 - 23. Ноября 2011 :: 16:59
Печать  
ЮраОС писал(а) 23. Ноября 2011 :: 16:47:
Z1 писал(а) 23. Ноября 2011 :: 16:13:
по  Вашему коду
Вы сначала выборочно меняете записи в  $Регистр.ПартииНаличие
а после этого очищаете все таблицу $Регистр.ПартииНаличие

вместо Вашего кода этот код
Код
Выбрать все
UPDATE _1sjourn SET RF328=0 where RF328<>0
 


Z1!!! Читай в тексте запроса внимательней:
UPDATE Жур FROM ... и т.д.  Язык


по пункту два лучше Вы сами разберитесь с rf полями
и только после этого пишите какой либо код по обнулению регистров.




Улыбка))))))

Z1 как раз и прочитал внимательно, там нужен всего лишь update _1sjourn без inner join и таблички ПартииНаличие
  
Наверх
 
IP записан
 
ЮраОС
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 68
Местоположение: Новосибирск
Зарегистрирован: 12. Сентября 2011
Пол: Мужской
Re: Коррекность скрипта для очистки регистра
Ответ #11 - 23. Ноября 2011 :: 17:00
Печать  
Eprst писал(а) 23. Ноября 2011 :: 16:53:
ЗЫ: ACTCNT еще не почистил, не говоря уже о модулях документов.
+Итоги пересчитывать не надо было, достаточно было сделать трункейт таблички итогов регистра.

1) в модулях документа движняк выкошен:
в процедурах глОприходоаниеПартий() и глСписаниеПартий() из глобальника в нужном месте поставил Возврат;
2) насчет трункейт таблички итогов регистра - это верное замечание! 

3) насчет ACTCNT можно поподробней?
  
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Коррекность скрипта для очистки регистра
Ответ #12 - 23. Ноября 2011 :: 17:01
Печать  
ACTCNT      Счетчик действий (движения) для документа (один документ может вызывать несколько движений регистров). Фактически хранит информацию о количестве движений по всем регистрам + записи периодических реквизитов (без учета проводок по бух. учету). Тип – Число(4).
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Коррекность скрипта для очистки регистра
Ответ #13 - 23. Ноября 2011 :: 17:04
Печать  
ЮраОС писал(а) 23. Ноября 2011 :: 17:00:
в процедурах глОприходоаниеПартий() и глСписаниеПартий() из глобальника в нужном месте поставил Возврат;


Ага супер.. На сколько я помню,в типовых движуха партионного регистра влияет на расчет других регистров - продажного и прочее (в которых себестоимость считается), регистры взаиморасчетов еще.
  
Наверх
 
IP записан
 
ЮраОС
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 68
Местоположение: Новосибирск
Зарегистрирован: 12. Сентября 2011
Пол: Мужской
Re: Коррекность скрипта для очистки регистра
Ответ #14 - 23. Ноября 2011 :: 17:07
Печать  
Eprst писал(а) 23. Ноября 2011 :: 17:01:
ACTCNT      Счетчик действий (движения) для документа (один документ может вызывать несколько движений регистров). Фактически хранит информацию о количестве движений по всем регистрам + записи периодических реквизитов (без учета проводок по бух. учету). Тип – Число(4).

.....
такс ... спасибо!
Это число записей во всех регистрах + проводки + записи истории в таблице констант, связанных с документом???

какие возможны проблемы из-за неверного значения?

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