Имя: Пароль:
1C
 
Никак не пойму где ошибка: Поле объекта не обнаружено
0 Gray776
 
18.03.16
08:20
Код очень простой:

Процедура ПроверитьСоздатьИспользуемыеСвойства(Таблица)
        Сообщить("1 -ПроверитьСоздатьИспользуемыеСвойства " + Таблица[0].Свойство.Наименование);
    
    Таблица.Свернуть("Свойство");
        Сообщить("2 -ПроверитьСоздатьИспользуемыеСвойства " + Таблица[0].Свойство.Наименование);
    
    Если Таблица.Свойство.Найти("бла-бла-бла") = Неопределено Тогда
        
        Сообщить ("бла бла бла бла бла");
        СоздатьСвойство("бла-бла-бла")
    КонецЕсли;
        Сообщить("3 -ПроверитьСоздатьИспользуемыеСвойства " + Таблица[0].Свойство.Наименование);


КонецПроцедуры


вот Сообщить("3... уже не видно вместо этого сообщение об ошибке:
Поле объекта не обнаружено (Свойство)
Причем все работало именно в таком виде... правда условие срабатывало всегда...
1 Ёпрст
 
18.03.16
08:22
где то переопределяешь таблица в коде
2 Ёпрст
 
18.03.16
08:23
или таблица пустая
3 Записьдампа
 
18.03.16
08:23
Не могло оно в таком виде работать, не ври.
Вот почему ты внизу пишешь Таблица[0].Свойство, а вверху - Таблица.Свойство ?
4 Gray776
 
18.03.16
08:23
(2) первые два сообщение вполне себе сообщают наименование свойства
5 Ёпрст
 
18.03.16
08:25
(3) это хде ?
6 Gray776
 
18.03.16
08:25
(3) работало и плодило дубликаты свойств тоесть условие срабатывало даже если подряд два раза запустить только создалось свойство и снова точно такое же создавалось
7 Ёпрст
 
18.03.16
08:25
(4) нам отсюда не видно, что в СоздатьСвойство("бла-бла-бла")
8 Записьдампа
 
18.03.16
08:26
(5) это в строке если таблица.свойство
9 Gray776
 
18.03.16
08:26
(7) Сча попробую показать :)))
10 Ёпрст
 
18.03.16
08:27
(8) а ну да, увидел )
11 Ёпрст
 
18.03.16
08:27
(9) см (3)
12 Gray776
 
18.03.16
08:27
(8) (10) Ниче что там НАЙТИ написано?
13 Записьдампа
 
18.03.16
08:28
(12) найти это метод чего?
14 Ёпрст
 
18.03.16
08:28
(12) ладно, проехали, заморочили голову
Покажи, что в СоздатьСвойство

Да и , жуколов что кажет ?
15 Gray776
 
18.03.16
08:29
(12) хотя после того как свернул в таблице всерна 1 колонка и осталась с названием "Свойство"
16 Ёпрст
 
18.03.16
08:30
И это, Свойство какого типа ?
17 Gray776
 
18.03.16
08:30
Процедура СоздатьСвойство(НаименованиеНовогоСвойства)
    
    //НазначениеНовогоСвойства = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура;
    
    НовСвойство = ПланыВидовХарактеристик.СвойстваОбъектов.СоздатьЭлемент();
    НовСвойство.НазначениеСвойства = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура;
    НовСвойство.Наименование = СокрЛП(НаименованиеНовогоСвойства);
    НовСвойство.Записать();
    
КонецПроцедуры
18 Ёпрст
 
18.03.16
08:33
(17) см (13)
19 Gray776
 
18.03.16
08:40
(13) (18) блииин точно работало без этого да...
А вот вопрос почему не находило даже созданное свойство и создавало снова?
20 hhhh
 
18.03.16
08:46
(19) а что такое Таблица.Свойство?? Созданное свойство ты где туда записываешь?
21 Gray776
 
18.03.16
08:47
Тоесть вот так:

Процедура ПроверитьСоздатьИспользуемыеСвойства(Таблица)
        Сообщить("1 -ПроверитьСоздатьИспользуемыеСвойства " + Таблица[0].Свойство.Наименование);
    
    Таблица.Свернуть("Свойство");
        Сообщить("2 -ПроверитьСоздатьИспользуемыеСвойства " + Таблица[0].Свойство.Наименование);
    
    Если Таблица.Найти("бла-бла-бла") = Неопределено Тогда
        
        Сообщить ("бла бла бла бла бла");
        СоздатьСвойство("бла-бла-бла")
    КонецЕсли;
        Сообщить("3 -ПроверитьСоздатьИспользуемыеСвойства " + Таблица[0].Свойство.Наименование);


КонецПроцедуры

Работает но создает каждый раз новое свойство то есть не находит
22 Gray776
 
18.03.16
08:49
(20) Таблица содержит три колонки "Номенклатура","Свойство","Значение".
Заполняется запросом из трех таблиц...
23 Gray776
 
18.03.16
08:50
Блин наверно намудрил проще поискать свойство в регистре наверно...
24 Gray776
 
18.03.16
08:51
(22) (23) Ну то есть эта таблица не для проверки создается просто раз она уже есть сунул в проверку.
25 Записьдампа
 
18.03.16
08:53
(21) А после создания свойства его в табличку для поиска кто добавлять будет? =]
26 Dmitriy_76
 
18.03.16
08:56
колонка "Свойство" твоей таблицы имеет тип ПВХ...
а в метод найти передапешь строку..вот и не находит
27 Gray776
 
18.03.16
08:57
(25) Таблица перед тем как попасть в проверку создается запросом и ПланыВидовХарактеристик в этом запросе учавствуют...
28 Gray776
 
18.03.16
08:59
(26) Хммм.. Значит либо искать Элемент ПВХ либо Получить из таблица наименование и сравнивать со строкой так?
29 Dmitriy_76
 
18.03.16
09:01
(28) угу..но правильнее запросом
30 Gray776
 
18.03.16
09:02
(29) в смысле? Не готовую табличку брать а получить новую из ПВХ и с ней работать??
31 Dmitriy_76
 
18.03.16
09:04
(30) в смысле вместо "найти" использовать запрос
32 Gray776
 
18.03.16
09:08
(31) То есть проверять наличие напрямую в ПВХ...
Основная теорема систематики: Новые системы плодят новые проблемы.