![]() |
![]() |
![]() |
|
Проблема с внедрением управляемых форм в конфигурацию на обычных | ☑ | ||
---|---|---|---|---|
0
Boshid
15.11.19
✎
14:59
|
Задача:
Внедрить библиотеку МДЛП в конфигурацию БП 1.5, дописанную с функционалом аптеки. Как я себе представляю процесс, есть основная база на обычных формах, в ней будут работать как обычно, а для отражения операций с лекарствами запускать второй сеанс базы в управляемом режиме. Получается смешанная конфигурация. Что сделал: Залил библиотеку объединением конфигураций, предварительно переименовав исходные в конфигурации модули. Затем переименовал все функции, совпадающие по пространству имён с в библиотеке и конфигурации в глобальных модулях. Совпадающих объектов было всего 4 справочника - добавил в них реквизиты и табличные части из библиотеки, формы не стал добавлять. Далее, при запуске базы вылетают следующие ошибки: 1) Если убрать режим совместимости, тогда вылетает ошибка SDBL: ожидается имя таблицы (pos=6). 2) Если поставить режим совместимости с 8.3.12 - вылетают ошибки управляемых блокировок. Запись из журнала: Использование блокировки допустимо только внутри транзакции в режиме управляемых блокировок! <1C>{ОбщийМодуль.БлокировкаРаботыСВнешнимиРесурсами.Модуль(312)}: Блокировка.Заблокировать(); {ОбщийМодуль.БлокировкаРаботыСВнешнимиРесурсами.Модуль(136)}: ЗаблокироватьДанныеПараметровБлокировки(); {(1)}:БлокировкаРаботыСВнешнимиРесурсами.ПриУстановкеПараметровСеанса(Параметры[0],Параметры[1]) {ОбщийМодуль.ОбщегоНазначения.Модуль(4768)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; {ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(2866)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик, ПараметрыОбработчика); {ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(66)}: ВыполнитьОбработчикиУстановкиПараметровСеанса(ИменаПараметровСеанса, Обработчики, УстановленныеПараметры); {МодульСеанса(8)}: СтандартныеПодсистемыСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса); {ОбщийМодуль.БлокировкаРаботыСВнешнимиРесурсами.Модуль(31)}: Возврат ПараметрыСеанса.РаботаСВнешнимиРесурсамиЗаблокирована; {ОбщийМодуль.БлокировкаРаботыСВнешнимиРесурсами.Модуль(208)}: Если ЭтоВызовПередНачаломРаботыСистемы И РаботаСВнешнимиРесурсамиЗаблокирована() Тогда {ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(1770)}: МодульБлокировкаРаботыСВнешнимиРесурсами.ПриДобавленииПараметровРаботыКлиентаПриЗапуске( {ОбщийМодуль.СтандартныеПодсистемыВызовСервера.Модуль(109)}: Если НЕ СтандартныеПодсистемыСервер.ДобавитьПараметрыРаботыКлиентаПриЗапуске(Параметры) Тогда {ОбщийМодуль.СтандартныеПодсистемыКлиентПовтИсп.Модуль(49)}: ПараметрыКлиента = СтандартныеПодсистемыВызовСервера.ПараметрыРаботыКлиентаПриЗапуске(Параметры); {ОбщийМодуль.СтандартныеПодсистемыКлиент.Модуль(504)}: Возврат СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиентаПриЗапуске(); {ОбщийМодуль.ОбщегоНазначенияКлиент.Модуль(80)}: ИменаПодсистем = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске().ИменаПодсистем; {ОбщийМодуль.ИнтеграцияПодсистемБСПКлиент.Модуль(23)}: Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда {ОбщийМодуль.СтандартныеПодсистемыКлиент.Модуль(918)}: ИнтеграцияПодсистемБСПКлиент.ПередНачаломРаботыСистемы(Параметры); {ОбщийМодуль.СтандартныеПодсистемыКлиент.Модуль(267)}: ВыполнитьОбработкуОповещения(Параметры.ОбработкаПродолжения); {МодульУправляемогоПриложения(43)}: СтандартныеПодсистемыКлиент.ПередНачаломРаботыСистемы();</1C> 3) Если ставить режим совместимости ниже - то всякие ошибки об отсутствии методов платформы, оно и понятно, тут вопросов нет. Прошу помочь найти пути решения, как добиться работы базы в смешанном режиме. |
|||
1
kauksi
15.11.19
✎
15:12
|
ставь режим совместимости 8.2.14
|
|||
2
Жан Пердежон
15.11.19
✎
18:30
|
Шаг 1. Обновить БП 1.5 на 3.0
|
|||
3
Boshid
15.11.19
✎
21:57
|
(2) Пожалуй, это лучшее предложение, которое приходило и мне в голову, но заказчик так не считает -_-
Да и переводить переписанную в хлам конфигурацию дело не самое благодарное |
|||
4
Fram
15.11.19
✎
22:02
|
кому интересно в голову пришло в хлам переписывать БП
|
|||
5
palsergeich
15.11.19
✎
22:03
|
(4) Тогда это было модно
|
|||
6
Boshid
15.11.19
✎
22:04
|
(1) (1) В библиотеке МДЛП используются определяемые типы, так что поставить ниже 8.3.2 не получится, к тому же многих встроенных функций, наподобие НайтиСтр(), просто нет на таких версиях
|
|||
7
palsergeich
15.11.19
✎
22:05
|
(6) Это "НайтиСтр" лечится глобальным модулем, я 100 раз так делал, а вот определяемые типы - беда
|
|||
8
Boshid
15.11.19
✎
22:06
|
(4) это было давно и нелецензионно, а я тогда даже не знал о существовании 1С )
|
|||
9
Boshid
15.11.19
✎
22:09
|
(7) Я думаю, можно их в принципе удалить и заменить, если уж другого решения не найдётся.
А можно поподробнее про такой способ с глобальным модулем? |
|||
10
hhhh
15.11.19
✎
22:16
|
(6) так и поставьте сначала 8.3.2, надо поэтапно двигаться, нельзя прыгнуть сразу через 50 платформ.
|
|||
11
palsergeich
15.11.19
✎
22:19
|
(9) Короче делаешь общий модуль клиент сервер и ставишь ему флаг глобальный
там создаешь функцию СтрНайти и ищешь в гугле ее листинг, раньше она называлась Найти и этот финт очень популярен был после выхода платформы 8.3.5, ибо такая проблема вылезла много у кого. Тогда ошибка уйдет. |
|||
12
palsergeich
15.11.19
✎
22:19
|
(11) Я даже тебе скоращу поиски http://catalog.mista.ru/public/841165/
|
|||
13
Boshid
15.11.19
✎
22:29
|
(10) Вы имеете в виду именно платформу откатить до 8.3.2 или режим совместимости?
Вообще попробовал сейчас режим совместимости 8.3.2 поставить - там другие ошибки сыпятся, например - ругается на определяемые типы и справочники в источнике подписок на события, и в модулях общих команд на тип параметра команды, опять же определяемые типы ) |
|||
14
Boshid
15.11.19
✎
22:29
|
(12) премного благодарю
|
|||
15
Boshid
19.12.19
✎
08:33
|
Препятствие преодолено - оказалось, что ошибка SDBL возникала при попытке установки значения константы в модуле обычного приложения. Перенёс в модуль и всё вазлетело.
|
|||
16
MyNick
19.12.19
✎
08:37
|
(0)
"Как я себе представляю процесс, есть основная база на обычных формах, в ней будут работать как обычно, а для отражения операций с лекарствами запускать второй сеанс базы в управляемом режиме." Жмакни в галку "Использовать управляемые формы в обычном приложении". Накуа второй сеанс? |
|||
17
ДенисЧ
19.12.19
✎
08:39
|
(15) "при попытке установки значения константы в модуле обычного приложения. Перенёс в модуль и всё вазлетело."
перенёс из модуля в модуль? )) |
|||
18
Сияющий в темноте
19.12.19
✎
08:51
|
(17) на клиенте константы не всегда доступны.
если толстяка стартануть,то будет все работать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |