Часто в работе с платформой 1С 7.7 мы сталкиваемся с ситуациями, которые кажутся парадоксальными: реквизит в дереве метаданных Конфигуратора отображается, мы можем добавлять его на формы, но при попытке сохранить данные в режиме Предприятия, они исчезают после закрытия документа. Давайте разберемся, как возникают такие проблемы и как их устранить.
Для начала вспомним, как 1С 7.7 хранит структуру базы данных. Она опирается на три «кита»:
1Cv7.md — файл метаданных, содержащий описание логической структуры (справочники, документы, их реквизиты).1Cv7.dd — словарь данных, который связывает логические объекты МД с физическими именами таблиц и полей в формате DBF.DBF-файлы — физическое хранилище данных.Проблема «вижу реквизит, но он не сохраняется» возникает, когда между этими тремя компонентами нарушается связь. Чаще всего это происходит из-за подмены 1Cv7.md на версию от другой конфигурации без выполнения процедуры реструктуризации или при ручном вмешательстве в файлы DBF.
Если вы видите реквизит в конфигураторе, но при сохранении документа он сбрасывается, первое, что нужно сделать — это проверить целостность структуры. Рассмотрим метод проверки:
Тестирование и исправление ИБ (ТиИ). Если платформа выдает ошибки типа Словарь данных не соответствует конфигурации или Не сходится количество полей, значит, физическая таблица не совпадает с тем, что ожидает МД-файл.1Cv7.md и 1Cv7.dd. Если МД значительно новее словаря, скорее всего, база была обновлена «грязным» копированием файла метаданных.Если автоматические средства не справляются, нам придется применить «хирургический» подход. Разберем по шагам, как привести базу в чувство:
1Cv7.dd. Для этого переименуйте существующий файл (например, в 1Cv7.dd.old) и запустите конфигуратор. Если платформа выдает ошибку unrecognized field name, это прямое доказательство того, что в базе есть поле, которого нет в МД, или наоборот — поле прописано в МД, но отсутствует в физическом DBF.SDBF или аналоги. С их помощью откройте проблемную таблицу DBF.МД, либо тип данных (длина или точность) не соответствует заданному.DBF-файла (переименуйте поле или добавьте недостающее) так, чтобы оно полностью соответствовало определению в МД.При работе с файловой структурой 1С 7.7 крайне важно соблюдать осторожность:
1SCONST). Это ведет к непредсказуемым ошибкам и невозможности нормального тестирования базы.ТиИ: Если Тестирование и исправление находит ошибки, база требует незамедлительного вмешательства программиста.Для исправления ситуации выполните следующее:
Конфигуратора выгрузите структуру метаданных и попробуйте сформировать корректный DD-файл.DBF приведите физическую структуру таблицы (которая «не видит» реквизит) в полное соответствие с данными из DD-файла.Конфигуратор. Если все шаги выполнены верно, платформа «увидит» правильную структуру, и реквизит начнет корректно сохраняться.Помните, что такие действия — это крайняя мера. Всегда старайтесь использовать штатные механизмы Конфигуратора и вовремя обновлять базу данных, не допуская критического разрыва между МД и словарём данных.