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

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

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

При открытии формы справочника все равно ругается, что метод КодОсновногоЯзыка() не обнаружен.
---
То есть ее основной смысл - в кэшировании кода языка на клиенте для минимизации серверных вызовов.
На всякий случай сравните типовые модули с эталоном из используемой вами версии БСП.
---
Ошибка появлялась, потому что в своей функции вы указали директиву компиляции на сервере и в клиентскую версию модуля она не попадала. Ну а если бы убрали директиву, тогда бы уже ругнулось на невозможность обращения с тонкого клиента к метаданным :)
---
Как какой? Восстановить тексты поломанных модулей.
Ну или можете в своей функции без директив написать Возврат "ru" (как уже советовали) и посмотреть, чего у вас там еще на очереди из поломанного :)
---
для более точного диагностирования проблемы желательно видеть код.
Похоже, что запускаете в толстом клиенте файловой базы. Там весь код формы справочника выполняется на клиенте.
И вызывается серверный модуль, который недоступен с клиента.

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

С другой стороны, если вызывается метод, которого вообще нет... может эта форма была кем-то модифицирована и вызывала метод. А при очередном обновлении этот метод убрали/перенесли.
---
Работа идет в тонком клиенте.

(all)

Обращения идут к общему модулю ОбщегоНазначенияКлиентСервер. У него 2 галки Клиент и Сервер. В нем этой функции вообще не было, она была в Справочнике Классификаторы. Взял оттуда и вставил в общий модуль.
---
Очень странно. Это общий модуль БСП и там эта функция есть. Очевидно, кто-то ее удалил.
Выглядит она так:

```1c
    Функция КодОсновногоЯзыка() Экспорт
    #Если НЕ ТонкийКлиент И НЕ ВебКлиент Тогда
    Возврат Метаданные.ОсновнойЯзык.КодЯзыка;
    #Иначе
    Возврат СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента().КодОсновногоЯзыка;
    #КонецЕсли
    КонецФункции
```
---
вряд ли у них фитнес на ямайке. можно вернуть просто

```1c
    "ru"
```

а то выяснится что стандартных подсистем у них нет
---
это ясно, дело в том, что появляется ошибка и справочник не открывается. А вернуть мы согласны что угодно.
---
по общим модулям идут вызовы функции
КодОсновногоЯзыка() - можете вызвать также, а не создавать свою функцию ?
---
куда вы там чего вставляете?
данная пр-ра уже имеется. используйте

```1c
    ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка();
```
---
откуда Вы уверены, что эта процедура имеется?
У нас как раз ошибка на том, что процедура вызывается, а в общем модуле ее нет
---
было бы странно иметь продукт с надписью КОРП который не написан с использованием БСП
---
могу предположить, что кто-то криво обновил БПО. С указанием взять из файла при обновлении. Там одноименный модуль с несколькими методами.
Проверьте весь модуль "ОбщегоНазначенияКлиентСервер". Если там мало функций/процедур, то точно при обновлении напортачили.
---
По разным общим модулям идет вызов КодОсновногоЯзыка()? Очень странно.
Встроенной такой функции нет, а глобальные модуля в общих недоступны.
Может, это грязные хаки внешних библиотек?
Конфа поставляется с какой-то защитой, библиотеками?
---
То есть ее основной смысл - в кэшировании кода языка на клиенте для минимизации серверных вызовов.
На всякий случай сравните типовые модули с эталоном из используемой вами версии БСП.
---
Спасибо, покрутим. про версию БСП узнаю
---
Версию БСП можно глянуть в регистре сведений "Версии подсистем"
---
Ошибка появлялась, потому что в своей функции вы указали директиву компиляции на сервере и в клиентскую версию модуля она не попадала. Ну а если бы убрали директиву, тогда бы уже ругнулось на невозможность обращения с тонкого клиента к метаданным :)
---
Истинно. так какой выход?
---
Как какой? Восстановить тексты поломанных модулей.
Ну или можете в своей функции без директив написать Возврат "ru" (как уже советовали) и посмотреть, чего у вас там еще на очереди из поломанного :)