Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) часть 8 Проверьте  Регистры в Вашей БД (число прочтений - 15485 )
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #15 - 19. Апреля 2010 :: 08:26
Печать  
Z1 писал(а) 16. Апреля 2010 :: 17:26:
Можно написать еще контроли
1.дата документа не совпадает с датой движения
как получить меняем дату документа на другой период
документ записываем но не перепроводим.


Гы.. штатно дату проведенного документа не поменяешь, только отменой проведения.

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #16 - 19. Апреля 2010 :: 08:31
Печать  
Eprst писал(а) 19. Апреля 2010 :: 08:26:
Z1 писал(а) 16. Апреля 2010 :: 17:26:
Можно написать еще контроли
1.дата документа не совпадает с датой движения
как получить меняем дату документа на другой период
документ записываем но не перепроводим.


Гы.. штатно дату проведенного документа не поменяешь, только отменой проведения.


1. Сам же описывал случай (с мисты) когда программист сам
формировал движения документа.
2. При особо сложных случаев (см пост #13) "неправильно" написаных модулей проведения
3. Если кто-то руками поменяет дату в _1sjourn

PS По закону подлости ( законам Мерфи ) все самое невозможное все равно происходит.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #17 - 19. Апреля 2010 :: 08:34
Печать  
es3000 писал(а) 19. Апреля 2010 :: 04:57:
Мне интересно,
только надо побольше "рекламы" этой обработке.
Я узнал про нее случайно.

Что значит побольше рекламы ? Какие Ваши предложения.
Могу поместить ее еще на infostart
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #18 - 22. Апреля 2010 :: 07:25
Печать  
1.Добавил контроль когда есть галка быстрые движение
что date_time_iddoc  _1sjourn = date_time_iddoc ra
2. Добавил контроль на ситуацию
http://www.1cpp.ru/forum/YaBB.pl?num=1256899979 "плохое" проведение
Принцип : Для документа по всем движениям имеем
поле actno это ряд
1,2,3, ... N арифм. прогрессия.
Если что-то не так в проведении то этот ряд нарушается
(если интересно могу описать как смоделировал)
у меня получился ряд 1,2,2 и обработка это обнаружила

Версия 1.9.02
« Последняя редакция: 23. Апреля 2010 :: 06:45 - Z1 »  

________________________002.rar ( 10 KB | Загрузки )
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #19 - 23. Апреля 2010 :: 10:52
Печать  
1 Улучшены немного внутренние имена
2 Учтен случай когда
Галка Автоматическое удалениеДвижений = 0
то движения начинаются не с 1 а с  (макспредномер + 1 )


Придумал как развить обработку дальше учитывая поле _1sjourn.actcnt

Пока неизвестно( по крайней мере для меня ) как будет работать пункт 7
когда у документа есть и движения регистров и  проводки.

Известно обработка правильно обрабатывает случай когда в документ  двигает и проводки и Регистры.


PS Обработка будет работать неправильно когда
     iddoc     actno
Рег1 Движение   1
Рег2 Движение   2
Рег1 Движение   3
Рег2 Движение   4

и после этого мы удалим вообще Рег2 то в базе останется
Рег1 Движение   1
Рег1 Движение   3
Обработка это будет воспринимать как ошибку


Версия 1.9.03 ( проверил новый пункт  в демо ТиС 9.2.955 sql2000 - все Ок )
« Последняя редакция: 23. Апреля 2010 :: 12:33 - Z1 »  

_______________________.rar ( 10 KB | Загрузки )
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #20 - 23. Апреля 2010 :: 14:27
Печать  
Учел случай когда Модуль проведения двигает периодические значения справочников


Версия 1.9.04
  

________________________003.rar ( 10 KB | Загрузки )
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #21 - 24. Апреля 2010 :: 08:56
Печать  
Пункт 7 вынесен на отдельную закладку и расширен по количеству проверок.

Проверяем что есть ошибки
7.1 _1sjourn.actcnt = 0 и сумма всех rf > 0
7.2 MAX(Actno,Iddoc) <> _1sjourn.actcnt
7.3 ( MAX(Actno,Iddoc) - MIN(Actno,Iddoc) + 1 ) <> колво всех движений документа
7.4сумма ариф прогрессии от  MIN(Actno) до MAC(Actno) c шагом1 <> сумме всех Actno

7.4 это то что было 7 из версии 1.9.04


версия 1.9.05
  

________________________004.rar ( 10 KB | Загрузки )
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #22 - 28. Апреля 2010 :: 08:18
Печать  
В 7.4 исправлена ошибка переполнения при большом количестве движений


версия 1.9.06
версия 1.9.07
  

________________________006.rar ( 11 KB | Загрузки )
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #23 - 18. Мая 2010 :: 06:44
Печать  
версия 1.9.08
Добавлен поиск ошибок связанных с периодич. значениями справочников
полученных при проведении документов
  

________________________005.rar ( 10 KB | Загрузки )
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #24 - 29. Марта 2012 :: 15:55
Печать  
Принял решение улучшить эту обработку
цель обнаружить как можно больше логических ошибок
в данных БД 1с77.
Принимаются любые предложения пожелания критика и.т.д.

версия 2.0.01
сделано
1 при открытии делается проверка и если надо то загружается внешняя компонента 1cpp.dll
2 проверка что раньше определенной даты нет движений по rg
3 проверка что позже  определенной даты нет движений по rg
4 Для периодичности итогов = месяц проверка что в rg в поле PERIOD
не может быть даты отличной от числа 01




  

________________________007.rar ( 15 KB | Загрузки )
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #25 - 30. Марта 2012 :: 06:15
Печать  

версия 2.0.02
сделано
6.3 переделал проверка дат PERIOD d rg переделана для любой периодичности базы 1с
архив в начале ветки
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #26 - 30. Марта 2012 :: 09:36
Печать  
Проверку на пустую дату в журнальчике и в других табличках воткнуть бы еще
Та которая 01.01.1753 в скуле
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #27 - 30. Марта 2012 :: 09:58
Печать  
Eprst писал(а) 30. Марта 2012 :: 09:36:
Проверку на пустую дату в журнальчике и в других табличках воткнуть бы еще
Та которая 01.01.1753 в скуле


Да в  _1sjourn поставлю.
+ также как и при проверке в 6.1 можно проверять не должно быть документа раньше даты
которая определена в _1ssystem а это условие даже всегда будет проверять 01.01.1753


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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #28 - 30. Марта 2012 :: 10:46
Печать  
1soper и 1ssentry

а для проводок и операций еще, есть трабл со временем 23:59:59 -
в документе будет одна позиция, а проводки лепятся с другой позицией (iddoc тот же, время - другое)

Ну и на пустую дату в этих табличках тоже бы проверочку
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 8 Проверьте  Регистры в Вашей БД
Ответ #29 - 30. Марта 2012 :: 16:27
Печать  
2.0.03
1.добавлен 6.4 где флаг быстрые движения включен то в ra
не может быть даты самой ранней чем в _1ssystem
2.добавлен 6.1 поиск в rg значений PERIOD по дате меньше заданой
доп флаг можно дату наименьшую взять из _ssystem
3.добавлен 6.2 поиск в rg значений PERIOD по дате больше заданной
доп флаг можно дату наименьшую взять из _ssystem
Это надо делать если уверены что не двигали ТА в прошлое и в прошлом и остались
4.добавлен 8.8 по _1sjourn (журнал документов) сделан поиск документов меньше
заданной даты. ( Т.е если Вы ведете базу с 2005 года то логично
предположить что нет документов с датой < 01.01.2005
5.добавлен 8.9 по _1sjourn (журнал документов) сделан поиск документов
с пустой датой ( точнее с датой 01.01.1753)
6.добавлен 8.10 по _1sentry  (проводки ) сделан поиск проводок с пустой датой
7.добавлен 8.11 по _1soper   (операции ) сделан поиск операций с пустой датой

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