Имя: Пароль:
1C
1С v8
как проверить субконто?
0 hatsher
 
28.02.12
16:13
у счета есть субконто "номенклатура". Это предопределенный элемент пвд видыСубконтоХозрасчетные.

как проверить, что у данного счета действительно есть такой субконто? При том, что само субконто может быть переименовано в пользовательском режиме.

Отладчик:
стр.СчетДт.ВидыСубконто[0].ВидСубконто.Наименование = "Номенклатура2"(строка)

стр.СчетДт.ВидыСубконто[0].ВидСубконто.ТипЗначения = Номенклатура(описание типов)
1 zak555
 
28.02.12
16:15
обратиться по имени ?
2 hatsher
 
28.02.12
16:16
(1) как? по наименованию проверить не могу
стр.СчетДт.ВидыСубконто[0].ВидСубконто.ТипЗначения.привестиЗначение()

показывает тип, но для составных видов субконто не прокатит
3 DrShad
 
28.02.12
16:16
(0) предопределеные элементы имеют имя, которое пользователь не может изменять
4 DrShad
 
28.02.12
16:17
(2) для составных Неопределено
5 DrShad
 
28.02.12
16:19
(0) ты вообще что сделать хочешь? имхается что ты куда-то не туда залез
6 zak555
 
28.02.12
16:19
(3) чё ? о_О
7 DrShad
 
28.02.12
16:20
(6) и что тебя собственно смущает?
8 hatsher
 
28.02.12
16:20
(3)да что вы такое говорите!
http://s04.radikal.ru/i177/1202/5e/ea280c6b7b6d.jpg
9 hatsher
 
28.02.12
16:21
(5)туда. что нужно - читай сабж
10 DrShad
 
28.02.12
16:21
(8) ты дятел? изменил Наименование и думаешь что изменил Имя?
11 jump if zero
 
28.02.12
16:22
Для каждого СтрокаТЧ Из Проводка.СчетКт.ВидыСубконто Цикл

Если СтрокаТЧ.ВидСубконто.ТипЗначения.СодержитТип(Тип("СправочникСсылка.Номенклатура")) Тогда
12 DrShad
 
28.02.12
16:22
видимо тут все в последнее время не читатели, а писатели-чукчи
13 hatsher
 
28.02.12
16:23
(10)это ты дятел. у ПВД нет "имени". из предопределенных реквизитов - наименование и код. Учи матчасть
14 zak555
 
28.02.12
16:31
Глобальный контекст.ПредопределенноеЗначение (Global context.PredefinedValue)
Глобальный контекст (Global context)
ПредопределенноеЗначение (PredefinedValue)
Синтаксис:

ПредопределенноеЗначение(<ИмяПредопределенногоЗначения>)
Параметры:

<ИмяПредопределенногоЗначения> (обязательный)

Тип: Строка. Содержит полный путь до предопределенного значения, включая имя самого значения. Например, "ПланСчетов.Основной.Счет41".
Синтаксис описания предопределенного значения совпадает с синтаксисом оператора ЗНАЧЕНИЕ языка запросов:
<Тип предопределенного значения>.<Имя объекта метаданных>.<Значение>
Тип предопределенного значения> может быть:
Справочник (Catalog);
ПланВидовХарактеристик (ChartOfCharacteristicTypes);
ПланСчетов (ChartOfAccounts);
ПланВидовРасчета (ChartOfCalculationTypes);
Документ (Document) - только пустая ссылка;
Перечисление (Enum);
БизнесПроцесс (BusinessProcess) - только пустая ссылка и получение точек бизнес процесса;
Задача (Task) - только пустая ссылка.
В качестве <Имя объекта метаданных> указывается имя объекта метаданных, как оно задано в конфигураторе.
Для перечислений, определенных в конфигурации, <Значение> указывается как имя соответствующего объекта метаданных типа ЗначениеПеречисления. Для всех остальных типов предопределенных значений <Значение> указывается как имя предопределенного элемента данных, как оно указано в конфигураторе, или ПустаяСсылка для указания пустой ссылки.
Для точек маршрутов бизнес-процессов имя предопределенного значения имеет вид:
БизнесПроцесс.<Имя объекта метаданных>.ТочкаМаршрута.<Имя точки маршрута>
Также метод может быть использован для получения значения системного перечисления. В этом случае параметр формируется как:
<ИмяСистемногоПеречисления>.<ИмяЗначенияСистемногоПеречисления>
Описание:

Возвращает ссылку на предопределенный элемент из предопределенных данных, прикладных перечислений и точек маршрута бизнес-процессов, а также значения системных перечислений.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Вызов метода выполняет обращение к серверу.
15 Kashemir
 
28.02.12
16:37
ПофигКакНайденыйСчет = ПланыСчетов.Хозрасчетный.ТоварыНаСкладе;    //Предопределенный
   ПофигКакНайденыйСчет = ПланыСчетов.Хозрасчетный["ТоварыНаСкладе"];  //Предопределенный
   ПофигКакНайденыйСчет = ПланыСчетов.Хозрасчетный.НайтиПоКоду(281);    //Любой
   
   
   ПроизвольноеСубконто=    ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура;     //Предопределенный
   ПроизвольноеСубконто=    ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные["Номенклатура"];    //Предопределенный
   ПроизвольноеСубконто=    ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НайтиПоНаименованию("Номенклатура");    //Любое первое подходящее по условиям поиска наименований
   ПроизвольноеСубконто=    ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НайтиПоКоду("000000001");                //Любое по коду
   
   ЕстьТакоеСубконтоУСчета = ПофигКакНайденыйСчет.ВидыСубконто.Найти(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные["Номенклатура"]) <> Неопределено;
16 Kashemir
 
28.02.12
16:39
+(15) Ну и конечно не вдаваясь в суть вашей дискуссии - предопределенное наименование и наименование (оно же пользовательское) это разные свойства.
17 DrShad
 
28.02.12
16:43
(13) уверен?
18 hatsher
 
28.02.12
16:46
(17) уверен. найди имя:

http://i070.radikal.ru/1202/89/e08c4c6ee4d6.jpg
19 DrShad
 
28.02.12
16:48
20 DrShad
 
28.02.12
16:49
+(19) найди отличие
21 DrShad
 
28.02.12
16:50
и в догоночку
ПланВидовХарактеристикМенеджер.<Имя плана видов характеристик> (ChartOfCharacteristicTypesManager.<Имя плана видов характеристик>)
ПолучитьИмяПредопределенного (GetPredefinedItemName)
Синтаксис:

ПолучитьИмяПредопределенного(<Ссылка>)
Параметры:

<Ссылка> (обязательный)

Тип: ПланВидовХарактеристикСсылка.
Ссылка на элемент, имя которого требуется получить.
Возвращаемое значение:

Тип: Строка.

Описание:

Получает имя предопределенного элемента. Если данный элемент не является предопределенным, то возвращается пустая строка.

Доступность:

Сервер, толстый клиент, внешнее соединение.
22 DrShad
 
28.02.12
16:54
(18) ну куда пропал?
23 DrShad
 
28.02.12
17:32
(18) слив засчитан
24 hatsher
 
28.02.12
17:34
слив засчитан, ок =)
25 DrShad
 
28.02.12
17:34
(24) ну так что есть Имя у ВидовСубконто или нет?
26 hatsher
 
28.02.12
17:37
(25) имя как реквизит несомненно есть, но через набор свойств его не получить
27 DrShad
 
28.02.12
17:39
(26) для этого есть специальный метод