1С:Предприятие 8.3 (8.3.13.1644) 1С:ERP Управление предприятием 2 (2.4.6.188)
СУБД PostgreSQL
Все мы знаем, что возможности расширений на данный момент позволяют создавать собственные объекты. Но где они хранятся, и есть ли вероятность их потери?
К примеру, необходимо "натащить" поверх рабочей системы небольшую систему по учету документов (Собственные РС, Справочники, Перечисления, Отчеты и Обработки + некоторая часть заимственных форм типовых объектов, такие как Физ лица, Сотрудники и т.п).
При отключении расширения, или его удаления, что будет со всеми созданными объектами расширения?
где почитать где расширение хранит собственные объекты?
(12) поэкспериментировал на том, что есть сейчас у меня, 8.3.14, расширение содержит данные только самих объектов расширения, ничего в объектах конфигурации расширение не затрагивает, все действия через интерфейс предприятия (не через конфигуратор)
1. появилось предупреждение что можно потерять функциональность при отключении или данные при удалении, это радует
2. при отключении - отключил, погонял базу, включил - все поднялось, ничего не потеряно
3. при удалении - честно написало список объектов, что будут удалены, согласился, расширение удалено, для продолжения работы требуется перезапуск. согласился - открывается база, расширение отсутствует как класс
далее из неприятного
1. заявленная фишка с сохранением данных при удалении расширения не работает, увы, все данные были утеряны, очевидно при удалении расширения удаляются и его таблицы вместе с данными
2. после удаления расширения, подключить его через интерфейс предприятия не удается, ругается на что угодно, на режим совместимости, на неразрешенные ссылки и т.д.... подключить обратно удалось только через конфигруратор, где все прошло как по маслу
3. при отключении расширения словил "забавный глюк" - расширение отключено, но подсистема расширения осталась и все объекты расширения доступны
в моем сеансе при работе с расширением ничего сделать нельзя, пишет что объект недоступен, но в другом сеансе все продолжает работать и данные можно вводить и сохранять - НО при перезапуске того другого сеанса ничего нового не сохраняется, что логично, расширение то отключено, но не логично - почему дает тогда продолжить с ним работу... думаю это из-за тог, что база у меня файловая, проверять на серверной лень, просто приму как данность, что отключать расширение надо выгнав из базы всех пользователей
итого
- отключить безболезненно можно, включив обратно все восстановится
- удалить по простому нельзя - все данные будут потеряны, остается вариант что использовался и до этого, удаление с предварительным переносом данных и последующим их восстановление через обмен или другим способом
Если расширение добавляет собственный справочник, то для него создаётся новая таблица в базе данных. В этом случае всё просто и очевидно.
Сложнее обстоят дела, когда расширение модифицирует уже существующую структуру данных. Если расширение добавляет собственный реквизит к справочнику прикладного решения, то для этого справочника создаётся отдельная таблица с новой структурой (с дополнительной колонкой для нового реквизита). Будем называть её расширенная таблица. В неё переносятся данные из старой таблицы справочника. В дальнейшем все обращения к этому справочнику будут переадресовываться к расширенной таблице.
Независимо от количества расширений, модифицирующих этот справочник, расширенная таблица будет всегда одна. Её структура будет содержать изменения, добавленные всеми расширениями.
(1) Данные хранятся в БД в отдельных таблицах. Пользуемся уже около года, полет нормальный, ничего не теряется.
При удалении расширения - данные удалятся.
При отключении расширения - данные останутся, но будут недоступны, пока не включите обратно.
Если расширение перестает подключаться по какой-то причине - данные останутся, но будут недоступны, пока не исправите причину.
Если расширение добавляет собственный справочник, то для него создаётся новая таблица в базе данных. В этом случае всё просто и очевидно.
Сложнее обстоят дела, когда расширение модифицирует уже существующую структуру данных. Если расширение добавляет собственный реквизит к справочнику прикладного решения, то для этого справочника создаётся отдельная таблица с новой структурой (с дополнительной колонкой для нового реквизита). Будем называть её расширенная таблица. В неё переносятся данные из старой таблицы справочника. В дальнейшем все обращения к этому справочнику будут переадресовываться к расширенной таблице.
Независимо от количества расширений, модифицирующих этот справочник, расширенная таблица будет всегда одна. Её структура будет содержать изменения, добавленные всеми расширениями.
(16) В (3) бросили ссылку на видео про хранение данных, все как вы и сказали, кроме
Независимо от количества расширений, модифицирующих этот справочник, расширенная таблица будет всегда одна. Её структура будет содержать изменения, добавленные всеми расширениями.
(1) Данные хранятся в БД в отдельных таблицах. Пользуемся уже около года, полет нормальный, ничего не теряется.
При удалении расширения - данные удалятся.
При отключении расширения - данные останутся, но будут недоступны, пока не включите обратно.
Если расширение перестает подключаться по какой-то причине - данные останутся, но будут недоступны, пока не исправите причину.
В СУБД PostgreSQL появляются новые таблицы, при подключении расширения.
При удалении расширения, теоретически, таблицы не должны удаляться на PostgreSQL (или MS SQL)
Я пока не доверяю расширениям, при создании объектов (справочники, рс, документы и т.д.), думаю - возможна потеря данных.
(2) (3) Я тоже опасаюсь этого, но факт подключения расширения в 10+ баз подкупает, уж очень не хочется создавать руками все объекты каждый раз.Но и возможность потери данных и их последующее восстановление останавливает.
(4)
А вдруг, при повторном подключении расширения на сервере баз данных будут генериться таблицы с новыми именами?
Т.е. восстановить будет сложно.
Думаю, пока безопасный способ - старый, снимать с поддержки Конфигурацию частично.
Всё зависит от платформы 1С. В 8.3.14, возможно, всё проверено и исправлено.
Т.е. можно создавать новые объекты конфигурации без страха потери данных.
Я бы тоже не доверила расширения хранить данных т.к. были случае, что после очередного обновления, расширение удалялось. Так что механизм хороший для каких нибудь косметических изменений, отчетов, обработок, но для хранения данных еще сыроват
Не подскажу с какой версии платформы это стало. Но раньше при отключение расширения, таблицы удалялись и данные безвозвратно терялись. Перед обновлением делали копии данных и потом переносили, если расширение отваливалось.
Теперь при удаление расширения, добавленные объекты не удаляются. Но и один нюанс теперь есть, если добавить реквизит к объекту основной конфигурации и отключить расширение, то работать с таким объектом нельзя будет, пока либо обратно не подключат расширение или же не удалят непосредственно реквизиты добавленные в расширении.
(5)Наблюдали следующий глюк:
две ИБ одинакового релиза 2.4.6.188,
на одной и той же платформе - 8.3.13.1644
у обеих баз режим совместимости "Версия 8.3.12".
Создаем собственный реквизит, добавляем на форму. В одной базе он появляется и через консоль запросов виден, в другой его нет как на форме, так и в консоле запросов нашего реквизита тоже не наблюдаем.
Победить так и не удалось.
6.
VictorRGB2
1406.03.19 10:32 Сейчас в теме+0.18 $m
при подключении расширения создаются новые таблицы БД, хранящие данные самого расширения, исходя из этого есть два варианта поведения системы в зависимости от действий с расширением.
все, что создано в расширении при удалении:
- в объектах конфигурации - будет потеряно
- в объектах расширения - будет сохранено
для восстановления объектов расширения потребуется установить или удаленное расширение или новое в точности повторяющее функционал удаленного, включая имена объектов и реквизитов
все, что создано в расширении при отключении:
- в объектах конфигурации - потеряно не будет, но и отображение также не будет, вместо этого увидите <Объект из отключенного расширения>
- в объектах расширения - будет сохранено
для полного восстановление достаточно снова включить расширение
актуально для версии платформы 8.3.13 и выше
для платформ ниже, как написали постом выше, при отключении\удалении расширения данные будут полностью потеряны
(9) нет подобных сообщений, ни при отключении, ни при удалении
поэтому все на свой страх и риск ...
уже в 8.3.14 при отключении расширения и последующем его включении я лично проблем не наблюдал, все корректно восстанавливалось, но именно при отключении, а удалять не пробовал, самому страшно ))
(11) ну такое себе) хочется получить задокументированное поведение, а не случайное поведение, от которого потом можно будет спастись загрузкой из бэкапа)
(12) поэкспериментировал на том, что есть сейчас у меня, 8.3.14, расширение содержит данные только самих объектов расширения, ничего в объектах конфигурации расширение не затрагивает, все действия через интерфейс предприятия (не через конфигуратор)
1. появилось предупреждение что можно потерять функциональность при отключении или данные при удалении, это радует
2. при отключении - отключил, погонял базу, включил - все поднялось, ничего не потеряно
3. при удалении - честно написало список объектов, что будут удалены, согласился, расширение удалено, для продолжения работы требуется перезапуск. согласился - открывается база, расширение отсутствует как класс
далее из неприятного
1. заявленная фишка с сохранением данных при удалении расширения не работает, увы, все данные были утеряны, очевидно при удалении расширения удаляются и его таблицы вместе с данными
2. после удаления расширения, подключить его через интерфейс предприятия не удается, ругается на что угодно, на режим совместимости, на неразрешенные ссылки и т.д.... подключить обратно удалось только через конфигруратор, где все прошло как по маслу
3. при отключении расширения словил "забавный глюк" - расширение отключено, но подсистема расширения осталась и все объекты расширения доступны
в моем сеансе при работе с расширением ничего сделать нельзя, пишет что объект недоступен, но в другом сеансе все продолжает работать и данные можно вводить и сохранять - НО при перезапуске того другого сеанса ничего нового не сохраняется, что логично, расширение то отключено, но не логично - почему дает тогда продолжить с ним работу... думаю это из-за тог, что база у меня файловая, проверять на серверной лень, просто приму как данность, что отключать расширение надо выгнав из базы всех пользователей
итого
- отключить безболезненно можно, включив обратно все восстановится
- удалить по простому нельзя - все данные будут потеряны, остается вариант что использовался и до этого, удаление с предварительным переносом данных и последующим их восстановление через обмен или другим способом
(19)Согласитесь, расширение с собственными объектами разрабатывается для нужных вещей, потом удалять его не логично. Не зря ввели разделение по типам расширения.
более того, своим клиентам всегда и говорим об этом и прописываем в сопроводительной документации - "Ответственность за сохранность данных несет пользователь. Все работы по восстановлению удаленного расширения приравниваются к разработке нового и оплачиваются отдельно". Помогает, никто еще не удалил установленное расширение.
(23) А вот интересно, если расширение модифицировало существующий объект таким образом, что с новыми реквизитами условия уникальности записей выполняются, а без них - нет. А затем мы решаем это расширение удалить (хотя вариант с отключить тоже интересен) - что произойдет?
Сейчас посмотрел, похоже в принципе не делают функционал, при котором в случае отключения будет нарушатся уникальность.
Пример: можно добавить свой регистр сведений, но нельзя добавить измерения во взаимствованный регистр сведений.
(43) Да, подстаховались. Вот нашел в документации по 8.3.14:
"● Не поддерживается изменение структуры регистров всех видов. Поддерживается только расширение состава регистраторов.".