Имя: Пароль:
1C
 
Проблема &НаСервере/&НаКлиенте
,
0 ligatr
 
05.10.18
13:52
Что есть: 1C 8.3 на управляемых формах.
Необходимо из процедуры

ЗаполнениеТЧНаОсновеВведенныхДанных - &НаСервере каким-то образом на активной форме в табличной части обновить текущую строку (часть колонок) на основе данных объекта (СчетчикСсылка)

Вот код

&НаСервере
Функция ВыборкаДанных()
                Запрос = Новый Запрос;
                Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                |            ВладелецСчетчикаСрезПоследних.Счетчик КАК Счетчик,
                |            ВладелецСчетчикаСрезПоследних.Абонент КАК Абонент,
                |            ВладелецСчетчикаСрезПоследних.МестоУстановки КАК МестоУстановки,
                |            ВладелецСчетчикаСрезПоследних.Счетчик.МестаПодключения КАК СчетчикМестаПодключения,
                |            ВладелецСчетчикаСрезПоследних.Счетчик.Коэффициент КАК СчетчикКоэффициент,
                |            ВладелецСчетчикаСрезПоследних.Счетчик.ЗаводскойНомер КАК СчетчикЗаводскойНомер
                |ИЗ
                |            РегистрСведений.ВладелецСчетчика.СрезПоследних КАК ВладелецСчетчикаСрезПоследних
                |ГДЕ
                |            ВладелецСчетчикаСрезПоследних.МестоУстановки.Ссылка ЕСТЬ НЕ NULL
                |            И
                |  ВладелецСчетчикаСрезПоследних.Счетчик.ВидУслуги = &ВидУслуги
                |
                |УПОРЯДОЧИТЬ ПО
                |            Абонент";
              
                Запрос.УстановитьПараметр("ВидУслуги",Объект.ВидУслуг);
                Результат = Запрос.Выполнить().Выбрать();
                Объект.ТЧВводПоказанийСчетчиков.Очистить();
                Пока Результат.Следующий() Цикл
                               НоваяСтрока = Объект.ТЧВводПоказанийСчетчиков.Добавить();
                               НоваяСтрока.Контрагенты = Результат.Абонент.Ссылка;                    
                               НоваяСтрока.МестоУстановки = Результат.МестоУстановки;
                               НоваяСтрока.МестоПодключения = Результат.СчетчикМестаПодключения;
                               НоваяСтрока.Счетчик = Результат.Счетчик.Ссылка;
                               НоваяСтрока.КонецМесяца = "";
                               НоваяСтрока.НачалоМесяца = "";
                               НоваяСтрока.РазностьПоказаний = "";
                               НоваяСтрока.Коэффициент = Результат.СчетчикКоэффициент;
                               НоваяСтрока.Потери = "";
                               НоваяСтрока.Расход = "";
                КонецЦикла;
                Возврат 0;
КонецФункции              

&НаКлиенте
Процедура Заполнить(Команда)
                ВД = ВыборкаДанных();
КонецПроцедуры

&НаКлиенте
Процедура ТЧВводПоказанийСчетчиковСчетчикПриИзменении(Элемент)
                ЗаполнениеТЧНаОсновеВведенныхДанных(Элементы.ТЧВводПоказанийСчетчиков.ТекущиеДанные.Счетчик);
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнениеТЧНаОсновеВведенныхДанныхНаКлиенте(Элемент)
                               Элементы.ТЧВводПоказанийСчетчиков.ТекущиеДанные.Контрагенты = Элемент.Абонент.Ссылка;
                               Сообщить(Элемент.Код);                                          
КонецПроцедуры
              

&НаКлиенте
Процедура ОбновлениеДанныхТЧ(Элемент)
                               Элементы.ТЧВводПоказанийСчетчиков.ТекущиеДанные.Контрагенты = Элемент.Абонент.Ссылка;
                               Сообщить(Элемент.Код);                                          
КонецПроцедуры


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


При попутке корректности кода выдает вот такую ошибку.


{Документ.ВводПоказанийСчетчиков.Форма.ФормаДокумента.Форма(72,1)}: Процедура или функция с указанным именем не определена (ОбновлениеДанныхТЧ)
<<?>>ОбновлениеДанныхТЧ(СчетчикСсылка); (Проверка: Сервер)
{Документ.ВводПоказанийСчетчиков.Форма.ФормаДокумента.Форма(72,1)}: Процедура или функция с указанным именем не определена (ОбновлениеДанныхТЧ)
<<?>>ОбновлениеДанныхТЧ(СчетчикСсылка); (Проверка: Мобильное приложение-сервер)


Если процедуру ОбновлениеДанныхТЧ делать &НаСервере, то возникает ошибка что "Текущие данные таблицы недоступны на сервере".

В чем ошибка?
1 Borteg
 
05.10.18
13:58
(0) С сервера нельзя вызывать клиент
2 Borteg
 
05.10.18
13:59
(0) а вообще стоит изучить работу с формами в управляемом режиме,процедуры выше - отвратительны.
3 Tonik992
 
05.10.18
14:00
Представить, что "НаКлиенте" - это ты.
"НаСервере" - это гора.

Так вот эта гора никогда не придет к магомеду сама. Только магомед идет к горе.
4 hhhh
 
05.10.18
14:05
(0) посмтри в типовых как сделано. во всех документах КоличествоПриИзменении, ЦенаПриИзменении и так далее
5 ligatr
 
05.10.18
14:26
В том то и дело что все конфигурации которые мне доступна сделаны без &НаСервере/&НаКлиенте и не используют управляемые формы.
6 ligatr
 
05.10.18
14:29
Подскажите где взять типовую для обучения?
7 cons24
 
05.10.18
14:31
Третья ссылка в гугле по запросу "скачать бухгалтерия предприятия 3.0".
8 Aleksey
 
05.10.18
14:36
(6) купить, она стоит не дорого
9 Aleksey
 
05.10.18
14:37
Скачайте бесплатно версию для обучения программированию в системе «1С:Предприятие 8»! Для получения дистрибутива заполните анкету и примите условия Лицензионного соглашения.

Полный комплект, включающий учебную версии платформы «1С:Предприятие 8», демонстрационные конфигурации, учебную конфигурацию «Бухгалтерия предприятия», документацию и методические материалы:
(с) http://online.1c.ru/catalog/free/learning
10 Aleksey
 
05.10.18
14:38
Фирма "1С" извещает о поступлении в продажу 11.09.2014 г. нового издания учебной версии программы "1С:Бухгалтерия 8":

Рекомендованная розничная цена «1С:Бухгалтерия 8.Учебная версия» – 300 руб.
(с) http://1c.ru/news/info.jsp?id=18814
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн