Имя: Пароль:
1C
1С v8
УФ Подскажите по получению к пути данным
0 Невский Александр
 
04.03.12
15:12
Переношу обработку с обычных форм на управляемые формы.
В обработке с обычными формами есть вот такой блок:

               Менеджер = ПолучитьМенеджераПоТипу(ТипЗНЧ(Новый(СтрЗаменить(МетаданныеИсточника.Родитель().ПолноеИмя(),".","Ссылка."))));
               Форма = Менеджер.ПолучитьФорму(ИмяОсновнойФормы);
               Для каждого ЭлементФормы Из Форма.ЭлементыФормы Цикл
                       
                   Если ТипЗНЧ(ЭлементФормы) = Тип("ТабличноеПоле") И ЭлементФормы.Данные = МетаданныеИсточника.Имя Тогда
                       Оформление = ЭлементФормы;
                       Прервать;
                   КонецЕсли;
                       
               КонецЦикла;

...

       Для каждого Колонка Из Оформление.Колонки Цикл
           
           ЗагружаемыйРеквизит = ТаблицаЗагружаемыхРеквизитов.Найти(Колонка.ДанныеФлажка,"ИмяРеквизита");
           Если Не ЗагружаемыйРеквизит = Неопределено Тогда
               Индекс = ТаблицаЗагружаемыхРеквизитов.Индекс(ЗагружаемыйРеквизит);
               Если Индекс >= НомерКолонкиОформления  Тогда
                   
                   ЗагружаемыйРеквизит.ШиринаКолонки = 3;
                   ТаблицаЗагружаемыхРеквизитов.Сдвинуть(ЗагружаемыйРеквизит, НомерКолонкиОформления - Индекс);
                   
                   Если Колонка.Видимость Тогда
                       ЗагружаемыйРеквизит.Пометка = Колонка.Видимость;
                       ЗагружаемыйРеквизит.НомерКолонки = НомерКолонки;
                       НомерКолонки = НомерКолонки + 1;
                   КонецЕсли;
                   
                   НомерКолонкиОформления = НомерКолонкиОформления + 1;
                   
               КонецЕсли;
           КонецЕсли;
           
           ЗагружаемыйРеквизит = ТаблицаЗагружаемыхРеквизитов.Найти(Колонка.Данные,"ИмяРеквизита");
           Если Не ЗагружаемыйРеквизит = Неопределено Тогда
               Индекс = ТаблицаЗагружаемыхРеквизитов.Индекс(ЗагружаемыйРеквизит);
               Если Индекс >= НомерКолонкиОформления Тогда
                   ЗагружаемыйРеквизит.ШиринаКолонки = Колонка.Ширина;
                   ТаблицаЗагружаемыхРеквизитов.Сдвинуть(ЗагружаемыйРеквизит, НомерКолонкиОформления - Индекс);
                   Если Колонка.Видимость Тогда
                       ЗагружаемыйРеквизит.Пометка = Колонка.Видимость;
                       ЗагружаемыйРеквизит.НомерКолонки = НомерКолонки;
                       НомерКолонки = НомерКолонки + 1;
                   КонецЕсли;
                   НомерКолонкиОформления = НомерКолонкиОформления + 1;
                   
               КонецЕсли;
           КонецЕсли;
               
       КонецЦикла;
1 Невский Александр
 
04.03.12
15:15
По данному блоку - в управляемых формах я нахожу - "Таблицу формы",
но дальше я сообразить не могу - в-принципе можно сделать рекурсивный обход вместо колонок -  подчиненных элементов этой таблицы формы, с типом - Поле формы  

Но - как мне получить - Данные и ДанныеФлажка - у них нет такого свойства. Путь к данным тоже получить не получается (ошибка чтения)
Выполнение происходит на сервере
2 Невский Александр
 
04.03.12
15:15
Посоветуйте - как обойти данную ситуацию?
3 Невский Александр
 
04.03.12
15:17
В данном блоке
- Менеджер - это ДокументыМенеджер.[...]
- Форма - основная форма документа
4 Невский Александр
 
04.03.12
15:40
ап

Подскажите - как прочитать путь к данным поля формы на сервере?
У меня выводит ошибку чтения
5 Невский Александр
 
04.03.12
15:42
Или может еще какие-нибудь способы есть получить - на какой реквизит ссылается поле формы в таблице формы?
6 jump if zero
 
04.03.12
15:49
Сообщить(Элементы.Реквизит1.ПодчиненныеЭлементы.Реквизит1Колонка1.ПутьКДанным);
7 Невский Александр
 
04.03.12
15:57
(6) да это понятно :)

Но в данном случае свойство недоступно - выводит ошибку

В той обработке - считывается ДокументМенеджер, из нее получается форма
Менеджер = ПолучитьМенеджераПоТипу(ТипЗНЧ(Новый(СтрЗаменить(МетаданныеИсточника.Родитель().ПолноеИмя(),".","Ссылка."))));
Форма = Менеджер.ПолучитьФорму(ИмяОсновнойФормы);

Что нужно сделать - чтобы было доступно?
8 Невский Александр
 
04.03.12
15:58
в управляемой форме эти 2 строки также - без изменений сейчас
AdBlock убивает бесплатный контент. 1Сергей