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

Форумы на Кубань.Ру


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

Метки:

СоздатьОбъект() - ?

Ø
Я
   Sig
09.08.00 - 10:37
Господа... В описании встроеного языка очень ясно написано, что функция СоздатьОбъект() работает со всеми агрегатными типами данных(еще в 75 писалось, а у меня 7.70.012). Я пробовал на справочниках и документах, все нормально работает.
АгрОбъект = "Справочник." + ИдентификаторСправочника;
Объект = СоздатьОбъект(АгрОбъект);
Но возникла необходимость достать так константу и ничего не вышло.
АгрОбъект = "Константа." + ИдентификаторКонстанты;
Объект = СоздатьОбъект(АгрОбъект);
Так вот: может кто знает как добраться до константы другими средствами когда заранее не знаеш ее идентификатора?
 
  Рекламное место пустует
   Sheridan
1 - 09.08.00 - 11:37
А до какой константы надо добраться, если не известен ее идентификатор.
Но уж если очень надо, воспользуйся методом Метаданные.
Для инд=1 по Метаданные.Константа() Цикл
  Сообщить(Метаданные.Константа(инд).Идентификатор);
КонецЦикла;
Если ошибся, посмотри описание структуры метаданных.
   Sig
2 - 09.08.00 - 12:21
Идентефикатор константы становиться известен непосредственно в программе и именно тем методом которым ты предлогаеш воспользоваться.
А через Метаданные можно добраться только до свойств обьекта метаданных, а значение самой константы не вычислить. Мне то как раз значение константы надо.
   BigHarry
3 - 09.08.00 - 12:32
Может - через Шаблон() покатит?
Посмотри тут день назад обсуждалась эта тема.
   Sheridan
4 - 09.08.00 - 12:47
Можно через Шаблон() вычислить значение константы. Единственное, что надо иметь ввиду, что Шаблон() возвращает результат в виде текстовой строки.
   АЛьФ
5 - 09.08.00 - 13:00
Ну, ребята !!!!
Из синтаксис помощника :
УстановитьАтрибут(<ИмяКонстанты>,<Значение>)
Назначение:
Установить значение константы по ее идентификатору.
Параметры:
<ИмяКонстанты> - строковое выражение, содержащее идентификатор константы, как он задан в конфигураторе.
<Значение> - выражение, содержащее устанавливаемое значение константы.
--------------------
ПолучитьАтрибут(<ИмяКонстанты>)
Назначение:
Получить значение константы по ее идентификатору. Возвращает значение константы.
Параметры:
<ИмяКонстанты> - строковое выражение, содержащее идентификатор константы, как он задан в конфигураторе.
   BigHarry
6 - 09.08.00 - 13:04
Такое впечатление - что у большинства народа синтакс-помошник не на русском языке или вааще отсутствует. Ладно - документации нет -с этим все понятно - но когда в СП лень заглянуть - это совсем непонятно.
   Sig
7 - 09.08.00 - 13:43
Сразу извиняюсь, немного не так обрисовал задачу. Значение константы мне конечно нужно, но это во вторую очередь. А в первую мне надо ссылку на саму константу. Т.к. впоследствии хочу для периодичесих констант воспользоваться методом ВыбратьЗначения() и вытащить все имевшие место значения данной константы. Поэтому метод Получить(<Дата>) для периодических констант мне сразу не подходит.
   Bad
8 - 09.08.00 - 15:11
А если использовать агрегатный объект "Периодический"
   John_ZiK
9 - 09.08.00 - 15:54
Процедура Сформировать()
  Для инд=1 по Метаданные.Константа() Цикл
  Если Метаданные.Константа(инд).Идентификатор="СуммаВключаетНДС" тогда
  	 ИдентификаторКонстанты=Метаданные.Константа(инд).Идентификатор;
  КонецЕсли;	
КонецЦикла;
Пер=СоздатьОбъект("Периодический");	
Пер.ИспользоватьОбъект(ИдентификаторКонстанты);	
        Пер.ВыбратьЗначения();
		Пока Пер.ПолучитьЗначение()=1 Цикл
		Сообщить(Пер.Значение);
		Сообщить(Пер.ДатаЗнач);
		КонецЦикла;	
КонецПроцедуры
   Andy Juravlev
10 - 09.08.00 - 18:03
Я написал небольшую конфигурацию "Расчет пени", в которой использованы принципы работы с периодической константой, можешь посмотреть. www.1c.zp.ua
 
  Рекламное место пустует
   Sheridan
11 - 09.08.00 - 20:24
Уже несколько раз перечитал, то что ты хочешь и никак не могу понять, в чем собственно вопрос (или лыжи не едут или я .....).
>Сразу извиняюсь, немного не так обрисовал задачу. Значение константы мне >конечно нужно, но это во вторую очередь. А в первую мне надо ссылку на >саму константу. Т.к. впоследствии хочу для периодичесих констант >воспользоваться методом ВыбратьЗначения() и вытащить все имевшие место >значения данной константы. Поэтому метод Получить(<Дата>) для >периодических констант мне сразу не подходит.
Во первых: тебе ссылка нужна на какую константу. Как ты узнаешь, та ли это константа которая тебе нужна или нет ?
Второе: Все с помощью того же объекта Метаданные ты сможешь узнать, является ли эта константа переодической. И делай с ней все, что хочешь, хоть ВыбратьЗначение().
Третье: Jhon Zik, что ты имел ввиду:
>Процедура Сформировать()
>  Для инд=1 по Метаданные.Константа() Цикл
>  Если Метаданные.Константа(инд).Идентификатор="СуммаВключаетНДС" тогда
>   ИдентификаторКонстанты=Метаданные.Константа(инд).Идентификатор;
>  КонецЕсли;
>КонецЦикла;
>Пер=СоздатьОбъект("Периодический");
>Пер.ИспользоватьОбъект(ИдентификаторКонстанты);
>        Пер.ВыбратьЗначения();
>Пока Пер.ПолучитьЗначение()=1 Цикл
>Сообщить(Пер.Значение);
>Сообщить(Пер.ДатаЗнач);
>КонецЦикла;
>КонецПроцедуры
Судя из текста программы, ты пытаешься выбрать значения из последней полученной константы. причем, эта константа может быть совсем даже не переодической.
Sig, скажи пожалуста, ну какая задача, по какому критерию ты определяешь, какая константа тебе нужна !!!



Список тем форума

Форум Территория 1С

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