Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка отображения типов и Интерактивные операции недоступны в SQL-версии

Ошибка отображения типов и Интерактивные операции недоступны в SQL-версии
Я
   slafor
 
25.03.20 - 13:28
Внешняя обработка. На клиенте есть процедура заполнения табличной части, которая вызывает серверную функцию, примерно так:

ВозвращаемыйМассив = ЗаполнитьНаСервере();
    
Если ВозвращаемыйМассив[2] = Истина Тогда
  ТабДок = ВозвращаемыйМассив[1];
  ТабДок.ТолькоПросмотр = Истина;
  ТабДок.Показать("Результаты таблицы проверки данных");
КонецЕсли;

В Возвращаемом массиве - 3 элемента: Табличный документ, Указание, надо ли показывать таблицу (Булево), и Таблица значений.

В файловой версии все работает нормально, ошибок нет. Запускаю то же самое в той же базе на клиент-серверном варианте (SQL), и мне выдается ошибка "Ошибка отображения типов" и табличный документ не показывается. Да, собственно, на этом все и завершается.

Далее, если табличная часть, в которой обрабатывается событие выбора строки. В этой процедуре (на клиенте) вызывается серверная процедура с кодом:

Док.ПолучитьФорму().Открыть();,

где Док - ссылка на документ из выбранной строки табличной части. Тут похожая ситуация: в файловом режиме все ОК. Запускаю в базе на SQL - выскакивает ошибка "Интерактивные операции недоступны".

Что это такое и как можно с этим справиться?
   SSSSS_AAAAA
 
1 - 25.03.20 - 13:34
(0) "Что это такое и как можно с этим справиться?"
Это стандартное поведение платформы и справляться с этим не надо. Надо научиться работать в обоих режимах.
Надо понять, что на сервере нет форм и что на нём же "Интерактивные операции недоступны".
Почитай что-нить по работе в клиент-серверном варианте.
   ДенисЧ
 
2 - 25.03.20 - 13:37
"серверная процедура с кодом:

Док.ПолучитьФорму().Открыть()"


тут недалеко завалялся мой ПКМ.... оттереть его от масла, что ли?
   ДенисЧ
 
3 - 25.03.20 - 13:37
"как можно с этим справиться?"

Бежать...
   Жан Пердежон
 
4 - 25.03.20 - 14:54
сдается мне, тс не отличает файловый вариант и толстый клиент
   slafor
 
5 - 25.03.20 - 15:08
(4) и всем.

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

А во-вторых, в обоих случаях все будет работать, если запускать клиент в толстом режиме. А у меня по умолчанию запускался в тонком.
   Жан Пердежон
 
6 - 25.03.20 - 15:38
(5) теперь осталось сделать, чтобы в тонком клиенте всё работало
   slafor
 
7 - 25.03.20 - 16:01
(6) А вот в тонком клиент-то как раз это и не работает. И тут возникла еще одна проблема.

Запускаю 1С SQL в Конфигураторе, из него - Предприятие - все работает (потому что, очевидно, в толстом клиенте). Запускаю просто из ярлыка запуска - 1cestart.exe, и не работают некоторые функции, например, ОткрытьФорму. Оно и понятно, она работает только в толстом клиенте. Пытаюсь изменить режим запуска для выбора режима запуска - не работает кнопка "Изменить".
   slafor
 
8 - 06.04.20 - 18:52
Повторю свой вопрос с некоторыми дополнениями.

"Внешняя обработка. На клиенте есть процедура заполнения табличной части, которая вызывает серверную функцию, примерно так:

ВозвращаемыйМассив = ЗаполнитьНаСервере(); 
     
Если ВозвращаемыйМассив[2] = Истина Тогда 
  ТабДок = ВозвращаемыйМассив[1]; 
  ТабДок.ТолькоПросмотр = Истина; 
  ТабДок.Показать("Результаты таблицы проверки данных"); 
КонецЕсли; 

В Возвращаемом массиве - 3 элемента: Табличный документ, Указание, надо ли показывать таблицу (Булево), и Таблица значений. 

В файловой версии все работает нормально, ошибок нет. Запускаю то же самое в той же базе на клиент-серверном варианте (SQL), и мне выдается ошибка "Ошибка отображения типов" и табличный документ не показывается. Да, собственно, на этом все и завершается." 

В Тонком клиенте тоже не работает. Только в Толстом. А почему - понять не могу.

И от вида базы - файловый вариант или SQL - это никак не зависит.

А я всего лишь с клиентской процедуры вызываю другую клиентскую процедуру, которая обращается к серверной функции, возвращающей массив с 3-мя элементами - Табличный документ, Булево и Таблицу значений. Ошибка возникает когда серверная функция пытается вернуть второй клиентской процедуре этот самый возвращаемый массив. "Ошибка отображения типов. Отсутствует отображение для типа... и т.д.". И только в Тонком клиенте, в Толстом все в порядке.
   slafor
 
9 - 06.04.20 - 18:59
Решил не заморачиваться с "вызовом клиентской процедуры из другой клиентской процедуры", а сделал проще:

Из одной клиентской процедуры сам вызываю серверную функцию. И - все равно мимо!

Ну не хочет программа в тонком клиенте возвращать мне такой массив, и все тут... Почему, никто не сталкивался?
   mikecool
 
10 - 06.04.20 - 19:00
(9) тебе же уже все рассказали - избавься от методов, не работающих на сервере и все заработает
   slafor
 
11 - 06.04.20 - 19:03
Причем в другой серверной процедуре есть вызов этой же серверной функции - и все работает. В любом клиенте работает...

(10) Интересно бы узнать, что именно из всего вышеизложенного не работает на сервере. В синткакс-помощнике написано что все работает. К тому же - что важно! - именно в тонком клиенте.
   slafor
 
12 - 06.04.20 - 19:15
Погуглил: в общем-то, вернуть такой сложный массив с сервера на клиент действительно может и не получиться...

Но вот, например, обычный табличный документ получается легко ) . В общем, всем спасибо, проблему выяснил, теперь остается найти способ ее решения.
   acht
 
13 - 06.04.20 - 19:29
(8) > "Ошибка отображения типов. Отсутствует отображение для типа... и т.д."

Если ты потрудишся прочитать сообщение об ошибке до конца - там будет XML имя типа, который не может быть передан.
   Василий Алибабаевич
 
14 - 06.04.20 - 19:39
(13) ГЫ. "возвращающей массив с 3-мя элементами - Табличный документ, Булево и Таблицу значений." ЦЫ(8)
Третий - он и есть. Не живет ТаблицаЗначений на клиенте.
   acht
 
15 - 06.04.20 - 19:44
(14) Вот ты только что демотивировал неграмотного пользователя читать сообщения об ошибках.
   slafor
 
16 - 06.04.20 - 20:50
(14) Точно! Но я же ее только передаю, а в самой процедуре &НаКлиенте уже не использую. Все равно не прокатит?
   slafor
 
17 - 06.04.20 - 21:09
(14) Да, и кстати. Точно такую же Таблицу Значений я передавал в процедуру &НаКлиенте, но запустив 1С на Толстом клиенте, и все заработало! Это как можно объяснить?
   Василий Алибабаевич
 
18 - 06.04.20 - 21:24
(17) В СП в конце практически каждого описания есть слова типа:
"
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
"
Осталось только прислушаться к голосу разума и использовать каждую сущность по своему назначению.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.