|
Не определен владелец справочника | ☑ | ||
---|---|---|---|---|
0
amadeus2010
05.09.13
✎
17:21
|
Добрый вечер столкнулся с такой ситуацией. Из екселя записываю в справочник кпкТорговыеТочки данные.Вот Код
////////////////////////////////////////////////////////////////// ТорговыеТочки = Справочники.кпкТорговыеТочки.СоздатьЭлемент(); ТорговыеТочки.Агент = Справочники.ФизическиеЛица.НайтиПоНаименованию(Строка.Экспедитор).Ссылка; ТорговыеТочки.Адрес = Строка.Адрес; ТорговыеТочки.Владелец = Справочники.Контрагенты; ТорговыеТочки.Договор = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию("Основной договор").Ссылка; ТорговыеТочки.Категория = Справочники.кпкКатегорииКонтрагентов.НайтиПоНаименованию("покупатель").Ссылка; ТорговыеТочки.КонтактноеЛицо = Справочники.КонтактныеЛицаКонтрагентов.НайтиПоНаименованию(Строка.КонтактноеЛицо).Ссылка; ТорговыеТочки.Наименование = Справочники.Контрагенты.НайтиПоНаименованию(Строка.Наименование).Ссылка; ТорговыеТочки.НаименованиеПолное = Справочники.Контрагенты.НайтиПоНаименованию(Строка.Наименование).Ссылка; ТорговыеТочки.ОсновнойТипЦены= Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная").Ссылка; ТорговыеТочки.Регионы =Справочники.Регионы.НайтиПоНаименованию(Строка.Регион).Ссылка; ТорговыеТочки.Телефоны = Строка.Телефоны; ТорговыеТочки.ТипТочки = Справочники.кпкТипыТорговыхТочек.НайтиПоНаименованию("Marketler").Ссылка; ТорговыеТочки.Записать(); /////////////////////////////////////////////////////////////////// При попытке Записать справочник ругается на то что не определен или неправильно определен Владелец справочника, т.е ошибка в ТорговыеТочки.Владелец = Справочники.Контрагенты; Как правильно получить ссылку на владельца справочника? |
|||
1
ДенисЧ
05.09.13
✎
17:26
|
"ТорговыеТочки.Владелец = Справочники.Контрагенты; "
При таком коде правильней всего будет получить на складе метлу и применять её по назначению... |
|||
2
Любопытная
05.09.13
✎
17:26
|
Справочники.Контрагенты - это справочник-менеджер, а тебе туда ссылку надо указать
|
|||
3
amadeus2010
05.09.13
✎
17:28
|
я понимаю что ссылку надо указать, поэтому и спрашиваю как можно получить ссылку
|
|||
4
Euguln
05.09.13
✎
17:29
|
(1) + 1 там весь код - ТорговыеТочки.Владелец = Справочники.Контрагенты.НайтиПоНаименованию(Строка.Наименование).Ссылка;
А дальше вообще какая-то ересь: ТорговыеТочки.Наименование = Справочники.Контрагенты.НайтиПоНаименованию(Строка.Наименование).Ссылка; ТорговыеТочки.НаименованиеПолное = Справочники.Контрагенты.НайтиПоНаименованию(Строка.Наименование).Ссылка; |
|||
5
amadeus2010
05.09.13
✎
17:34
|
(4) в том то и дело
ТорговыеТочки.Наименование = Справочники.Контрагенты.НайтиПоНаименованию(Строка.Наименование).Ссылка; ТорговыеТочки.НаименованиеПолное = Справочники.Контрагенты.НайтиПоНаименованию(Строка.Наименование).Ссылка; срабатывает |
|||
6
Euguln
05.09.13
✎
17:35
|
(5) да, и что туда пишется? Представление контрагента?
|
|||
7
amadeus2010
05.09.13
✎
17:39
|
сделал добавление по владельцу данные записались, только пока не сел тип цены-розничная
|
|||
8
Dmitrith
05.09.13
✎
17:39
|
Ссылка на объект нужна. Т.е. непосредственно некий контрагент.
ЗЫ: узнаю Агент+ |
|||
9
Любопытная
05.09.13
✎
17:41
|
(8) а если не найдет по наименованию?
|
|||
10
amadeus2010
06.09.13
✎
10:52
|
Утро доброе в продолжении темы
ТорговыеТочки.Владелец = Справочники.Контрагенты.НайтиПоНаименованию(Строка.Наименование).Ссылка; записывает несколько точек, потом выдает ошибку что не заполнен владелец точки или заполнен не правильно.Есть ли какой способ указать владельца справочника по-другому? |
|||
11
amadeus2010
06.09.13
✎
11:35
|
есть кто?
|
|||
12
Любопытная
06.09.13
✎
11:36
|
(11) как-то по-другому его находить.
|
|||
13
Wobland
06.09.13
✎
11:37
|
(11) именно этим вопросом следует задаваться при каждом употреблении НайтиПоНаименованию()
|
|||
14
amadeus2010
06.09.13
✎
12:04
|
(13) предположим, а как все таки можно указать владельца справочника?
|
|||
15
Wobland
06.09.13
✎
12:07
|
(14) присвоить ссылку в соответствующее поле
|
|||
16
Dен
06.09.13
✎
12:16
|
(14) Владелец элемента справочника назанчается присваиванием:
ЭлементСправочникаОбъект.Владелец = ВладлецЭлементаСправочникаСсылка; Что такое "ВладелецЭлементаСправочникаСсылка" это кроме тебя никому не известно. |
|||
17
amadeus2010
06.09.13
✎
12:17
|
(14) исходя из (10) ссылка на владельца уже и так установлена, что-то пока не совсем понятно в какое поле присвоить ссылку.
|
|||
18
Wobland
06.09.13
✎
12:17
|
(17) в (10) ты запросто можешь влететь в пустую ссылку
|
|||
19
amadeus2010
06.09.13
✎
12:20
|
у меня сейчас такой код
////////////////////////////////////////////////////// ТорговыеТочки = Справочники.кпкТорговыеТочки.СоздатьЭлемент(); ТорговыеТочки.Агент = Справочники.ФизическиеЛица.НайтиПоНаименованию(Строка.Экспедитор).Ссылка; ТорговыеТочки.Адрес = Строка.Адрес; ТорговыеТочки.Владелец = Справочники.Контрагенты.НайтиПоНаименованию(Строка.Наименование).Ссылка; ТорговыеТочки.Договор = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию("Основной договор").Ссылка; ТорговыеТочки.Категория = Справочники.кпкКатегорииКонтрагентов.НайтиПоНаименованию("покупатель").Ссылка; ТорговыеТочки.КонтактноеЛицо = Справочники.КонтактныеЛицаКонтрагентов.НайтиПоНаименованию(Строка.КонтактноеЛицо).Ссылка; ТорговыеТочки.Наименование = Справочники.Контрагенты.НайтиПоНаименованию(Строка.Наименование).Ссылка; ТорговыеТочки.НаименованиеПолное = Справочники.Контрагенты.НайтиПоНаименованию(Строка.Наименование).Ссылка; ТорговыеТочки.ОсновнойТипЦены= Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная").Ссылка; ТорговыеТочки.Регионы =Справочники.Регионы.НайтиПоНаименованию(Строка.Регион).Ссылка; ТорговыеТочки.Телефоны = Строка.Телефоны; ТорговыеТочки.ТипТочки = Справочники.кпкТипыТорговыхТочек.НайтиПоНаименованию("Marketler").Ссылка; ТТ = ТорговыеТочки.ТипыЦен.Добавить(); ТТ.ТипЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная").Ссылка; ТорговыеТочки.Записать(); ////////////////////////////////////////////////////////////\ |
|||
20
amadeus2010
06.09.13
✎
12:21
|
что нужно поменять чтобы получить ссылку на владельца справочника
|
|||
21
Wobland
06.09.13
✎
12:22
|
(20) помедитируй над (12) и (13)
|
|||
22
amadeus2010
06.09.13
✎
12:30
|
медитировать можно сколь угодно долго, не в этом суть, если есть предложения по решению вопроса,тогда с благодарностью приму варианты
|
|||
23
Wobland
06.09.13
✎
12:31
|
(22) передаю по буквам: проверяй найденность своего владельца
|
|||
24
amadeus2010
06.09.13
✎
12:42
|
т.е сделать проверку есть или нет такого контрагента в справочнике родитель?
|
|||
25
Wobland
06.09.13
✎
12:43
|
Возвращаемое значение:
Тип: СправочникСсылка.<Имя справочника>; Неопределено. Ссылка на найденный элемент справочника. Если не существует ни одного элемента с требуемым наименованием, то будет возвращена пустая ссылка. Если для справочника наименование не задано (длина = 0), то будет возвращено Неопределено. |
|||
26
amadeus2010
06.09.13
✎
12:49
|
(25) не совсем понял, можно конкретнее так сказать на примере
|
|||
27
Wobland
06.09.13
✎
13:02
|
(26) а нет примеров. что собираешься делать, если контрагент не найдётся?
|
|||
28
amadeus2010
06.09.13
✎
13:07
|
для заполнения справочника торговые точки, контрагент обязателен как владелец, можно сделать проверку что если Справочники.Контрагенты.ПустаяСсылка() Тогда
ТоргвыеТочки.Владелец= Иначе ТорговыеТочки.Владелец = Справочники.Контрагенты.НайтиПоНаименованию(Строка.Наименование).Ссылка; я думаю как-то так |
|||
29
Любопытная
06.09.13
✎
13:10
|
(28) там не пустая ссылка. Там неопределено вернется. Отсюда и ошибки
|
|||
30
Wobland
06.09.13
✎
13:10
|
(29) контрагенты без наименований?
|
|||
31
Wobland
06.09.13
✎
13:11
|
(30) не, допустимо, конечно. но я не верю
|
|||
32
amadeus2010
06.09.13
✎
14:07
|
Контрагенты не могут быть без наименований, это нонсенс, а как все таки можно решить этот вопрос. Я пока не знаю что вписать в ТоргвыеТочки.Владелец=
|
|||
33
Web00001
06.09.13
✎
14:12
|
(29) Там именно пустая ссылка :) накололся так пару раз, привык что по дефолту, возвращается неопределено. Вобланд в (25) как раз об этом и сказал.
|
|||
34
Wobland
06.09.13
✎
14:16
|
(32) это не нонсенс, я себе таких контрагентов вполне представляю
прдумай, что ты будешь делать при ненайденности сначала |
|||
35
amadeus2010
06.09.13
✎
14:24
|
///////////////////////////////////////////////////////\\
Контрагент = Справочники.Контрагенты.СоздатьЭлемент(); Если Контрагент.Наименование = Неопределено Тогда Контрагент.Наименование = Строка.Наименование; КонецЕсли; Контрагент.Записать(); ТорговыеТочки.Владелец = Контрагент.Ссылка; ///////////////////////////////////////////////////\ пока что нашел такой выход, можно если написать и так Если ТорговыеТочки.Владелец = Неопределено Тогда ТорговыеТочки.Владелец = Строка.Наименование; Иначе ТорговыеТочки.Владелец = Справочники.Контрагенты.НайтиПоНаименованию(Строка.Наименование).Ссылка; КонецЕсли; Как считаете такой вариант сработает? |
|||
36
Wobland
06.09.13
✎
14:27
|
нет
|
|||
37
amadeus2010
06.09.13
✎
14:30
|
какой из 2 вариантов неправильный? В 1-ом создается справочник,хотя я сделал неправильно, надо создать справочник с записью наименования если владелец=неопределенно и потом уже получать ссылку на владельца. А 2 вариант как?
|
|||
38
amadeus2010
06.09.13
✎
15:14
|
Я сейчас сделал так
/////////////////////////////////////////////// Если ТорговыеТочки.Владелец = Справочники.Контрагенты.ПустаяСсылка() Тогда ТорговыеТочки.Владелец = Строка.Наименование; Иначе ТорговыеТочки.Владелец = Справочники.Контрагенты.НайтиПоНаименованию(Строка.Наименование).Ссылка; КонецЕсли; ////////////////////////////////////////////////// исходя из (33) |
|||
39
Wobland
06.09.13
✎
15:33
|
(38) владелец может быть строкой?
|
|||
40
Wobland
06.09.13
✎
15:33
|
+(39) что будет, если таки не найдётся?
|
|||
41
amadeus2010
06.09.13
✎
15:51
|
По сути Контрагент в Торговой точке это ссылка на справочник контрагенты.наименование. Сейчас проверил (38) опять ругается на ошибка при вызове метода контекста (Записать)
ТорговыеТочки.Записать(); по причине: Значение поля "Владелец" не заполнено или заполнено неверно уже даже не осталось вариантов как заполнить владелец |
|||
42
amadeus2010
06.09.13
✎
16:03
|
есть варианты?
|
|||
43
hhhh
06.09.13
✎
16:04
|
(42) создать в базе нового контрагента, чтобы у него было такое наименование
|
|||
44
amadeus2010
06.09.13
✎
16:25
|
(43) мне тогда придется создать контрагента в группе имеющей уже номер и наименование плюс создать кучу всех договоров, контактов и т.п
|
|||
45
hhhh
06.09.13
✎
16:26
|
(44) ну а вы как хотели? Контрагента нет, значит надо его создать. Естественно с контактами.
|
|||
46
amadeus2010
06.09.13
✎
16:33
|
Это надо создать в поле проверки Если ТорговаяТочка.Владелец.Пустая() Тогда
Создать ................ Спр.Записать(); и в конце ТорговыеТочки.Записать();? |
|||
47
amadeus2010
06.09.13
✎
16:49
|
пришлось объединить 2 обработки загрузка контрагентов и создание торговых точек
|
|||
48
Wobland
06.09.13
✎
18:57
|
(45) можно просто материться и пропускать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |