Имя: Пароль:
1C
1C 7.7
v7: не получается создать фрейм (Yoksel)
0 Rokford
 
17.04.14
14:37
Всем добрый день. Хочу перевести готовый отчет на yoksel (нужно группировать строки). Посмотрел множество примеров - вроде все понятно.
Такой код работает, показывает таблицу Yoksel'а.

    ВремДок = СоздатьОбъект("ТабличныйДокумент");
    ВремДок.ЗагрузитьИзТаблицы(Таб);
    ВремДок.Показать("Учет наличных МПЗ");

Но чтобы увидеть структуру пытаюсь создать фрейм с таким вот кодом:

    ВремДок = СоздатьОбъект("ТабличныйДокумент");
    ВремДок.ЗагрузитьИзТаблицы(Таб);

    гФрейм = ВремДок.Показать("Учет наличных МПЗ");
    гФрейм.ОтображатьСтруктуру(1);
    гФрейм.ОтображатьКнопкиУровней(1);

Выдает ошибку: Обращение к процедуре объекта как к функции (Показать)
1 КонецЦикла
 
17.04.14
14:47
Правильно, показать же не возвращает значений. А что говорят примеры?
2 Ёпрст
 
17.04.14
14:49
какой версии йоксель то хоть ?
3 Ёпрст
 
17.04.14
14:50
(1) возвращает, фрейм возвращает
4 Rokford
 
17.04.14
14:50
(2) 01.01.27
5 КонецЦикла
 
17.04.14
14:51
(3) Куясе :)
6 Ёпрст
 
17.04.14
14:53
1.1.27.0 Эта версия у тебя ?
http://yoksel.net.ru/files/release/yoksel_hotfix_2012_04_20.rar
7 Rokford
 
17.04.14
14:57
(6) Да. Скачивал вчера. В конфигурации в одном отчете используется давно (там старая  0, 1, 0, 0 для сохранения длинных строк в ячейках). Тоже думал, что старая версия подгружается - нет. Сейчас загружаю в коде отчета, вывожу (для самоуспокоения) № версии
8 Ёпрст
 
17.04.14
15:04
посмотрел в демке йокселя - усё должно работать
9 Ёпрст
 
17.04.14
15:04
только, она не сразу видна будет, нужно обновлять фрейм..либо фкл/выкл панель струментов..
10 Ёпрст
 
17.04.14
15:05
а так, фрейм один хрен не доработан, проще элемент управления на форме юзать - там больше событий
11 Rokford
 
17.04.14
15:05
Вот и я так же. Смотрю, все понимаю. Пролазил темы на инфостарте, на мисте, файл синтакс помощника для Yoksel, демо конфигурацию. Почему не работает - не понимаю :(
12 Rokford
 
17.04.14
15:07
Вот про панель инструментов тоже видел код, не совсем понятно, как она может влиять. Думал раз она мне не нужна, то и выкинул этот кусок кода.
Можно про панель поподробнее?
13 Ёпрст
 
17.04.14
15:24
я б забил на фрейм. В своё время баловался, не подошел - нет многих событий.
14 Rokford
 
17.04.14
15:31
Обнаружил интересную деталь. Набросал такой вот код
//*******************************************
Процедура Сформировать()
    
    ЗагрузитьВнешнююКомпоненту ("SpreadSheet.dll");
    Йоксель = СоздатьОбъект ("Йоксель");
    Сообщить (Йоксель.Версия);
    
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    ВремДок = СоздатьОбъект("ТабличныйДокумент");
    ВремДок.ЗагрузитьИзТаблицы(Таб);
                      
    ВремДок.ДобавитьГруппуСтрок(2,3,1);
    
    гФрейм = ВремДок.Показать("Учет наличных МПЗ");
    гФрейм.ОтображатьСтруктуру(1);
    гФрейм.ОтображатьКнопкиУровней(1);    
    гФрейм.Обновить();

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


В самописной конфигурации (той, что нужна)выдает ту же ошибку. А при открытии в бухгалтерской конфигурации работает правильно (создает окно таблицы со структурой).

Есть мысли?
15 Ёпрст
 
17.04.14
15:34
мысль есть - не использовать фрейм :)
16 Rokford
 
17.04.14
15:41
(15)Это я понял. :)

Думал перевести "малой кровью" готовый отчет. Похоже не получится.

А про элемент управления - тоже смотрел. Мне множество событий не нужно. Форма отчета маленькая (буквально 2 списка и даты) а таблица - 11 колонок. Придется ее такую огромину на форму тащить. Посмотрю, может сделаю, а может как есть оставлю.
17 Ёпрст
 
17.04.14
15:46
18 Rokford
 
21.04.14
11:44
(17) Я это смотрел.
19 Rokford
 
21.04.14
11:49
Всем спасибо! Разобрался. Ёпрст, тебе особое спасибо. Честно сказать, я ожидал, что ты поможешь. Всегда очень толковые посты и оперативные (как здесь, так и на инфостарте).

А что было? Была древняя dll' ка этой компоненты в каталоге базы. В каком куске кода она грузилась - не нашел. На мысль натолкнуло то, что утром следующего дня (когда еще не ковырял отчет с загрузкой старой версии компоненты) мой код из (14) нормально отработал. После этого заменил dll'ку в каталоге базы - теперь все ОК. Отчет уже оттестировал и выложил.
20 Ёпрст
 
21.04.14
11:51
один хрен, фрейм проще не использовать
Программист всегда исправляет последнюю ошибку.