|
v8: заполнение табличной части справочника | ☑ | ||
---|---|---|---|---|
0
MariAlex
03.06.13
✎
13:41
|
Есть справочник Должность и справочник ПлатныхУслуг. В табличной части платных услуг, нужно выбрать Должность, где указан так же среднедолжностной оклад и вычислить Затраты на оплату труда
&НаКлиенте Процедура ЗатратыНаОплатуТрудаДолжностьПриИзменении(Элемент) ТекСтрока = Элементы.ЗатратыНаОплатуТруда.ТекущиеДанные; ТекСтрока.ЗатратыНаОплату=ТекСтрока.Должность.СреднийДолжностнойОклад*Элементы.ВремяОказываемойУслуги/Константа.МесячныйФондРабочегоВремени.Получить() ; КонецПроцедуры -------------------------------------------- {Справочник.ПлатныеУслуги.Форма.ФормаЭлемента.Форма(5)}: Поле объекта не обнаружено (СреднийДолжностнойОклад) ТекСтрока.ЗатратыНаОплату=ТекСтрока.Должность.СреднийДолжностнойОклад*Элементы.ВремяОказываемойУслуги ; {Справочник.ПлатныеУслуги.Форма.ФормаЭлемента.Форма(5,104)}: Переменная не определена (Константа) ТекСтрока.ЗатратыНаОплату=ТекСтрока.Должность.СреднийДолжностнойОклад*Элементы.ВремяОказываемойУслуги/<<?>>Константа.МесячныйФондРабочегоВремени.Получить() ; (Проверка: Тонкий клиент) |
|||
1
Maxus43
03.06.13
✎
13:42
|
КонстантЫ.МесячныйФондРабочегоВремени.Получить()
|
|||
2
Рэйв
03.06.13
✎
13:43
|
1. НЕ Константа, а КонстантЫ
2. Нет у должностей реквизита с именем СреднийДолжностнойОклад |
|||
3
Рэйв
03.06.13
✎
13:45
|
+ вренее нет у
ТекСтрока.Должность ...Неизвестно что там у тебя лежит. |
|||
4
MariAlex
03.06.13
✎
14:26
|
должность справочник, у него реквизит СреднийДолжностнойОклад
|
|||
5
MariAlex
03.06.13
✎
14:28
|
переписала так
&НаСервере Процедура РасчитатьЗатратыНаОплату(ТекСтрока) ТекСтрока.ЗатратыНаОплату=ТекСтрока.Должность.СреднийДолжностнойОклад*Элементы.ВремяОказываемойУслуги/Константы.МесячныйФондРабочегоВремени.Получить() ; КонецПроцедуры &НаКлиенте Процедура ЗатратыНаОплатуТрудаДолжностьПриИзменении(Элемент) ТекСтрока = Элементы.ЗатратыНаОплатуТруда.ТекущиеДанные; РасчитатьЗатратыНаОплату(ТекСтрока); КонецПроцедуры __________________________________________ {Справочник.ПлатныеУслуги.Форма.ФормаЭлемента.Форма(13)}: Ошибка при вызове метода контекста (РасчитатьЗатратыНаОплату) РасчитатьЗатратыНаОплату(ТекСтрока); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства 'param': форма: Элемент имя: {http://v8.1c.ru/8.2/managed-application/modules}param по причине: Ошибка отображения типов: Отсутствует отображение для типа 'ДанныеФормыЭлементКоллекции' |
|||
6
1Сергей
03.06.13
✎
14:29
|
(5) считай в функции на сервере, а значение (числовое) передавай на клиента. СтрокуТЧ нельзя передать на сервер
|
|||
7
MariAlex
03.06.13
✎
15:30
|
не могу сообразить какую числовое значение передать
&НаСервере Процедура РасчитатьЗатратыНаОплату() ТекСтрока = Элементы.ЗатратыНаОплатуТруда.ТекущиеДанные; ТекСтрока.ЗатратыНаОплату=ТекСтрока.Должность.СреднийДолжностнойОклад*Элементы.ВремяОказываемойУслуги/Константы.МесячныйФондРабочегоВремени.Получить() ; КонецПроцедуры &НаКлиенте Процедура ЗатратыНаОплатуТрудаДолжностьПриИзменении(Элемент) РасчитатьЗатратыНаОплату(); КонецПроцедуры |
|||
8
1Сергей
03.06.13
✎
15:52
|
как-то так:
&НаСервере Функция РасчитатьЗатратыНаОплату(СреднийДолжностнойОклад) Возврат СреднийДолжностнойОклад * Объект.ВремяОказываемойУслуги/Константы.МесячныйФондРабочегоВремени.Получить(); КонецФункции &НаКлиенте Процедура ЗатратыНаОплатуТрудаДолжностьПриИзменении(Элемент) РасчитатьЗатратыНаОплату(); ТекСтрока = Элементы.ЗатратыНаОплатуТруда.ТекущиеДанные; ТекСтрока.ЗатратыНаОплату = РасчитатьЗатратыНаОплату(ТекСтрока.Должность.СреднийДолжностнойОклад); КонецПроцедуры не совсем понятно откуда ты берёшь ВремяОказываемойУслуги |
|||
9
MariAlex
03.06.13
✎
15:54
|
из шапки справочника ПлатныеУслуги
|
|||
10
MariAlex
03.06.13
✎
15:58
|
выдает ошибку
{Справочник.ПлатныеУслуги.Форма.ФормаЭлемента.Форма(8,5)}: Недостаточно фактических параметров (РасчитатьЗатратыНаОплату) <<?>>РасчитатьЗатратыНаОплату(); |
|||
11
MariAlex
03.06.13
✎
16:00
|
убрала РасчитатьЗатратыНаОплату();
выдал: {Справочник.ПлатныеУслуги.Форма.ФормаЭлемента.Форма(10)}: Поле объекта не обнаружено (СреднийДолжностнойОклад) ТекСтрока.ЗатратыНаОплату = РасчитатьЗатратыНаОплату(ТекСтрока.Должность.СреднийДолжностнойОклад); |
|||
12
DaZol1991
03.06.13
✎
16:09
|
(11) передавай ТекСтрока.Должность параметром, а не ТекСтрока.Должность.СреднийДолжностнойОклад
На сервере уже обращайся Должность.СреднийДолжностнойОклад На клиенте нельзя обращаться дальше чем на одну точку. Можно еще намудрить и на сервере получать текущую строку: ТекСтрока = Объект.ЗатратыНаОплатуТруда.НайтиПоИдентификатору(Элементы.ЗатратыНаОплатуТруда.ТекущаяСтрока) На сервере нет метода ТекущиеДанные |
|||
13
MariAlex
03.06.13
✎
16:11
|
Пробую так
&НаСервере Процедура РасчитатьЗатратыНаОплату(Знач ТекущаяСтрока) Если ТекущаяСтрока <> Неопределено Тогда ТекСтрока = ЗатратыНаОплатуТруда.НайтиПоИдентификатору(ТекущаяСтрока); Если ТекСтрока <> Неопределено Тогда ТекСтрока.ЗатратыНаОплату = ТекСтрока.Должность.СреднийДолжностнойОклад*Элементы.ВремяОказываемойУслуги/Константы.МесячныйФондРабочегоВремени.Получить() ; КонецЕсли; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ЗатратыНаОплатуТрудаДолжностьПриИзменении(Элемент) РасчитатьЗатратыНаОплату(Элементы.ЗатратыНаОплатуТруда.ТекущаяСтрока); КонецПроцедуры -------------------------------- {Справочник.ПлатныеУслуги.Форма.ФормаЭлемента.Форма(16,25)}: Переменная не определена (ЗатратыНаОплатуТруда) ТекСтрока = <<?>>ЗатратыНаОплатуТруда.НайтиПоИдентификатору(ТекущаяСтрока); (Проверка: Сервер) |
|||
14
DaZol1991
03.06.13
✎
16:15
|
(13) Наверное Объект.ЗатратыНаОплатуТруда.НайтиПоИдентификатору(ТекущаяСтрока)
У тебя же это реквизит справочника? или формы? Если справочника то через объект |
|||
15
1Сергей
03.06.13
✎
16:17
|
&НаСервере
Функция РасчитатьЗатратыНаОплату(Должность) Возврат Должность.СреднийДолжностнойОклад * Объект.ВремяОказываемойУслуги/Константы.МесячныйФондРабочегоВремени.Получить(); КонецФункции &НаКлиенте Процедура ЗатратыНаОплатуТрудаДолжностьПриИзменении(Элемент) РасчитатьЗатратыНаОплату(); ТекСтрока = Элементы.ЗатратыНаОплатуТруда.ТекущиеДанные; ТекСтрока.ЗатратыНаОплату = РасчитатьЗатратыНаОплату(ТекСтрока.Должность); КонецПроцедуры |
|||
16
MariAlex
03.06.13
✎
16:17
|
&НаСервере
Функция РасчитатьЗатратыНаОплату(должность) Возврат должность.СреднийДолжностнойОклад * Объект.ВремяОказываемойУслуги/Константы.МесячныйФондРабочегоВремени.Получить(); КонецФункции табличная часть справочника &НаКлиенте Процедура ЗатратыНаОплатуТрудаДолжностьПриИзменении(Элемент) //РасчитатьЗатратыНаОплату(Элемент); ТекСтрока = Элементы.ЗатратыНаОплатуТруда.ТекущиеДанные; ТекСтрока.ЗатратыНаОплату = РасчитатьЗатратыНаОплату(ТекСтрока.Должность); КонецПроцедуры так получилось, только считает не правильно, сейчас разберусь Большое спасибо!!!! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |