Имя: Пароль:
1C
1С v8
форма списка
0 EtRima
 
20.01.15
12:53
исправляю самописную конфу.
справочник Магазины.
Открываем.
Устанавливаем фильт по владельцу.
Почему то ругается

{Справочник.Магазины.Форма.ФормаСписка.Форма(31)}: Значение не является значением объектного типа (ШиротаДолгота)
    Если Элемент.ТекущиеДанные.ШиротаДолгота = "" ИЛИ Элемент.ТекущиеДанные.ШиротаДолгота = Неопределено Тогда


ШиротаДолгота  - это такой реквизит интерактивный что ли. Работает таким образом, что связывается с гугл-карты и прямо в форме списка магазинов записывает сам себя при  нажатии на ячейку. вообщем, не разобралась еще. Мне надо как то эту процедуру обойти как то , не пойму как. Надо чтоб срабатывало только при нажатии на это поле, а не при отборах
Может кто подскажет.
1 anatoly
 
20.01.15
12:55
что говорит отладчик про Элемент.ТекущиеДанные перед строкой где ошибка происходит?
2 butterbean
 
20.01.15
12:56
(0) скорее всего там обработчик на событии приАктивизации... там смотри
3 Fragster
 
гуру
20.01.15
12:57
Если ЗначениеЗаполнено(ТекущиеДанные) и ...
4 Fragster
 
гуру
20.01.15
12:57
еще там может быть группа
5 EtRima
 
20.01.15
14:52
спасибо!

а подскажите плиз в какой месте расчитать эти ТекущиеДанные?

в этом самомписном модуле ФормыСписка только такие две процедуры:


Процедура ДействияФормыУстановитьНаименование(Кнопка)
         
    Владелец = ЭтаФорма.ТекущийЭлемент.ТекущаяСтрока.Владелец ;
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Магазины.Ссылка
        |ИЗ
        |    Справочник.Магазины КАК Магазины
        |ГДЕ
        |    Магазины.Владелец = &Владелец
        |    И Магазины.Наименование = &Наименование";

    Запрос.УстановитьПараметр("Владелец", Владелец);
    Запрос.УстановитьПараметр("Наименование", "");
       ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ЭлементСправочника = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
        ЭлементСправочника.Наименование = ЭлементСправочника.Адрес;
        ЭлементСправочника.Записать();
    КонецЦикла;

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

Процедура СправочникСписокПриАктивизацииЯчейки(Элемент)
    //    при перемещении по строкам списка магазинов , если нет координат, то вычисляет их и записывает    
    Если Элемент.ТекущиеДанные.ШиротаДолгота = "" ИЛИ Элемент.ТекущиеДанные.ШиротаДолгота = Неопределено Тогда
        ЭтотОбъект= Элемент.Текущаястрока.Ссылка.ПолучитьОбъект();
        ЭтотОбъект.ШиротаДолгота = ОбщийМодульКартыГугл.ПолучитьКоординатыПоАдресу(Элемент.ТекущиеДанные.Адрес);    // поиск по основному адресу
        ЭтотОбъект.Записать();
        //Если ШиротаДолготаМагазина = ""  ИЛИ ШиротаДолготаМагазина = Неопределено Тогда
        //    ШиротаДолготаМагазина = ОбщийМодульКартыГугл.ПолучитьКоординатыПоАдресу(ЭтотОбъект.АдресДляПоиска); // поиск по доп адресу
    КонецЕсли;
КонецПроцедуры
6 EtRima
 
20.01.15
15:31
ап
7 FIXXXL
 
20.01.15
15:51
(5)
в Процедура СправочникСписокПриАктивизацииЯчейки(Элемент)
в самом начале поставь точку останова и посмотри что там в ТекущиеДанные
8 EtRima
 
20.01.15
16:49
9 EtRima
 
20.01.15
16:55
10 EtRima
 
21.01.15
10:55
ап
11 EtRima
 
21.01.15
12:06
ну помогите кто нибудь
12 EtRima
 
21.01.15
16:11
мне надо сделать так, чтобы при установке отбора в режиме предприятия процедура
СправочникСписокПриАктивизацииЯчейки(Элемент)

не активировалась
а она все время лезет
13 Kondarat
 
21.01.15
16:15
(12) Если не хочешь разбираться - оберни в Попытку-Исключение
14 _KaA
 
21.01.15
16:25
(0)

Тебе не могут помочь, потому что не понятно чего ты делаешь :(

0. Чего хочется сделать "в целом" вообще не понятно.

Чего понятно:
1. Есть динамический список элементов справочника.
2. У этого справочника есть реквизит, который записывается по "какому то условию" (не понятно по какому)...
3. Далее вообще не разборчиво...

Попробуй подробно описать п.0, возможно что то посоветуют...
15 EtRima
 
21.01.15
16:34
(14)
1. Есть динамический список элементов справочника.
//// хм... может он и динамический, наверное да. Я только
//вижу что он какой интерактивный
2. Да, у этого справочника есть реквизит ШиротаДолгота, который слишком активный

Вообщем мне нужно чтобы при  установке отбора в режиме предприятия процедура СправочникСписокПриАктивизацииЯчейки(Элемент) не вылазила
Как бы ее исключать, обходить...
16 Kondarat
 
21.01.15
16:36
Попытка
Если Элемент.ТекущиеДанные.ШиротаДолгота = "" ИЛИ Элемент.ТекущиеДанные.ШиротаДолгота = Неопределено Тогда
        ЭтотОбъект= Элемент.Текущаястрока.Ссылка.ПолучитьОбъект();
        ЭтотОбъект.ШиротаДолгота = ОбщийМодульКартыГугл.ПолучитьКоординатыПоАдресу(Элемент.ТекущиеДанные.Адрес);    // поиск по основному адресу

        ЭтотОбъект.Записать();
        //Если ШиротаДолготаМагазина = ""  ИЛИ ШиротаДолготаМагазина = Неопределено Тогда

        //    ШиротаДолготаМагазина = ОбщийМодульКартыГугл.ПолучитьКоординатыПоАдресу(ЭтотОбъект.АдресДляПоиска); // поиск по доп адресу

    КонецЕсли;
Исключение
КонецПопытки;
17 EtRima
 
21.01.15
16:39
а в исключении что?
ааааааааааааааааааааааа
18 EtRima
 
21.01.15
16:40
в исключении надо чтоб было в текущем режиме что ли ..
19 Kondarat
 
21.01.15
16:43
Ничего не надо. Скопируй код как есть и вставь в свою процедуру.
20 EtRima
 
21.01.15
16:49
АААААААААААААААААААААААААААААААААААа
УУУУУУУУУРРРРРААААААААААА!!!!
пасибки!!
21 _KaA
 
21.01.15
16:54
Может еще и вот так будет работать...


ТекущиеДанныеСтроки = Элемент.ТекущиеДанные;

Если ТекущиеДанныеСтроки <> Неопределено Тогда

        ЭтотОбъект= ТекущиеДанныеСтроки.Ссылка.ПолучитьОбъект();
        ЭтотОбъект.ШиротаДолгота = ОбщийМодульКартыГугл.ПолучитьКоординатыПоАдресу(Элемент.ТекущиеДанные.Адрес);    // поиск по основному адресу


        ЭтотОбъект.Записать();
        

КонецЕсли;
22 _KaA
 
21.01.15
16:54
Только все равно не фига не понятно, чего делаешь :)
23 EtRima
 
22.01.15
15:17
(22) пасиб!!
Закон Брукера: Даже маленькая практика стоит большой теории.