Как обратиться к реквизиты обработки
22.04.2010
14:11
#1
"Всем, здравствуйте! Помогите разобраться с внешней обработкой. Проблема в следующем: внешняя обработка имеет несколько форм, мне необходимо передать данные из одной в другую. Я добавил реквизиты, на основной форме работать с ними получается. Я делаю это т.о.:<br><br>Обработка = ВнешниеОбработки.Создать("C:\Рабочая\ComCenter\ComCenter.epf");<br>Обработка.ТипФормы = "1";<br><br>Во второй форме я также создаю объект Обработка, но реквизиты пустые. Каким образом обратиться к реквизитам из второй формы.<br><br>Если не использовать реквизиты, то другой вариант - переменные Экспорт, но как к ним обратиться я тоже не знаю.<br>Спасибо за помощь."
22.04.2010
14:25
#2
"Вы создаете объекты, а надо открывать формы.<br>Обработка = ВнешниеОбработки.Создать("C:\Рабочая\ComCenter\ComCenter.epf");<br>Форма1 = Обработка.ПолучитьФорму ("ИмяФормы1");<br>Форма2 = Обработка.ПолучитьФорму ("ИмяФормы2");<br><br>Если у форм в качестве основного реквизита стоит обработка, то обе формы будут иметь доступ к реквизитам Обработки.<br><br>Или опишите задачу иначе, а то у вас какая-то двойственность в описании: "У обработки 2 формы" и "во второй форме я также создаю объект Обработка""
22.04.2010
14:46
#3
"Ошибка, поле объекта не обнаружено (при попытке заполнить ТаблицуЗначений результатом запроса)<br><br>Процедура ПриОткрытии()<br> Обработка = ВнешниеОбработки.Создать("C:\Рабочая\ComCenter\ComCenter.epf");<br> Форма1 = Обработка.ПолучитьФорму ("ФормаОсновная");<br>КонецПроцедуры<br><br>заполняю так <br>Форма1.ППВТаблЗнач = РезультатЗапроса.Выгрузить();<br><br>Задача такая: на основной форме табличное поле, в него помещаю результат запроса (выборка приходников и выписок за период), двойном щелчке на строке Табличного поля должно открыться окно элементы которого заполняются параметрами платежа (номер, дата, сумма, контрагент, договор и т.п.). Мне это необходимо для правки некоторых позиций платежа и выполнить последующую выгрузку во внешнее приложение (точнее в БД этого приложения). Для изменения результат запроса помещаю в реквизит обработки ППВТаблЗнач, тип ТаблицаЗначений<br><br>Я не понял Вашей фразы: "Если у форм в качестве основного реквизита стоит обработка, то обе формы будут иметь доступ к реквизитам Обработки." В окне "Свойства" формы практически нет параметров для изменения.<br><br>Спасибо за помощь.<br><br>П.С. Прошу прощения если глупые вопросы, в 1С я плохо разбираюсь. Возникла необходимость связать внешнее приложение с 1С в плане платежей."
22.04.2010
15:35
#4
"Интересно, ваша Процедура ПриОткрытии() где находиться?<br>Предположим, что у вас ничего нет.<br>1. Создаете внешнюю обработку<br>2. Добавляете ей форму (по умолчанию у неё имя Форма) она же станет основной формой, открываемой при открытии обработки.<br>3. Кидаете на форму таблицу (я так понимаю назвали её ППВТаблЗнач)<br>4. В модуле формы формы в Процедуре ПриОткрытии делаете заполнение таблицы: <br>ППВТаблЗнач = РезультатЗапроса.Выгрузить();<br>ЭлементыФормы.ППВТаблЗнач.СоздатьКолонки();<br>5. Создаете 2-ю форму. По-умолчанию она получит имя Форма1. <br>6. Киньте на Форму1, скажем поле ввода. (имя ПолеВвода1)<br>7. Для таблицы (на Форме) задаете событие Выбор, где пишите, что-то типа:<br>ТекСтр = ППВТаблЗнач.ТекущаяСтрока(); //Можно воспользоваться Параметрами, но я привык так<br>лФорма = ЭтотОбъект.ПолучитьФорму("Форма1"); //"ЭтотОбъект." можно не писать - это подразумевается.<br>лФорма.ПолеВвода1 = ТекСтр.Ссылка; //Ссылка - это колонка в таблице, я не знаю как оно у вас назывется.<br>лФорма.Открыть();<br> <br>В принципе - этого достаточно для демонстрации. Можно запускать.<br><br>p.s. Если вы зайдете на закладку Реквизиты у Формы, то увидите, что один реквизит выделен жирным (например ОбработкаОбъект) - этот реквизит основной для данной формы и она (форма) имеет полный доступ к реквизитам и экспортным функциям (процедурам) этого объекта"
Читают тему
(гостей: 1)