Имя: Пароль:
1C
 
Связь наборов данных в СКД
0 elian_hunter
 
24.09.15
00:24
Второй раз за неделю сталкиваюсь и второй раз не знаю - что делать?!
Связь наборов данных в срабатывает только тогда, когда строка имеет длину равную объявленному типу. То есть если тип Строка(9) и значение содержит 9 символов, то связь срабатывает, а если в значении символов меньше, то не срабатывает!

Так и не понимаю, как из этой ситуации выходить?

Первый набор данных - это запрос к ОСВ с субконто Номенклатура.
Второй набор данных - это объект, передающийся из табличной части.

Ну как так то?
Почему не могу связать таблицы по коду?
В номенклатуре код это строка(9).
В табличной части - то же.
Если подбираю код длинной 9 и в табличной части тоже строка длиной 9, то все связывается на отлично!
А если код короче 9, то ничего не связывается...
1 jsmith82
 
24.09.15
00:41
И не должно. А зачем по коду, а не по номенклатуре. Сумничай, подбери длину в колонке.
2 elian_hunter
 
24.09.15
08:48
а как должно тогда? нет у меня номенклатуры, есть код, мне нужно связать наборы данных по коду...
3 ДенисЧ
 
24.09.15
08:53
лучше в объекте сразу приведи к нужной длине.
А потом сиди и слушай "Валенки"
4 jsmith82
 
24.09.15
08:54
>>объект, передающийся из табличной части
приводи длину в объекте
5 elian_hunter
 
24.09.15
08:58
(3) А можно чуть подробнее?
6 elian_hunter
 
24.09.15
08:58
(4) ..прям капельку подробнее...
7 jsmith82
 
24.09.15
09:00
(6) Ну, создаёшь колонку с типом данных фиксированная строка. Туда выгружаешь из своей ТЧ, а затем в СКД.
Просто перед выгрузкой в ТЗ, обоснуй тип в колонке ТЗ
8 elian_hunter
 
24.09.15
09:14
(7) "Туда выгружаешь из своей ТЧ" - каким именно способом выгружать?
9 jsmith82
 
24.09.15
09:16
(8) ТЧ.Выгрузить()
10 elian_hunter
 
24.09.15
09:19
(9) сначала выгрузить, а потом обосновывать типы???
11 jsmith82
 
24.09.15
09:19
(10) Наоборот
12 jsmith82
 
24.09.15
09:20
ТЗ = Новый ТЗ();
ТЗ.Колонки.Добавить...

ТЗ.Загрузить(ТЧ.Выгрузить()):
13 aleks_default
 
24.09.15
09:23
(0) проще написать в глобальном общем модуле фкнкцию по удалению пробелов и вставить ее в выражение соединения наборов?
14 elian_hunter
 
24.09.15
09:23
(12) Ты прикалываешься? У таблицы значений нет метода "Загрузить".
15 jsmith82
 
24.09.15
09:26
ТЗ.Загрузить = ТЧ.Выгрузить()
16 jsmith82
 
24.09.15
09:26
Нервный ты. Машиноопечатка.
17 elian_hunter
 
24.09.15
09:27
(15) Тогда выгружаемая просто заменит созданную таблицу с предварительно обоснованными типами...
18 jsmith82
 
24.09.15
09:28
(17) О, шаришь.
Ну вопрос-таки тривиальный. За тебя думать что-ли..
Создай одну,  выгрузи в другую, скопируй значения
19 jsmith82
 
24.09.15
09:28
Молодёжь..
20 elian_hunter
 
24.09.15
09:28
(18) да я уж попробовал разными методами... не помогает...
21 jsmith82
 
24.09.15
09:29
Ну как так-то
22 jsmith82
 
24.09.15
09:29
Не получается. Такого быть не может в принципе. Вопрос решаемый
23 elian_hunter
 
24.09.15
09:30
(22) Верю, что решаемый... осталось решить! Есть идеи?
24 elian_hunter
 
24.09.15
09:34
(13) Может быть и проще... если знать как? У меня постоянно говорит о синтаксической ошибке... На любую функцию глобального модуля, глобального контекста... как её туда правильно вставить эту функцию?
25 elian_hunter
 
24.09.15
09:36
Может быть у кого есть РАБОЧИЙ ПРИМЕР??
26 elian_hunter
 
24.09.15
09:40
Я кажется догадался - как надо сделать...
Надо предварительно заполнить таблицу значений номенклатурами... То есть по кодам найти номенклатуры сначала. А связь по ссылочным типам должна работать без проблем...
27 jsmith82
 
24.09.15
09:41
(26) Уот. Молодец
28 elian_hunter
 
24.09.15
09:48
(27) всё-равно как-то обидно... почему же по строкам не работает как положено...
29 Jokero
 
24.09.15
09:49
Happy end();
(20) Можно было выгрузить, создать дополнительную колонку с фикс. типом и туда скопировать
30 elian_hunter
 
24.09.15
09:54
(29) Перепробовал все варианты... ни один не сработал...