|
Не работает запрос ЗначенияСвойствОбъектов | ☑ | ||
---|---|---|---|---|
0
korchak
09.08.12
✎
10:54
|
Помогите разобраться где ошибка?
Вот этот код работает!! Запрос = Новый Запрос; Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Банк бенефициант контрагента"); Запрос.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Значение КАК БанкБенефициант, | ЗначенияСвойствОбъектов.Свойство, | ЗначенияСвойствОбъектов.Объект |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Объект = &Объект | И ЗначенияСвойствОбъектов.Свойство = &Свойство"; Запрос.УстановитьПараметр("Объект", Контрагент); Запрос.УстановитьПараметр("Свойство", Свойство); Результат = Запрос.Выполнить().Выбрать(); Если Результат.Следующий() Тогда Возврат Результат.БанкБенефициант; Иначе Возврат Справочники.БанковскиеСчета.ПустаяСсылка(); КонецЕсли; |
|||
1
Alex S D
09.08.12
✎
10:55
|
непонятно, работает же, чего ты хочешь
|
|||
2
Wobland
09.08.12
✎
10:55
|
работает? ошибка в ДНК
|
|||
3
Лефмихалыч
09.08.12
✎
10:56
|
(0) код рабочий, огибка не в этом коде
|
|||
4
korchak
09.08.12
✎
10:58
|
А вот вот этот код не работает!
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Значение КАК БанкБенефициант, | ЗначенияСвойствОбъектов.Свойство, | ЗначенияСвойствОбъектов.Объект |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Объект = &Объект | И ЗначенияСвойствОбъектов.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.Т_БанкБенефициантКонтрагента)"; Запрос.УстановитьПараметр("Объект", Контрагент); Результат = Запрос.Выполнить().Выбрать(); Если Результат.Следующий() Тогда Возврат Результат.БанкБенефициант; Иначе Возврат Справочники.БанковскиеСчета.ПустаяСсылка(); КонецЕсли; |
|||
5
korchak
09.08.12
✎
10:58
|
Предопределенный вид характеристики задан...
|
|||
6
salvator
09.08.12
✎
10:59
|
(4) Продолжайте наблюдение
|
|||
7
korchak
09.08.12
✎
10:59
|
дык уже час продолжаю наблюдение...безрезультатно
|
|||
8
ДемонМаксвелла
09.08.12
✎
11:00
|
ну а свойство зачем убрал?
|
|||
9
korchak
09.08.12
✎
11:00
|
так здесь же задаю свойство...
ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.Т_БанкБенефициантКонтрагента) |
|||
10
Lex_Liven
09.08.12
✎
11:01
|
(4) "А вот этот код не работает." Как именно он не работает? Выдает ошибку? Ничего не отбирает?
|
|||
11
hhhh
09.08.12
✎
11:02
|
(9) сами значения с этим новым свойством забыли в регистр записать.
|
|||
12
korchak
09.08.12
✎
11:04
|
в отладчике Результат.БанкБенефициант выдает "Ошибка чтения значения"
|
|||
13
Maxus43
09.08.12
✎
11:04
|
а так работает если в (0) вставить: Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.Т_БанкБенефициантКонтрагента;
|
|||
14
korchak
09.08.12
✎
11:05
|
в отладчике выдает Результат.БанкБенефициант "Ошибка чтения значения"
|
|||
15
acsent
09.08.12
✎
11:05
|
очевидно же что свойства разные
|
|||
16
korchak
09.08.12
✎
11:07
|
нет, значения свойства записаны в элементе справочника Контрагенты
|
|||
17
korchak
09.08.12
✎
11:08
|
первый вариант же работает... значит значения записаны верны в регистр
|
|||
18
ssh2006
09.08.12
✎
11:09
|
(16) Добавь в первый запрос, который "работает" условие
И &Свойство = ЗначенияСвойствОбъектов.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.Т_БанкБенефициантКонтрагента) Сработает? |
|||
19
Лефмихалыч
09.08.12
✎
11:09
|
||||
20
Lex_Liven
09.08.12
✎
11:09
|
(16) Эмм... А само значение предопреденного свойства в конфигурации заполнено?
|
|||
21
korchak
09.08.12
✎
11:15
|
нет, не заполнено значение предопределенного свойста, только вид характеристики. А где его заполнять там?
|
|||
22
Lex_Liven
09.08.12
✎
11:17
|
там, где заполняете значения свойств. Как заполняли БанкБенефициант, также заполните и Т_БанкБенефициант
|
|||
23
korchak
09.08.12
✎
11:22
|
честно говоря, не понял где...
в предопределенном виде характеристики только: имя, код, наименование, тип имя - Т_БанкБенефициантКонтрагента код - 00000001000 наименование - Банк бенефициант контрагента Тип - СправочникСсылка.БанковскиеСчета |
|||
24
korchak
09.08.12
✎
11:28
|
как вводить значение предопределенного вида характеристики? в режиме конфигуратора или в режиме 1С Предприятия?
|
|||
25
Lex_Liven
09.08.12
✎
11:28
|
Не в конфигураторе, а в предприятии.
|
|||
26
korchak
09.08.12
✎
11:31
|
а чем добавлять? обработкой Значения свойств объектов?
|
|||
27
Lex_Liven
09.08.12
✎
11:33
|
Вы чем добавляли банк бенефициант, когда он не был предопределенным? Вот там же и добавьте второе свойство, Т_БанкБенефициант с нужным значением.
|
|||
28
korchak
09.08.12
✎
11:37
|
хорошо, я понял... я добавлю на вкладке "Свойства" элемента справочника контрагенты второе свойство - Т_БанкБенефициант
|
|||
29
Lex_Liven
09.08.12
✎
11:38
|
(28) именно.
|
|||
30
korchak
09.08.12
✎
11:39
|
но в чем тогда смысл предопределенного вида характеристики? где проявляеться его "предопределенность"? простите за, возможно, ламерские вопросы...
|
|||
31
Lex_Liven
09.08.12
✎
11:40
|
В списке "Свойства объектов" он будет всегда.
В конфигурации ты можешь обратиться к нему через точку, что будет быстрее, нежели "НайтиПоНаименованию". |
|||
32
korchak
09.08.12
✎
11:42
|
понял! большое спасибо всем!!! особенно Lex Liven!
|
|||
33
Lex_Liven
09.08.12
✎
11:43
|
(32) Не за что. Ты скажи, помогло, нет? Или решил нафиг-нафиг?
|
|||
34
korchak
09.08.12
✎
11:58
|
Честно говоря не очень...
ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.Т_БанкБенефициантКонтрагента) все также не работает... для конкретного контрагента свойство с наименованием "Банк бенефициант контрагента" записано; наименование свойства соответствует наименованию предопределенного вида характеристики "Банк бенефициант контрагента". Проверил появляется ли оно в списке обязательных, записал новый элемент справочника, появилось как обязательное на вкладке свойство. А код Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Банк бенефициант контрагента") работает! Т.е. свойство по наименованию ищет, через точку СвойстваОбъектов.Т_БанкБенефициантКонтрагента нет... не понимаю что я сделал не так |
|||
35
korchak
09.08.12
✎
12:04
|
хочеться чтоб через точку работало... ведь завтра пользователь изменит по своему усмотрению наименование свойства и код поиска по наименованию уже не сработает...
|
|||
36
Lex_Liven
09.08.12
✎
12:04
|
А в первом запросе если сделать
Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.Т_БанкБенефициантКонтрагента; так работает? |
|||
37
korchak
09.08.12
✎
12:33
|
Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.Т_БанкБенефициантКонтрагента;
... |ЗначенияСвойствОбъектов.Значение КАК БанкБенефициант, ... |И ЗначенияСвойствОбъектов.Свойство = &Свойство"; Запрос.УстановитьПараметр("Свойство", Свойство); ... Результат.БанкБенефициант С этим кодом Результат.БанкБенефициант - ошибка чтения значения. Хотя переменная Свойство содержит ссылку на свойство с наименованием "Банк бенефициант контрагента" Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Банк бенефициант контрагента"); ... |ЗначенияСвойствОбъектов.Значение КАК БанкБенефициант, ... |И ЗначенияСвойствОбъектов.Свойство = &Свойство"; Запрос.УстановитьПараметр("Свойство", Свойство); ... Результат.БанкБенефициант А этот код работает!! |
|||
38
Lex_Liven
09.08.12
✎
12:37
|
И у контрагента, которого ты сюда передаешь заполнены оба свойства? Кстати, дай временно им разные наименования - может перепутались?
|
|||
39
acsent
09.08.12
✎
12:38
|
(37) сделай
Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.Т_БанкБенефициантКонтрагента; Сообщить(Свойство.УникальныйИдентификатор()); Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Банк бенефициант контрагента"); Сообщить(Свойство.УникальныйИдентификатор()); |
|||
40
korchak
09.08.12
✎
12:40
|
я по-моему нашел ошибку... это разные свойства, у них одинаковые наименования, но разные кода, да и свойство предопреленный у одного из них Ложь...
|
|||
41
ssh2006
09.08.12
✎
12:43
|
Congratulations
см (15), (18) |
|||
42
korchak
09.08.12
✎
12:47
|
удалил "неправильное" свойство... автоматом не добавился предопределенный элемент, я так понял, что он только при создании нового элемента добавляеться. А как добавить предопределенный? добавить вручную с правильным наименованием и код вручную отредактировать??
|
|||
43
Lex_Liven
09.08.12
✎
12:51
|
Послушай, он предопределен только для списка возможных свойств. Когда ты присваиваешь контрагенту нужный банк - ты добавляешь Значение этого свойства. Работаешь ты с этим значением точно также, как и со значениями любых других свойств.
Если у тебя на каждого контрагента заведено свойство "Банк бенефициант" с каким-то значением, то, после добавления нового предопределенного свойства, тебе нужно прописать его точно также всем контрагентам. |
|||
44
korchak
09.08.12
✎
13:04
|
У контрагентов не заведено никаких свойств, подобных "Банк бенефицианта". Я сейчас добавил новое предопределенное свойство "Банк бенефициант контрагента". Как мне в существующих контрагентов добавить это предопределенное свойство, чтоб запрос работал и не выдавал снова ошибка чтения значений? Прописать каждому контрагенту свойство с наименованием "Банк бенефициант контрагента"?
|
|||
45
hhhh
09.08.12
✎
13:27
|
(44) ну там в плане видов характеристик. Там папочки: номенклатура, склады, контрагенты. Ты должен задвинуть твое новое свойство в папочку контрагенты.
Это называется: назначение свойств объектов. |
|||
46
korchak
09.08.12
✎
13:35
|
понял, спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |