Случилось страншное... Поделитесь опытом.

Автор Злоп, 12 октября 2024, 22:49

« назад - далее »

Djelf


Варианы есть:
- FormEx: доп.глобальники, разделенные по разработчикам.
- Классы 1с++, в глобальнике только заглушки.
Это не спасет при смене АПИ (процедур и функций), но часть проблем убрет.
Не работал так. Как-то бы напарник, кромсал мою обработку вдоль и поперек, приходилость вникать и патчить мою, до соответствия... Так себе удовольствие.

Злоп

Не нравится мне такая идея с ДГ и классами.
Это расползание функционала в разные стороны.
.
буду думать...

ADirks

Работали в 3-4 лица над одной конфой. Связка gcomp + CVS(тогда был). Щас можно git взять, или mercurial.

Особых проблем с конфликтами правок в коде не было. Кода были пересечения, то просто объединяли их kdiff'ом, с небольшим приложением мозга.
Проблемы есть при добавлении метаданных - широко известная проблема с внутренними ИД объектов :)).  Решалась просто - метаданные параллельно не правили.

Схема простая: забрал из репозитария, скомпилировал, сделал свои дела, разобрал, положил в репозитарий (в этом месте разруливаешь возникшие конфликты).

Arbuz

Тут проблема в том, что надо себе хорошо представлять эту схему. Что, куда, как и когда. Если никогда этим не пользовался, то это несколько напряжно.

Злоп

Цитата: Arbuz от 31 октября 2024, 16:49Тут проблема в том, что надо себе хорошо представлять эту схему. Что, куда, как и когда. Если никогда этим не пользовался, то это несколько напряжно.
Вот я как раз про это.

Mugface

У нас три разраба и 4 разных конфигурации, которые пилятся. Конфы сделанные из ТиСов. Если про глобальник, то имеется один базовый глобальник с наборами функций для всех конфигураций, а в наследнике уже свои специализированные глобальники. Из 1сного глобальника перенаправления делаются для изменяемых процедур и функций, как выше сказано.
Модули этих глобальников (да все классы в общем то) можно налету подменять, при загрузке конфы грузятся из конфигурации (@MD) или из файла, система определяет при старте. Это для УРБД сделано и для версионности при обновлении и удалении неактуальных.
У каждого свои тестовые конфигурации для разработки и демонстрации, все изменения сливаются в один МДшник (девелопная версия и можно кодревьювить), новые объекты метаданных создаются там же и загружаются в тестовые через загрузку (не часто надо, потому нормально). В девелопной версии никто не сидит, зашёл – обновил – вышел. И конфа не для запуска вообще.
За правильность не ручаюсь.
Вообще мне стыдно, но написал это всё чтобы спросить: хочу обновить 1с++ с 2.5.0.7 до 3.2.4.1 (кое что нужно), а её не видно в Сервис – Параметры – «Настройка 1С++», всё работает, классы грузятся. Гуглить что-то не помогает.

Arbuz

Цитата: Mugface от 25 декабря 2024, 09:23хочу обновить 1с++ с 2.5.0.7 до 3.2.4.1 (кое что нужно), а её не видно в Сервис – Параметры – «Настройка 1С++», всё работает, классы грузятся

Помощь — О программе

Djelf

За пару часов переводил конфигурации с 1c++ 2.5.* на 3.*
Изменения небольшие, это быстро...
P.S. Некоторые глюки придется поискть и устранить.
Это не так сложно, как кажется.

GRUNGO

Цитата: Злоп от 15 октября 2024, 12:38Молчание сообщества свидетельствует о том, что клюшечники - единоличники, всё в одно лицо делают..? или могут тянуть большую контору в одиночку? ;-)

да всё просто ))
кто старше и круче тот работает в своей копии конфы, остальные в нее накатывают свои изменения

дико? ну мы же на 77 )))


Mugface

Попробовал потестировать 3.2.4.1 вместо 2.5.0.7 и столкнулся с проблемой: при разрушении класса наследника в версии 3.2.4.1 "теряется" сам базовый класс. И не всегда, а ровно через раз. В 2.5.0.7 этой проблемы нет.
Сделал конфигурацию с 1С++ dll-ками, при загрузке спросит какую версию загрузить и откроет обработку с кнопкой по которой появляется ошибка если нажимать кнопку. Не могу понять где у меня ошибка. Может подскажете где я туплю, спасибо.

https://disk.yandex.ru/d/Kh-7-a58TBNxog

trad


trad

посмотрел что значит "теряется"

А почему не хочешь Сам().ФункцияБазовогоКласса() ?

Mugface

Цитата: trad от 04 февраля 2025, 10:30посмотрел что значит "теряется"

А почему не хочешь Сам().ФункцияБазовогоКласса() ?


Потому что в наследнике может быть своя ФункцияБазовогоКласса (название неудачное для примера) со своим дополнительным для класса функционалом. И через Сам() вызовется она. А мне нужно вызвать ФункцияБазовогоКласса() из базы, а потом в наследнике доделать свои дополнительные действия. В приложенном примере Сам() решит проблему, это я стормозил. Но при наличии ФункцияБазовогоКласса() в наследнике будут у меня проблемы.
Тесть из примера "_ОсновнойБазовыйКласс" базовый, у него может быть несколько наследников со своими функциями ФункцияБазовогоКласса или без неё.

АЛьФ

Может как-то так?

Базовый = вирт().ПолучитьБазовыйКласс("ODBCRecordSet");
	Базовый.Отладка(ВключитьОтладку);