скрытые "лишние" поля таблицы в MS SQL и PG в документе которых нет в конфигураторе
После установки расширения в БП 3.0 на 8.3.14 (с добавлением 5 реквизитов документа) появились в SQL в структуре базы в документе "лишних" 5 полей (кроме тех, что в расширении), которых быть не должно. Как появились - не уловили момент. На тестовой копии, те же манипуляции таких полей не создали.
Эти поля не имеют синонимов и сопоставлений с конфигурацией или расширением. НО записать новый или перезаписать старый документ не дают, т.к. не допускают свойство NULL. Реструктуризация добавление/удаление других реквизитов, удаление расширений ситуацию не меняют. Выгрузка-загрузка dt ситуацию не меняют.
В итоге - есть две базы с идентичными cf (уже без расширений), но отличающиеся количеством полей в документе в базе (но не в конфигураторе)! Загрузка конфигураций из "хорошей" базы "лишние поля в SQL не убрала. Т.е. конфигурация этих "лишних" полей не видит (как кстати не видит всех полей расширения). Расширение этих "лишних" полей тоже не видит. Эти поля невидимы для Конфигуратора вообще. Но при перезаписи любого документа (этого вида) SDBL не может затолкнуть туда NULL. Интересно? мне очень.
Снижение релиза до 8.3.12 и повторения выгрузки/загрузки, тестирования с исправлением базы, загрузки конфигурации без объединения ничего не дало.
Есть мысль, что это результаты "оптимизации" и ускорения процедуры Реструктуризации базы от 1С реализованной в 11 релизе платформы.
А что "помогло"? В "плохой базе" создание узла в полном плане обмена и выгрузка всех документов. В новом узле структура нормальная и "лишних" полей нет - документы записываются. Но нам нужна текущая база с всеми текущими данными настроек сдачи отчётности и всеми данными, а в новый узел не переезжают некоторые доработанные документы, справочники и настройки.
Вопрос открыт КАК СДЕЛАТЬ ПОЛНУЮ РЕСТРУКТУРИЗАЦИЮ с удалением "лишних" колонок?
PS руками и средствами SQL их удалить можно, но при записи документа SDBL их требует (!)
Эти поля не имеют синонимов и сопоставлений с конфигурацией или расширением. НО записать новый или перезаписать старый документ не дают, т.к. не допускают свойство NULL. Реструктуризация добавление/удаление других реквизитов, удаление расширений ситуацию не меняют. Выгрузка-загрузка dt ситуацию не меняют.
В итоге - есть две базы с идентичными cf (уже без расширений), но отличающиеся количеством полей в документе в базе (но не в конфигураторе)! Загрузка конфигураций из "хорошей" базы "лишние поля в SQL не убрала. Т.е. конфигурация этих "лишних" полей не видит (как кстати не видит всех полей расширения). Расширение этих "лишних" полей тоже не видит. Эти поля невидимы для Конфигуратора вообще. Но при перезаписи любого документа (этого вида) SDBL не может затолкнуть туда NULL. Интересно? мне очень.
Снижение релиза до 8.3.12 и повторения выгрузки/загрузки, тестирования с исправлением базы, загрузки конфигурации без объединения ничего не дало.
Есть мысль, что это результаты "оптимизации" и ускорения процедуры Реструктуризации базы от 1С реализованной в 11 релизе платформы.
А что "помогло"? В "плохой базе" создание узла в полном плане обмена и выгрузка всех документов. В новом узле структура нормальная и "лишних" полей нет - документы записываются. Но нам нужна текущая база с всеми текущими данными настроек сдачи отчётности и всеми данными, а в новый узел не переезжают некоторые доработанные документы, справочники и настройки.
Вопрос открыт КАК СДЕЛАТЬ ПОЛНУЮ РЕСТРУКТУРИЗАЦИЮ с удалением "лишних" колонок?
PS руками и средствами SQL их удалить можно, но при записи документа SDBL их требует (!)
Прикрепленные файлы:
![](/upload/forum/upload/4de/4de551791bdf5378ff2a2e89ac56e4da.jpg)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(12) в SQL удалял эти поля, а в конфигураторе добавлял новые реквизиты. Всё отрабатывает, новые поля, добавленные в конфигураторе - появляются, удалённые в структуре пропадают. Но при записи документа опять ошибка SDBL что-то типа отсутствует поле то самое "лишнее" которое я удалил в SQL руками.
(18) 1С один единственный раз (не замеченный мной) создала эти поля. Вероятно это было сразу после установки расширения. Теперь, эти поля не видятся, не удаляются из конфигуратора из основной конфигурации и из расширения и при удалении расширения и при удалении всех реквизитов документа которые можно удалить из конфигуратора. При удалении руками в SQL эти поля не восстанавливаются больше. Но при записи документа возникает ошибка SDBL в которой пишется, что невозможно найти первое из удалённых полей и запись не проходит. Уже эта ошибка, не лечится ни реструктуризациями не загрузкой конфы из базы, в которой таких полей вообще никогда не было.
(12) Именно в такой последовательности делали. Поля лишние удалить можно. И после этого в конфигураторе добавлять, удалять, и загружать cf из хорошей базы делали. Но при записи документа SDBL требует первое из этих удалённых полей. т.е. Конфа о них уже не знает, отладчик проблем не видит. А запись не проходит из-за ошибки SDBL, - не найдено поле "_Fld..."первое из удалённых. Где записано что это поле вообще было - я не нашёл, но это точно не в cf-нике.
(8)в SQL удалял эти "лишние" поля, а в конфигураторе добавлял новые реквизиты. Всё отрабатывает, новые поля, добавленные в конфигураторе - появляются, удалённые в структуре пропадают. Но при записи документа опять ошибка SDBL что-то типа отсутствует поле то самое "лишнее" которое я удалил в SQL руками.
Т.е. с "лишними" полями SDBL ругается, что они не могут принимать NULL, а без них, что отсутствует поле первое из них. (ругается по имени поля в SQL)
Т.е. с "лишними" полями SDBL ругается, что они не могут принимать NULL, а без них, что отсутствует поле первое из них. (ругается по имени поля в SQL)
(10) в SQL удалял эти "лишние" поля. Но при записи документа опять ошибка SDBL что-то типа отсутствует поле - то самое первое "лишнее" которое я удалил в SQL руками.
Т.е. с "лишними" полями SDBL ругается, что они не могут принимать NULL, а без них - SDBL ругается что отсутствует поле первое из них. (ругается по имени поля в SQL). Отладчик и язык 1С не ругаются для них всё ок.
Т.е. с "лишними" полями SDBL ругается, что они не могут принимать NULL, а без них - SDBL ругается что отсутствует поле первое из них. (ругается по имени поля в SQL). Отладчик и язык 1С не ругаются для них всё ок.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот