|
v7: Обращение через точку к объекту | ☑ | ||
---|---|---|---|---|
0
1С-ница
19.04.13
✎
09:57
|
1С УСН 7.7
Пытаюсь сделать следующее: Если Субконто2.ПриниматьДляНУ = Перечисление.ВариантыУчетаРасходовДляНУПринимаются Тогда //тра та та Ругается так: Значение не представляет агрегатный объект (ПриниматьДляНУ). Подскажите как правильно сделать? |
|||
1
ДенисЧ
19.04.13
✎
09:59
|
А проверить для начала заполненность субконто2?
|
|||
2
1С-ница
19.04.13
✎
10:07
|
Конкретно в том документе на котором вылетает ошибка субконто заполнено.
Буду признательна если напишите код Не сильна в семерке... |
|||
3
zak555
19.04.13
✎
10:08
|
> Инженер-программист 1С
это в дипломе так написано ? |
|||
4
Ёпрст
19.04.13
✎
10:08
|
(0) не задано значение перечисления.
|
|||
5
ДенисЧ
19.04.13
✎
10:08
|
(2) Отладчик запретили?
|
|||
6
zak555
19.04.13
✎
10:09
|
глЕстьРеквизит(Субконто2, "ПриниматьДляНУ")
|
|||
7
Mikeware
19.04.13
✎
10:24
|
(3) знак посередине - не "дефис", а "минус"...
|
|||
8
NikVars
19.04.13
✎
10:26
|
(0) Чему равно значение переменной Субконто2?
Субконто2 = ... Чему равно? |
|||
9
Рэйв
19.04.13
✎
10:27
|
(2)>>Конкретно в том документе на котором вылетает ошибка субконто заполнено.
Или не заполнено или заполнено не перечислением ВариантыУчетаРасходовДляНУПринимаются |
|||
10
sapphire
19.04.13
✎
10:31
|
Если Субконто2.ПриниматьДляНУ = Перечисление.ВариантыУчетаРасходовДляНУ.Принимаются Тогда
|
|||
11
Рэйв
19.04.13
✎
10:36
|
(10)Оно конечно верно.
Но валится у нее уже на Субконто2.ПриниматьДляНУ:-) |
|||
12
sapphire
19.04.13
✎
10:38
|
(0) 2 ошибки:
1. Нет проверки типа Субконто2 и наличия реквизита ".ПриниматьДляНУ" 2. В перечислении: Перечисление.ВариантыУчетаРасходовДляНУ.Принимаются |
|||
13
1С-ница
19.04.13
✎
10:59
|
(8) Значение субконто2=ЗаработнаяПлата (справочник Виды начислений)
у формы этого справочника на форме есть реквизит ПриниматьДля НУ (тип Перечисление.ВариантыУчетаРасходовДляНУ) у этого перечисления есть значения Принимаются, НеПринимаются, Распределяются |
|||
14
1С-ница
19.04.13
✎
11:04
|
(6) глЕстьРеквизит - такой функции нет в глобальном модуле УСН, советуете написать или где то она есть (может в других конфигурациях)
|
|||
15
mishaPH
19.04.13
✎
11:17
|
(0) а что, отладчик вам не известен? код с листа пишем?
проверить в отладчике собственно Субконто2 что там |
|||
16
zak555
19.04.13
✎
11:33
|
(7) ты имеешь ввиду это
Инженер-программист=1С ? |
|||
17
Mikeware
19.04.13
✎
11:37
|
(16) не знаю, каким боком ТС к 1С, но то, что она как минимум не программист...
|
|||
18
1С-ница
19.04.13
✎
11:40
|
(15) отладчиком пользоваться я умею, в отладчике значение у субконто2 есть, не умею делать проверку на значение этого субконто, т к мало знаю семерку
(17) давайте вы себя оценивать будете, честнее будет :) |
|||
19
ЧеловекДуши
19.04.13
✎
11:43
|
(18) Пиши в отладчике
//Перед тем, как сработает ошибка :) ТипЗначенияСтр(Субконто2.ПриниматьДляНУ) ТипЗначенияСтр(Субконто2) //+ //Перечисления это некий список предопределенных значений, задаваемых в конфигураторе, такое же есть в 8-ке //Писать так Перечисление.ВариантыУчетаРасходовДляНУПринимаются.КакоеЛибоЗначение |
|||
20
ЧеловекДуши
19.04.13
✎
11:44
|
+(18) >>> агрегатный объект
Это начиная от 10 до 100, по функции "ТипЗначения(<Переменная>)" |
|||
21
Mikeware
19.04.13
✎
11:47
|
(18)"мало знаю семерку" -
"сами мы восьмерочники, СП украли, ЖКК сгорели - помогите кодом кто каким может..."© |
|||
22
zak555
19.04.13
✎
12:08
|
(18) > т к мало знаю семерку
а что знаешь ? |
|||
24
mishaPH
19.04.13
✎
12:59
|
(18) 1. отлично. а есть ли у значения субконто2 реквизит ПриниматьДляНУ
|
|||
25
mishaPH
19.04.13
✎
13:00
|
а то может быть там группа элемента справочника в выборке, у которой нет реквизита ПриниматьДляНУ который только для элементов
|
|||
26
Масянька
19.04.13
✎
13:04
|
Чего налетели? Тема-то - КАК называется...
|
|||
27
NikVars
19.04.13
✎
16:07
|
(0) Перебирай в цикле
зн = Субконто2.ПриниматьДляНУ; Для к=1 по Перечисление.ВариантыУчетаРасходовДляНУПринимаются.КоличествоЗначений() цикл Если зн=Перечисление.ВариантыУчетаРасходовДляНУПринимаются.ЗначениеПоНомеру(к); Чего-то сделать... ... |
|||
28
zak555
19.04.13
✎
22:46
|
(27) что за ?
|
|||
29
Сияющий Асинхраль
19.04.13
✎
23:10
|
Субконто2 потому и называется Субконто2, что его значение может быть справочником (а возможно и не только справочником) разных видов, и далеко не у каждого справочника в усн есть реквизит ПриниматьДляНУ
|
|||
30
Сияющий Асинхраль
19.04.13
✎
23:17
|
Да, кстати, приведенный кусок кода в 8.х отработает также как и в 7.7, и ошибку выдаст такую же, так что рассказы о незнании 7-ки для данного куска странны для ника 1с-ница...
|
|||
31
zak555
19.04.13
✎
23:32
|
(29) (30) ты про какой кусок ?
|
|||
32
Злопчинский
19.04.13
✎
23:59
|
Если субконто2 жестко типизирован но не заполнен - то ошибки не будет в случае обращения к субконто2.ЧтоТо
Если субконто2 жестко типизирован но не заполнен - то ошибка будет при более глубоком проникновении типа субконто2.ЧтоТо.Хрень . вроде так. |
|||
33
zak555
20.04.13
✎
00:01
|
(32) попутал =)
|
|||
34
Злопчинский
20.04.13
✎
00:02
|
(33) в смысле?
|
|||
35
zak555
20.04.13
✎
00:09
|
перечитай, что написал
|
|||
36
Сияющий Асинхраль
20.04.13
✎
12:21
|
(32) обычно, если субконто2 жестко типизирован, то эта типизация отображается в самом названии, например, ВидНачисления. По крайней мере в типовых так...
|
|||
37
1С-ница
22.04.13
✎
14:17
|
(19) ТипЗначенияСтр(Субконто2.ПриниматьДляНУ) = "Перечисление"
|
|||
38
1С-ница
22.04.13
✎
14:17
|
ТипЗначенияСтр(Субконто2) = "Справочник"
|
|||
39
ЧеловекДуши
22.04.13
✎
14:23
|
(37) Молодец, вот так можно работать в отладчике :)
А теперь сделай там же так: Субконто2.ПриниматьДляНУ.Вид() и Субконто2.Вид() А затем СокрЛП(Субконто2.ПриниматьДляНУ) и СокрЛП(Субконто2) (38)Но ты так главного не поняла. Перечисление всегда состоит из трех составляющих: программном модуле (перечисления принадлежат глобальному контексту задачи). В терминах языка перечисления аналогичны системным константам «только для чтения», т. е. идентификаторы перечислений могут размещаться только в правой части оператора присваивания, в выражениях, быть параметрами процедур, функций или методов в любом программном модуле. В качестве имени перечисления обязательно должно выступать полное имя конкретного вида и значения перечисления, как оно объявлено в конфигураторе. Вид и значение перечисления записывается через точку после ключевого слова Перечисление, т. е. полное имя вида перечисления записывается следующим образом: Перечисление.<Имя_Переч>.<Значение_Переч>, где <Имя_Переч> — имя вида перечисления, <Значение_Переч> — конкретное значение данного вида перечисления. Англоязычный синоним ключевого слова Перечисление — Enum. Пример: Если Док.Сотрудник.Тип = Перечисление.ТипСотрудника.Штатный Тогда Льготы = 1; Иначе Льготы = 0; КонецЕсли; Объект Перечисление является частью глобального контекста программы 1С:Предприятие. Этот объект в качестве своих атрибутов имеет значения объектов конкретных видов перечислений, заданных в конфигурации. Кроме того, этот объект имеет метод ПолучитьАтрибут, который позволяет получить доступ к объекту перечисления конкретного вида по его имени. Перечисление конкретного вида в качестве своих атрибутов имеет конкрет-йьте значения перечислений. Кроме того, этот объект имеет методы КоличествоЗначений, ЗначениеПоНомеру и ЗначениеПоИдентификатору которые позволяют получить доступ к конкретному значению перечисления. Конкретное значение перечисления имеет методы Вид, ПредставлениеВида, Выбран, ПорядковыйНомер, Идентификатор. |
|||
40
ЧеловекДуши
22.04.13
✎
14:24
|
+(38)Обрати внимание на текст "обязательно должно выступать полное имя конкретного вида и значения перечисления,"
|
|||
41
1С-ница
22.04.13
✎
14:24
|
Поняла в чем ошибка, спасибо всем, кто действительно пытался помочь))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |