Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: При переходе на клиент-сервер - в рабочем коде появились ошибки
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
bizisoft
Здравствуйте.
1C 8.2.19.130
Альфа-Авто 4.1.21.01

Наладил SQL Server, создал пустую базу, загрузил базу из файла *.dt.
При запуске вылетают ошибки в процедурах/функциях, которые в файловом режиме работали без замечаний.

Процедура или функция с указанным именем не определена (ПолучитьМакетОформления)Построитель.МакетОформления = <<?>>ПолучитьМакетОформления(СтандартноеОформление.Классика);

Процедура на которую ругается вынесена в общий модуль и выглядит так:
Процедура бсПоказатьРезультатВТаблице(ТЗ) Экспорт
    Построитель = Новый ПостроительОтчета;
    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);
    Построитель.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Классика);
    Построитель.Выполнить();
    Для каждого Колонка Из Построитель.ВыбранныеПоля Цикл
        Колонка.Представление = ТЗ.Колонки[Колонка.Имя].Заголовок;        
    КонецЦикла;
    Построитель.Вывести();
КонецПроцедуры


или вот еще одна ошибка
{РегистрСведений.СравнениеПрайсов.Форма.ФормаСписка.Форма(22,12)}: Процедура или функция с указанным именем не определена (КурсЗапросомСервер)
    ТекКурс = <<?>>КурсЗапросомСервер(ВыбрВалюта);


Ругается на эту строку:
ТекКурс = КурсЗапросомСервер(ВыбрВалюта);


Функция выглядит так:
&НаСервере
Функция КурсЗапросомСервер(ВыбрВалюта)
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Дата",ТекущаяДата());
    Запрос.УстановитьПараметр("Валюта",ВыбрВалюта);
    Запрос.Текст = "Выбрать        
            |КурсыВалют.Период,        
            |КурсыВалют.Курс,        
            |КурсыВалют.Кратность        
            |ИЗ        
            |РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта =&Валюта) КАК КурсыВалют";
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Если Выборка.Следующий() Тогда      
        Рез = Выборка.Курс; //Строка(Выборка.Курс)+":"+Строка(Выборка.Кратность);
    КонецЕсли;
    Возврат Рез;
КонецФункции


Это особенность клиент-серверного режима и эти функции/процедуры нужно как-то по особенному переписать?
Подскажите пожалуйста, с чем связано такое поведение и как этого можно избежать?
sava1
общий модуль - свойства - клиент,сервер, ......

а Курс.... Экспорт
bizisoft
sava1 @ Сегодня, 10:39 необходимо зарегистрироваться для просмотра ссылки ,
У общего модуля установлены следующие свойства:
Глобальный = Истина
Клиент (упр.ф.) = Ложь
Сервер = Истина
Внешн.соед. = Истина
Клиент (об.ф.) = Истина
Вызов серв = Истина
Привелигер. = Ложь

Сделал Курс Экспорт

Но к сожалению ничего не изменилось.
sava1
по первому участку - на сервере не выполнится - там нет макетаОформления - лепите в клиентский модуль или передавайте макетОформления как параметр

второй кусок - должен выполнятся (НаСервере) . единственно - НаСервереБезКонтекста. может вызов неправильный ???

по Построитель.Вывести() - а куда Вы собираетесь выводить ? Создайте ТабДок и передайте на клиент. на сервере ТабДок не покажет.....
bizisoft
Перенес функцию КурсЗапросомСервер(Валюта) из РегистрСведений ФормаСписка в общий модуль и ошибка с получением курса ушла.
Получается в клиент-серверном режиме нельзя прописывать в модуле формы функции с директивой &НаСервере ?


По построителю получилось запустить функцию из общего модуля добавив директиву &НаКлиенте.
После этого ошибка пропала.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.