|
УФ Как вызвать на сервере функцию формы документа? | ☑ | ||
---|---|---|---|---|
0
budnik
30.01.18
✎
09:10
|
Зуп 3 , документ расчет сверхурочно должен вызвать пересчет строки табеля , организовал подписку , как воспользоваться функцией в табеле которая возникает в момент выбора сотрудника.
|
|||
1
cw014
30.01.18
✎
09:12
|
Совсем не понял о чем речь. Какая подписка?
|
|||
2
budnik
30.01.18
✎
09:12
|
Подписка на событие при записи документа.
|
|||
3
cw014
30.01.18
✎
09:14
|
(2) А причем тут форма? И при чем тут пересчет строки?
|
|||
4
cw014
30.01.18
✎
09:15
|
(2) Если надо те же действия, что и при изменения реквизита табличной части - возьми код из формы и перенеси в модуль документа (только уже с объектом, а не с ДанныеФормыКоллекция)
|
|||
5
budnik
30.01.18
✎
09:20
|
Вот на форме
&НаСервере Процедура ЗаполнитьДанныеПоСотрудникуНаСервере() УчетРабочегоВремениРасширенныйФормы.ТабельЗаполнитьДанныеПоСотруднику(ЭтаФорма); КонецПроцедуры &НаКлиенте Процедура ДанныеОВремениСотрудникПриИзменении(Элемент) ЗаполнитьДанныеПоСотрудникуНаСервере(); КонецПроцедуры Я на сервере нашел документ для примера как пересчет организовать и записать документ . сс=Документы.ТабельУчетаРабочегоВремени.НайтиПоНомеру("0А00-000015",Источник.Дата); об=сс.ПолучитьОбъект(); ЭтаФорма=об.ПолучитьФорму(); Для каждого стр1 Из Источник.Сотрудники Цикл НужнаяСтрока = об.ДанныеОВремени.Найти(стр1.Сотрудник); ЭтаФорма.ДанныеОВремени.Текущаястрока = НужнаяСтрока; УчетРабочегоВремениРасширенныйФормы.ТабельЗаполнитьДанныеПоСотруднику(ЭтаФорма); КонецЦикла; |
|||
6
budnik
30.01.18
✎
09:20
|
Ругается ЭтаФорма=об.ПолучитьФорму();
|
|||
7
cw014
30.01.18
✎
09:21
|
(6) Конечно. Представь что серверу начихать на формы. Он их не замечает, пока какая нибудь форма с клиентом не потянет его за ложноножку. Тогда он нехотя откликается на пару мгновений и опять забывает про формы
|
|||
8
budnik
30.01.18
✎
09:22
|
Как красиво и просто сделать , понятно что код выдрать можно и к себе забрать можно .
|
|||
9
cw014
30.01.18
✎
09:22
|
(6) У тебя есть конкретная функция "УчетРабочегоВремениРасширенныйФормы.ТабельЗаполнитьДанныеПоСотруднику(ЭтаФорма);"
Посмотри, куда она уходит и реально ли ему нужна "ЭтаФорма" или подойдет и "ЭтотОбъект"? |
|||
10
budnik
30.01.18
✎
09:23
|
Посмотрел уже , там так
Процедура ТабельЗаполнитьДанныеПоСотруднику(Форма, ЗаполнятьТерриторииИУсловия = Ложь) Экспорт Объект = Форма.Объект; ГоловнаяСтрокаСотрудника = Объект.ДанныеОВремени.НайтиПоИдентификатору(Форма.Элементы.ДанныеОВремени.ТекущаяСтрока); |
|||
11
cw014
30.01.18
✎
09:25
|
(10) Ну если оно так, тогда возьми процедуру и перенеси к себе в модуль. Или найди аналогичную для объекта
|
|||
12
budnik
30.01.18
✎
09:26
|
понимаешь , задачки такие возникают часто и если есть простое решение , это существенно упростит работу.
|
|||
13
budnik
30.01.18
✎
09:27
|
к тому же функция меняться будет у 1с.
|
|||
14
cw014
30.01.18
✎
09:28
|
(12)(13)Процедура сама большая?
|
|||
15
cw014
30.01.18
✎
09:28
|
(12) Простого решения ты тут не найдешь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |