Имя: Пароль:
1C
1С v8
Как правильно обновлять типовые конфигурации с расширениями и РИБ?
0 DTX 4th
 
13.11.20
19:28
Есть Розница 2.3.4 с пачкой расширений.
Я обновляю розницу до 2.3.6, вношу правки в расширения, далее делаю синхронизацию с узлом.
Иду в узел, делаю синхронизацию, вижу надпись о том, что получено обновление, и что его нужно установить.
Далее иду в конфигуратор узла, смотрю изменения и вижу, что конфигурация обновлена до 2.3.6 (но изменения не приняты), а вот изменения расширений в узел не прилетели.
На тестовом прогоне это привело к тому, что обновление конфы в узле встало, а вот запускаться база перестала, так как в расширении был тип, которого больше 2.3.6.
Это шутка такая от 1С?
Как правильно обновлять подобные базы?
1 CepeLLlka
 
13.11.20
19:30
Походу расширение нужно отдельно применять на каждой базе..
А что 1С где-то писала про поддержку расширений в РИБ?
2 CepeLLlka
 
13.11.20
19:31
А вообще с расширениями лучше не шутить :)

В некоторых случаях они больше усложняют, чем если просто сделать доработку конфы..

Тем более что обновления с расширениями становятся более увлекательные :)
3 Фрэнки
 
14.11.20
08:53
(1) Если это РИБ и если это не РИБ - поведение расширения отличается.

Если расширение имеет внутри себя структуру метаданных, а не просто заимствования программных модулей или модулей форм или обработок, отчетов - поведение тоже меняется.

Структурно меняющееся расширение для поведения РИБ критично, т.к. типовой РИБ тупой - он смотрит по хэш-функциям совпадение метаданных для данных, именно для таблиц с данными.
Даже если внесенные в конфигурацию данные в обмене не требуются. Но это же как бы РИБ - равнозначность "Полный обмен", хотя это не так.

(2) С расширениями вообще-то надо не шутить, а нормально работать. Вдумчиво.

И не обновления становятся увлекательнее, а дурость разработчика выпячивается наружу.
4 Фрэнки
 
14.11.20
08:57
(0) Как правильно - не очень пока еще выяснилось. Но в самом расширение есть свойство для включения его в РИБ - данные от этого в РИБ не должны попасть, но Расширение через обменный файл будет передано. На кой хрен его туда передавать - идея, в принципе, логичная, но тупость тоже очевидна, т.к. структура передаваемых через РИБ данных не автоматическая, а настраивается в составе плана обмена и это далеко не все объекты метаданных, только некоторая особо ценная для работы часть, только часть, а не абсолютно все-все-все данные базы.
5 Фрэнки
 
14.11.20
08:59
(0) Я вынужден при использовании РИБ пока еще передавать на периферийный узел расширение вручную. После ручного прописывания измененного расширения проблем нет. Но и данные расширений, на самом деле, в обмене нет и быть не должно. Но это в моем практическом варианте.
6 Фрэнки
 
14.11.20
09:00
Думаю, что надо делать свой новый обмен, чтоб от багов и фичей платформенного РИБ не зависеть.
7 Фрэнки
 
14.11.20
09:05
(0) Если ты пишешь, что "расширение не встало" - оно включено по свойствам в РИБ и оно меняет структуры типовых данных текущей базы, которые вставлены в РИБ?

Что включено расширение в РИБ - это просто использование механизма РИБ для передачи измененного Расширения в пакете. Не совсем уверен, что это надежный сейчас способ.

А что типовые данные твое Расширение изменило? - хреново это!
Не нужно так делать. Техническая возможность для подобных действий разработчика платформа предоставила, но на практике так делать не нужно и нужно этого избегать по максимуму.
8 DTX 4th
 
14.11.20
15:38
(3) >Если расширение имеет внутри себя структуру метаданных
Что это значит? Если добавлены новые объекты метаданных? Есть один регистр, это оно?в
https://i.imgur.com/3P2zaij.png

>Структурно меняющееся расширение для поведения РИБ критично
А это что значит?) Речь про те же новые объекты метаданных?

>т.к. типовой РИБ тупой - он смотрит по хэш-функциям совпадение метаданных для данных
Если мы добавляем новый реквизит или расширяем какой-то типовой, хэш же должен поменять, разве нет?

(4) Конечно, все расширения имеют галку "Используется РИБ". Как иначе то, когда имеем 30+ узлов РИБ?

(5) Ну, для 2-3 узлов это, может, и имеет смысл, но дальше станет очень больно

(6) Обмен расширениями с РИБ - это механизм платформы или БСП?

(7) >оно меняет структуры типовых данных текущей базы
Что это значит? Не понимаю(

>А что типовые данные твое Расширение изменило?
Объясни плз, что имеется в виду

Во время теста я также снял галку активности у одного расширения - в нем в основном расширены типовые объекты, плюс добавлена обработка, и добавлено пару реквизитов в типовую обработку:
https://i.imgur.com/qN7NoNH.png
Так вот, после того как в узел выгрузились изменения конфы, галка активности у этого расширения осталось не тронутой, хотя ожидалось, что она снимется.
9 Фрэнки
 
14.11.20
20:46
// галка активности у этого расширения осталось не тронутой, хотя ожидалось, что она снимется.

Активность самого расширения и не будет сниматься или включаться при обмене РИБ - это же вручную управляется. Более того, в результате обмена активность может слететь не потому, что ее кто-то отключил, а потому, что будут проблемы с его включением.
10 Фрэнки
 
14.11.20
20:47
// Если добавлены новые объекты метаданных?

Любое изменение метаданных, если оно повлияет на расчет хэша по структуре данных
11 Фрэнки
 
14.11.20
20:49
// Если мы добавляем новый реквизит или расширяем какой-то типовой

Это обязательно изменит хэшфункцию. Просто оказалось немного странным, что можно много всего изменить в самих модулях или формах, но при этом никакого изменения для хэшфункций не произойдет.
12 Фрэнки
 
14.11.20
20:53
// Как иначе то, когда имеем 30+ узлов РИБ?

При таком числе узлов - это на любителя

Да, я могу на основе РИБ создать сам узел, но я не буду устраивать оперативный обмен данными на основе РИБ при таком количестве узлов.
13 Фрэнки
 
14.11.20
20:55
// Обмен расширениями с РИБ - это механизм платформы или БСП?

Насколько я вижу - это именно платформа. БСП в этом обмене может только заблокировать или разрешить сами обработки. Но загрузка-выгрузка метаданных из расширения - конечно же платформа.
14 Фрэнки
 
14.11.20
21:02
(8)

///
>А что типовые данные твое Расширение изменило?
Объясни плз, что имеется в виду
///

Я знаю прекрасно, что инструменты в платформе сейчас позволяют через расширение добавлять в состав типовых объектов новые реквизиты
Но по моему мнению, если такие изменения разработчик в расширении делает, т.е. ломает структуру у типового, то это очень и очень хреново.

Хочешь добавить новые данные? Добавляй. Но типовые данные при этом не ломай!