ЗУП 3.1 Заполнение табличной части документа

1. speleolog 24.05.17 09:54 Сейчас в теме
Друзья, помогите разобраться!

Проблема в следующем: Конфа ЗУП 3.1 (управляемые формы). Документ "Разовое начисление".
Необходима обработка заполнения табличной части. Суть в том, что я запросом заполняю в табличную "Начисления" списком сотрудников, и надо после этого запустить процедуру "ПерезаполнитьДанныеФормыНаСервере" (в модуле формы, экспортная, с директивой "&НаСервере"), чтобы она рассчитала суммы этим сотрудникам. Можно ли как-то эту процедуру запустить из модуля формы? У меня не вышло.

Потом я пытался скопировать эту процедуру (и все связанные с ней процедуры/функции) в модуль формы своей обработки, но всё упирается в то, что я не могу передать на сервер форму заполняемого документа, т.к. она управляемая.

Подскажите, как выкрутиться из этой ситуации?

&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
	Для каждого Элемент из ОбъектыНазначенияМассив Цикл
	    КлючПоиска = Новый Структура("Ключ", Элемент);
	    Окна = ПолучитьОкна();
	    Для каждого Окно1 из Окна Цикл
	        Если НЕ Окно1.Основное
	            И Найти(Окно1.Заголовок, Элемент) Тогда
	            НайденнаяФорма = ОткрытьФорму("Документ.РазовоеНачисление.Форма.ФормаДокумента",КлючПоиска,,,Окно1);
				НовыйОбъект = НайденнаяФорма.Объект;
				НовыйОбъект.Комментарий = "Документ заполнился автоматически";
				НовыйОбъект.Начисления.Очистить();
				Если ЗначениеЗаполнено(НовыйОбъект.Начисление) тогда
					ЗаполнитьТабличнуюЧасть (НовыйОбъект); //Здесь я заполняю ТЧ списком сотрудников
					Дозаполнить (НовыйОбъект);  //А здесь я пытаюсь вызвать функцию "ПерезаполнитьДанныеФормыНаСервере", скопированную из модуля формы документа "Разовое начисление"
					КопироватьДанныеФормы(НовыйОбъект, НайденнаяФорма.Объект);
				Иначе
					Сообщить ("Начисление не указано!");
				КонецЕсли;	
			КонецЕсли;
	    КонецЦикла;
	КонецЦикла;
КонецПроцедуры	
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starjevschik 24.05.17 10:02 Сейчас в теме
(1) проследить все вызовы из той процедуры и перекопировать их в свою обработку.
5. speleolog 24.05.17 12:06 Сейчас в теме
(2) Я пробовал так. Но упираюсь в отсутствие переменной ЭтаФорма, связанную с заполняемым документом, которая передаётся в общие модули.
3. darkinitr0 34 24.05.17 10:22 Сейчас в теме
попробуйте переписать обработку для выполнения на клиенте, для этого в модуле в "СведенияОВнешнейОбработке()" пропишите "ВызовКлиентскогоМетода".
Создайте пустую форму обработки.
В ней разместите процедуру:

&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
	ОбъектВладелецФормы = ВладелецФормы.Объект;	
	ВыполнитьКомандуНаСервере(ОбъектВладелецФормы);
	ВладелецФормы.Модифицированность = Истина;
КонецПроцедуры
7. speleolog 24.05.17 12:21 Сейчас в теме
(3) А что добавить в процедуру "ВыполнитьКомандуНаСервере(ОбъектВладелецФормы)"? Я пробовал в неё запихать свою обработку "ЗаполнениеТабличнойЧасти" и теперь даже сотрудники перестали заполняться :-(
10. darkinitr0 34 24.05.17 13:06 Сейчас в теме
(7) это просто пример, вызов серверной обработки заполнения
4. shnurov 24.05.17 10:32 Сейчас в теме
Пытался я в ЗУП заполнить документ премия... Получаете форму и вызываете процедуры формы, неважно экспортные или нет(так я и заполнил документ премия).
9. speleolog 24.05.17 12:24 Сейчас в теме
(4) А как получить форму? Для обычного приложения я это знаю, а для УФ - это какой-то адский ад.....
11. shnurov 24.05.17 14:01 Сейчас в теме
(9)В форме обработки дуете на сервер создаете документ, заполняете минимум реквизитов, можете вообще не заполнять, записываете документ, получаете ссылку, возвращаете ссылку на клиента, получаете форму, перед получением формы в параметр ключ передаете ссылку.
12. alex-l19041 8 24.05.17 14:12 Сейчас в теме
6. forseil 214 24.05.17 12:20 Сейчас в теме
я еще копировал процедуры из общих модулей и переписывал под свои переменные
8. speleolog 24.05.17 12:23 Сейчас в теме
(6) это не реально. У меня и так из модуля формы документа около 20 процедур/функций скопировано. А если ещё и из общих модулей копировать..... Проще попытаться разобраться и написать свою обработку по полному заполнению табличной части....
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот