Вход | Регистрация

1С:Предприятие ::

Метки: 

УФ Как вызвать на сервере функцию формы документа?

Я
   budnik
 
30.01.18 - 09:10
Зуп 3 , документ расчет сверхурочно должен вызвать пересчет строки табеля , организовал подписку , как воспользоваться функцией в табеле которая возникает в момент выбора сотрудника.
 
 
   cw014
 
1 - 30.01.18 - 09:12
Совсем не понял о чем речь. Какая подписка?
   budnik
 
2 - 30.01.18 - 09:12
Подписка на событие при записи документа.
   cw014
 
3 - 30.01.18 - 09:14
(2) А причем тут форма? И при чем тут пересчет строки?
   cw014
 
4 - 30.01.18 - 09:15
(2) Если надо те же действия, что и при изменения реквизита табличной части - возьми код из формы и перенеси в модуль документа (только уже с объектом, а не с ДанныеФормыКоллекция)
   budnik
 
5 - 30.01.18 - 09:20
Вот на форме 

&НаСервере
Процедура ЗаполнитьДанныеПоСотрудникуНаСервере()
    УчетРабочегоВремениРасширенныйФормы.ТабельЗаполнитьДанныеПоСотруднику(ЭтаФорма);
КонецПроцедуры

&НаКлиенте
Процедура ДанныеОВремениСотрудникПриИзменении(Элемент)
    ЗаполнитьДанныеПоСотрудникуНаСервере();
КонецПроцедуры



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


Список тем форума
Рекламное место пустует  
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует