Лечим ошибку формата потока
Всем привет!
Этой заметкой я хочу положить начало небольшому разделу, который будет посвящен разным интересным штукам из 1С. Опытным и прожженым одинэсникам, скорее всего, это все уже давно знакомо. А может, наоборот, о некоторых вещах они тоже узнают впервые (часто сталкиваюсь с тем, что какие-то достаточно очевидные и лежащие на поверхности нюансы не знакомы гуру той или иной сферы). Но все же большей частью эта информация пригодится тем, кто только начинает осваивать мир желтой иконки.
Итак, сегодня мы поговорим про частный случай довольно страшной ошибки и как бороться с этим хозяйством. В качестве объекта для опытов у нас выступает Бухгалтерия Государственного Учреждения 1.0.13, которая редактируется с сохранением поддержки, запущена она на платформе 8.2.18. Завязка такая: новый клиент, есть ненулевая вероятность изменений в конфигурации и необходимо выяснить, какие именно изменения внесены, если они внесены. Открываем конфигуратор, запускаем сравнение рабочей конфигурации с конфигурацией поставщика и довольно скоро получаем такую "красоту":
Раскрываем ее и внутри видим кошмар любого юзера и спеца - ошибка формата потока:
Естественно, первым делом начинаю тестировать базу. Однако, ни раздел "Тестирование и исправление", ни chdbfl.exe в исправлении ошибки не помогают. Без особой надежды пробую очистить кэш и запустить базу на другой машине. В соответствии с ожиданиями, косяк вылезает снова и снова. Ну чтож, призовем на помощь всезнающий гугл. Отличная статья на тему вышеуказанной ошибки есть у Павла Гилева. Внимательно ее изучив, нахожу почти в самом конце описание и моего случая: "конфигуратор открывается, но при открытии объекта 1С падает". Действительно, сравнение конфигураций и есть последовательное открытие всех подряд объектов. Проблема в том, что в момент падения в строке состояния объект, который обрабатывался не виден.
Можно "прощелкать" все объекты, но их реально много и проверка может занять часы, а то и дни. Попробуем облегчить себе жизнь. Зайдем в меню конфигурация и там найдем пункт "Выгрузить файлы конфигурации".
Внутри живет чудесная обработка, которая позволяет выгружать как объекты целиком, так и отбирать их по разделам или выгружать отдельные их части (формы, модули, макеты и т.п.).
Собственно, последовательно пробуем выгрузить объекты находим проблемный участок: несмотря на то, что в исходной ошибке идет отсылка к документу он здесь понимается широко. В моем случае поврежденными оказались некоторые неиспользуемые формы отчетов. Именно невостребованность и стала причиной того, что ошибка никак не проявляла себя при работе пользователей, но немедленно вылезла при сравнении конфигураций. Решением стало удаление форм, после чего оставшаяся часть конфигурации прекрасно обновилась на типовую.