Поиск ошибок в регистрах 7.7

09.04.12

Задачи пользователя - Поиск данных

Обработка  позволяет найти ошибки в регистрах 7.7 в Вашей базе данных

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ПоискОшибок_в_Регистрах.ert
.ert 65,50Kb
430
430 Скачать (1 SM) Купить за 1 850 руб.
История создания

Когда проводил различные "опыты" , эксперименты по написанию "своих  блокировок" был необходим механизм обнаружения сложных ошибок в регистрах. В результате появилась эта обработка. 

Особенности

Сейчас обработка поддерживает только sql версию. Для работы обработки необходим 1с++

Установка

Скопировать и запустить обработку.

Как пользоваться - интуитивно понятно.

Принимаются ошибки, замечания, критика и.т.д.

Описание кнопок и  что они обнаруживают

  1. Документ не проведен и установлен флаг движения (rf по любому из регистров )
  2. Документ проведен и установлен флаг движения (rf) конкретного регистра и нет ни одного движения документа по этому регистру
  3. Ищем случай когда флаг движения (rf) сброшен у конкретного регистра и у документа есть движения по этому регистру
    1. Ищем случай когда документ не проведен , флаг движения (rf) у конкретного движения сброшен и у документа есть движения по этому регистру.
    2. Ищем случай когда документ проведен , флаг движения у конкретного движения (rf) сброшен и у документа есть движения по этому регистру.
  4. В таблице движений конкретного регистра (ra) есть ссылка на несуществующий документ.
  5. Проверяет что элемент-справочник или документ с максимальным ID существует в соответствующей таблице справочника или в журнале документов.
  6. Для регистров у которых установлен признак быстрое движение дата, время ( date_time_iddoc ) по регистру должно совпадать с этим полем по журналу документов.
  7. Ищем ошибки когда при проведении документа было что либо нарушено. Основная идея пункта 7 что при правильном проведении документа все его actno составляют ряд ( арифметическая прогрессия ) 1 2 3 4 5 ... n .Причем n должно равняться actcnt из строки журнала документов. Этот ряд составлен из всех движений документа по всем регистрам. В этот ряд также включается движение переодич. реквизита справочника этого документа


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


Версия 1.9.08
  1. Добавлен поиск ошибок связанных с периодич. значениями справочников полученных при проведении документов
    1. Документ непроведен и у него есть переодич. движения справочников
    2. Документ непроведен и у него по APPCODE (APPCODE & 0x08 = 8 ) есть движение
    3. Документ проведен и у него по APPCODE (APPCODE & 0x08 = 8 ), а движения нет
    4. Документ проведен и у него по APPCODE (APPCODE & 0x08 = 0 ) и движения есть
    5. В константах есть периодич движение документа в самом журнале документов нет документа iddoc
    6. В константах есть периодич ID (id плохой) который ссылается на неправильный реквизит справочник
    7. В константах есть периодич ID справочника спр и непустой, а в самом справочнике нет значения (ссылка в никуда или на удаленный элемент спр)

На 09.04.2012 сделаны изменения версии с 2.0.0.1 по 2.0.0.4
Версия 2.0.01

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

Версия 2.0.02 и 2.0.03
1. добавлен 6.1 поиск в rg значений PERIOD по дате меньше заданной доп флаг можно дату наименьшую взять из _ssystem
2. добавлен 6.2 поиск в rg значений PERIOD по дате больше заданной доп флаг можно дату наименьшую взять из _ssystem. Это надо делать если уверены что не двигали ТА в прошлое и в прошлом и остались
3. добавлен 6.3 проверка дат PERIOD d rg переделана для любой периодичности базы 1с
4. добавлен 6.4 где флаг быстрые движения включен то в ra не может быть даты самой ранней чем в _1ssystem
5. добавлен 8.8 по _1sjourn (журнал документов) сделан поиск документов меньше заданной даты. (Т.е если Вы ведете базу с 2005 года то логично предположить что нет документов с датой < 01.01.2005)
6. добавлен 8.9 по _1sjourn (журнал документов) сделан поиск документов с пустой датой ( точнее с датой 01.01.1753)
7. добавлен 8.10 по _1sentry  (проводки ) сделан поиск проводок с пустой датой
8. добавлен 8.11 по _1soper   (операции ) сделан поиск операций с пустой датой

Версия 2.0.04
1.сделан поиск документов где для документа время документа отличается от времени проводок
2 сделан поиск документов где для документа время документа отличается от времени операции
3 сделан поиск документов где для документа время документа отличается от времени отбора счетов
4 сделан поиск документов где для документа время документа отличается от времени отбора проводок
5. сделано сравнение времени в операции и ее проводок.

Дальнейшее развитие

Есть идеи что из этого можно сделать еще.

См. также

Анализ учета Оптовая торговля Бухгалтер Бухгалтерский учет 7.7 1С:Комплексная 7.7 Россия Бухгалтерский учет НДС Абонемент ($m)

Отчет написан для Комплексной конфигурации 4.2. Отчет позволяет выполнить сверку кредитовых оборотов счета 76.АВ (НДС с авансов полученных) с книгой покупок, проверить правильность выписки счетов фактур на зачет аванса по счетам БУ в разрезе разных ставок НДС 18% и 20% в комплексной конфигурации 1С:Предприятия 7.7. Позволяет найти и исправить ошибки в процессе перехода на 20% НДС. Помогает с закрытием квартала 18% и 20% НДС. Отчет обновлен для анализа данных 2 квартала 2019 года и всех следующих кварталов (стал более универсальным).

1 стартмани

27.03.2019    24401    13    ksnik    5    

2

Корректировка данных Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

База данных помечается Suspect, когда SQL Server не может читать файлы данных, связанные с базой данных с жесткого диска. В этом случае сделать бекап базы нельзя, но можно попробовать образ диска. После того как возможность читать файлы данных восстановлена, вы можете перезапустить службу SQL Server, и если возможно, произойдет автоматическое восстановление. Что делать, если информационная база 1С7.7 на SQL Server 2000 перешла в состояние suspect? Если это произошло утром и бекап сделан, Вы, конечно, можете грохнуть и раскатать базу заново (вечером это проблематичнее), но не торопитесь - возможно, поможет detach+attach или другие методы, изложенные в данной публикации.

1 стартмани

08.11.2016    23325    ksnik    5    

5

Анализ учета Бухгалтер Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Россия Абонемент ($m)

ФНС России рекомендует провести проверку правильности занесения ИНН и КПП контрагентов с использованием онлайн-сервиса (http://npchk.nalog.ru) Обработка выводит результаты проверки в отчет.

1 стартмани

04.03.2015    20300    54    NicSit73    70    

14

Поиск данных Работа с интерфейсом Программист Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

По аналогии с http://infostart.ru/public/14286/, недавно узнал что в svcsvc.dll несколько обновился функционал, в частности был добавлен метод AddString(). В прилагаемом коде показан запрос, реализованный методами ВК 1SQlite, т.е. только для DBF. Это только пример. Т.е. если например у справочника отсутствует поле "Наименование", то скорее всего будет ошибка. Тем не менее критика приветствуется))) Необходимые ВК: 1SQlite, FORMEX, svcsvc.dll (отсюда: http://www.1cpp.ru/forum/YaBB.pl?num=1373266553). p.s. Спасибо огромное уважаемому ADirks за все эти прекрасные плюшки, и помощь в их освоении)))

12.07.2013    160723    unichkin    13    

15

Корректировка данных Системный администратор Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Если Вы наблюдаете сообщение "could not continue scan with nolock" и подобные ему - значит эта статья для Вас. В статье рассказывается, как поправить ошибки выданные DBCC CHECKDB вручную.

01.07.2013    114782    Вадимко    7    

53

Поиск данных Инструменты администратора БД Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Обработка 1С 7.7 осуществляющая поиск по истории открытых обработок. Обработки могли быть открыты программистом в конфигураторе и пользователем в режиме предприятия. В редакции 0.5 добавлены плюшечки: Наравне с открытием обработки добавлено, открытие папки содержащей обработку. Так же понятно что поскольку история хранится в реестре, то данная обработка является примером для работы с реестром. Строго говоря в то время для эксплуатации реестра MSScriptControl.ScriptControl . Крест возле имения базы на форме означает что база нет (нет файла 1CV7.MD по указанному пути). Соответственно крест возле имени обработки означает что обработки нет по указанному пути. Добавлена сортировка. Убрана возможность разобрать понравившуюся обработку. Добавлена возможность показать в папке (не путать с открыть папку). Добавлена возможность скопировать обработку. Добавлена выборка обработок по истории отладчика.

1 стартмани

07.03.2013    15110    21    lamer19    25    

14

Оборотно-сальдовая ведомость, Анализ счета Анализ учета Программист Бизнес-аналитик Бухгалтер Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Бухгалтерский учет Абонемент ($m)

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

1 стартмани

03.12.2012    17818    95    vladimirvmi    10    

14

Корректировка данных Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

После расшифровки антивирусом базы - у всех файлов отсутствует 20% начала файла. Способ восстановить данные с минимальными потерями

19.11.2012    20201    msvsoft    9    

14
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. berezdetsky 624 04.05.10 18:32 Сейчас в теме
Как говорил по этому поводу один заезжий иностранец: "Вы, профессор, воля ваша, что-то нескладное придумали! Оно, может, и умно, но больно непонятно." ;)
IMHO, описание тестов должно быть в понятных большинству терминах ЖКК, а не в терминах физической структуры.
Хотя, конечно, зависит от позиционирования разработки..
2. Арчибальд 2709 05.05.10 07:33 Сейчас в теме
5. _Z1 38 05.05.10 08:56 Сейчас в теме
(1) Для того чтобы проверить базу можно вообще не разбираться в особеностях 1с и структуры
данных. Если кнопка ошибок не обнаружила то она пишет Все Ок.
Все кнопки только Читают поэтому этой обработкой данные не могут быть испорченны.

Случай когда все таки обнаружатся ошибки то они(ошибки) будут все таки локализованы ( хотя бы по документу и по проблеме) и даже если квалификации проверяющего не хватит чтобы исправить их самому он может что либо сделать чтобы найти того кто бы смог помочь решить этот вопрос.
3. bulpi 217 05.05.10 07:35 Сейчас в теме
Напишите в описании, КАКИЕ ошибки. Скачивать только для того, чтобы это узнать, наклално. Потом сутки лапу сосать.
4. _Z1 38 05.05.10 08:49 Сейчас в теме
У меня не получилось отредактировать публикацию
вот более приближенное к 1с описание

Описание кнопок и что они обнаруживают
1. Документ не проведен и установлен флаг движения (rf по любому из регистров )
2. Документ проведен и установлен флаг движения (rf) конкретного
регистра и нет ни одного движения документа по этому регистру
3.Ищем случай когда флаг движения (rf) сброшен у конкретного регистра
и у документа есть движения по этому регистру
3.1 Ищем случай когда документ не проведен , флаг движения (rf) у
конкретного движения сброшен и у документа есть движения по этому регистру.
3.2 Ищем случай когда документ проведен , флаг движения у
конкретного движения (rf) сброшен и у документа есть движения по этому регистру.
4.В таблице движений конкретного регистра (ra) есть ссылка на несуществующий документ.
5.Проверяет что элемент-справочник или документ с максимальным ID существует
в соответствуюшей таблице справочника или в журнале документов.
6. Для регистров у которых установлен признак быстрое движение
дата,время ( date_time_iddoc ) по регистру должно совпадать с этим полем по журналу документов.
7.Ищем ошибки когда при проведении документа было что либо нарушено.
Пример из модуля проведения вызвали проведение другого документа при этом второй документ
откатил транзакцию а мы дальше стали проводить документ.
Искуственным тестом воссаздал такую ситуацию и обработка это обнаружила
Основная идея пункта 7 что при правильном проведении документа все его actno
составляют ряд ( ариф прогрессия )
1 2 3 4 5 ... n .Причем n должно равняться actcnt из строки журнала документов.
Этот ряд составлен из всех движений документа по всем регистрам.В этот ряд также включается
движение переодич. реквизита справочника этого документа.
gluglugluglu; +1 Ответить
6. Арчибальд 2709 05.05.10 09:10 Сейчас в теме
С учетом (4) и (5), пожалуй, отплюсуюсь. Похоже, штука полезная.
Иваныч; +1 Ответить
7. Styvi 6 05.05.10 10:04 Сейчас в теме
Пока нет времени качать и свою базу проверять, но вещь нелишняя, имхо...
Плюсую...
8. marsohod 123 05.05.10 14:07 Сейчас в теме
meta = СоздатьОбъект("MetadataWork");
Фл_Сообщение_2 = 1;	
Пришлось добавить в начало:
Рез = ЗагрузитьВнешнююКомпоненту("1cpp.dll");
У меня SQL-версия программы, но база - файловая. Будет ли при при таком раскладе работать?
9. _Z1 38 05.05.10 14:57 Сейчас в теме
(8)
У меня SQL-версия программы, но база - файловая. Будет ли при при таком раскладе работать?

Сейчас обработка функционирует только для sql базы.

Рез = ЗагрузитьВнешнююКомпоненту("1cpp.dll");

Я считаю что загружать 1сpp из отчета это плохо.

добавлю сообщение о том что не загружена 1сpp
10. alex_serb 166 06.05.10 23:03 Сейчас в теме
Обнаружение таких ошибок - вещь хорошая, на моей памяти на фирме разразился скандал - документ не сделал движений. Так во всей 30Gb базе такой документ обнаружился только один, но резонансу от начальства он вызвал .... много, вот так всё совпало и попало в "болевую" точку
11. CheBurator 2684 10.05.10 15:08 Сейчас в теме
12. vandalsvq 1592 10.05.10 23:10 Сейчас в теме
(11) Я посмотрел внутрь, в принципе большого труда постепенно перевести его на класс "ПрямойЗапрос" труда не составит. И тогда данная обработка будет универсальна (и для DBF, и для SQL).
(0) Автор, а ты не готов рассмотреть перевод запросов с ODBC на класс "ПрямойЗапрос"?

Вот ссылка на класс - http://www.1cpp.ru/forum/YaBB.pl?num=1246429625
На ИС тоже есть, но не самая актуальная версия.
13. _Z1 38 11.05.10 08:29 Сейчас в теме
(12) Я планирую сначала полностью сделать subj для sql.
Только после этого делать dbf версию.
Ну и не совcем простой перевод будет
например в dbf по моему нет exists и.т.д.
15. vandalsvq 1592 11.05.10 10:41 Сейчас в теме
(13) КОП прямой запрос использует 1sqlite. Вроде у него exists вполне существует. Тем баче разве нельзя переписать на in (если я правильно помню место где используется exists). Кроме того in будет уместнее если объем вложенной выборки небольшой. Ну и соответственно наоборот если объем большой :).
16. _Z1 38 11.05.10 11:18 Сейчас в теме
(15) exists используется как полусоеденение и антисоеденение
в t-sql ( MS SQL) exists реализован гораздо эффективнее чем in
Хотя эта по моему off для этого сайта(ветки)


Вроде у него exists вполне существует

Посмотрел sqlite http://www.sqlite.org/syntaxdiagrams.html#expr
в sqlite есть exists.


17. vandalsvq 1592 11.05.10 12:53 Сейчас в теме
(16) Значит может попробуешь? Я готов оказать посильную помощь :)

Популяризация лишней не бывает
14. _Z1 38 11.05.10 08:44 Сейчас в теме
(11) Выход ( не айс) сейчас тоже есть.
Сделай копию базы .Конверти ее в sql ( dbf базы не могут быть очень большими ).
Прогони обработку.
18. viacht 12 17.05.10 11:18 Сейчас в теме
По поводу добавлений.
вот мне необходимо было сравнить задолженность по регистру с бухгалтерской обороткой. А то бухи любят производить ручную операцию, а регистр поправить забывают. Ничего в нете не нашел тогда.
19. _Z1 38 18.05.10 08:17 Сейчас в теме
(18) Отчет универсальный т.е. должен выполнять в первую очередь проверки которые нужны в любой базе данных 1с.
(viacht)сформулируйте точно и подробно Вашу задачу тогда можно будет об этом что либо сказать.
20. viacht 12 19.05.10 11:16 Сейчас в теме
(19) Бухи во взаиморасчетах, учете материалов, очень любят использовать ручные операции. Взаиморасчеты с нерезами в части расчета курсовых разниц в ОСВ отображаются правильно, а в регистрах полная чушь.
Необходим отчет, который бы сравнивал сальдо в ОСВ и показатели в регистрах по учету взаиморасчетов и учету ТМЦ.
21. admin5 02.10.11 22:41 Сейчас в теме
viacht пишет:
(19) Бухи во взаиморасчетах, учете материалов, очень любят использовать ручные операции. Взаиморасчеты с нерезами в части расчета курсовых разниц в ОСВ отображаются правильно, а в регистрах полная чушь.
Необходим отчет, который бы сравнивал сальдо в ОСВ и показатели в регистрах по учету взаиморасчетов и учету ТМЦ.

Полностью согласен, такой бы отчет очень помог!
22. binex 279 29.03.12 09:50 Сейчас в теме
При тесте кнопки 8.6 (8.7) выпадывает ошибка:

Тек_Ид = meta1.ИдРеквизитаСправочника(ТаблСпр_Документов.ВидСпр,ТаблСпр_Документов.РеквСпр);
{D:\NEW\ПОИСКОШИБОК_В_РЕГИСТРАХ.ERT(49)}: Не существует справочника с идентификатором: Договоры взаиморасчетов
23. _Z1 38 29.03.12 17:18 Сейчас в теме
(22)
А остальные кнопки работают ?
очень похоже что не подгружена компонента 1с++
24. _Z1 38 29.03.12 20:06 Сейчас в теме
(22) В 23 похоже я не прав.
Опиши ситуацию как можно подробней.
25. binex 279 30.03.12 06:35 Сейчас в теме
Привет! Цэ я, с мисты, с побитыми регистрами. )) Попозжа посмотрю код подробней, может там что-то не правильное.
26. binex 279 11.04.12 14:11 Сейчас в теме
Подскажите пожалуйста, в чём суть проверки 7.3? Что он проверяет?
27. _Z1 38 11.04.12 14:38 Сейчас в теме
(26) 7.3 и 7.4 проверяет что нет пропусков в движениях по конкретному документу.
Движения - это или движения регистров или проводки или изменения периодики справочников
из документа.
Пример предположим у документа есть движения с 1 по 10.
Если мы специально удалим движение № 7 из qa (или еще как любым внешним способом)
то одна из проверок или 7.3 или 7.4 обнаружит эту ситуацию.
28. binex 279 11.04.12 14:48 Сейчас в теме
Дело в том что я не так хорошо разбираюсь в физическоих таблицах 1С.

"есть движения с 1 по 10." - Это что за цифры? Что они обозначают?
" удалим движение № 7 из qa" - Что такое qa?
" нет пропусков в движениях" - не совсем понятен термин, но думаю пойму, если ответите на предыдущие два.


Какие таблицы участвуют при проверке по этому пункту?
29. _Z1 38 11.04.12 15:10 Сейчас в теме
(28)
Какие таблицы участвуют при проверке по этому пункту?

для опер учета это таблицs ra...
для бухгалтерии это _1sentry
Если есть движения по расчет то скорее всего обработка работает неправильно.

Если Вы используете в модуле проведения ПривязыватьСтроку
то при отображении будут видны номера движений.


"есть движения с 1 по 10." - Это что за цифры? Что они обозначают?

Если в документе прих накладной 10 строк то логично предположить что у Вас может быть по документу
10 движений Приход товара.
Так вот если внешним способом удалим движение по 7 строке без всякого 1с
то кнопки 7.3 или 7.4 распознают эту ситуацию и Вы узнаете с каким документом что-то не так.

ну а дальше Вы проанализировав строки документа приходной накладной
и его движения Приход Товара поймете что приход по строке 7 пропал и предпримите какие-то действия.
30. binex 279 11.04.12 15:14 Сейчас в теме
Спасибо! Буду переваривать. Выдернул ещё запрос с обработки, буду разбирать.
Оставьте свое сообщение