Имя: Пароль:
1C
 
не устанавливается ссылка
,
0 LivingStar
 
23.07.15
08:17
При загрузке эксель листа в реквизит табличной части возвращается ссылка, но там остается строка. Реквизит составного типа справочник и строка. В отладчике строка проходит, справа от равно ссылка на справочник слева строка.
1 Ёпрст
 
23.07.15
08:20
Продолжайте наблюдение
2 LivingStar
 
23.07.15
08:33
так же не должно быть, как исправить?
3 vyaz
 
23.07.15
08:35
сделать слева от равно ссылка на справочник, а справа строка.
4 LivingStar
 
23.07.15
08:39
Новаястрока.УпаковкаКлиента = УпаковкаКлиента;

Новаястрока.УпаковкаКлиента - строка, справочник

УпаковкаКлиента; - справочник

после присвоения остается строкой
5 vyaz
 
23.07.15
08:41
значит УпаковкаКлиента строка
6 1Сергей
 
23.07.15
08:41
попробуй Новаястрока.УпаковкаКлиента = УпаковкаКлиента.Ссылка;
7 LivingStar
 
23.07.15
08:45
(5) я же смотрю в отладчике, это справочник ссылка
8 LivingStar
 
23.07.15
08:50
(6) бесполезно, не реагирует вообще на присвоение, остается строка
9 1Сергей
 
23.07.15
08:55
глянь в сторону ПривестиЗначение
10 Serg_1960
 
23.07.15
08:56
(0) Наводящий вопрос: строка, которое содержит...?
Подсказки: наименование, GUID, иное(какое?)...
11 LivingStar
 
23.07.15
08:58
(10) не понял вас
12 1Сергей
 
23.07.15
09:01
(11) что заносится а реквизит при выполнении кода
13 LivingStar
 
23.07.15
09:03
(9) как им пользоваться? в синтакс помощнике есть пример, просто не пойму этого всего
14 Serg_1960
 
23.07.15
09:06
(11) Не тормози. Озвучь содержимое строки.
15 LivingStar
 
23.07.15
09:06
(12) строковое значение, и до присвоения там строка "", этот реквизит составного типа, справочник и строка, можно выбрать элемент справочника в режиме предприятия, но порой забивается и ничего не выбрать, только строковые значения в раскрывающемся списке, табличная часть загружается с эксель
16 LivingStar
 
23.07.15
09:07
(14) Шт (1)
17 1Сергей
 
23.07.15
09:08
(15) т.е. Наименование элемента справочника?
18 Serg_1960
 
23.07.15
09:09
(16) Чудесно :) Теперь озвучь конфигурацию.
19 LivingStar
 
23.07.15
09:11
(17) да
(18) УТ 11

вижу что все работает как то само по себе, база что ли сломана
20 LivingStar
 
23.07.15
09:12
странно ищется шт, а находится шт (1), а этого элемента вообще нет
21 LivingStar
 
23.07.15
09:13
(20) а не вообще есть
22 Serg_1960
 
23.07.15
09:19
Если у тебя есть наименование, то ищи ссылку в справочнике Упаковки по наименованию.

(20) Вероятно, из-за твоего кривого алгоритма в справочнике уже куча лишних записей появилась. Посмотри, лишнее - удали.
23 LivingStar
 
23.07.15
09:21
так так и делается и она находится только присваивается как строка, вот в чем дело а нужен элемент справочника, кривой код этот не мой
24 1Сергей
 
23.07.15
09:22
а если предварительно засунуть туда пустую ссылку?
25 LivingStar
 
23.07.15
09:23
(24) пробовал не помогает, не воспринимает вообще
26 1Сергей
 
23.07.15
09:25
(25) Если заносишь пустую ссылку, он присваивает пустую строку?
27 hhhh
 
23.07.15
09:25
шт (1) - это справочник вообще-то, всё правильно у вас работает.
28 LivingStar
 
23.07.15
09:27
(27) нифига сибе правильно!!!!! в табличную часть загружаются строки, хотя по коду я сделал что загружаться должны элементы справочника, присваивается справочник а после присвоения там строка, как это исправить?
29 dk
 
23.07.15
09:28
про сохранить уже было?
30 LivingStar
 
23.07.15
09:29
(29) что именно сохранить?
31 Serg_1960
 
23.07.15
09:29
(27) Я уже давно под столом валяюсь :)

LivingStar ищет по наименованию, находит, присваивает... Смотрит на представление ссылки и говорит: "Пля, опять строка!"

:)
32 1Сергей
 
23.07.15
09:30
(31) он отладчиком смотрел. строка
33 dk
 
23.07.15
09:30
а в тип значения посмотреть
34 LivingStar
 
23.07.15
09:31
тип после присвоения строка остается

похоже придется убирать строку из составного типа, но тогда пропадут остальные все значения которые строки, и переделать не получится возможно так как не воспринимается справочник вообще
35 hhhh
 
23.07.15
09:31
(32) сомневаюсь я однако, что он смотрел.
36 Serg_1960
 
23.07.15
09:33
(32) Вай, уже и пофантазировать что-ли нельзя? :(
37 ДенисЧ
 
23.07.15
09:34
картинка из отладчика е?
38 Serg_1960
 
23.07.15
09:35
Если у тебя реквизит комплексного типа, то что присвоил - то и сохранишь.

LivingStar ссылку, ссылку туда надо пихать, а не наименование.

Озвучь алгоритм поиска ссылки по наименованию и присвоение в реквизит табличной части
39 LivingStar
 
23.07.15
09:38
(38) ссылка туда присваивается!!!!
40 LivingStar
 
23.07.15
09:38
(38) не в этом дело, все правильно находится, только присваивается как строка
41 ДенисЧ
 
23.07.15
09:38
(39) кто же _тебе_ - то поверит?
Картинки давай...
42 Serg_1960
 
23.07.15
09:39
Намекаешь на неявное преобразование?
43 LivingStar
 
23.07.15
09:40
44 hhhh
 
23.07.15
09:40
(39) кусок кода давай, где присваиваешь.
45 LivingStar
 
23.07.15
09:41
на скрине УпаковкаКлиента уже ссылка, просто она присваивается как строка, по разному пробую, вижу что просто не присваивается как ссылка на элемент справочника и все
46 hhhh
 
23.07.15
09:41
(43) ну и? ссылка не присваивается.
47 hhhh
 
23.07.15
09:42
(45) сначала присваиваешь ссылку, на следующей строчке ссылку стираешь, присваиваешь строку.
48 LivingStar
 
23.07.15
09:42
(46) нет, в отладчике после присвоения она присваивается как строка
49 LivingStar
 
23.07.15
09:43
(47) слдедующей строкой тоже ссылку присваиваю, это я уже пробовал всяко,  не присваивается, вот так как говорю все, ошибок нет никаких
50 Serg_1960
 
23.07.15
09:44
Озвучь алгоритм ВернутьУпаковкуНаСервере().
51 LivingStar
 
23.07.15
09:45
(50 да зачем он нужен? дело не в нем)
52 hhhh
 
23.07.15
09:45
(51) так он же строку возвращает.
53 LivingStar
 
23.07.15
09:47
(52) да с какой стати то? я же говорю на скрине УпаковкаКлиента уже ссылка, просто она присваивается как строка

ВернутьУпаковкуНаСервере() можно вообще не рассматривать
54 Serg_1960
 
23.07.15
09:48
А ты проверь. В табло засунь вызов этой функции и посмотри тип результата.
55 LivingStar
 
23.07.15
09:49
(54) она возвратила элемент справочника, я же говорю она там так как я пробую всяко разно, дело в том что присваивается справочник и становится ссылкой
56 hhhh
 
23.07.15
09:49
(53) на скрине УпаковкаКлиента равна результату функции ВернутьУпаковкуНаСервере(). Вы на скрин сами гляньте.
57 hhhh
 
23.07.15
09:50
(55) значит не тот справочник возвратила.
58 LivingStar
 
23.07.15
09:50
(56) вы поймите что это посторный вызов, он тоже не работает, суть проблемы я озвучил несколько раз уже
59 1Сергей
 
23.07.15
09:50
(55) может, у тебя несколько разных справочников упаковок? проверь типы внимательно
60 LivingStar
 
23.07.15
09:50
(57) я же проверял все тот
61 LivingStar
 
23.07.15
09:50
(59) все проверенно, справочник тот
62 Ёпрст
 
23.07.15
09:51
П...ц
63 Serg_1960
 
23.07.15
09:52
(61) Справочник.УпаковкиНоменклатурыКлиентов? Ну, ну...
64 Ёпрст
 
23.07.15
09:52
ВернутьУпаковкуНаСервере() возвращает строку, ху..ли тут думать то ?
Тут трясти надо сильнее
65 Ёпрст
 
23.07.15
09:54
+ огласи тип составного реквизита: строка и справочник.ссылка какой ?
66 Serg_1960
 
23.07.15
09:55
Предположим на мгновение, что автору нужна ссылка на справочник УпаковкиНоменклатуры, например, а он присваивает ссылку на справочник УпаковкиНоменклатурыКлиентов...
67 LivingStar
 
23.07.15
09:56
(66) нет
(65) СправочникСсылка.УпаковкиНоменклатурыКлиентов, строка
68 LivingStar
 
23.07.15
10:00
избавляться нужно от составного типа, больше видимо нет вариантов
69 Serg_1960
 
23.07.15
10:01
Ха-ха три раза :)

"УпаковкаНоменклатурыКлиента" (...ов"!)
70 yavasya
 
23.07.15
10:01
(68) у тебя есть ссылка , судя по скрину. Что тебе ещё надо?
71 Serg_1960
 
23.07.15
10:03
(70) Это хвост от типового кода, а автор хочет получить ссылку по другому алгоритму.
72 Serg_1960
 
23.07.15
10:05
LivingStar, а как сочетаются "УпаковкаНоменклатурыКлиента" и "УпаковкиНоменклатурыКлиентов"? Ты всё-таки озвучил бы  алгоритм этой функции.
73 yavasya
 
23.07.15
10:08
(68) покопрокодь, запрос в цикле по наименованию найти единицу измерения
74 Serg_1960
 
23.07.15
10:18
(0) Вопрос на миллион: а использовать упаковки разрешено?
75 Serg_1960
 
23.07.15
10:20
Автор завис, временно недоступен, в процессе перезагрузки :):)
[ушёл с ветки]
76 Бледно Золотистый
 
23.07.15
10:22
Да что тут гадать? ТС нам где-то лапшу вешает. Тут одно из 2-х: либо реквизит не составной(строка), либо присваивает значение левого типа(не СправочникСсылка.УпаковкиНоменклатурыКлиентов).
77 Бледно Золотистый
 
23.07.15
10:25
(76) Не, по второму пункту тип значения все же - СправочникСсылка.УпаковкиНоменклатурыКлиентов, судя по скрину, значит тип реквизита другой.
78 LivingStar
 
23.07.15
12:29
(74) когда элемента нет он создается и присваивается реквизиту, а когда существующий, он присваивается как строка
79 1Сергей
 
23.07.15
12:30
(78) ответь на (26)
80 LivingStar
 
23.07.15
12:30
(76) реквизит составной
строки и этого справочника, все верно
81 LivingStar
 
23.07.15
12:31
там стоит по умолчанию "", когда присваиваешь пустую ссылку, ничего не меняется и тип остается строка
82 VikingKosmo
 
23.07.15
12:37
Будь мужиком, сначала сунь в этот реквизит Неопределено, а потом свою ссылку.
83 LivingStar
 
23.07.15
12:40
(82) думаете поможет????
84 VikingKosmo
 
23.07.15
12:40
(83) а ты проверь
85 bolobol
 
23.07.15
13:52
Видать... "Компилируется!"
86 VikingKosmo
 
23.07.15
14:07
Или таки получилось и ТС от радости в обмороке валяется
87 LivingStar
 
23.07.15
14:12
строка так и остается
88 LivingStar
 
23.07.15
14:13
нужно как то иначе или от строки от этой избавляться, от составного реквизита
89 bolobol
 
23.07.15
14:32
Проверить тогда, чудес ведь не бывает:
Новаястрока.УпаковкаКлиента.Метаданные.Тип.СодержитТип(ТипЗнч(УпаковкаКлиента))
90 LivingStar
 
23.07.15
14:38
ругается значение не является значением объектного типа метаданные
91 bolobol
 
23.07.15
14:41
Приехали... УФ штолле?
92 LivingStar
 
23.07.15
14:45
конечно
93 Ёпрст
 
23.07.15
14:49
(92) и...значение в тч где меняешь ?
94 LivingStar
 
23.07.15
14:50
(93) в обработке загрузки
95 Ёпрст
 
23.07.15
14:53
на клиенте поди, да ?
96 chelentano
 
23.07.15
14:53
(94) ты уверен, что у тебя там составной тип, а не просто тип "Строка"?
97 LivingStar
 
23.07.15
14:59
(96) уверен
98 LivingStar
 
23.07.15
15:00
(96) когда новые загружаются элементы создаются они же нормально встают, и можно в ручную ввести, выбрав упаковки, не строку
99 Бледно Золотистый
 
23.07.15
15:01
(97) Кинь обработку что ли, а то уже 8 часов выясняем, ни на шаг не приблизились к решению.
100 bolobol
 
23.07.15
15:05
Тогда сие "Новаястрока.УпаковкаКлиента.Метаданные.Тип.СодержитТип(ТипЗнч(УпаковкаКлиента))" надо, вообще-то, на сервере производить. Тут, по-ходу, про 1С надо с 37-ого рассказывать... С перфокарт и ламп начиная. Может, "позовите программиста" покатит?
101 LivingStar
 
23.07.15
15:09
(100) я тестирую в тестовой файловой базе
102 LivingStar
 
23.07.15
15:10
(99) куда кинуть то?
103 LivingStar
 
23.07.15
16:57
может как то нужно установить тип у реквизита?
104 Serg_1960
 
23.07.15
17:59
(102) На почту ему кинь. Адрес почты - в его личной карточке.
105 LivingStar
 
24.07.15
09:27
(104) Как раз там нет адреса, да и зачем высылать обработку? Суть проблемы ясна. Обработка не моя, по этому там не структурированный кривой код, в который я особо и не вникал. Сделал свои необходимые вставки и все.

Под итожу: в реквизит табличной части устанавливается элемент справочника при загрузке если он создается новый. Если элемент справочника есть и возвращается ссылка на него, то его значение встает в реквизит как строка. Видимо так работает составной тип данных реквизита.
106 LivingStar
 
24.07.15
09:43
как можно установить тип справочника?
107 LivingStar
 
24.07.15
10:09
никто не знает?
108 LivingStar
 
24.07.15
10:12
короче написал обработку,

&НаСервере
Процедура ВыполнитьНаСервере(Док)
    ДокОбъект = Док.ПолучитьОбъект();
    Для Каждого ТекущаяСтрока Из ДокОбъект.Товары Цикл
        Если ТипЗнч(ТекущаяСтрока.УпаковкаКлиента) = Тип("Строка") Тогда
            ТекущаяСтрока.УпаковкаКлиента = Справочники.УпаковкиНоменклатурыКлиентов.НайтиПоНаименованию(ТекущаяСтрока.УпаковкаКлиента,Истина,,ТекущаяСтрока.НоменклатураКлиента);
        КонецЕсли;
    КонецЦикла;
    ДокОбъект.Записать();
КонецПроцедуры

&НаКлиенте
Процедура ПересозданиеУпаковки(Команда)
    ВыполнитьНаСервере(Объект.Док);
КонецПроцедуры


смотрю в отлидчике упаковка клиента встает элементом справочника
109 Timon1405
 
24.07.15
10:15
скриншот формы в конфигураторе на этом реквизите в этой ТЧ в студию. поди стоит группировка с видом в ячейке и поэтому выводится строкой
110 LivingStar
 
24.07.15
10:24
(109) скриншот с открытыми свойствами в смысле?
111 Timon1405
 
24.07.15
10:26
(110)"Док.ФормаДокумента"
112 LivingStar
 
24.07.15
10:32
113 sdaf
 
24.07.15
10:58
а попробуй на копии установи свойство реквизита только твой справочник, что-то мне подсказывает, что и в этом случае твоя ссылка не присвоится
114 LivingStar
 
24.07.15
12:06
(113) так я вот и хочу сейчас обработкой переделать все со строки на элемент справочника, что бы потом убрать строку из составного реквизита

А почему так возможно, если как вы говорите правда?
115 LivingStar
 
25.07.15
10:53
(108) это не помогло, нужно с табличной части формы брать, так как не везде в табличной части объекта есть значения
116 Andrewww123
 
27.07.15
05:32
Жесть :) Зачётный тролль