|
|
Вызов экспортной процедуры на клиенте из вне |
☑ |
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 а можете подсказать как вы определяли параметры для процедуры РассчитатьСотрудника(Сотрудник, ОписаниеТаблицы) при вызове ее:
ФормаДокумента=ДокОСЗ.ПолучитьФорму("Документ.ОплатаПоСреднемуЗаработку.Форма.ФормаДокумента");
ФормаДокумента.РассчитатьСотрудника(Сотрудник, ОписаниеТаблицы);
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший