Имя: Пароль:
1C
 
Как обновить измененное расширение поставщика?
0 program345
 
01.09.26
11:42
Коллеги, доброго дня!
Заказчик просил внести изменения в типовое расширение Контур.Логистика. Изменений накопилось достаточно много.

Иначе говоря, есть конфигурация расширения РасширениеКонтурЛогистика версии 1.20, я туда внес изменения, добавил подсистемы, изменил общие модули, формы документов. Сейчас вышло обновление 1.21 как мне провести трехстороннее сравнение/объединение старой версии(1.20), основной конфигурации(1.20 изменённой) и новой версии(1.21)? Руками то можно, но может есть более простой метод?
1 Гений 1С
 
гуру
01.09.26
13:28
откатить, накатить новое, внести изменения.
2 Толич
 
01.09.26
13:36
Эээ... А как Вы обычные измененные типовые конфигурации обновляли? В чем разница принципиально?
3 Ненавижу 1С
 
гуру
01.09.26
13:41
(2) у расширения нет "конфигурации поставщика", поэтому нет и "трехстороннего" сравнения
4 Timon1405
 
01.09.26
13:42
(2) в том что *cfe из коробки не умеют в трехстороннее сравнение в отличие от *cf
5 Толич
 
01.09.26
13:46
(1) Там в расширении много хранимых данных, откатывать не вариант наверное.
Я в таких ситуациях в соседнем окне открываю сравнение двух версий конфигураций поставщика и переношу руками измененные нами объекты в своей конфигурации, не измененные записываю. Потом не измененные накатываю из новой конфигурации поставщика.
Все зависит от конфигурации, но в 90% так делаю. Потом проверяешь все ли перенес. Получившуюся конфигурацию сравниваю с новой конфигурацией поставщика и в соседнем окне старую копию с старой конфигурацией поставщика.
6 JohnGilbert
 
01.09.26
13:48
(0) Взять не доработанную 1.20, доработанную 1.20, недоработанную 1.21. Выгрузить в файлы, взять Kdiff3 (p4merge etc) написать скрипт, который прогонит это в трехстороннем режиме.
7 Dmitrii
 
гуру
01.09.26
13:49
(0) >> есть более простой метод?

По сути вопроса ответ - нет. Более простого метода не существует.

О чём говорилось миллион раз фанатам расширений.

Так что в трёх разных окнах запускам сравнение конфигураций расширений.
типового 1.20 с доработанным 1.20
типовых 1.20 с 1.21
И ручками объединяем доработанное 1.20 с новым типовым 1.21.

Единственное, о чём может не все знаю.
Расширения можно сравнивать не в отдельных конфигураторах, а в одном.
В конфигураторе в главном меню "Конфигурация" - "Сравнить конфигурации".
Первая конфигурация - "Файл" и указываем файл расширения cfe.
Вторая конфигурация - "Файл" и указываем второй файл расширения cfe.
Убираем галку "Устанавливать соответствия по именам" и жмём Ок.
8 JohnGilbert
 
01.09.26
14:08
(7) Фантастический изврат
9 Dmitrii
 
гуру
01.09.26
14:05
(8) KDiff хорош, для сравнения-объединения модулей.
Для сравнения форм и объектов наглядней контролировать всё в графическом виде.
10 JohnGilbert
 
01.09.26
14:08
(9) Формы и объекты - те же xml, никакой разницы не будет.
11 Franchiser
 
01.09.26
14:10
(0) может это поможет?
Конвертация расширения cfe в cf
https://github.com/best-tech/cfe2cf
12 Dmitrii
 
гуру
01.09.26
14:17
(10) >> Формы и объекты - те же xml

Я знаю.

>> никакой разницы не будет.

По факту да. Хотя вслепую я бы KDiff не доверился.

Лично мне (если бы таким извращением занимался) было бы проще и надёжней всё сравнить глазами. Тут ещё важен аспект того - как типовое расширение дорабатывалось. Одно дело, если формы допиливались программно и основные доработки делались в дополнение и в виде своих объектов. И другое дело, если всё писалось по живому с переделкой вручную самих форм и переписыванием кода разработчиков на свой лад, без оглядки на необходимость потом обновляться.
А ещё масштабы. Масштаб собственных доработок, масштаб изменений от вендора и масштаб их наложения друг на друга.
Ну и вопрос привычки.
13 Dmitrii
 
гуру
01.09.26
14:19
(11) >> Конвертация расширения cfe в cf

А смысл?...
Создать cf-ник, сделать поставку, поставить на поддержку, поставку обновления, прикрутить доработки, а потом трёхсторонне сравнение запустить?...
Ну такое....
14 JohnGilbert
 
01.09.26
14:23
(12) Тут соглашусь, делать надо как удобнее себе.
Если всё сделано по уму - свои объекты, врезки в типовые методы с вызовом своих методов из своих модулей, явное выделение комментариями всех врезок\доработок - KDiff3 обновит всё автоматом.
Если расширение дорабатывалось на живую по типовому коду, без выделения комментариями, с добавлением методов в типовые модули, то собирать только в ручную.
Я бы на месте автора типовое сравнение через Kdiff сделал в конфигураторе, уверен на час-два работы, вряд ли он там так перепилил, что собрать нельзя не напрягаясь.
15 program345
 
01.09.26
14:25
(6) ты имеешь ввиду батничек такой:

@echo off
echo Starting three-way merge of extensions...

set BASE=C:\TEMP\Merge\Base
set CHANGES=C:\TEMP\Merge\Changes
set BASE2=C:\TEMP\Merge\Base2
set RESULT=C:\TEMP\Merge\Result

:: Проверка существования исходных папок
if not exist "%BASE%" (
    echo Error: Base folder not found: %BASE%
    pause
    exit /b 1
)
if not exist "%CHANGES%" (
    echo Error: Changes folder not found: %CHANGES%
    pause
    exit /b 1
)
if not exist "%BASE2%" (
    echo Error: Base2 folder not found: %BASE2%
    pause
    exit /b 1
)

:: Создание папки для результата, если её нет
if not exist "%RESULT%" mkdir "%RESULT%"

echo Merging folders:
echo   Base   : %BASE%
echo   Changes: %CHANGES%
echo   Base2  : %BASE2%
echo   Result : %RESULT%

:: Запуск KDiff3 с ключом --auto и явным указанием путей
"C:\Program Files\KDiff3\kdiff3.exe" --merge --auto "%BASE%" "%CHANGES%" "%BASE2%" -o "%RESULT%"

echo.
echo Merge completed. Check the Result folder.
pause


или что-то другое?
16 shuhard
 
01.09.26
14:37
(0)с 21 релиза появилась подсистема по УФ, я в октября слезу с расширения
17 Franchiser
 
01.09.26
14:40
(13) если цель сделать трёхстороннее сравнение штатными средствами, то почему нет. Если свои доработки известны, то можно и двухсторонним обойтись сравнивая две пары конфигураций.
18 JohnGilbert
 
01.09.26
14:48
(15) Да, что-то подобное, по одной конфе бежим, берем имя папки, находим в двух других, рекурсивно прогоняем вложенные файлы через сравнение. В настройках сравнивалки только отключить подтверждение автоматического слияния, что бы ОК до позеленения не нажимать и почистить шум (не сравнивать пробелы, табы etc).
19 Dmitrii
 
гуру
01.09.26
15:57
(17) >> ... то почему нет

Ну не то чтобы категорическое "нет". Можно конечно сделать.
Просто пипец, как муторно.
Даже если доработки все делались через известное место и кривыми руками, ИМХО, проще запустить три сравнения файлов cfe. Чем так вот заморичиваться.

Хотя... я сам чуть выше написал, что это вопрос привычки. Так что если не лень, то можно и так извратиться.
20 JohnGilbert
 
01.09.26
15:58
(15) KDiff умеет и директории сравнивать, но не пробовал. Может и не нужно по имени папок, а достаточно сразу скопом сравнивать.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой