Общие модули, экспортная функция

1. tiger12 1 22.03.17 12:43 Сейчас в теме
В конфигурации 1С:Фитнес Клуб КОРП по общим модулям идут вызовы функции
КодОсновногоЯзыка(). При открытии формы справочника контрагенты ругается, что метод КодОсновногоЯзыка() не обнаружен.

В самом общем модуле этой функции нет. Добавляю тело функции как:

&НаСервере
Функция КодОсновногоЯзыка() Экспорт
       Возврат Метаданные.ОсновнойЯзык.КодЯзыка;
КонецФункции

При открытии формы справочника все равно ругается, что метод КодОсновногоЯзыка() не обнаружен.
По теме из базы знаний
Найденные решения
10. herfis 499 22.03.17 13:37 Сейчас в теме
То есть ее основной смысл - в кэшировании кода языка на клиенте для минимизации серверных вызовов.
На всякий случай сравните типовые модули с эталоном из используемой вами версии БСП.
15. herfis 499 22.03.17 13:43 Сейчас в теме
Ошибка появлялась, потому что в своей функции вы указали директиву компиляции на сервере и в клиентскую версию модуля она не попадала. Ну а если бы убрали директиву, тогда бы уже ругнулось на невозможность обращения с тонкого клиента к метаданным :)
18. herfis 499 22.03.17 16:13 Сейчас в теме
(17) Как какой? Восстановить тексты поломанных модулей.
Ну или можете в своей функции без директив написать Возврат "ru" (как уже советовали) и посмотреть, чего у вас там еще на очереди из поломанного :)
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 22.03.17 12:53 Сейчас в теме
(1) для более точного диагностирования проблемы желательно видеть код.
Похоже, что запускаете в толстом клиенте файловой базы. Там весь код формы справочника выполняется на клиенте.
И вызывается серверный модуль, который недоступен с клиента.

Тут несколько вариантов:
1. Запускать тонкий клиент.
2. Для серверного общего модуля добавить свойство "Вызов сервера".
3. Установить сервер 1С :)

С другой стороны, если вызывается метод, которого вообще нет... может эта форма была кем-то модифицирована и вызывала метод. А при очередном обновлении этот метод убрали/перенесли.
5. tiger12 1 22.03.17 13:13 Сейчас в теме
(2)

Работа идет в тонком клиенте.

(all)

Обращения идут к общему модулю ОбщегоНазначенияКлиентСервер. У него 2 галки Клиент и Сервер. В нем этой функции вообще не было, она была в Справочнике Классификаторы. Взял оттуда и вставил в общий модуль.
9. herfis 499 22.03.17 13:33 Сейчас в теме
(5) Очень странно. Это общий модуль БСП и там эта функция есть. Очевидно, кто-то ее удалил.
Выглядит она так:
Функция КодОсновногоЯзыка() Экспорт
	#Если НЕ ТонкийКлиент И НЕ ВебКлиент Тогда
		Возврат Метаданные.ОсновнойЯзык.КодЯзыка;
	#Иначе
		Возврат СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента().КодОсновногоЯзыка;
	#КонецЕсли
КонецФункции
12. kolya_tlt 86 22.03.17 13:38 Сейчас в теме
(9) вряд ли у них фитнес на ямайке. можно вернуть просто
"ru"

а то выяснится что стандартных подсистем у них нет
14. tiger12 1 22.03.17 13:39 Сейчас в теме
(12) это ясно, дело в том, что появляется ошибка и справочник не открывается. А вернуть мы согласны что угодно.
3. alex-l19041 8 22.03.17 12:54 Сейчас в теме
(1)
по общим модулям идут вызовы функции
КодОсновногоЯзыка()
- можете вызвать также, а не создавать свою функцию ?
6. kolya_tlt 86 22.03.17 13:16 Сейчас в теме
(1) куда вы там чего вставляете?
данная пр-ра уже имеется. используйте

ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка();
7. tiger12 1 22.03.17 13:23 Сейчас в теме
(6) откуда Вы уверены, что эта процедура имеется?
У нас как раз ошибка на том, что процедура вызывается, а в общем модуле ее нет
8. kolya_tlt 86 22.03.17 13:29 Сейчас в теме
(7) было бы странно иметь продукт с надписью КОРП который не написан с использованием БСП
16. spacecraft 22.03.17 14:07 Сейчас в теме
(7) могу предположить, что кто-то криво обновил БПО. С указанием взять из файла при обновлении. Там одноименный модуль с несколькими методами.
Проверьте весь модуль "ОбщегоНазначенияКлиентСервер". Если там мало функций/процедур, то точно при обновлении напортачили.
4. herfis 499 22.03.17 12:58 Сейчас в теме
По разным общим модулям идет вызов КодОсновногоЯзыка()? Очень странно.
Встроенной такой функции нет, а глобальные модуля в общих недоступны.
Может, это грязные хаки внешних библиотек?
Конфа поставляется с какой-то защитой, библиотеками?
10. herfis 499 22.03.17 13:37 Сейчас в теме
То есть ее основной смысл - в кэшировании кода языка на клиенте для минимизации серверных вызовов.
На всякий случай сравните типовые модули с эталоном из используемой вами версии БСП.
11. tiger12 1 22.03.17 13:38 Сейчас в теме
Спасибо, покрутим. про версию БСП узнаю
13. herfis 499 22.03.17 13:39 Сейчас в теме
Версию БСП можно глянуть в регистре сведений "Версии подсистем"
15. herfis 499 22.03.17 13:43 Сейчас в теме
Ошибка появлялась, потому что в своей функции вы указали директиву компиляции на сервере и в клиентскую версию модуля она не попадала. Ну а если бы убрали директиву, тогда бы уже ругнулось на невозможность обращения с тонкого клиента к метаданным :)
17. tiger12 1 22.03.17 16:01 Сейчас в теме
(15) Истинно. так какой выход?
18. herfis 499 22.03.17 16:13 Сейчас в теме
(17) Как какой? Восстановить тексты поломанных модулей.
Ну или можете в своей функции без директив написать Возврат "ru" (как уже советовали) и посмотреть, чего у вас там еще на очереди из поломанного :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот