Имя: Пароль:
1C
1С v8
Ошибка отображения типов и Интерактивные операции недоступны в 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) В СП в конце практически каждого описания есть слова типа:
"
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
"
Осталось только прислушаться к голосу разума и использовать каждую сущность по своему назначению.
Основная теорема систематики: Новые системы плодят новые проблемы.