|   |   | 
| 
 | Тонкий клиент и толстый клиент: обращение к общим модулям...? | ☑ | ||
|---|---|---|---|---|
| 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) почитайте методики разработки на ИТС про проектирование ОМ...     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |