Имя: Пароль:
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) пасиб!!
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс