208 похожих чатов

Допустим. я просто не понимаю как это связано с обновами.

вы типа то решение не обновляли вообще и просто фигачите новое уже на втором сайте?

10 ответов

19 просмотров

Не совсем понял вопрос. Сама логика объединения товаров в группы именно в этом случае была одинаковой. Если вы имеете в виду ломалось ли что-то после обновления, то нет - сравнение происходило либо по строке, либо по правилу.

Ilya Kutalev
Не совсем понял вопрос. Сама логика объединения то...

Я присоединюсь к Антону. Задачу я понял, нормальных путей решения пока нет, но то, что вы намертво завязаны на тестирование обновлений (изменение внутренней структуры инфоблоков и товаров) - несомненно.

Eugene Zhukov
Я присоединюсь к Антону. Задачу я понял, нормальны...

Если честно, хоть убейте, не могу понять ваших опасений) С точки зрения обновлений SQL, действительно, кажется менее стабильным решением, хоть напрямую названия полей не задавались. Полагаю, ORM эту проблему решит. Если речь о внутренней структуре каталогов (свойства, значения свойств, вычисляемые свойства и т.д.), то здесь все нужные связи задает сам администратор, менеджер или программист. Связь устанавливается на уровне сущности с выбранным фильтром и primary полем: значения элемента 1-го инфоблока = значения элемента 2-го инфоблока, свойство к свойству, цена к цене, остатки на складе 1-го товара ко 2-му. Я могу описать принцип работы более подробно, если интересно. Но даже в случае какого-то сверх критичного изменения при обновлении или в структуре данных, лог событий отобразит ошибки на этой связи без фактического изменения.

Ilya Kutalev
Если честно, хоть убейте, не могу понять ваших опа...

Да у меня нет никаких опасений. Я просто насмотрелся на тикеты и вопросы типа "я сделал так-то, все сломалось". Проект ваш, риски ваши, решение тоже за вами. Я просто подчеркнул, что при этом подходе вам нужно отслеживать изменения ядра. А они бывают рано или поздно, вот и все.

Eugene Zhukov
Да у меня нет никаких опасений. Я просто насмотрел...

Отслеживание изменений ядра - это само собой. Я лишь хочу понять, есть ли в этой концепции что-то такое, чего я мог не учесть на данный момент) Как один из примеров - некоторые события orm заблокированы. Что-то будет всплывать и будут ошибки.

Ilya Kutalev
Отслеживание изменений ядра - это само собой. Я ли...

Придет еще кто-то с запросом "я создавал такую-то сущность в инфоблоках, все сломалось" - заблокирую еще таблеты. Других способов борьбы с этой проблемой за долгие годы не обнаружено. Все как в анекдоте про туннель, поезд и его пасажиров.

Eugene Zhukov
Придет еще кто-то с запросом "я создавал такую-то ...

Правильно ли я понял, что ORM, в большей степени, подходит для выборки данных, в то время как для изменения или удаления рекомендуется использовать стандартное api из-за набора внутренних связей, к примеру доступность товара по количеству его торговых предложений?

Ilya Kutalev
Правильно ли я понял, что ORM, в большей степени, ...

В принципе - да. Встречаются таблеты (классы чего-тоTable), где бизнес-логика зашита изначально (не было старых классов). Но в массе своей это низкоуровневое api. Подход следующий - если есть класс над таблетом - использовать для модификации данных его (примеры: Order и OrderTable, Basket и BasketTable). Инфоблоки и товары здесь стоят особняком, т.к. этой бизнес-логики слишком много. Даже в объектном orm инфоблоков хватает ограничений (есть страничка со списком в учебном курсе). Поэтому даже выборки через orm там с оговорками.

Eugene Zhukov
В принципе - да. Встречаются таблеты (классы чего-...

Я понял о чем вы говорите. В целом, эта ситуация возможна и на разных проектах, даже на одной редакции и версии. Буду по возможности использовать стандартное api. Спасибо!

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта