Имя: Пароль:
1C
1С v8
Метод не доступен на сервере
0 13spartak13
 
21.03.16
10:49
Есть вот такой код:

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


Выдает вот такую ошибку:

{Документ.НоваяЗаявка.Форма.ФормаДокумента.Форма(132)}: Ошибка при вызове метода контекста (ДанныеСтроки)
    ЗначТаб2 = Элементы.ИнформацияОВодомерах.ДанныеСтроки(Элементы.ИнформацияОВодомерах.ТекущаяСтрока);
по причине:
Метод недоступен на сервере

Соответственно если делать на клиенте он ругается что нельзя работать со справочниками на клиенте, как оптимизировать?
1 aleks_default
 
21.03.16
10:54
ТекущиеДанные
2 Звездец
 
21.03.16
10:54
почитать книжку тематическую и научиться программировать. Разобраться какие методы и объекты где существуют
3 13spartak13
 
21.03.16
10:56
(1) Спасибо за совет!
4 13spartak13
 
21.03.16
10:59
(2) Не все программисты с рождения в отличии от Вас Звездец, некоторые учатся, и то что у меня было написано, написано из изучения по книге... А разобраться с клиент сервером это не для всех легко!
5 Звездец
 
21.03.16
11:02
(4) так я и не говорил что легко. Когда переходил с 77, у меня тоже было очень много подобных вопросов. Книжка Радченко реально помогает, это тут очень многие подтвердят. Причем читать надо по порядку, даже если глава кажется знакомой, все равно лучше прочитать не перескакивая.

Чайку попейте, не надо бросаться на людей с утра. Спокойнее надо быть
6 13spartak13
 
21.03.16
11:05
(5) Извиняюсь если обидел, но поверьте писал не в грубой форме. И кстати вопрос открыт "Текущие данные" так же не доступны на сервере...
7 LordCMEPTb
 
21.03.16
11:05
На сервере и текущих данных не будет.
Тут либо на клиенте получать данные строки, упаковать их в структуру и передать на сервер, либо на сервере достать из таблицы строку по идентификатору текущей строки.
8 13spartak13
 
21.03.16
11:08
(7) либо на сервере достать из таблицы строку по идентификатору текущей строки, можно немного по подробнее как это реализовать?
9 aleks_default
 
21.03.16
11:10
А ну да, ну ты же серверную процедуру вызываешь из клинентской - вот и передваай туда параметры.
10 aleks_default
 
21.03.16
11:11
Чет стормозил я. У меня таких вопросов никогда не возникало.
11 LordCMEPTb
 
21.03.16
11:12
(8) Если это не динамический список, то можно по идентификатору текущей строки (либо из "ТекущаяСтрока" или брать по "ВыделенныеСтроки") из таблицы найти строки "НайтиПоИдентификатору()".
А вот с динамическим списком такое не прокатит.
12 LordCMEPTb
 
21.03.16
11:15
(10) Когда в жизни не имел дело с клиент-серверным взаимодействием, а тут сразу в него окунают, тут еще и не такие вопросы возникнуть могут...