Вход | Регистрация


1С:Предприятие ::

Метки:внешние компоненты

Работа с FormEx

Я
   Wow__cooL
04.04.04 - 23:29
Пишу в модуле:
ФормаРасш = СоздатьОбъект("РасширениеФормы"); 
ФормаРасш.УстановитьФорму(Док.ТекущийДокумент());
Форм=ФормаРасш.ПОлучитьФорму();

Мне нужен доступ к атрибутам документа ДОк.ТекущийДокумент(), а именно к его многострочной части, к колонке Товар. Как до него добраться?
 
 
   Wow__cooL
1 - 04.04.04 - 23:30
Причем сейчас он у меня привязывает к объекту не форму Док.ТекущийДОкумент(), а форму, с которой я сейчас работаю (форму обработки)
   unior
 
2 - 05.04.04 - 05:48
Скорее всего нельзя обратиться к форме документа таким способом. FormEx наверное работает с активной открытой форомой (у тебя это форма обработки) и всё...

P|S а почему штатными средствами не хочешь обратиться к многострочной части? Или "Товар" у тебя не реквизит?
   Mel
3 - 18.06.04 - 11:10
Скажите плиз. у меня вілетает 1С при работе с FormEx, как быть?
   romix
 
4 - 18.06.04 - 11:14
(3) Попробуй первый раз запуститься под правами Админа, чтобы dll-ка зарегистрировалась.
(0) А что надо сделать с колонкой Товар? Цвет поменять?
   Gavrila
 
5 - 18.06.04 - 11:30
(4) права админа ни причем
   romix
 
6 - 18.06.04 - 11:44
(5) Ну тогда не знаю - у меня все работает...
   Mel
7 - 18.06.04 - 11:57
Скажите, а от релиза это не зависит?
   romix
 
8 - 18.06.04 - 12:28
(7) А демка-то от автора FormEx работает?
   Mel
9 - 18.06.04 - 12:34
(8) Демка работает без проблем.
   pavlentii
 
10 - 19.08.04 - 16:47
А где демку скачать можно?
 
 
   Michael99
 
11 - 19.08.04 - 16:50
   Рупор абсурда
 
12 - 19.08.04 - 17:22
(2-11) Ребята, а почему вы не помогаете девушке?
   Michael99
 
13 - 19.08.04 - 18:29
(0) объект РасширениеФормы работает с Формой открытого документа.
т.е после открытия документа надо записать в глобальную переменную его форму
В глобальном модуле
Перем глФорма Экспорт;
В процедуре ПриОткрытии() документа :
ФормаРасш = СоздатьОбъект("РасширениеФормы"); 
глФорма=ФормаРасш.ПОлучитьФорму(); 

А в обработке или где там тебе надо
ФормаРасш = СоздатьОбъект("РасширениеФормы"); 
ФормаРасш.УстановитьФорму(глФорма); 

После этого работать с объектом ФормаРасш
   Рупор абсурда
 
14 - 19.08.04 - 19:12
(13) Ну ладно, ладно ...
Но почему ты не помогаешь девушке?
   Michael99
 
15 - 19.08.04 - 19:16
(14) О чем ты ?
   Michael99
 
16 - 19.08.04 - 19:18
Я только что глянул на даты , по моему (0) помощь уже не нужна :-)
   Рупор абсурда
 
17 - 19.08.04 - 19:22
(15) Правильного ответа никто ей не дал пока ... Вот я и спрашиваю, почему? ...
Но главная цель, правда, всё равно достигнута ..., ветка то уже давно в ..., тьфу ..., базе знаний ...
   Матрейя
 
18 - 19.08.04 - 21:04
13. И после закрытия можно получить информацию  об атрибутах.
(0). В текстовой колонке прописываешь:
Функция УправлениеРаскраской()
Если ...... Тогда
Возврат(глРаскрасить(,,,255,232,196,,)); 
КонецЕсли;
Возврат(глРаскрасить(,,,222,245,254,,)); 
КонецФункции

А это в глобальном модуле:
// блок функций для formex ------------------------------------------------------------

//*************************************************************************************
Функция ПолучитьЦвет(Красный = 0,Зеленый = 0,Синий = 0)// вспомогательная

   // функция для формирования значения цвета из составляющих (RGB)

    Возврат Макс(0,Синий)*65536+Макс(0,Зеленый)*256+Макс(0,Красный);
КонецФункции

// Count - количество столбцов для раскраски, начиная с того, в котором вызвалась эта функция

// если Coun=0 - раскрашиваются все столбца, начиная с того, в котором вызвалась эта функция
Функция глРаскрасить(R1=0,G1=0,B1=0,R2=0,G2=0,B2=0,Count="NONE",N="NONE") Экспорт 
   // цвет текста; цвет фона; количество колонок,считая текущую

    Возврат "FONT["+ПолучитьЦвет(R1,G1,B1)+"]"+"BRUSH["+ПолучитьЦвет(R2,G2,B2)+"]"+"Count["+Count+"]"+"INDENT["+N+"]";
КонецФункции
   Матрейя
 
19 - 19.08.04 - 21:07
18. - извиняюсь, промазал с темой:) По сабжу, для доступа я использую следующее:
Процедура глПослеОткрытияДокумента(Конт) Экспорт
    Если Конт.Форма.ТолькоПросмотр()=1 Тогда 
        ФормаРасш=СоздатьОбъект("РасширениеФормы");
        ФормаРасш.УстановитьФорму(Конт.Форма);
        Для П=0 По ФормаРасш.КоличествоАтрибутов()-1 Цикл
            Идентификатор=ФормаРасш.ПолучитьАтрибут(П).Идентификатор; 
           //делаем недоступными только те объекты формы, которые имеют идентификатор

            Если ПустоеЗначение(Идентификатор)=0 Тогда
                ФормаРасш.ПолучитьАтрибут(П).Доступность=0;
            КонецЕсли;
        КонецЦикла; 
    КонецЕсли;  
КонецПроцедуры
   Матрейя
 
20 - 19.08.04 - 21:18
+19. По аналогии по номеру (или идентификатору) атрибута получай доступ к нему.
Атр=ФормаРасш.ПолучитьАтрибут("Товар").
Только для доступа к многострочной части нужно:
ФормаРасш.УстановитьФорму(Конт.Форма.МногострочнаяЧасть);

Или конкретней :)
ФормаРасш=СоздатьОбъект("РасширениеФормы");
ФормаРасш.УстановитьФорму(Конт.Форма.МногострочнаяЧасть);
Атр=ФормаРасш.ПолучитьАтрибут("Товар");
   Матрейя
 
21 - 19.08.04 - 21:22
+20. Вместо Конт.Форма.МногострочнаяЧасть просто Конт.Форма
   Матрейя
 
22 - 19.08.04 - 21:24
Прикол, но правильный ответ в базу знаний не добавлен :)
   Рупор абсурда
 
23 - 19.08.04 - 21:27
(22) Прикол, но правильного ответа в этой ветке пока нет ... :))
   Матрейя
 
24 - 19.08.04 - 21:32
23. Гонишь, 
ФормаРасш=СоздатьОбъект("РасширениеФормы"); 
ФормаРасш.УстановитьФорму(Конт.Форма); 
Атр=ФормаРасш.ПолучитьАтрибут("Товар"); - получает атрибут.
   Матрейя
 
25 - 19.08.04 - 21:35
+24. После ФормаРасш.УстановитьФорму(Конт.Форма); можно даже закрывать документ и считывать параметры атрибутов.
   Рупор абсурда
 
26 - 19.08.04 - 22:13
(24) А так ли уж необходим для этого ФормЭкс?
   Матрейя - это Свет
27 - 19.08.04 - 22:16
26. Совсем не нужен именно для этого. Но раз автор сабжа юзает здесь именно формекс - значит потом что-то будет делать (к примеру формулу прописывать).
   Матрейя - это Свет
28 - 19.08.04 - 22:18
+27 - вернее, может формулу считывать... Задумки 1с-ников неисповедимы.
   Рупор абсурда
 
29 - 19.08.04 - 22:23
Давай тут немножко пофлудим на темы ФормЭкса, 1С++, Радуги и пр. мутотени ...
А в 250 посте дадим правильный ответ ...
   Матрейя - это Свет
30 - 19.08.04 - 22:26
29. Кстати, на какой вопрос?
   Рупор абсурда
 
31 - 19.08.04 - 22:43
(30) Чё мы ламеры чтоль? Неужели не сможем до 250 поста правильный вопрос сформулировать? ...



Список тем форума
Рекламное место пустует  
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует