Имя: Пароль:
1C
1С v8
Глюк в КД
0 МаксимБел
 
20.03.13
10:04
Делаю выгрузку из 1С77 в 1С82. Переношу справочник. В 1С82 в справочнике создал реквизит УниКод (Строка(Неогр.)). Данные в него выгружаю через обработчик ПКС "ПередВыгрузкой" следующим образом:
Значение = "ОсновныеСредства" + "^" + Источник.Код + "^" + Источник.Наименование;
Вылетает ошибка:
Ошибка исполнения обработчика: ПКС_ПередВыгрузкой_ОсновныеСредства_УниКод_Реквизит19
- Значение не представляет агрегатный объект (Код)
Делал предварительно Сообщить(Источник.Код) - ничего не вывело, ошибка та же.
До того как создал реквизит УниКод, справочник выгружался нормально. Такой же реквизит, тем же образом создан и выгружается в других справочниках - там всё ОК.
Код и Наименование имеют тип Строка.
Кто-нибудь сталкивался с подобным? В чем проблема?
1 ZanderZ
 
20.03.13
10:06
сделай Сообщить(""+ТипЗнч(Источник)+"  "+ЗначениеЗаполнено(Источник))
2 МаксимБел
 
20.03.13
10:11
(1) В 1С77 при выгрузке ошибка возникает. Но щас попробую там аналогичный код прописать.
3 Alex S D
 
20.03.13
10:15
ниче не понял, давай скриншот
4 МаксимБел
 
20.03.13
10:17
(1) Сделал так: Сообщить("" + ТипЗначения(Источник) + "_" + ПустоеЗначение(Источник));
Выводит: 1_1
Т.е.: числовой тип данных_пустое значение = Истина.
Ошибка та же.
При том, при всем, что перед этим тем же макаром, без ошибок, прошла выгрузка в реквизит Комментарий:
Значение = Источник.Наименование + " " + Источник.Код;
5 МаксимБел
 
20.03.13
10:18
(3) скриншот чего?
6 cw014
 
20.03.13
10:18
Ну тут без полного просмотра правила не разобраться. А так - мало данных. Но по сути - глюка такого в КД нет, ошибка у тебя в правилах
7 МаксимБел
 
20.03.13
10:24
8 Alex S D
 
20.03.13
10:33
скинь правила, гляну пока время есть
9 МаксимБел
 
20.03.13
10:38
10 MrStomak
 
20.03.13
10:46
варианта 2:
1)назначен неправильный обработчик ПКС для свойства "Уникод"
2)в качестве значения для ПКС передаётся не объектный тип данных.
11 Alex S D
 
20.03.13
10:48
ты будешь смеяться, но у источника нет свойства "код"
12 Naumov
 
20.03.13
10:53
Что является Источником для данного ПКО?
13 Alex S D
 
20.03.13
10:55
а не. туплю, тут другое...
14 МаксимБел
 
20.03.13
10:56
(10)
1) Что значит "неправильный обработчик"? Там ничего сверхъестественного нету: в значение пишется склейка из трёх строковых значений. Точно такой же код указан в обработчике предыдущего ПКС - никаких проблем не вызывает.
2) У меня УниКод типа Строка(Неогр.), и в значение пишется строка.

(11) Как это нет. Есть. В ПКС, в источнике, выбирается мышкой на раз. Да и не может его не быть. Это реквизит любого справочника по умолчанию.
15 Naumov
 
20.03.13
10:57
(13)Да нет. ответ твой верен, только не дает направления автору :)
16 МаксимБел
 
20.03.13
10:57
(12) Источник - справочник "ОсновныеСредства".
17 Naumov
 
20.03.13
10:58
(14) Добавь сообщение перед обращением к Источник.Код
Сообщить(Источник);
Сообщить(ТипЗНЧ(источник)) (а не помню как в 77 тип вывести)
18 МаксимБел
 
20.03.13
11:02
(14)
Добавил.
Источник = 0
ТипЗначения = 1
19 Naumov
 
20.03.13
11:04
(18) Ну и откуда у тебя берется такой тип?
20 Alex S D
 
20.03.13
11:05
смотри реквизит типОС)
21 Alex S D
 
20.03.13
11:05
там источник = 0
22 Naumov
 
20.03.13
11:06
В общем ставь проверку на тип перед обращением к полям объекта.
23 Naumov
 
20.03.13
11:07
(21) Оу. А это Гениально!
24 МаксимБел
 
20.03.13
11:07
(18) - понятия не имею.
(20) (21)
Отключаю это ПКС - всё выгружается на УРА. При этом тип источника тоже 0.
25 Alex S D
 
20.03.13
11:10
(24) а сам источник чему равен?
26 МаксимБел
 
20.03.13
11:12
Повторюсь - в ПКС ничего сверхъестественного. Значение задается через обработчик:
Значение = "ОсновныеСредства" + "^" + Источник.Код + "^" + Источник.Наименование;
Приемник - реквизит конфы 1С82 "УниКод" типа Строка (неогр.)
Всё.
Перед этим ПКС всё точно так же выгружалось в Комментарий - без проблем.
(24)
Уже писал - нулю равен в обоих случаях (и при ошибке, и когда нормально выгружается после отключения этого глючного ПКС)
27 Alex S D
 
20.03.13
11:14
ну сейчас выгружается же? зачем тебе этот тип? в чем вопрос?
28 MrStomak
 
20.03.13
11:15
(26) Что по-твоему глюк? Что система не может вычислить свойство "Код" у числа 0?
29 MrStomak
 
20.03.13
11:16
(14) Код реквизит не любого справочника, а того, у которого длина кода > 0. Во всяком случае атк в 8ке.
30 Naumov
 
20.03.13
11:16
(26) Ты в другом ПКС Источник переопределил. тебе ж написали уже. Исправь там ошибку.
31 МаксимБел
 
20.03.13
11:21
(30) Есть! Спасибо. Действительно переопределен источник был. Хотя не понятно почему при этом комментарий с тем же кодом обработчика конвертился нормально. Ну да бог с ним.
Всем спасибо!
32 MrStomak
 
20.03.13
11:26
(31) Потому что порядок вызова ПКС видимо такой.
33 МаксимБел
 
20.03.13
11:40
(32) Может быть.