Имя: Пароль:
1C
1С v8
Почему может не работать ПолучитьОбъект()
,
0 1sik
 
22.10.14
10:55
Запустил УТ 11.1.4.13 на 8.3.5.11.46 в обычном приложении, сделал обработку на обычной форме, на форме есть реквизит с типом документ реализация товаров ссылка, в коде     
текСсылка = этотобъект.РТУ;
ТекОбъект = ТекСсылка.ПолучитьОбъект(); у меня при получения объекта вылетает ошибка, причем ругается на строчку в общем модуле, относящуюся к регламентному заданию, которая ни как не может относиться к получению объекта. Вопрос в том почему не работает стандартный метод Для ссылки, копия базы в файловом варианте работает нормально, глюк только в клиент-серверном. В управляемых формах такого глюка нет.
1 hhhh
 
22.10.14
10:58
когда вызывается общий модуль, производится синтаксический контроль ВСЕГО модуля, а не одной процедуры.
2 palpetrovich
 
22.10.14
10:59
тут работает, тут не работает...  
че-т как-то непонятно все зто: текСсылка = этотобъект.РТУ;
ТекОбъект = ТекСсылка.ПолучитьОбъект();

реквизит на форме - РТУ?
3 Maxus43
 
22.10.14
11:00
не надо потому что мешать все процедуры в один общий модуль. Не просто так их называют ОбщегоНазначения, ОбщегоНазначенияСЕРВЕР, общегоНазначенияКЛИЕНТ и т.д.
4 1sik
 
22.10.14
11:01
(2) Да, я отладкой останавливался чтобы убедиться что текссылка имеет тип ДокументСсылка.
5 Maxus43
 
22.10.14
11:01
текст ошибки в студию
6 1sik
 
22.10.14
11:04
(3)  При чем здесь мешать? У меня есть общий модуль для регламентных заданий, регламентное задание прекрасно работает без каких либо ошибок. Сегодня сделал обработку в модуле формы которой, две строки и она ругается на тот модуль. А идея создать обработку пришла потому что была обработка, на обычной форме, которая работала с табличными частями документа, и она ругалась как раз таки при получении объекта из ссылки.
7 1sik
 
22.10.14
11:05
(5) {ОбщийМодуль.ДополнительныеФункции.Модуль(3357,4)}: Процедура или функция с указанным именем не определена (ЗагрузитьНаСервереЗаказ)
            <<?>>ЗагрузитьНаСервереЗаказ(ВыборкаДетальныеЗаписи.Ссылка);
8 palpetrovich
 
22.10.14
11:06
а в "в клиент-серверном" на 8.2 - работает?
9 1sik
 
22.10.14
11:06
(7)
Процедура ПрочитатьФайлыСЗаказами() Экспорт

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Т_НастройкиОбмена.Ссылка
        |ИЗ
        |    Справочник.Т_НастройкиОбмена КАК Т_НастройкиОбмена
        |ГДЕ
        |    НЕ Т_НастройкиОбмена.ПометкаУдаления";
    
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Попытка
            ЗагрузитьНаСервереЗаказ(ВыборкаДетальныеЗаписи.Ссылка);
        Исключение
        КонецПопытки;
    КонецЦикла;

КонецПроцедуры


А эта процедура целиком, которае принадлежит к регламентому заданию, на строку из этой процедуры ругпется обработка.
10 Maxus43
 
22.10.14
11:06
(7) галку клиент надо убирать с модуля. Модуль с регламентыми там Сервер и вызов сервера достаточно, или всю процедуру регламентого обрамляй #Если Сервер Тогда
11 Maxus43
 
22.10.14
11:08
надо рефакторинг кода делать, намешаны процедуры разного контекста.

В пофигураторе есть "проверка конфигурации", там поставить галки Сервер, Клиент (обычное приложение, вариант клиент-сервер) и другие если надо, выдаст кучу ошибок, с которыми надо разобраться
12 hhhh
 
22.10.14
11:08
(7) ну давайте галочки показывайте в свойсвах этого общего модуля.
13 1sik
 
22.10.14
11:08
(10) Щас попробую.
14 lxndr
 
22.10.14
11:10
(10) наоборот поставить: Клиент (обычное приложение)
15 1sik
 
22.10.14
11:10
(12) Галка клиент там есть, но это модуль появился еще до меня, и до сего момента все работало.
16 lxndr
 
22.10.14
11:11
(15) сначала включи в сервиспараметры:
Редактирование конфигурации для режимов запуска = упр и обычн. приложения
17 1sik
 
22.10.14
11:11
(14) Я уже ставил #если клиент в обработке, но она ругалась, я так понимаю надо в общем модуле поставить #если сервер, чтобы туда не проваливалось.
18 hhhh
 
22.10.14
11:12
(14) нельзя ставить галку клиент, процедура ЗагрузитьНаСервереЗаказ явно серверная, она не запустится тогда, будет ошибка как в (7)
19 1sik
 
22.10.14
11:13
(16) Если бы галка не стояла там, в обычном приложении конфигурация не запустилась бы.
20 1sik
 
22.10.14
11:36
(10) Сначала сделал #Если сервер... у меня стало ругаться уже на другую процедуру, соответственно убрал галку клиент, теперь все хорошо. Спасибо. На первый взгляд галка клиент не должна повлиять ни на что, ну а если что узнаю.
21 Maxus43
 
22.10.14
11:39
(20) надо процедуры правильно разнести по модулям с нужными галками, у тебя щас в куче и клиентские и серверные, в них обращения на другие процедуры, которых как в твоём случае на клиенте просто нет и т.д. и т.п.
22 Maxus43
 
22.10.14
11:40
в идеале после (11) у тебя не должно быть ни одной ошибки