Имя: Пароль:
1C
1С v8
Можно ли вызвать серверную экспортную процедуры формы документа?
0 makfromkz
 
14.05.16
08:59
Мне уже разъяснили, что кошерно вызываему процедуру располагать в общем модуле\в модуле объекта(документа)\в модуле менеджера (документа).

Но все равно интересно: можно ли вызвать серверную экспортную процедуры формы документа?
1 hhhh
 
14.05.16
09:01
(0) нельзя
2 makfromkz
 
14.05.16
09:07
(10 доказательства в студию!
3 hhhh
 
14.05.16
09:17
(2) это называется обезьяна с гранатой. Пропаганда гомосексуальных отношений в особо извращенной форме.
4 bodri
 
14.05.16
09:26
(0) а как к этой процедуре обращаться? Форма.НужнаяПроцедура()? не взлетит.
5 makfromkz
 
14.05.16
09:35
(3) болтология детектед
6 makfromkz
 
14.05.16
09:36
(4) на толстом клиенте пробовал - не получилось:
            СоздаваемыйОбъект.СчётЗайма=ПланыСчетов.Типовой.НайтиПоКоду("1180");
            фрмСоздаваемыйОбъект = СоздаваемыйОбъект.ПолучитьФорму("ФормаДокумента");
            фрмСоздаваемыйОбъект.ЗаполнитьНаСервере();
7 makfromkz
 
14.05.16
09:36
(4) Ошибка: процедура не обнаружена
8 bodri
 
14.05.16
09:38
(6) (7) вот я про тоже, перед тем как написать, я проверил
9 ДенисЧ
 
14.05.16
09:44
А откуда на сервере взялась форма?
10 Обработка
 
14.05.16
09:53
Маке, забей. Нельзя да и нет смысла.
В 1с77 еще хуже было. А тут хоть можно юзать процедуры модуля и менеджера и команды...
11 makfromkz
 
14.05.16
11:10
(9) я толстом клиенте проверял, ПолучитьФорму() в отладчике прошел
12 makfromkz
 
14.05.16
12:50
Таки решил задачку, но чуток не в том виде:
&НаСервере
Функция СоздатьРКО_КНаСервере(Знач НовДок)
    СоздаваемыйОбъект = ДанныеФормыВЗначение(НовДок, Тип("ДокументОбъект.мкРасчетПроцентов"));
    СоздаваемыйОбъект.Дата=ТекущаяДата()-3600*24*3;
    СоздаваемыйОбъект.СчётПроцентов=ПланыСчетов.Типовой.НайтиПоКоду("1180");
    СоздаваемыйОбъект.СчётШтрафов=ПланыСчетов.Типовой.НайтиПоКоду("1284");
    СоздаваемыйОбъект.СчётЗайма=ПланыСчетов.Типовой.НайтиПоКоду("1180");
    ЗначениеВДанныеФормы(СоздаваемыйОбъект, НовДок);
    Возврат НовДок;
КонецФункции

&НаКлиенте
Процедура СоздатьРКО_К(Команда)
    НовДок = ПолучитьФорму("Документ.мкРасчетПроцентов.Форма.ФормаДокумента");
    НовДок1 = СоздатьРКО_КНаСервере(НовДок.Объект);
    КопироватьДанныеФормы(НовДок1, НовДок.Объект);
    НовДок.Заполнить1(0);
    НовДок.Открыть();
КонецПроцедуры

Итак: все таки вызвать экспортную серверную процедуру модуля формы документа - НЕ УДАЛОСЬ!!!
Зато удалось вызвать экспортную клиентскую процедуру модуля формы документа, которая вызывает ту самую экспортную серверную процедуру модуля формы документа для заполнения его ТЧ.
13 makfromkz
 
14.05.16
13:08
Дурак -  моя фамилия!

&НаСервере
Функция СоздатьРКО_КНаСервере(Знач НовДок)
    СоздаваемыйОбъект = ДанныеФормыВЗначение(НовДок, Тип("ДокументОбъект.мкРасчетПроцентов"));
    СоздаваемыйОбъект.Дата=ТекущаяДата()-3600*24*3;
    СоздаваемыйОбъект.СчётПроцентов=ПланыСчетов.Типовой.НайтиПоКоду("1180");
    СоздаваемыйОбъект.СчётШтрафов=ПланыСчетов.Типовой.НайтиПоКоду("1284");
    СоздаваемыйОбъект.СчётЗайма=ПланыСчетов.Типовой.НайтиПоКоду("1180");
    ЗначениеВДанныеФормы(СоздаваемыйОбъект, НовДок);
    Возврат НовДок;
КонецФункции

&НаКлиенте
Процедура СоздатьРКО_К(Команда)
    НовДок = ПолучитьФорму("Документ.мкРасчетПроцентов.Форма.ФормаДокумента");
    НовДок1 = СоздатьРКО_КНаСервере(НовДок.Объект);
    КопироватьДанныеФормы(НовДок1, НовДок.Объект);
    НовДок.ЗаполнитьНаСервере();
    НовДок.Открыть();
КонецПроцедуры

Последний шаг не сделал :)
Все таки экспортная серверная процедура модуля формы документа - ВЫЗВАЛАСЬ !!!
Что и требовалось сделать))))
т.е. тема закрыта!
14 Обработка
 
14.05.16
13:55
Молодец что осилил.

Но практическая целособразность есть?
Или это чисто позновательное?
Ну типа - ребята вот я вам изобрел велосипед с квадратными колесами. ))
15 makfromkz
 
14.05.16
14:27
Скорее всего второй вариант :)
16 makfromkz
 
14.05.16
14:27
типо чисто познавательное :)
2 + 2 = 3.9999999999999999999999999999999...