|
Как из внешней обработки передать на форму строку | ☑ | ||
---|---|---|---|---|
0
Ctyd
29.12.14
✎
13:00
|
Есть бухгалтерия у которой ведется учет по документам расчета. но они вечно забывают заполнять списком документ. Не хочу открывать документ на редактирование. и сделал подключаемой обработкой авто заполнение списком.
СтрокаПлатеж=Объект.РасшифровкаПлатежа[0]; СтруктураПараметровАвто=Новый Структура; СтруктураПараметровАвто.Вставить("УчитыватьФактическиеЗадолженности",Истина); СтруктураПараметровАвто.Вставить("УчитыватьОперативныеЗадолженности",Ложь); СтруктураПараметровАвто.Вставить("ПодбиратьСумму",Истина); СтруктураПараметровАвто.Вставить("СпособЗаполнения","ФИФО"); СтруктураПараметровАвто.Вставить("СуммаДляПодбора",Объект.СуммаДокумента); СтруктураПараметровАвто.Вставить("ПоЗаявкам",Ложь); СтруктураПараметровАвто.Вставить("ПодбиратьПланируемыеДвижения",Ложь); СтруктураПараметровАвто.Вставить("НеПревышатьЗапланированныхЗначений",Ложь); СтруктураПараметровАвто.Вставить("ВключенныеВПлатежныйКалендарь",Ложь); СтруктураПараметровАвто.Вставить("ПодборПоСуммеПлатежа",Ложь); Если истина Тогда // от тут или статья ддс или же отмена заполняет как хочет Зап=Новый Запрос(); ЗАп.УстановитьПараметр("Владелец",Объект.Контрагент); Зап.Текст= "ВЫБРАТЬ РАЗЛИЧНЫЕ | ДоговорыКонтрагентов.ссылка как статья |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ДоговорыКонтрагентов.Владелец = &Владелец | И ДоговорыКонтрагентов.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем) | И не ДоговорыКонтрагентов.ПометкаУдаления "; тбСтатьи=Зап.Выполнить().Выгрузить(); тбСтатьи.Свернуть("статья"); статья=Неопределено; ЕСли тбстатьи.Количество()=1 Тогда статья=тбСтатьи.получить(0).статья; Иначе статьяСтр = тбСтатьи.ВыбратьСтроку("Выберите по какому договору заполняем оплату."); Если статьяСтр <> Неопределено Тогда статья=статьяСтр.статья; КонецЕсли; КонецЕсли; Если статья = неопределено Тогда иначе от=новый ПостроительОтчета; от.Текст = "ВЫБРАТЬ | ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента, | ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток, | ВзаиморасчетыСКонтрагентамиОстатки.СуммаУпрОстаток |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(, Контрагент = &Контрагент {ДоговорКонтрагента.*}) КАК ВзаиморасчетыСКонтрагентамиОстатки"; отбор=от.Отбор; Если Отбор.Найти("ДоговорКонтрагента") = Неопределено Тогда Отбор.Добавить("ДоговорКонтрагента"); КонецЕсли; стр=отбор.получить(0); стр.ВидСравнения=ВидСравнения.Равно; стр.Использование=Истина; стр.Значение=статья; найстройки=от.ПолучитьНастройки(Истина); СтруктураПараметровАвто.Вставить("ОтборПоДоговорам",найстройки); от=""; КонецЕсли; КонецЕсли; СтруктураПараметров=Новый Структура; СтруктураПараметров.Вставить("Организация" ,Объект.Организация); СтруктураПараметров.Вставить("Контрагент" ,Объект.Контрагент); СтруктураПараметров.Вставить("ВалютаДокумента" ,Объект.ВалютаДокумента); СтруктураПараметров.Вставить("СуммаДокумента" ,Объект.СуммаДокумента); СтруктураПараметров.Вставить("ДатаДок" ,Объект.Дата); СтруктураПараметров.Вставить("ВидОперацииДок" ,Объект.ВидОперации); СтруктураПараметров.Вставить("РасшифровкаПлатежа" ,Объект.РасшифровкаПлатежа); СтруктураПараметров.Вставить("КурсДокумента" ,Объект.КурсДокумента); СтруктураПараметров.Вставить("КратностьДокумента" ,Объект.КратностьДокумента); СтруктураПараметров.Вставить("ТипЗадолженности" ,">0"); СтруктураПараметров.Вставить("Интерактивно" ,Ложь); СтруктураПараметров.Вставить("ПлатежПоСуммеВзаиморасчетов" ,Истина); СтруктураПараметров.Вставить("СтруктураПараметровАвто" ,СтруктураПараметровАвто); СтруктураПараметров.Вставить("ФормаОплаты" ,Перечисления.ВидыДенежныхСредств.Наличные); СтруктураПараметров.Вставить("ВидОперацииПлан" ,УправлениеДенежнымиСредствами.ОпределитьВидОперацииПлан(Объект.ВидОперации)); СтруктураПараметров.Вставить("ИмяРегистраПлан" ,"ПланируемыеПоступленияДенежныхСредств"); СтруктураПараметров.Вставить("БанковскийСчетКасса" ,Объект.СчетОрганизации); СтруктураПараметров.Вставить("СсылкаНаДокумент" ,?(Объект.Проведен, Объект.Ссылка, Объект.ЭтотОбъект)); СтруктураПараметров.Вставить("ОтражатьВБухгалтерскомУчете" ,Объект.ОтражатьВБухгалтерскомУчете); Объект.РасшифровкаПлатежа.Очистить(); УправлениеДенежнымиСредствами.ЗаполнитьРасшифровкуПлатежей(СтруктураПараметров); Если Объект.РасшифровкаПлатежа.Количество()=0 Тогда НоваяСтрока=Объект.РасшифровкаПлатежа.Добавить(); КонецЕсли; СуммаДокумента=Объект.РасшифровкаПлатежа.Итог("СуммаПлатежа"); // //Объект.ЭлементыФормы.РасшифровкаПлатежа.ТекущаяСтрока=РасшифровкаПлатежа[0]; //СтрокаПлатеж=Объект.ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные; заполняет оно в результате правильно но выскакивает ошибка {Документ.ПлатежноеПоручениеВходящее.Форма.ФормаДокумента.Форма(1008)}: Ошибка при получении значения атрибута контекста (ДоговорКонтрагента) ВалютаВзаиморасчетовПоДоговору = СтрокаПлатеж.ДоговорКонтрагента.ВалютаВзаиморасчетов; по причине: Исполнение операции невозможно поскольку строка была удалена. |
|||
1
Ctyd
29.12.14
✎
13:01
|
Как правильно передать на форму последние закоментированные строки??
|
|||
2
Serg_1960
29.12.14
✎
13:54
|
Ничего не понял, но попробую угадать :)
ФормаДокумента = Объект.ПолучитьФорму("ФормаДокумента"); ФормаДокумента.Обновить(); ФормаДокумента = Неопределено; |
|||
3
Serg_1960
29.12.14
✎
14:20
|
Но твоя ошибка, кстати, не связана с твоим вопросом.
Ты используешь типовой алгоритм, который корректно работает в только в модуле формы. Там далее по тексту требуется установить текущую строку (что возможно) и присвоить текущие данные переменной "СтрокаПлатеж" - а она не экспортная и "из вне" недоступна. Она должна быть экспортной. |
|||
4
Ctyd
30.12.14
✎
16:00
|
Другими словами: из подключаемой обработки ТЧ, я не смогу сделать это.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |