|
Ошибка отображения типов и Интерактивные операции недоступны в SQL-версии | ☑ | ||
---|---|---|---|---|
0
slafor
25.03.20
✎
13:28
|
Внешняя обработка. На клиенте есть процедура заполнения табличной части, которая вызывает серверную функцию, примерно так:
ВозвращаемыйМассив = ЗаполнитьНаСервере(); Если ВозвращаемыйМассив[2] = Истина Тогда ТабДок = ВозвращаемыйМассив[1]; ТабДок.ТолькоПросмотр = Истина; ТабДок.Показать("Результаты таблицы проверки данных"); КонецЕсли; В Возвращаемом массиве - 3 элемента: Табличный документ, Указание, надо ли показывать таблицу (Булево), и Таблица значений. В файловой версии все работает нормально, ошибок нет. Запускаю то же самое в той же базе на клиент-серверном варианте (SQL), и мне выдается ошибка "Ошибка отображения типов" и табличный документ не показывается. Да, собственно, на этом все и завершается. Далее, если табличная часть, в которой обрабатывается событие выбора строки. В этой процедуре (на клиенте) вызывается серверная процедура с кодом: Док.ПолучитьФорму().Открыть();, где Док - ссылка на документ из выбранной строки табличной части. Тут похожая ситуация: в файловом режиме все ОК. Запускаю в базе на SQL - выскакивает ошибка "Интерактивные операции недоступны". Что это такое и как можно с этим справиться? |
|||
1
SSSSS_AAAAA
25.03.20
✎
13:34
|
(0) "Что это такое и как можно с этим справиться?"
Это стандартное поведение платформы и справляться с этим не надо. Надо научиться работать в обоих режимах. Надо понять, что на сервере нет форм и что на нём же "Интерактивные операции недоступны". Почитай что-нить по работе в клиент-серверном варианте. |
|||
2
ДенисЧ
25.03.20
✎
13:37
|
"серверная процедура с кодом:
Док.ПолучитьФорму().Открыть()" тут недалеко завалялся мой ПКМ.... оттереть его от масла, что ли? |
|||
3
ДенисЧ
25.03.20
✎
13:37
|
"как можно с этим справиться?"
Бежать... |
|||
4
Жан Пердежон
25.03.20
✎
14:54
|
сдается мне, тс не отличает файловый вариант и толстый клиент
|
|||
5
slafor
25.03.20
✎
15:08
|
(4) и всем.
Всем спасибо, проблему решил - и одну, и вторую. Во-первых действительно, ПолучитьФорму не работает на сервере, но что интересно - в файловом -то режиме это работает! - хоть из запускается из серверной процедуры. А во-вторых, в обоих случаях все будет работать, если запускать клиент в толстом режиме. А у меня по умолчанию запускался в тонком. |
|||
6
Жан Пердежон
25.03.20
✎
15:38
|
(5) теперь осталось сделать, чтобы в тонком клиенте всё работало
|
|||
7
slafor
25.03.20
✎
16:01
|
(6) А вот в тонком клиент-то как раз это и не работает. И тут возникла еще одна проблема.
Запускаю 1С SQL в Конфигураторе, из него - Предприятие - все работает (потому что, очевидно, в толстом клиенте). Запускаю просто из ярлыка запуска - 1cestart.exe, и не работают некоторые функции, например, ОткрытьФорму. Оно и понятно, она работает только в толстом клиенте. Пытаюсь изменить режим запуска для выбора режима запуска - не работает кнопка "Изменить". |
|||
8
slafor
06.04.20
✎
18:52
|
Повторю свой вопрос с некоторыми дополнениями.
"Внешняя обработка. На клиенте есть процедура заполнения табличной части, которая вызывает серверную функцию, примерно так: ВозвращаемыйМассив = ЗаполнитьНаСервере(); Если ВозвращаемыйМассив[2] = Истина Тогда ТабДок = ВозвращаемыйМассив[1]; ТабДок.ТолькоПросмотр = Истина; ТабДок.Показать("Результаты таблицы проверки данных"); КонецЕсли; В Возвращаемом массиве - 3 элемента: Табличный документ, Указание, надо ли показывать таблицу (Булево), и Таблица значений. В файловой версии все работает нормально, ошибок нет. Запускаю то же самое в той же базе на клиент-серверном варианте (SQL), и мне выдается ошибка "Ошибка отображения типов" и табличный документ не показывается. Да, собственно, на этом все и завершается." В Тонком клиенте тоже не работает. Только в Толстом. А почему - понять не могу. И от вида базы - файловый вариант или SQL - это никак не зависит. А я всего лишь с клиентской процедуры вызываю другую клиентскую процедуру, которая обращается к серверной функции, возвращающей массив с 3-мя элементами - Табличный документ, Булево и Таблицу значений. Ошибка возникает когда серверная функция пытается вернуть второй клиентской процедуре этот самый возвращаемый массив. "Ошибка отображения типов. Отсутствует отображение для типа... и т.д.". И только в Тонком клиенте, в Толстом все в порядке. |
|||
9
slafor
06.04.20
✎
18:59
|
Решил не заморачиваться с "вызовом клиентской процедуры из другой клиентской процедуры", а сделал проще:
Из одной клиентской процедуры сам вызываю серверную функцию. И - все равно мимо! Ну не хочет программа в тонком клиенте возвращать мне такой массив, и все тут... Почему, никто не сталкивался? |
|||
10
mikecool
06.04.20
✎
19:00
|
(9) тебе же уже все рассказали - избавься от методов, не работающих на сервере и все заработает
|
|||
11
slafor
06.04.20
✎
19:03
|
Причем в другой серверной процедуре есть вызов этой же серверной функции - и все работает. В любом клиенте работает...
(10) Интересно бы узнать, что именно из всего вышеизложенного не работает на сервере. В синткакс-помощнике написано что все работает. К тому же - что важно! - именно в тонком клиенте. |
|||
12
slafor
06.04.20
✎
19:15
|
Погуглил: в общем-то, вернуть такой сложный массив с сервера на клиент действительно может и не получиться...
Но вот, например, обычный табличный документ получается легко ) . В общем, всем спасибо, проблему выяснил, теперь остается найти способ ее решения. |
|||
13
acht
06.04.20
✎
19:29
|
(8) > "Ошибка отображения типов. Отсутствует отображение для типа... и т.д."
Если ты потрудишся прочитать сообщение об ошибке до конца - там будет XML имя типа, который не может быть передан. |
|||
14
Василий Алибабаевич
06.04.20
✎
19:39
|
(13) ГЫ. "возвращающей массив с 3-мя элементами - Табличный документ, Булево и Таблицу значений." ЦЫ(8)
Третий - он и есть. Не живет ТаблицаЗначений на клиенте. |
|||
15
acht
06.04.20
✎
19:44
|
(14) Вот ты только что демотивировал неграмотного пользователя читать сообщения об ошибках.
|
|||
16
slafor
06.04.20
✎
20:50
|
(14) Точно! Но я же ее только передаю, а в самой процедуре &НаКлиенте уже не использую. Все равно не прокатит?
|
|||
17
slafor
06.04.20
✎
21:09
|
(14) Да, и кстати. Точно такую же Таблицу Значений я передавал в процедуру &НаКлиенте, но запустив 1С на Толстом клиенте, и все заработало! Это как можно объяснить?
|
|||
18
Василий Алибабаевич
06.04.20
✎
21:24
|
(17) В СП в конце практически каждого описания есть слова типа:
" Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). " Осталось только прислушаться к голосу разума и использовать каждую сущность по своему назначению. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |