Имя: Пароль:
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)

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

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

Хочешь добавить новые данные? Добавляй. Но типовые данные при этом не ломай!
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn