Теория поиска ошибок :)

25.12.12

Разработка - Математика и алгоритмы

Соображения о поисках ошибок

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

Наименование Файл Версия Размер
Сатья в виде файла
.docx 22,33Kb
27
.docx 22,33Kb 27 Скачать

Теория поиска ошибок :)

 

Преамбула

 Ошибки есть всегда. Если ошибок нет - это значит, что их еще не нашли. Если в программе не найдено ни одной ошибки – значит эта программа никому не нужна, и никто ей не пользуется :).

 

Ошибаться не стыдно и не плохо (если мы, конечно, не говорим о сознательном вредительстве :) ). Плохо не пытаться их исправить. Совсем грустно, если исправить их нельзя. Но тут уж остается только смириться и «учесть-на-будушее», если оно (будущее) есть.

 

Попытаюсь изложить тут свои соображения о том, как бороться с ошибками. Это всего лишь мои мысли, и не настаиваю что они совсем уж правильные. Возможно, я где-то у кого-то что-то слямзил на этот счет, но, честное слово сделал, это подсознательно и не надо меня обвинять в плагиате (по крайней мере, осознанном). Достаточно просто указать  где,  у кого и что (исправлюсь :) ).

 

Сразу хочется сказать, что есть такие не хорошие «плавающие» ошибки (они то есть, то их нет, при видимых одинаковых условиях). Печально, когда на них нарываешься и бороться с ними очень сложно – тут нужен имеющийся опыт, интуиция и бубен. Но и то, эта ошибка не берется из ни откуда, и у нее есть своя причина, только до причины этой очень сложно докопаться.

 

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

 

1.     А был ли мальчик?

Первое о чем нужно подумать, если говорят что есть ошибка, а есть ли она? Не нужно сразу открывать конфигуратор (исходный код программы) и анализировать запрос. Нужно попросить пользователя показать эту ошибку. Если, по некой причине, показать он ее не может – досконально опросить в какой момент возникает ошибка, и попытаться ее воспроизвести (предположим, на тестовой базе).

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

 

2.     Разделяй и властвуй

Ошибка есть (увидели, убедились, поверили). Она стабильная (повторяется из раза в раз). Теперь мы пытаемся ее «упростить». В разных ситуациях делаем по разному, но суть одна – уменьшить пространство поиска.

 

2.1 К примеру оборотносальдавая ведомость за год показывает неправильные цифры. Начинаем уменьшать период, к примеру, по методу дихотомии золотого сечения (режем пополам и смотрим есть ли ошибка). Берем первое полугодие и смотрим, есть в нем ошибка. Если нет, значит ошибка во втором полугодии (лучше проверить это). Потом второе полугодие делим на квартала и т.д. и т.п. – старый проверенный способ.

 

2.2 Другой пример при обмене данными через WEB-сервер в конечную программу попадают неправильные данные. Тут режем по алгоритму:

  1. Запрос формируется в исходной базе
  2. Данные перегоняются по сетке в базу приемник
  3. База приемник получает данные и записывает их

 

Считаем что каждый этап «Черный ящик» со своим входом и выходом. Вот и проверяем эти входы и выходы (в последовательности кому как нравится).

  1. Смотрим в исходной базе, что выдает запрос. Для этого пользуемся отладчиком, консолью запросов, всем чем угодно, но именно в этой базе (что бы отсечь все другие этапы)
  2. Смотрим, как работает web-сервис (сравниваем что ему отдает запрос, как он эти данные преобразовывает, и получаем ли мы на входе в базу приемник то самое что отправилось из базы источника)
  3. Смотрим, как база приемник разбирает полученные данные. Для этого можно создать (сохранить) отдельный файл обмена, и подавать ее раз за разом в качестве исходных данных (тем самым мы опять таки исключаем два других этапа)

 

2.3 Если у нас сложный многотабличный запрос – беспощадно его режем. Любой самый сложный запрос всегда состоит из конечного количества маленьких и легких запросиков, которые очень легко анализировать. Убедившись, что отдельные запросики возвращают «правильные» данные, начинаем потихонечку их склеивать в большой и сложный (аккуратно, поочередно), и каждый раз смотрим – правильный ли результат мы получаем.

 

2.4 Если неправильно работает процедура документа (например проведение), тот тут используем отладчик. Все знают, что к любой конфигурации можно подключится отладчиком. Для этого

  • пользовательском режиме у конфигурации должна стоять опция «Параметры / Системные / Отладка разрешена».
  • запустить ту же самую конфигурацию в режиме конфигурирования и через «Отладка / Подключение» подключится к нужному пользовательскому сеансу.

 

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

 

Подключившись отладчиком, используем точки останова, трассировку, табло, стек вызова, «вычисление выражения» и т.д. и т.п., опять таки «режа» код на возможно мелкие кусочки, содержащие ошибку. Мне кажется, найти ошибку при помощи отладчика гораздо проще, чем теоретически анализируя код.

 

Не думаю, что нужно расписывать все возможности отладчика, поскольку в руководствах пользователя и прочей «официальной литературе» это сделано куда как лучше :)

 

Наверно, бывают ситуации, когда отладчиком пользоваться невозможно. Тогда предлагаю менять код (только всегда предварительно делайте копии). Используйте сообщения, запись в какие-нибудь регистры, файлы. Да и просто убирайте куски кода. Благо мы не врачи – мы можем себе позволить отрезать «руку» и посмотреть «не перестанет ли болеть голова».

 

В общем, главное локализовать ошибку (упростить ее).

 

3. Спасение утопающих

            Нашли ошибку. При ее решении исходим из того, что в 99.9% это ошибка разработчика конфигурации, а не платформы, и исправить ее можно. Более того, решение этой ошибки есть

  • в синтакс-помощнике (среди описания операторов)
  • в пресловутых «желтых книгах»
  • в других конфигурациях (по принципу «как там так и у меня должно быть»)
  • в интернете.

 Очень редко встречаются «новые ошибки». В большинстве случаев это старые ошибки на новый (или не очень) лад. Наверняка кто-то уже сталкивался с этим. Поэтому долго и нудно ищите везде где можете ответ, прежде чем отчаиваться и задавать вопрос кому-нибудь, и вот почему: 

  1. Чем дольше вы ищите, тем лучше запомните этот случай и лучше научитесь работать с источниками.
  2. В процессе поиска вы найдете что-то другое, не относящееся к этому вопросу, но тоже очень полезное.

 Если уж вы отчаялись и решили спросить, то вопрос должен быть информативным. Бессмысленно спрашивать «Почему у меня в СКД не выводится группировка?». Поясните, что из себя представляет схема, какая группировка у вас не выводится. Если программа выдает ошибку – напишите какую ошибку (прямо тот текст, который выдает программа). Ясно формулируйте, что у вас есть и что вы хотите. Чем понятней будет вопрос – тем больше шансов, что на него будет адекватный ответ. Но тут нужно чувствовать меру: вряд ли кто-то будет читать сообщение, состоящее из 1000 строк с описанием всей ситуации «от сотворения мира».

Вопрос должен быть кратким (читаемым) и конкретным, а иначе получится просто заспаменную тему с ехидными замечаниями «о жизни».

 

В общем, прежде чем обратиться за помощью, до последнего старайтесь решить ошибку сами.

 

А тем кто отвечает очень хочется напомнить фразу «Мы все одинаково невежественные, но в разных областях» (Феликс Райчак не помню автора). Если спрашивают – это не значит что тот кто спрашивает глупее, он может быть просто менее опытный в этом вопросе. Хорошо что он пытается учится, и мерзко его за это гнобить. Если не можешь ответить по теме (более чем пустой фразой «гугл найдет все») – лучше промолчать.

 

Заключение.

Много букв получилось (расчувствовался :) ). Не оригинально, достаточно банально и очевидно. Даже, немного стыдно публиковать :) Но как ни странно очень часто сталкиваешься с тем, что эти всем известные истины люди упорно игнорируют.

Или я в чем-то ошибаюсь?

 

ЗЫ. Если текст бесполезный – можно снять публикацию. Во вложении, тот же текст но виде файла WORD (на всякий случай)

ЗЫЗЫ. Исправил обнаруженые ошибки

См. также

Метод Дугласа-Пойкера для эффективного хранения метрик

Математика и алгоритмы Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    1754    stopa85    12    

33

Алгоритм симплекс-метода для решения задачи раскроя

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    4423    user1959478    50    

34

Регулярные выражения на 1С

Математика и алгоритмы Инструментарий разработчика Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

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

1 стартмани

09.06.2023    7464    4    SpaceOfMyHead    17    

56

Модель распределения суммы по базе

Математика и алгоритмы Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    7855    7    kalyaka    11    

44

Изменения формата файлов конфигурации (CF) в 8.3.16

Математика и алгоритмы Платформа 1С v8.3 Бесплатно (free)

Дополнение по формату файлов конфигурации (*.cf) в версии 8.3.16.

16.12.2021    4446    fishca    13    

36

Интересная задача на Yandex cup 2021

Математика и алгоритмы Бесплатно (free)

Мое решение задачи на Yandex cup 2021 (frontend). Лабиринт. JavaScript.

12.10.2021    8840    John_d    73    

46

Механизм анализа данных. Кластеризация.

Математика и алгоритмы Анализ учета Платформа 1С v8.3 Анализ и прогнозирование Бесплатно (free)

Подробный разбор, с примером использования, встроенного механизма кластеризации 1С.

31.08.2021    7806    dusha0020    8    

70
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Infector 199 14.12.12 14:45 Сейчас в теме
Дополню с вашего позволения п.1 касательно платформы 8.2

Полезно выяснить так же наблюдается ли ошибка у пользователя, если тоже самое действие выполняется на другой станции, если нет, то вычищаем содержимое папок в профиле пользователя Windows "Application Data\1C\1C82" и "Local settings\1C\1C82" и с 90% вероятностью побеждаем ошибку.

Если ошибка не зависит от того где пользователь выполняет проблемное действие, то выясняем наблюдается ли она у других пользователей с такими же правами. Если нет, то скорее всего спасет создание для пользователя другой учетной записи. Если да, проверяем тоже самое действие, но с полными правами. Все равно не проходит - у нас действительно ошибка, получилось с полными правами - ищем куда программа завела пользователя и расставляем недостающие права доступа.
Созинов; sheff161; SeiOkami; Zerkon; +4 Ответить
2. Бубузяка 62 14.12.12 14:55 Сейчас в теме
(плюсанул) Доступный язык изложения, четкий алгоритм действий. Начинающим разработчика в печать и на стену.
52. meier8th 05.05.14 13:58 Сейчас в теме
(2) Бубузяка, так и сделаю)))
3. delwish 14.12.12 15:02 Сейчас в теме
В общем, прежде чем обратиться за помощью, до последнего старайтесь решить ошибку сами.

Не всегда правильно. Если выгоднее обратиться за помощью(деньги/время <-> время/деньги), то очевидно это надо делать. Хотя могут быть и исключения. Обучение например.
4. Ягг 495 14.12.12 15:05 Сейчас в теме
(3) delwish, ну конечно все относительно и упирается в ресурсы (поэтому и написал "до последнего", т.е. пока обстаятельства позволяют) :)

Опять же, иногда приходится вообще не искать причину ошибки (нет времени) а просто поставить "костыль". Все зависит от ситуации
5. Ibrogim 1311 14.12.12 15:16 Сейчас в теме
(0) Я бы ещё добавил "Убедиться, что ошибка связанна с текущей базой"
Пример: Стали удалятся товары с сайта. Вскрытие не дало результатов (как и гугление и логирование и т.д.). Выяснилось (случайно), что имеется на сервере тестовая база (копия рабочей) с пустыми товарами, из которой запускается регламентное задание обмена с сайтом.
6. AlexO 135 14.12.12 15:24 Сейчас в теме
(5) Ibrogim,
вы там это... посмотрите, может она (тестовая) сама и напродавала уже чего :)
OStepanych; Natashika; +2 Ответить
7. AlexO 135 14.12.12 15:32 Сейчас в теме
При ее решении исходим из того, что в 99.9% это ошибка разработчика конфигурации, а не платформы

наверное, правильнее так:
При ее решении исходим из того, что
- ошибки платформы можно во внимание не брать вообще - если они и есть, они зафиксированы и всегда можно этот список освежить (берем во внимание более-менее стабильную по сравнению с другими 8.1; 8.2 - если только с натяжкой, и вообще не рассматриваем не-пойми-какую 8.3).
- в 80% это ошибка доработчика конфигурации, а не разработчиков типовых (я бы написал 95% - но, судя сколько ошибок регистрируется, их море разливанное в типовых :) ; однако, не все сталкиваются с ними, и они не все сразу мешают работаь)..
- есть 5% плавающих ошибок (типа использования "мутабельных" значений илип "в данной транзакции уже происходили ошибки"), которые в 1С зафиксировать в принципе невозможно или крайне сложно (проще заглушку поставить).
8. kazkaz 14.12.12 15:34 Сейчас в теме
Я позволю себе немного побрюзжать в стиле граммар-наци.
Если уж речь идет о золотом сечении, то пропорции там явно не 1 к 1.
Приведенный метод поиска ошибка в ОСВ - дихотомия.
Но это досадное обстоятельство нисколько не преуменьшает ценность статьи.
9. Ягг 495 14.12.12 15:37 Сейчас в теме
(8) kazkaz, согласен, может ошибся в названии :)
10. AlexO 135 14.12.12 15:40 Сейчас в теме
(9)
это опять вы вместо "плюсика" в спам мое сообщение отослали? :)
11. KroVladS 34 14.12.12 15:56 Сейчас в теме
(Не поверите, но ситуацию всегда можно ухудшить).

Верю, даже очень.
12. babys 90 14.12.12 16:42 Сейчас в теме
что их не еще не нашли
вот вам и пример :)
13. Ягг 495 14.12.12 18:25 Сейчас в теме
(12) babys, да, виноват :) Но глаз уже "намылился" - не замечаю. Подкоплю немного ошибок - потом все сразу исправлю :)
14. Zerkon 96 17.12.12 09:28 Сейчас в теме
В общем, главное любым способом увидеть эту ошибку своими глазами, или свято поверить, что она есть.


Один из самых главных принципов, как я считаю. К сожалению, пользователям зачастую не хватает умения внятно, четко и конкретно изложить проблему. Хорошо, если ошибка элементарная, типа "комп не включен" или часто встречающаяся. Ее легко узнать по симптомам. А в более сложных случаях надо начинать с того, чтобы самому воочию увидеть ошибку. И зафиксировать способ ее воспроизведения.
Хотя, многое зависит от опыта )) Чем он выше, тем быстрее мы способны решать проблемы, так как в голове уже есть список т.н. "узких мест", где может быть ошибка.
48. Bazyon 05.01.13 00:04 Сейчас в теме
(14) Zerkon,
Хотел поставить минус. Не дали. Ну и ладно.
К сожалению, это не "пользователям зачастую не хватает умения внятно, четко и конкретно изложить проблему".
В моей практике гораздо чаще встречалась ситуация, что "программист" не в состаянии ничего понимать окромя оператора "if". Ну, понятно, что виноват не он а "тупой пользователь", который этого оператора не знает.
-------------
Из моей практики: до 50% ошибок таковыми не являются, а обусловлены крайне низкой квалификацией внедренца в области внедрения и просто низкой квалификацией пользователя. Ни тот, ни другой, не имеют представления, что и почему делает конфигурация.
(а разработчики типовых конфигураций у 1с, как показала практика, очень любят следовать "букве законодательства")
50. Zerkon 96 16.01.13 08:42 Сейчас в теме
(48) Bazyon,
Все зависит от точки зрения )) Я сужу со своей, что, в приницпе, достаточно логично. Заметьте, я ни слова не сказал о низкой квалификации пользователей. У человека может быть огромный опыт практической работы и он может решать большую часть проблем сам. Но, столкнувшись с проблемой, он может не суметь ее четко изложить. Хотя да, с ростом опыта использования программы (в которой случилась ошибка) такое явление обычно сходит на нет.
Хотел поставить минус. Не дали. Ну и ладно.
К сожалению, это не "пользователям зачастую не хватает умения внятно, четко и конкретно изложить проблему".
В моей практике гораздо чаще встречалась ситуация, что "программист" не в состаянии ничего понимать окромя оператора "if". Ну, понятно, что виноват не он а "тупой пользователь", который этого оператора не знает.

Исходя из этого, мне стоит беспокоиться, что Вы считаете мою квалификацию крайне низкой? )
Кстати, здесь
Из моей практики: до 50% ошибок таковыми не являются, а обусловлены крайне низкой квалификацией внедренца в области внедрения и просто низкой квалификацией пользователя

Вы сами себе противоречите. Ошибка она ошибка и есть. Просто причины ее крайне разные.
15. Модератор раздела 17.12.12 10:42 Сейчас в теме
Неплохая статья для начинающих.
>>Берим период год, видим ошибку. Начинаем уменьшать период, к примеру, по методу золотого сечения (режем пополам и смотрим есть ли ошибка). Берем первое полугодие и смотрим, есть ли ошибка. Если нет, значит ошибка во втором полугодии (проверяем это). Потом второе полугодие делим на квартала и т.д. и т.п. – старый проверенный способ.
======
Метод бинарного деления по-другому нужно Использовать.
Если есть ошибка за год и в первом полугодии ошибки нет, второе полугодие не нужно проверять, и так понятно, что ошибка в нем.
Нужно СРАЗУ проверять один из кварталов 2-го полугодия.
Вот в этом случае поиск наиболее эффективен.
Еще с института пользуюсь этим методом.
16. Ягг 495 17.12.12 11:00 Сейчас в теме
(15) artbear, да, наверно так рациональнее. Но просто подумалось о неких "комбинированных" ошибках (конечно не случай ОСВ), когда предположим отсекая "первую половину кода", у нас пропадает ошибка и во второй части кода. А тогда можно потратить очень много времени на поиск того, чего уже нет.
25. AnryMc 849 19.12.12 11:01 Сейчас в теме
(15) artbear,

Метод бинарного деления по-другому нужно Использовать


В народе: "Квадратно-гнездовой метод"
49. Bazyon 05.01.13 00:09 Сейчас в теме
(15) artbear,
Ага. А потом выясняется, что у вас 7.7; слетели индексные файлы; и бинарные итоги по каждому полугодию идут, а сбой в непереданных из одного квартала в другой остатках.
Нет.
Автор прав.
Прежде чем резать второе полугодие, убедитесь, что ошибка внутри него, а не на границе с одним из первых.
Такое, к сожалению, тоже случается.
-------------------------------
Статья немного сумбурная, но в качестве черновика инструкции подойдёт.
17. OVladius 32 17.12.12 13:00 Сейчас в теме
Статья отличная. Иногда было такое что я пол дня искал решение ошибки которую нашел один пользователь, потом как оказалось ошибки и не было.
Автор а почему у тебя везде слово "Неправильно" пишется "Не правильно"? Тема про ошибки с ошибками :D
18. Ягг 495 17.12.12 13:03 Сейчас в теме
(17) OVladius, Если честно WORD не ругается, а я ему верил :)
По этому поводу я уже винился - вот и решил подкапить ошибки, потом сразу все исправить :)
19. iceflash 4 17.12.12 15:29 Сейчас в теме
Только что было просмотров - 404 =) символично=)
20. Yashazz 4709 18.12.12 19:42 Сейчас в теме
Такие вещи становятся очевидны, только когда все шишки собраны собственным темечком, а все минные поля проползены собственным брюхом. А для новичков - что ж, если кому поможет, будет здорово, но опыт моих наблюдений говорит, что хоть новичку в рамочку такие дела напиши и перед носом повесь, а всё одно игнорирует. Авось не у всех так...

Хорошая статья, спасибо.
Михаська; 1cmax; +2 Ответить
21. 1cmax 152 19.12.12 02:32 Сейчас в теме
(20) Yashazz, Именно, читаешь и видишь, что каждый разумный программист доходит до этого в основном сам
22. Ягг 495 19.12.12 07:09 Сейчас в теме
(21) 1cmax, если честно, я вообще сомневаюсь что можно учится на чужих ошибках (хотя пытаться стоит).

Хорошо, если хоть на своих получается
27. 1cmax 152 19.12.12 14:39 Сейчас в теме
(22) Можно, например, читая Инфостарт ))
qwerty1973; +1 Ответить
29. Збянтэжаны Саўка 245 22.12.12 18:11 Сейчас в теме
(22) ну да, и на своих ошибках учится можно, конечно, но, смотря чему )
свои ошибки у всех бывают в разном количестве )
а поначалу при обучении можно ведь завернуть и не за тот угол ... )
23. catena 110 19.12.12 10:16 Сейчас в теме
вопрос должен быть информативным. Бессмысленно спрашивать «Почему у меня в СКД не выводится группировка?». Поясните, что из себя представляет схема, какая группировка у вас не выводится. Если программа выдает ошибку – напишите какую ошибку (прямо тот текст, который выдает программа). Ясно формулируйте, что у вас есть и что вы хотите. Чем понятней будет вопрос – тем больше шансов, что на него будет адекватный ответ. Но тут нужно чувствовать меру: вряд ли кто-то будет читать сообщение, состоящее из 1000 строк с описанием всей ситуации «от сотворения мира».

Вот это не помешало бы втолковать и пользователям.
24. AnryMc 849 19.12.12 10:58 Сейчас в теме
(0) Очень мне нравиться фраза:

Ученого ценят за удачи, а инженера за отсутствие неудач

К сожалению автора не помню (возможно, Гурам Панджикидзе)

Что совсем не согласуется с вашим 1-м абзацем.
26. Ягг 495 19.12.12 11:04 Сейчас в теме
(24) AnryMc, по моему ошибка это еше не неудача. Вот если ошибку не можешь исправить - вот это уже неудача :)

Опять же: если панически бояться ошибок, просто остановишся в развитии.
Natashika; V.Nikonov; Збянтэжаны Саўка; +3 Ответить
28. Программулькин 301 21.12.12 03:21 Сейчас в теме
норм..ко всему этому сам дошел... интуитивно это понимал и осознавал.. а ты вот взял и по полочкам всё разложил и разжевал.+
30. Boudybuilder 35 24.12.12 04:00 Сейчас в теме
Хорошая статья! Автору респект.
31. e-ilyich 4 24.12.12 06:41 Сейчас в теме
32. DrAku1a 1679 24.12.12 09:51 Сейчас в теме
(0)
«Мы все одинаково невежественные, но в разных областях» (не помню автора)

Феликс Райчак "Все мы невежды, но в разных специальностях.", источник (найден через яндекс-поиск).

не возможно

Насколько я знаю, "невозможно" пишется слитно. раздельно пишется "Не представляется возможным".
33. Ягг 495 24.12.12 10:09 Сейчас в теме
(32) DrAku1a, учту, исправлю :)
34. DrAku1a 1679 24.12.12 10:20 Сейчас в теме
Текст вовсе не бесполезен. Наоборот - это азы, которые надо знать!
Еще один момент:
к примеру, по методу золотого сечения (режем пополам и смотрим есть ли ошибка)

Тут Вы путаете понятия "Золотое сечение" и "Дихотомия".
К слову, описанный алгоритм разделения - это по сути дедуктивный метод Шерлока Холмса.
35. V.Nikonov 120 24.12.12 18:55 Сейчас в теме
Вообще-то, задача локализации ошибки не всегда решается фиксацией времени ошибки.
Ошибки то разные бывают!
Есть варианты локализации по номенклатуре... Например при анализе прибыльности.
Возможно в некоторых случаях удобнее будет локализовать по Контрагентам, Организациям и т.д.
Главное, что бы с минимумом трудозатрат вычислить место появления!
38. Ягг 495 25.12.12 07:14 Сейчас в теме
(35) V.Nikonov, конечно не только во время все упирается - это я как пример приводил.
39. V.Nikonov 120 25.12.12 09:32 Сейчас в теме
(38) Я думаю, что с учетом обсуждения (и замечаний), есть смысл опубликовать новую редакцию...?
40. Ягг 495 25.12.12 09:43 Сейчас в теме
(39) V.Nikonov, ошибки и замечания я исправил.
Описать все случаи и нюансы - это будут "тома", и, опять же, для этого есть комментарии. Возможно, какие-то отдельные моменты требуют отдельных статей (если это будет интересно). Я, думаю, оставлю пока как есть - основные мысли донесены, и уже хорошо. :)
42. V.Nikonov 120 25.12.12 09:56 Сейчас в теме
(40) Я не вижу особой необходимости оформлять правки (зачеркнутые фразы и т.п.).
Подробности поиска разумеется не стоит расписывать слишком подробно (вариантов ту бесконечное число), но намёки на самые распространенные направления движения... очень даже полезно описать.
36. V.Nikonov 120 24.12.12 19:00 Сейчас в теме
И если удаётся локализовать Документ приводящий к ошибке, то 60-70% случаев, это не полностью заполненные данные, в т.ч. реквизиты использованных элементов справочников.
Хотя фантазия Юзеров безгранична! Они почти всегда умудряются найти "обходы системы защиты от дурака".
37. lushka 6 25.12.12 06:11 Сейчас в теме
Очень грамотная и полезная статья! Автору респект
41. V.Nikonov 120 25.12.12 09:51 Сейчас в теме
локализовать ошибку (упростить ее).

Слово УПРОСТИТЬ не совсем корректно. Точнее было бы "максимально конкретизировать". Ведь ошибка от вычисления места образования не становится проще или сложнее...
43. Ягг 495 25.12.12 10:03 Сейчас в теме
(41) V.Nikonov, как мне кажется (если есть желание покапаться :) ), "сложнее" или "проще" (в том числе "УПРОСТИТЬ") - это оценочные понятия. "Больщое и страшное" (то что нельзя окинуть одним взглядом) - обычно воспринимается как более сложное, чем "маленькое и симпотичное". Поэтому, думаю, чем меньше будет "область проблемы", тем проше нам будет казаться сама возможность ее решит. Мы будем воспринимать ее как более "простую". Сразу скажу: изменится не проблема, изменится ее восприятие. Отсюда и слово "УПРОСТИТЬ".

Кроме того, "УПРОСТИТЬ", сдается мне, звучит (с сохранением смысла) несколько лучше и понятнее, чем "максимально конкретизировать" :)
44. V.Nikonov 120 25.12.12 13:01 Сейчас в теме
(43) В таком случае я предпочел бы добавить слово "решение". т.е. (упростить её решение)
или вариант упростить ее устранение
45. Ягг 495 25.12.12 13:14 Сейчас в теме
(44) V.Nikonov, хорошо, я буду знать ваши предпочтения :)
46. IgorXml 724 29.12.12 09:51 Сейчас в теме
Поставил плюс. Автору спасибо. Для меня новой информации меньше 1%, но прочитал с интересом.
47. CaSH_2004 372 01.01.13 18:29 Сейчас в теме
.Всех с Новым годом и Новой эрой! Странно что ничего не сказано про ошибки отображаемых данных которые решаются путем тестирования базы как в конфигураторе так и встроенной утилитой от 1С. У меня бывали случаи что в отчете показываются остатки на начало, а в базе нет проведенных документов. путем вашей дихотомии я тогда потратил пол дня излазив всю базу и перепроведя и проверив все что можно было, а оказалось база повредилась
51. ildarovich 7850 05.05.14 13:10 Сейчас в теме
Инструментом для реализации пункта 2.1 данной статьи может быть отчет "Компаратор оборотов в информационных базах".
53. kinazarov 16.07.14 14:31 Сейчас в теме
От себя добавлю вот что:
Когда ищешь что-то в интернете по этой ошибке, то всегда сохранять в онлайновом хранилище (или любым другим способом, который выживет после форс-мажора) вообще всю хоть сколько-нибудь осмысленную и толковую информацию, даже не обязательно имеющую отношение к этой конкретной ошибке. Я для хранения использую свой гугл-аккаунт, еще один хороший вариант - Evernote, но мне он не слишком подходит.
Обязательно правильно (понятно для себя) подписывать закладки.
В дальнейшем, скажем раз в месяц, нужно разгребать накопленные закладки по категориям, которые тоже сугубо индивидуальны, у меня, к примеру, это "1С общая", "1С язык 8.2", "1С язык 8.1", "1С запросы", "1С - SQL", "1С - внешние данные" и т.д.

Несколько раз такая импровизированная база знаний меня очень выручала, сэкономив в итоге кучу времени.

Не повредит и плагин для чистки битых ссылок.
54. SunShinne 633 08.08.16 12:02 Сейчас в теме
55. ofshadows 06.07.17 14:37 Сейчас в теме
Трудность работы с программистом заключается в том, что вы не можете понять что он делает до тех пор пока не стало слишком поздно.
— Seymour Cray
56. acanta 25.12.18 22:19 Сейчас в теме
Трудность работы с программистом заключается в том, что вы не можете понять что он делает до тех пор пока не стало слишком поздно.
— Seymour Cray


Да, это сложно.
Оставьте свое сообщение