Имя: Пароль:
1C
1С v8
Вызов экспортной процедуры на клиенте из вне
0 Juliette_
Juliette
 
08.10.20
08:45
Как из обработки создать и рассчитать документ среднего заработка в ЗУПе?
Вот пробую
&НаСервере
Процедура Команда1НаСервере()
    
    ДокОСЗ = Документы.ОплатаПоСреднемуЗаработку.СоздатьДокумент();
    ДокОСЗ.ПериодРегистрации = Дата(2020,09,01);
    ДокОСЗ.Организация = Справочники.Организации.ОрганизацияПоУмолчанию();
    ДокОСЗ.Сотрудник = Объект.Сотрудник;
    ДокОСЗ.ФизическоеЛицо = Объект.Сотрудник.ФизическоеЛицо;
    ДокОСЗ.ВидВремени = Справочники.ВидыИспользованияРабочегоВремени.ГосударственныеОбязанности;
    
    ФормаДокумента=ДокОСЗ.ПолучитьФорму("Документ.ОплатаПоСреднемуЗаработку.Форма.ФормаДокумента");
    ФормаДокумента.РассчитатьСотрудника();    
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
    Команда1НаСервере();
КонецПроцедуры


где в модуле формы документа
// Процедура используется для инициации расчета начислений из вне (на клиенте).
&НаКлиенте
Процедура РассчитатьСотрудника(Сотрудник, ОписаниеТаблицы) Экспорт
    РассчитатьДанныеФормы(Сотрудник, ОписаниеТаблицы);
КонецПроцедуры

ошибка
Значение не является значением объектного типа (РассчитатьСотрудника)
а ФормаДокумента = Неопределено
1 ДенисЧ
 
08.10.20
08:48
НаСервере получитьформу()?
Свидание со стенкой?
2 Cyberhawk
 
08.10.20
08:48
Может в ПриСозданииНаСервере получаемой формы взводится Отказ. Тогда у тебя Неопределено.
3 Juliette_
Juliette
 
08.10.20
08:51
(1) а как правильно?
4 Juliette_
Juliette
 
08.10.20
08:54
(2) Нет Отказ = Истина в присоздании
5 Juliette_
Juliette
 
08.10.20
09:07
сделала так
&НаСервере
Функция СоздатьНовыйДокумент()
    
    ДокОСЗ = Документы.ОплатаПоСреднемуЗаработку.СоздатьДокумент();
    ДокОСЗ.ПериодРегистрации = Дата(2020,09,01);
    ДокОСЗ.Организация = Справочники.Организации.ОрганизацияПоУмолчанию();
    ДокОСЗ.Сотрудник = Объект.Сотрудник;
    ДокОСЗ.ФизическоеЛицо = Объект.Сотрудник.ФизическоеЛицо;
    ДокОСЗ.ВидВремени = Справочники.ВидыИспользованияРабочегоВремени.ГосударственныеОбязанности;
    Возврат ДокОСЗ.Ссылка;
КонецФункции

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


но все равно не могу до РассчитатьСотрудника достучаться
6 Juliette_
Juliette
 
08.10.20
09:24
получилось
Надо было документ записать перед открытием.
А это вообще правильно? Может правильнее заполнять реквизиты в форме, а не через объект?
7 Галахад
 
гуру
08.10.20
09:35
8 1C_
Developer_FL
 
04.01.21
16:37
Juliette_Juliette а можете подсказать как вы определяли параметры для процедуры РассчитатьСотрудника(Сотрудник, ОписаниеТаблицы) при вызове ее:

ФормаДокумента=ДокОСЗ.ПолучитьФорму("Документ.ОплатаПоСреднемуЗаработку.Форма.ФормаДокумента");
ФормаДокумента.РассчитатьСотрудника(Сотрудник, ОписаниеТаблицы);