Режим совместимости 8.2.14 и 8.2.13

1. AlX0id 23.08.12 09:53 Сейчас в теме
Добрый день!

При обновлении конфигурации столкнулись со следующим моментом:
- Старая конфигурация работала в режиме совместимости "с 8.2.13";
- Новую конфигурацию перевели на режим совместимости "Не использовать".

- Все хорошо бы вроде, но в старой конфе используется конструкция типа
Новый ХранилищеЗначений(Переменная)

При этом Переменная имеет тип COMОбъект. В старой версии эта конструкция работает, а в новой выкидывает ошибку. Собственно, эта конструкция относится к защите одного из модулей конфигурации, и он не находится на поддержке у производителя. Не хотелось бы в нее влезать.

Так вот вопросы:
1. Это был баг в режиме совместимости, что COMОбъект мог сериализоваться?
2. Что мы приобретаем, включив режим совместимости "Не использовать" (8.2.14)?
По теме из базы знаний
Найденные решения
9. juntatalor 63 28.08.12 10:12 Сейчас в теме
(8)
Вы можете поместить структуру в параметр сеанса с типом значения "Произвольное".
То есть, по сути, сейчас у вас есть:
КомпонентаЗащиты = Новый ХранилищеЗначений(Переменная);
КЗ = КомпонентаЗащиты.Получить();


А вы сделаете

ПараметрыСеанса.КомпонентаЗащиты = Переменная;
КЗ = ПараметрыСеанса.КомпонентаЗащиты;


Сделать можно поиском и заменой значений.

При отказе от совместимости с 8.2.14 вы теряете, например, механизм общих реквизитов и разделения данных - это основная "фишка" релиза. Еще там есть поддержка новых функций СКД.

Поподробнее, что у вас с выходом за пределы размерности?
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
12. AlexO 136 28.08.12 13:05 Сейчас в теме
(1) AlX0id,
1. Это был баг в режиме совместимости, что COMОбъект мог сериализоваться?

слова все умные повторяют... 1С ляпнет - "сериализация", и остальные за ней, даже не зная, что такое "сериализация", повторяют с умным видом - умные слова, а понимая под "сериализовать" тупое раскладывание объекта в строку.
Если бы 1С придерживалась значений терминов, а не брала готовые названия и "натягивала" их на свою ж для своих экспериментов, смущая умы многочисленных студентов, то и вопросов бы подобных не было: есть механизм сериализации - объекты сериализуются, нет - не выгружаются.
А тут - 1С просто выкинула хранение COM-объекта из ХранилищеЗначений, посчитав, что и "так слишком много возможностей" (а по-правде - огребла массу ошибок из-за представлений и битых выгрузок COM-объектов вследствии непродуманности всей схемы "типа объектная платформа", и таким кардинальным способом решила закрыть огромный пласт проблем: нет выгрузки - нет проблем).
(10) AlX0id,
Тут основная проблема в том, что мне очень сильно не хочется вмешиваться в код защиты сторонних разработчиков :( Мало ли что еще там всплывет..

да ничего там не всплывет. Делайте теперь аналоги COM-объектов в базе-приемнике, ищите соответствия COM-объектам базы-источника, и "сериализуйте" их уже в этой базе на здоровье, восклицая "ай-да я! ай да 1С! вот ведь так!" :D
ATimofeev1979; +1 Ответить
13. juntatalor 63 28.08.12 13:54 Сейчас в теме
(12) AlexO, сложно наверное работать с 1С и так люто ненавидеть?

И что вы, если не секрет, понимаете под понятием сериализация? Безусловно что-то не
тупое
, а острое.
14. AlexO 136 28.08.12 14:01 Сейчас в теме
(13) juntatalor,
сложно наверное работать с 1С и так люто ненавидеть?

вот когда будете именно РАБОТАТЬ с 1С, да чтоб действительно автоматизировать сектора деятельности фирм-предприятий, а не графики "повысим-углубим" рисовать, да чтоб пользователям было удобно, а не как сказала 1С, да чтобы работало качественно и надежно, а не декларируемо и абы как - вот тогда и поговорим.
А не задачки тестовые решать да семинары посещать.
И что вы, если не секрет,

не секрет, который раскрыт выше - что и как и зачем.
ATimofeev1979; +1 Ответить
15. AlexO 136 28.08.12 14:09 Сейчас в теме
(13) juntatalor,
сложно наверное работать с 1С

кстати, нет, не сложно.
Потому что я знаю, что это за херня, и сразу делаю так, как мне нужно, а не как каким-то там неведомым "методистам 1С".
И потому, что знаю, чего ожидать от этого "г", и насколько оно получится "конфеткой".
2. kasper076 112 27.08.12 21:27 Сейчас в теме
А что извлекается потом из хранилища? На платформе 8.2.13
6. AlX0id 27.08.12 22:04 Сейчас в теме
(2) kasper076,
А что извлекается потом из хранилища? На платформе 8.2.13

Извлекается и помещается туда компонента защиты, то бишь, ее com-объект..

(5) andrewks,
я так думаю, в то место, где он извлекается из ХЗ, и надо перенести код, предшествующий помещению его в ХЗ (т.е. код, где этот объект создаётся)

Предшествует подключение к менеджеру лицензий, а это ой, какая не быстрая процедура.. и если ее каждый раз выполнять при попытке получения оного com-объекта.. Умру либо я, либо пользователи )
7. andrewks 1375 27.08.12 22:36 Сейчас в теме
(6) AlX0id, так, может, тогда в параметры сеанса закинуть?
8. AlX0id 27.08.12 23:21 Сейчас в теме
(7) andrewks,
Ну там как.. На дубе утка, в утке яйцо..
Com-Объект в структуре, структура в хранилище, а хранилище в параметре )
Если выносить com-объект из структуры, придется основательно перелопатить чужой код защиты, а этого не хотелось бы делать по двум причинам:
1. Все же это код защиты - не комильфо в нем копаться..
2. Там достаточно много обращений к этой структуре - соответственно, нужно порядком времени, чтобы это все отладить..

Мне все же интереснее, что же я теряю при отказе от режима совместимости 8.2.14 - так как, как оказалось чуть позднее опубликования данного вопроса - вылезла еще одна ошибка с "выходом за пределы размерности", которая так же решается отключением режима совместимости :(
9. juntatalor 63 28.08.12 10:12 Сейчас в теме
(8)
Вы можете поместить структуру в параметр сеанса с типом значения "Произвольное".
То есть, по сути, сейчас у вас есть:
КомпонентаЗащиты = Новый ХранилищеЗначений(Переменная);
КЗ = КомпонентаЗащиты.Получить();


А вы сделаете

ПараметрыСеанса.КомпонентаЗащиты = Переменная;
КЗ = ПараметрыСеанса.КомпонентаЗащиты;


Сделать можно поиском и заменой значений.

При отказе от совместимости с 8.2.14 вы теряете, например, механизм общих реквизитов и разделения данных - это основная "фишка" релиза. Еще там есть поддержка новых функций СКД.

Поподробнее, что у вас с выходом за пределы размерности?
10. AlX0id 28.08.12 10:38 Сейчас в теме
(9) juntatalor,
Могу - тут спора нет. Но как я уже говорил - защита не моя. И часть кода зашита на ключе - что может помешать варианту поиска с заменой..
Тут основная проблема в том, что мне очень сильно не хочется вмешиваться в код защиты сторонних разработчиков :( Мало ли что еще там всплывет..


А по поводу размерности - ошибка подобная: http://www.forum.mista.ru/topic.php?id=404572
Добавили в реализацию пару реквизитов - и все..
Удаление узлов обмена не помогает..

В принципе, без общих реквизитов и разделения данных я проживу.. Да и клиенты тоже :)
Насчет новых функций СКД - сомневаюсь, что они пропадут в режиме совместимости 8.2.13.. Хотя тут надо тестить..
3. andrewks 1375 27.08.12 21:36 Сейчас в теме
COMОбъект в хранилище? однако...
4. andrewks 1375 27.08.12 21:38 Сейчас в теме
а что потом делают с этим "нечто" из хранилища? это же полная профанация
5. andrewks 1375 27.08.12 21:47 Сейчас в теме
я так думаю, в то место, где он извлекается из ХЗ, и надо перенести код, предшествующий помещению его в ХЗ (т.е. код, где этот объект создаётся)
11. andrewks 1375 28.08.12 12:32 Сейчас в теме
что-то мне ветка напомнила сказочное "поди туда, не знаю, куда, принеси то, не знаю, что"
16. AlX0id 28.08.12 15:15 Сейчас в теме
что это за херня

А мне вот через семь лет работы с ней, сей факт начинает только открываться..
17. SkorikA 83 29.08.12 09:53 Сейчас в теме
По первому вопросу:
В том что com-объект можно было сохранить в хранилище значения (сериализировать) - это ошибка в 1С исправленная при работе без режима совместимости. Более подробно можно найти в этой ветке партнерского форума http:_//partners.v8.1c.ru/forum/thread.jsp?id=1058206#1058206
Если кратко:
- Как тогда хранить COM Объект на сервере?
- Никак. Скажем так - закрыли недокументированную возможность ввиду неоднозначности ее работы.
Собственно, на форуме это обсуждалось.
Пример:
Сервер1 - ОС Windows
Сервер2 - ОС Linux
Что делать, если управление получит Сервер2?
По второму:
Из глобального: использование общих реквизитов и разделителей. Если нужны частности то лучше сюда http:_//downloads.v8.1c.ru/content/Platform/8_2_14_540/V8Update.htm

p.s. В ссылках для работы убрать символ подчеркивания
18. AlX0id 29.08.12 10:07 Сейчас в теме
(17) SkorikA,
Я видел эту тему на партнерском форуме.
Но, во-первых, там речь о 8.3, а у меня 8.2.15.318, о которой там как раз и написано, что есть возможность поместить com-объект )
Во-вторых, речь о сериализации именно на сервере. В моем случае она ругается, как на сервере, так и не на сервере.
20. SkorikA 83 29.08.12 10:26 Сейчас в теме
(18)Хм..
А переписать код на использование функций с повторным использованием нельзя?
Например как в БСП ОбменДаннымиПовтИсп.ПолучитьВнешнееСоединениеДляУзлаИнформационнойБазы

По ошибке: а какой текст собственно выдается? У меня просто при десериализации получается "Неопределено" на платформе 8.2.15.318 в режиме совместимости 8.2.13
21. AlX0id 29.08.12 11:17 Сейчас в теме
(20) SkorikA,
А переписать код на использование функций с повторным использованием нельзя?

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

По ошибке: а какой текст собственно выдается? У меня просто при десериализации получается "Неопределено" на платформе 8.2.15.318 в режиме совместимости 8.2.13

"Переданное значение не может быть помещено в ХранилищеЗначения, поскольку не сериализуется или содержит вложенный несериализуемый элемент" - только на английском.

В общем, поковырявшись еще на форуме партнеров, нашел следующую фразу:
Данное изменение описано в файле "Отличия текущей версии от предыдущих и особенности перехода"
downloads.v8.1c.ru/conte... »»

"Не поддерживается помещение в хранилище значения данных, которые не поддерживают сериализацию. В режиме совместимости поведение не изменилось."

Как-то так - раньше можно было пихать чо угодно, а теперь только сериализуемое.
19. AlX0id 29.08.12 10:11 Сейчас в теме
В общем, для себя выводы сделал.
Бонус отдаю juntatalor за разъяснение того, что теряю в режиме совместимости.
Остальные активные участники темы могут обратиться за "спасибом" в личку - отсыплю пару см )
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот