|
Поиск элемента справочника | ☑ | ||
---|---|---|---|---|
0
LOTOS2000
30.04.13
✎
13:45
|
В модуле формы документа хочу сделать такое:
в цикле найти ссылку на объект справочника и записать её в реквизит табличной части. Код: Спр = Справочники.Ааа; Для сч=1 по 12 Цикл СпрСсылка = НайтиПоКоду(Число(СокрЛП(Excel.Cells(ТекСтрока, 2).Value)),0); Если СпрСсылка <> Спр.ПустаяСсылка() Тогда Если СпрСсылка.ЭтоГруппа() Тогда Продолжить; КонецЕсли; НоваяСтрока = Документы.Ббб.ТабличнаяЧастьБ.Добавить(); РеквТЧ1 = СпрСсылка; КонецЕсли; КонецЦикла; Ошибка: Метод объекта не обнаружен (ЭтоГруппа) Как побороть? |
|||
1
Godofsin
30.04.13
✎
13:46
|
убрать скобки?
|
|||
2
NcSteel
30.04.13
✎
13:47
|
Должно быть так:
1. Получаем необходимый код справочника 2. Ищем запросом данный справочник 3. Если 2 удачно отработал, то запихиваем его в ТЧ |
|||
3
Alex S D
30.04.13
✎
13:48
|
а нормальный код привести религия не позволяет?)
|
|||
4
Defender aka LINN
30.04.13
✎
13:49
|
(0) СП предлагать?
|
|||
5
LOTOS2000
30.04.13
✎
13:49
|
(1) Помогло, но в рекв ТЧ ничего не записало, хотя в Спр элементы с соответствующими кодами присутствуют.
|
|||
6
Defender aka LINN
30.04.13
✎
13:50
|
(5) А должно было?
|
|||
7
Lelic
30.04.13
✎
13:50
|
СтрокаКода = "840";
Валюты = Справочники.Валюты; НайденнаяСсылка = Валюты.НайтиПоКоду(СтрокаКода); Если НайденнаяСсылка = Валюты.ПустаяСсылка() Тогда Сообщить("Валюты """ + СтрокаКода + """ еще нет"); КонецЕсли; |
|||
8
LOTOS2000
30.04.13
✎
13:50
|
(6) Хотелось бы )
я ж только учюсь )) |
|||
9
Defender aka LINN
30.04.13
✎
13:50
|
+(6) И че, строка "НоваяСтрока = Документы.Ббб.ТабличнаяЧастьБ.Добавить();" прямо вот так риальне отработала?
|
|||
10
LOTOS2000
30.04.13
✎
13:51
|
(7) СП я читал.
|
|||
11
1Сергей
30.04.13
✎
13:51
|
//СпрСсылка = НайтиПоКоду(Число(СокрЛП(Excel.Cells(ТекСтрока, 2).Value)),0);
СпрСсылка = Спр.НайтиПоКоду(Число(СокрЛП(Excel.Cells(ТекСтрока, 2).Value)),0); |
|||
12
NcSteel
30.04.13
✎
13:51
|
ДокументОбъект = Документы.ИмяДокумента.НайтиПоНомеру(НомерДокумента, ДатаДокумента);
МассивКодов = Новый Массив; Для сч=1 по 12 Цикл МассивКодов.Добавить(Число(СокрЛП(Excel.Cells(ТекСтрока, 2).Value))); КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "Выбрать ПсевдонимТаблицы.Ссылка Из Спрвочник.ИмяСправочника Как ПсевдонимТаблицы Где ПсевдонимТаблицы.Код В (&МассивКодов)"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл НоваяСтрока = ДокументОбъект.ТабличнаяЧастьДокумента.Добавить(); НоваяСтрока.РеквТЧ1 = Выборка.Ссылка; КонецЦикла; |
|||
13
LOTOS2000
30.04.13
✎
13:52
|
(12) А если документ ещё не записан?
|
|||
14
konsta_st
30.04.13
✎
13:53
|
Возвращаемое значение:
Тип: СправочникСсылка.<Имя справочника>; Неопределено. |
|||
15
NcSteel
30.04.13
✎
13:54
|
(13) В каком контексте выполняется код?
Если в модуле формы документа или модуле объекта, то МассивКодов = Новый Массив; Для сч=1 по 12 Цикл МассивКодов.Добавить(Число(СокрЛП(Excel.Cells(ТекСтрока, 2).Value))); КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "Выбрать ПсевдонимТаблицы.Ссылка Из Спрвочник.ИмяСправочника Как ПсевдонимТаблицы Где ПсевдонимТаблицы.Код В (&МассивКодов)"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл НоваяСтрока = ИмяТабличнойЧастиДокумента.Добавить(); НоваяСтрока.РеквТЧ1 = Выборка.Ссылка; КонецЦикла; |
|||
16
1Сергей
30.04.13
✎
13:54
|
(14) +1
|
|||
17
Lelic
30.04.13
✎
13:54
|
А почему тогда не пишете в каком справочнике поиск? И еще, из отрицательного опыта: посмотрите что вы ищите: нули проверьте и т.д..
|
|||
18
LOTOS2000
30.04.13
✎
13:56
|
(16) ПустаяСсылка и Неопределено две большие разницы? т.е. я получаю в цикле неопределено?
|
|||
19
Alex S D
30.04.13
✎
13:57
|
(18) отладчиком пробовал пользоваться?
|
|||
20
NcSteel
30.04.13
✎
13:58
|
(18) У тебя код весь из задницы.
В каждой строчке написан бред. |
|||
21
Godofsin
30.04.13
✎
13:59
|
(20) +
|
|||
22
x-a-d
30.04.13
✎
14:00
|
(0) См (14)
Надо вместо Если СпрСсылка.ЭтоГруппа() Тогда написать Если СпрСсылка <> неопределено и СпрСсылка.ЭтоГруппа() если первое условие выполнится, то будет проверяться второе, если не выполнится, то второе условие проверяться не будет и ошибки не будет. |
|||
23
cw014
30.04.13
✎
14:01
|
Если для справочника код не задан (длина = 0), то будет возвращено Неопределено. (С) СП
Вот это: Число(СокрЛП(Excel.Cells(ТекСтрока, 2).Value)) Проверяй на то, что там что то есть |
|||
24
LOTOS2000
30.04.13
✎
14:25
|
(20) Согласен.
(23) Там есть значения, совпадающие с кодом элементов справочника Ааа |
|||
25
cw014
30.04.13
✎
14:27
|
(24) У справочника "ааа" код числовой что ли?
|
|||
26
LOTOS2000
30.04.13
✎
14:28
|
(25)да
|
|||
27
1Сергей
30.04.13
✎
14:40
|
(26) всё-равно надо искать по строке
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |