Имя: Пароль:
1C
1C 7.7
v7: поддается ли ТурбоМД каким-либо настройкам, и как если да?
0 Zhuravlik
 
07.09.12
16:04
Захотелось написать универсальную настройку для диалогов формы. Если Форма.ТолькоПросмотр(1), чтобы те реквизиты, которые не являются объектами метаданных (кнопки, флажки -реквизиты управления диалогом на форме) тоже были недоступны, но не приходилось каждый раз прописывать

Если Форма.Просмотр() = 1 Тогда
Форма.Рек1.Доступность(1);
//и т.д.
КонецЕсли;

Сейчас делаю так, на форму повесил текст, в формуле прописал
глУправлениеДиалогом(Контекст)

Сама функция:

//======================================================================
Функция глУправлениеДиалогом(Конт) Экспорт

   Если Конт.Выбран() = 0 Тогда//Если документ только что  создан, его нельзя редактировать,
       //в т.ч. менять дату документа. Это сделано для более жесткого контроля списания остатков.
       //Записывать документ при создании - слишком жесткий контроль над пользователем.
       //А так он сам сможет определить, нужен ему этот документ (надо записать),
       //или был создан случайно (можно отказаться от создания)
       Конт.Форма.ТолькоПросмотр(1);
   ИначеЕсли Конт.Проведен() = 0 Тогда
       //Проведенный документ нельзя редактировать, записанный и НеПроведенный - можно.
       Конт.Форма.ТолькоПросмотр(0);
   КонецЕсли;
   
       Попытка
   Конт.УправлениеДиалогом();//Это и есть та функция, которую тоже хочется засунуть в глобальник. Она размещена в модуле формы документа.
       Исключение
       КонецПопытки;
   
   //Функция помещается в диалоге формы, во всех документах.
   
КонецФункции // глУправлениеДиалогом


Подумалось, если бы можно было настроить TurboMD так, чтобы он собирал такие реквизиты в отдельный файл, я бы их мог потом подцеплять
и прописывать в управлении диалогом, через шаблон.

Процедура УправлениеДиалогом(Конт, флДоступность)

спРеквизитов = ВернутьСписокРеквизитов(Конт);

Для сч = 1 По спРеквизитов.РазмерСписка() Цикл

Рек = спРеквизитов.ПолучитьЗначение(сч);
рез = Шаблон("[Конт."+Рек+".Доступность("+флДоступность+")]");

КонецЦикла;

КонецПроцедуры;
1 Zhuravlik
 
07.09.12
16:06
+ Ошибся чуть-чуть

рез = Шаблон("[Конт.Форма."+Рек+".Доступность("+флДоступность+")]");
2 aka AMIGO
 
07.09.12
16:10
речь не у TurboBL случайно?
у TurboMD  вроде другие задачи
3 Zhuravlik
 
07.09.12
16:15
(2) Нет, благодаря ТурбоБЛ я могу вызывать методы объекта через контекст,
ТурбоМД - сохраняет все реквизиты формы во внешний файл. Через формекс обойти реквизиты формы - задача вроде так и не решенная, по крайней мере я в нете не нашел подходящий мне способо, как для объекта получить ВСЕ реквизиты формы (в т.ч. и те, которые не явлются объектом метаданных), потому я и подумал, может можно ТурбоМД научить их отлавливать? Мне бы это еще пригодилось, пару раз была ситуация, когда нужно было узнать такие объекты, но прописывал вручную.
4 aka AMIGO
 
07.09.12
16:16
ну, извини.. источники - то вроде известны:
http://openconf.1cpp.ru/vk/turbomd/

http://www.1cpp.ru/forum/YaBB.pl?board=openconf
5 aka AMIGO
 
07.09.12
16:18
6 Zhuravlik
 
07.09.12
16:20
(4)(5) Я это все читал. В ТурбоМД можно настроить только расположение выгружаемых данных, а как получить доступ к самим данным? Он получает ведь как-то список реквизитов формы, но у меня нет доступа к этим методам, я могу просто сохранить их во внешний файл.
Я подумал есть же скрипты и т.п. и 1С++, может можно как-то?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс