|
Передача ссылки на Документ в обработку | ☑ | ||
---|---|---|---|---|
0
ampfer11
17.08.16
✎
17:39
|
Уважаемые знатоки,
Столкнулся со следующей проблемой: Написал обработку для создания Документа ОперацияБух. (Конф-я БП 3.0) Обработка не из документа отработает нормально. Пытаюсь подключить ее запуск из Документа. Никак не могу передать в функцию на сервере ссылку на документ (который открыт в форме) Функция Функция СведенияОВнешнейОбработке() десять раз проверил В Массив добавил нужный документ МассивНазначений = Новый Массив(); МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг"); ДобавитьКоманду(ТаблицаКоманд, "Поступление товаров на Ответ.Хранение", "Поступление товаров на Ответ.Хранение", "ВызовКлиентскогоМетода", //Использование. Варианты: "ОткрытиеФормы", "ВызовКлиентскогоМетода", "ВызовСерверногоМетода" ИСТИНА,//Показывать оповещение. Варианты Истина, Ложь ""); Вот сама Процедура Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт Сообщить("Начало обработки: " + ТекущаяДата()); Состояние("Идёт заполнение документа"); Для каждого Элемент из ОбъектыНазначенияМассив Цикл КлючПоиска = Новый Структура("Ключ", Элемент); Форма = ПолучитьФорму("Документ.РеализацияТоваровУслуг.Форма.ФормаДокументаОбщая",КлючПоиска,,,); Док = Форма.Объект; ОписОшибки = ЗаполнитьРегистрНаСервере(Док.Ссылка); КонецЦикла; Сообщить(ОписОшибки); Сообщить("Окончание обработки: " + ТекущаяДата()); КонецПроцедуры Сама функция ЗаполнитьРегистрНаСервере(Док.Ссылка) отрабатывает все нормально. Проблема с передаваемым параметром (Док.Ссылка) Никак не могу передать ссылку на открытый в форме Документ В отладчике проверить проблематично, т.к. Обработка грузится в элемент справочника Доп.обработки и запускается из документа. Целый день убил....Помогите pls |
|||
1
hhhh
17.08.16
✎
17:43
|
вызывайте команду из документа. Например, как структура подчиненности или показать движения в типовых.
|
|||
2
k1noshkin
17.08.16
✎
17:52
|
http://forum1s.ru/read/sozdanie-obrabotki-zapolneniia-tablichnoi-chasti-1s-8/
"Выделив ветку Реквизиты в дереве метаданных обработки и нажав кнопку Добавить(кнопка с зеленым плюсом) создадим новый реквизит внешней обработки - ДокументПоступления, выберем для него тип ДокументСсылка.ПоступлениеТоваровУслуг, этот реквизит нужен нам для выбора документа Поступление товаров и услуг, на основании которого будет заполняться реализация." |
|||
3
ampfer11
18.08.16
✎
12:22
|
В итоге пришлось сделать криво, передать в серверную функцию Номер и Дату Документа. Никак я не смог вытянуть из объекта формы ссылку на документ. Ссылку получаю уже на сервере с помощью запроса по Номеру и Дате документа.
Согласен, что криво, но работает Сообщить("Начало обработки: " + ТекущаяДата()); Состояние("Идёт заполнение документа"); Для каждого Элемент из ОбъектыНазначенияМассив Цикл КлючПоиска = Новый Структура("Ключ", Элемент); Форма = ОткрытьФорму("Документ.РеализацияТоваровУслуг.Форма.ФормаДокументаОбщая",КлючПоиска,,,); //Далее мы получаем объект только, что повторно открытой формы и помещаем её в переменную //В объекте содержатся все реквизиты (элементы) формы РеалОбъект = Форма.Объект; //Мы помещаем объект формы в переменную, //так как должны передать её в процедуру на сервере, //где нельзя изменять объект формы, зато можно править переменную содержащую его //ОписОшибки = ЗаполнитьРегистрНаСервере(НовыйОбъект.Номер); ОписОшибки = ЗаполнитьРегистрНаСервере(РеалОбъект.Номер,РеалОбъект.Дата); КонецЦикла; Сообщить(ОписОшибки); Сообщить("Окончание обработки: " + ТекущаяДата()); |
|||
4
ampfer11
19.08.16
✎
11:42
|
Все таки хочется сделать логично.
to k1noshkin Хороший пример, но для обычных форм. Добавил реквизит обработки ДокументРеализация с типом ДокументСсылка.РеализацияТоваровУслуг. Проверяю на заполнение Если НЕ ЗначениеЗаполнено(Объект.ДокументРеализация) Тогда Сообщить("Не выбран документ Реализация"); Возврат; КонецЕсли; Увы, он не заполнен. НЕ пойму он как должен автоматически заполняться или КАК? Может кто может помочь? |
|||
5
Nuobu
19.08.16
✎
11:46
|
Для ии = 0 По ОбъектыНазначенияМассив.Количество()-1 Цикл
ДокОбъект = ОбъектыНазначения[ии].Ссылка.ПолучитьОбъект(); |
|||
6
ampfer11
19.08.16
✎
14:32
|
Спасибо Nuobu
Вот так работает ДокРеализация = ОбъектыНазначенияМассив[0]; В ДокРеализация теперь ссылка на открытый документ РеализацияТоваровУслуг |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |