Думаю, что каждый из программистов "семерочников" хоть раз сталкивался с такой ошибкой. Она может возникать либо во время "объединения конфигураций", либо во время "тестирования и исправления ИБ".
Но далеко не каждый пытался "починить" конфигурацию. В таких случаях обычно или лихорадочно ищут бэкапы, или же (более сложный способ) прибегают к помощи утилиты GComp, которая "по легенде" может вылечить МД, если его просто "разобрать", а потом "собрать", использую функции программы. Действительно, это так. Но не во всех случаях... Как раз такой случай и хотелось бы разобрать в данной статье.
Итак, исходные данные:
- "сломанная конфигурация";
- утилита MDDiags
- Far Manager и плагин DocFile Browser к нему. При помощи этого плагина, можно заходить внутрь МД и работать с его объектами.
Так как Конфигуратор даже отказывается отображать эту "неисправимую ошибку", мы запускаем MDDiags для её или их выявления.
После запуска утилиты, выбираем нужную конфигурацию, далее все настройки по умолчанию...запускаем, анализируем, получаем результат.
У Вас могут быть и другие ошибки, но думаю, что и с ними Вы сможете разобраться, когда будет общее понимание того, как найти ошибку и каким образом её исправить.
1. Ошибка >(\\Journal)
Утилита ясно дала понять, что ошибка наблюдается для 2-х объектов "\\Journal\Journal_Number212" и "\\Journal\Journal_Number860". Теперь идем в Far и смотрим там на объекты.
Видим здесь множество объектов и один файл "Container.Contents". В нем хранятся описатели этих самых объектов. После внимательного изучения содержимого файла, мы понимаем, что там нет описателей для 2-х наших объектов.
Добавляем описатели, как показано на рисунке.
Проблема решена.
2. Ошибка ДОКУМЕНТ.ПриходнаяНакладная (\\TypedText\UserHelp_Number434\Container.Contents)
Идем снова в МД по указанному пути. Раскрываем файл "Container.Contents" и смотрим внимательно на его содержимое.
Сразу же в глаза бросаются странные слова Cgntainer, Contentq, Prmgram. Все верно, это неправильно написанные идентификаторы. Не трудно догадаться, как должно быть верно (если трудно - идем в соседнюю ветку, открываем такой же файл "Container.Contents" и смотрим, как должно быть написано).
3. Ошибка СПРАВОЧНИК.ТиповыеОперации (\\Subconto\Subconto_Number5870\WorkBook\Dialog Stream)
Открываем файл по указанному пути и внимательно смотрим... Все параметры должны быть заключены в кавычки. У одного из параметров вместо "кавычки" стоит "пробел" - исправляем (такая ошибка может возникать, когда в описании одного из элементов объекта (поля, кнопки, списка значений и т.д.) стоит одинарная или двойная кавычка, либо какой-нибудь из "спецсимволов").
Снова запускаем MDDiags и видим, что все предыдущие ошибки исчезли, но появилась другая ошибка.
Вот тут пора обратиться к утилите GComp и проверить "легенду"...
Запускаем утилиту, выбираем наш поломанный (пока еще) МД, и папку, куда следует положить разобранную по объектам конфигурацию, далее все галки по умолчанию, единственное что - устанавливаем галку "удалять пустые шаблоны таблиц" на вкладке "Общие параметры", нажимаем "Декомпилировать".
Затем, не мудрствуя лукаво, переходим на вкладку "компиляция", устанавливаем в качестве исходного каталога тот, в который только что разобрали конфигурацию и указываем путь к новому МД.
Утилита все благополучно соберет.
Теперь нам остается лишь через Far Manager подменить соответствующий файл внутри "поломанного" МД на такой же из "только что собранного" (\\Subconto\Subconto_Number5870\WorkBook\Dialog Stream).
Проверяем еще раз конфигурацию при помощи MDDiags.
Вроде бы все ОК. Теперь заходим в конфигуратор и делаем "тестирование и исправление ИБ", чтобы убедиться, что ошибок больше нет.
На этом всё. Разрешите откланяться. И да пребудет с вами Сила!)
P.S. Отдельное спасибо разработчикам утилит, используемых в примере - они нам всем так помогают жить...