|
Тонкий клиент и толстый клиент: обращение к общим модулям...? | ☑ | ||
---|---|---|---|---|
0
Обработка
31.05.16
✎
09:34
|
У менять есть почти во всех справочниках в модуле менеджера такое.
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) Если НЕ ОбщегоНазначенияКлиентСервер.ТекущийЯзыкРусский() Тогда ...... ...... Так вот в тонком клиенте все работает норм. А вот запуск в толстом клиенте ругается на отсутсвие функции ТекущийЯзыкРусский()... Почему, кто чем посоветует??? |
|||
1
Обработка
31.05.16
✎
09:35
|
+
В общем модуле функция выглядит так: &НаСервере Функция ТекущийЯзыкРусский() Экспорт Возврат НЕ ЗначениеЗаполнено(ПараметрыСеанса.ТекущийЯзыкИнтерфейсаПрограммы) ИЛИ ПараметрыСеанса.ТекущийЯзыкИнтерфейсаПрограммы = ПредопределенноеЗначение("Справочник.Языки.Русский"); КонецФункции //ТекущийЯзыкРусский |
|||
2
Обработка
31.05.16
✎
09:37
|
И на самом общем модуле стоит галочки:
Клиент Сервер Врешнеее соединение |
|||
3
Mankubus
31.05.16
✎
09:37
|
(1)
&НаСервере -- это не нужно в общих модулях |
|||
4
b_ru
31.05.16
✎
09:37
|
Так ведь галочки "толстый клиент" на модуле не стоит, вот он и ругается.
|
|||
5
Обработка
31.05.16
✎
09:39
|
(4) там нет такой галочки...
Их всего три в свойствах модулей. |
|||
6
b_ru
31.05.16
✎
09:40
|
(5) То что она не показывается, не значит что ее нет :) Включи режим совместимости конфы - появится.
Ну или не насилуй тру^W толстого клиента. |
|||
7
Nuobu
31.05.16
✎
09:42
|
(4) Там есть галочка "Клиент (Обычное приложение)"
|
|||
8
Обработка
31.05.16
✎
09:42
|
(6) Режим совместимости стоит 8.3.3.
Сама конфа написаная с нуля на 1с.8.3 в режиме такси и по интерфейсу совместим с 8.2 |
|||
9
Обработка
31.05.16
✎
09:43
|
Обычно в базу я и все юзеры ходят в тонком клиенте.
Но при отладке иногда запускается в толстом... |
|||
10
Обработка
31.05.16
✎
09:45
|
(3) Не прав.
|
|||
11
b_ru
31.05.16
✎
09:47
|
(8) методом тыка выяснил, что галочка появляется, если основной режим запуска установлен в "обычное приложение".
|
|||
12
Обработка
31.05.16
✎
09:48
|
(6) Путаешь. Свойство модуля в конфе там всего три пункта.
|
|||
13
Обработка
31.05.16
✎
09:50
|
(11) Увидел. Но это ничего не изменяет. У меня же УФ
|
|||
14
ДенисЧ
31.05.16
✎
09:53
|
(13) основной режим запуска влияет только на то, как она из конфигшуратора по Ф5 запускаться будет
|
|||
15
Pistol
31.05.16
✎
09:54
|
(12) Четыре
|
|||
16
Обработка
31.05.16
✎
10:04
|
(15) Уже понял и увидел из (11).
в (12) ответил. Но у меня Управлемое приложение. |
|||
17
b_ru
31.05.16
✎
10:13
|
(16) Толстый/тонкий клиент и Управляемые/неуправляемые формы - это ортогональные понятия. (Правда, в 1с нет неуправляемых форм в тонком клиенте, но это нюансы).
|
|||
18
Обработка
31.05.16
✎
10:20
|
(17) Не стоит тут филосовствоаать.
Мне важно решить свою задачу. Как мне поправить самописку чтоб это у меня не возникало. А то уже почти год меня это тревожит . Я не решал эту проблему потому что особо и не запускаю под толстым клиентом. Но вот задался целю код подпраавить. |
|||
19
Shrek_yar
31.05.16
✎
10:42
|
Добавь #Если ТонкийКлиент
|
|||
20
Nuobu
31.05.16
✎
10:44
|
(19) #Если Клиент // это толстый клиент
|
|||
21
Shrek_yar
31.05.16
✎
10:47
|
(20) ?? поясни
|
|||
22
Nuobu
31.05.16
✎
10:52
|
(21) Что пояснять?
https://helpf.pro/suffix/view/24.html |
|||
23
Обработка
31.05.16
✎
11:14
|
(19)(22) Спасибо за советы.
Я смогу разделить и сделать разные обработчики от отлстого и тонкого клиента. Но я так и не пойму в чем моя ошибка использования конечной функции. Как мне переписать обращение? |
|||
24
Cyberhawk
31.05.16
✎
11:33
|
Поищи в этом модуле инструкцию препроцессора "ТонкийКлиент"
|
|||
25
Обработка
31.05.16
✎
11:44
|
(24) В модуле прописал. Условие отрабатывается.
Но мне же в ветку иначе надо опять писать код. И я все равно должен обращатся в общий модуль. Или куда мне эту процедуру разместить. Задача решается если я эту функцию перетащу в модуль менеджера справочника. Но тогда мне нужно будет во всех справочника перенести эту фукнкцию в модуля менеджеров каждого справочника. Это не есть решение проблемы. |
|||
26
Trucker
31.05.16
✎
11:45
|
(2) Зайди в параметры конфигуратара и выстави на закладке Общие Управляемое приложение и обычное приложение. Появится галка Клиент(обычное приложение) у общего модуля.
|
|||
27
Обработка
31.05.16
✎
11:45
|
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
#Если ТонкийКлиент Тогда Если НЕ ОбщегоНазначенияКлиентСервер.ТекущийЯзыкРусский() Тогда Если СокрЛП(Данные.ФИОТурецкое) = "" Тогда Представление = Данные.Наименование; Иначе Представление = Данные.ФИОТурецкое; КонецЕсли; СтандартнаяОбработка = Ложь; КонецЕсли; #Иначе /// ??????????????????? И что тут мне писать ????? #КонецЕсли КонецПроцедуры |
|||
28
Feunoir
31.05.16
✎
11:49
|
Я таки не понял ТС из общего модуля директиву &НаСервере уже убрал или пока нет?
|
|||
29
Обработка
31.05.16
✎
11:50
|
(28) Пробовал убрать сразу ошибку кажет.
|
|||
30
Обработка
31.05.16
✎
11:51
|
+(29)
Потому что в нем есть обращение на сервер.- ПараметрыСеанса //&НаСервере Функция ТекущийЯзыкРусский() Экспорт Возврат НЕ ЗначениеЗаполнено(ПараметрыСеанса.ТекущийЯзыкИнтерфейсаПрограммы) ИЛИ ПараметрыСеанса.ТекущийЯзыкИнтерфейсаПрограммы = ПредопределенноеЗначение("Справочник.Языки.Русский"); КонецФункции //ТекущийЯзыкРусский |
|||
31
Обработка
31.05.16
✎
11:52
|
А модуль по умоланию и серверный и клиент и даже внешнее соеднение
|
|||
32
Feunoir
31.05.16
✎
11:58
|
(30) А параметры сеанса в тонком клиенте недоступны.
Поэтому тебе нужно вынести эту процедуру в модуль, у которого стоят галки Сервер и Вызов сервера. Чтобы не переписывать все места где это встречаются нужно сделать заглушку-прокси. |
|||
33
Обработка
31.05.16
✎
12:23
|
(32) У меня как раз ошибка вылетает на толстом клиенте.
И еще я в том модуле пробовал включать Вызов сервера не помогает ни как. |
|||
34
Feunoir
31.05.16
✎
12:57
|
(33) У меня стойкое подозрение что толстый клиент криво компилит модуль, который по разному присутствует в разных контекстах. Например если при первом вызове к нему обращаются из клиентского контекста, то он его компилит без функции ТекущийЯзыкРусский, а когда потом вызывают в серверном контексте - забывает перекомпилировать.
Или другое сумасшедшее предположение, что в толстом клиенте модуль менеджера работает в клиентском контексте. И вызывает модуль ОбщегоНазначенияКлиентСервер тоже в клиентском контексте. В результате получается болт. |
|||
35
Обработка
31.05.16
✎
13:04
|
(34) Я все ждал такого рода ответ или хотя бы рассуждение.
Спасибо. Сам думаю, оставить разбирать эту ситуацию и просто в толстом клиенте исключить обращение как я выше это попробовал. При этом в толстом клиенте отображение представления нужных элементов справочников не на русском языке не будет выполнен. Это в принципе не критично, поскольку все сидят на тонком клиенте. Даже мне нет особой надобности ходить в толстом клиенте. Но хотел бы для себя и для кургозора понять в чем глюк? Или я криво реализовал или это глюк платформы. |
|||
36
Drac0
31.05.16
✎
13:04
|
(27) В модуле ОбщегоНазначенияКлиентСервер должно быть установлены директивы: "#Если &ТонкийКлиент ИЛИ &Сервер", но нету &ТолстыйКлиентУправляемоеПриложение
|
|||
37
Обработка
31.05.16
✎
13:12
|
" но нету &ТолстыйКлиентУправляемоеПриложение"
Не переварил... |
|||
38
Drac0
31.05.16
✎
13:31
|
Тебе ссылку в (22) давали.
|
|||
39
Обработка
31.05.16
✎
13:40
|
(38) Читал и не раз. Но там нет решения.
|
|||
40
Drac0
31.05.16
✎
13:41
|
(39) В кикие директивы препроцессора заключена твоя функция?
|
|||
41
Обработка
31.05.16
✎
13:48
|
Пока просто так:
&НаСервере Функция ТекущийЯзыкРусский() Экспорт Возврат НЕ ЗначениеЗаполнено(ПараметрыСеанса.ТекущийЯзыкИнтерфейсаПрограммы) ИЛИ ПараметрыСеанса.ТекущийЯзыкИнтерфейсаПрограммы = ПредопределенноеЗначение("Справочник.Языки.Русский"); КонецФункции |
|||
42
Стальная Крыса
31.05.16
✎
13:48
|
Что-то мудрите господа.
для "толстого клиента" в общем модуле надо так: #Если НЕ ТолстыйКлиент Тогда &НаСервере #КонецЕсли Функция ... КонецФункции |
|||
43
Стальная Крыса
31.05.16
✎
13:49
|
при совместном использовании "толстого" и "тонкого" вариантов такого геморроя не избежать принципе
|
|||
44
hhhh
31.05.16
✎
13:51
|
(41) поставь галки Толстый клиент, Сервер и Вызов сервера
слово &НаСервере убери |
|||
45
Обработка
31.05.16
✎
13:52
|
Уже и сам догадался
#Если ТолстыйКлиентУправляемоеПриложение Тогда #Иначе &НаСервере #КонецЕсли |
|||
46
Обработка
31.05.16
✎
13:52
|
)))
|
|||
47
Стальная Крыса
31.05.16
✎
13:55
|
а почему не так
#Если НЕ ТолстыйКлиентУправляемоеПриложение Тогда &НаСервере #КонецЕсли |
|||
48
Обработка
31.05.16
✎
13:57
|
ДА не суть все ясно.
Всем спасибо! |
|||
49
Drac0
31.05.16
✎
14:05
|
(42) Чой-та бред. Сколько работал с самопиской на УФ, там так не извращались. Хотя работали на Тонком и Толстом одновременно. Плюс сейчас накидал демку - все работает отлично. Вызов из модуля менеджера функции общего модуля с &НаСервере.
|
|||
50
Обработка
31.05.16
✎
14:20
|
(49) Не знаю что и как?
Писал самописку на 1с8.3.3 Сейчас стоит 1с8.3.7 Режим совместимости стоит на 8.3.3 |
|||
51
rozer76
31.05.16
✎
14:27
|
(45) это клево конечно но посмотри в типовых - там нет ОМ с галками одновременно и на клиенте и на сервере
|
|||
52
rozer76
31.05.16
✎
14:27
|
(51) догадываешься почему? )
|
|||
53
Обработка
31.05.16
✎
14:30
|
(52) Ошибаешься.
Открыл типовую БП для казахстана вот даже само название говорит% АдминистрированиеКластераКлиентСервер АдресныйКлассификаторКлиентСервер БухгалтерскиеОтчетыКлиентСервер |
|||
54
Обработка
31.05.16
✎
14:30
|
Это первые попавшиеся примеры у меня.
|
|||
55
Обработка
31.05.16
✎
14:32
|
И таких куча. Не открывайте мне америку. А то я подумал тоже.
|
|||
56
rozer76
31.05.16
✎
14:56
|
(55) почитайте методики разработки на ИТС про проектирование ОМ...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |