[RToolTips] Динамические подсказки v.1.2.3




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

78 Comments

  1. CheBurator

    Занятно. но навскидку придумать действительно нужное применение я затруднился… хотя фотка смотрится здорово — можно экономить место при выводе изображений, которые не особо часто нужны.. например…

    конкурс надо объявить на самое нужное использование данной фичи…

    Reply
  2. sliam

    Как вариант, вывод подчиненных документов, хотя это тоже спорное применение.

    Reply
  3. vladnet

    (1) Зря ты так очень полезная фишка, жаль только нужно включать еще одну библиотеку в проект, а их там уже очень много (

    Reply
  4. wolfsoft

    Это… Вряд ли в ближайшее время мне лично пригодится, но за идею однозначно «плюсик» и респект 🙂

    Reply
  5. mashinist

    Да…Штука классная… Но как сказал vladnet очередная ВК… А их и так много… Хорошо бы это все АльФу в FormEx.

    Но + однозначно

    Reply
  6. vasilykushnir

    (1) А что? Идея конкурса на лучшее применение весьма привлекательная — не все ж публичная порка… И о красоте надо подумать.

    Reply
  7. CheBurator

    а можно манипулировать таймаутом между позиционированием на объект и появлением тултипа?

    Reply
  8. CheBurator

    можно ли выводить тултип принудительно? т.е. типа вывеститултип(ч,н)

    Reply
  9. Robert

    Можно манипулировать таймаутом между позиционированием на объект и появлением тултипа.

    МенеджерПодск.ПоказыватьЧерез=1000; // 1 сек

    Можно ли выводить тултип принудительно.

    Подсказка.Показать();

    Reply
  10. Mucmepukc

    хм. чего-то не то с als-файлом

    конфигуратор пугает разрушением

    Reply
  11. Mucmepukc

    еще кое-чего не соображу.

    в документе, у табличной части всплывает еще и обычная подсказка

    http://img529.imageshack.us/img529/7658/gluguj0.jpg

    как бы от нее избавиться?

    Reply
  12. Robert

    хм. чего-то не то с als-файлом конфигуратор пугает разрушением

    Виноват. Исправил. 1.1.2

    в документе, у табличной части всплывает еще и обычная подсказка

    Буду думать

    Reply
  13. Mulder_1

    Весч очень полезная… Да .. если бі в формекс встроить — ей вообще бы цены не было … но наже так — очень хорошая весчь получилась …

    помню как до этого мучился через AutoItX3.Control … так теперь не поленился и все переписал под RToolTipsManager… намного убоднее и код выглядит красиво …

    Автору : так что не слушай тех кто говорит «у меня типа уже много ДЛЛ-ек подключено .. бла-бла-бла»… у меня их тож не много кто оценит — подключит еще одну .. вобщем отдельный респект ! и «+» однозначно …

    но вот хотелось бы еще одну фишечку … дабы была возможность работы ПриВыводеПодсказкиТаблицы из глобального модуля … т.к. формы диалога оч часто закрываются после вывода печатной формы …

    И еще замечена одна особеность .. если делать ЗагрузитьВнешнююКомпоненту(«RToolTips.dll»); в ПриНачалеРаботыСистемы(), то при входе дает «Программа была завершена аварийно .. и т.д.» но не всегда ..

    закономерность еще не выявил …

    Но вообще за разработку 5 балов !

    Reply
  14. KoVan

    Подскажите, будет ли решена проблемка с загрузкой проца? На слабых компах грузит систему до 50% 🙁

    Reply
  15. Robert

    Подскажите, будет ли решена проблемка с загрузкой проца?

    Решена v.1.2.1 Прошу заинтересованных товарищей потестировать

    но вот хотелось бы еще одну фишечку … дабы была возможность работы ПриВыводеПодсказкиТаблицы из глобального модуля

    Есть такая фишечка. Используйте на здоровье.

    Для этого лучше сделать одну глобальную переменную типа RToolTipsManager и привязывать таблицы к ней. В этом случае менеджер будет следить за таблицей независимо от наличие формы, из которой таблица сформирована. Процедура ПриВыводеПодсказкиТаблицы будет срабатывать только в глобальном модуле, если вы не будете привязывать менеждера к какой-либо форме.


    Reply
  16. Sprite

    АЛьФУ в Formex — АДНАЗНАЧНА! +1

    Reply
  17. Mucmepukc

    перестала работать 🙁

    у меня в табличной части документа и списке справочника 🙁

    даже вот в примере в Таблице

    Reply
  18. Sprite

    С толкнулся с такой бедой:

    Форма внешней обработки. 2 слоя. При выборе закладки нахожусь на втором слое. У меня здесь большая ТЧ. Лезут подсказки первого слоя. 🙁

    Reply
  19. Robert

    Дайте тестовую обработку, в которой 100% проявляетс эта ошибка.

    Reply
  20. Robert

    Mucmepukc

    После чего перестала работать?

    Reply
  21. Mucmepukc

    последняя версия.

    если вернуть 1.1.2 то все опять ладом

    в частности у меня вот тут например — http://infostart.ru/profile/4955/projects/1383/download.php?file=1964

    Reply
  22. Sprite

    Вобщем ситуёвина такая:

    Форма внешней обработки. 2 слоя. 2 закладки. На первом слое реквизиты, на втором — ТЧ.

    Если в реквизите формы 1 слоя есть подсказка, то при переходе по закладке на второй слой подсказки строк ТЧ рушатся.

    Если перейти на первый слой — появляются подсказки ТЧ второго слоя.

    Беда. SOS!

    Reply
  23. Robert

    Mucmepukc

    Ты обновляешь только RToolTips.dll, или RVXPLib.dll тоже?

    Reply
  24. Mucmepukc

    оба, даже с перерегистрацией RVXPLib.dll

    Reply
  25. Robert

    Метод УстановитьФорму использован?

    Reply
  26. Mucmepukc

    о. спасибо! теперь работает 😉

    возникает тогда другой вопрос — раньше же без этого работала!

    еще раз спасибо, мегаштука!

    Reply
  27. Mucmepukc

    попробовал теперь RMsgWindow2

    претензия такая: нужна жесткая фиксация размера окна (сейчас при добавлении новой строки размер увеличивается), и собственно — прокрутка в этом окне (сейчас окно растет, растет, растет, уползает за пределы экрана)

    и, наверное, не помешала бы прозрачность

    Reply
  28. Robert

    Sprite

    v.1.2.2

    — Исправлена ошибка появления подсказок у невидимых реквизитов

    Reply
  29. Sprite

    v.1.2.2

    Не всё так гладко.

    Результат тестирования: Исчезли ЛЮБЫЕ подсказки на реквизитах, визуально расположенных в одном и том же месте на разных слоях формы. 🙁 🙁

    Очень жду изменений. 😉

    Reply
  30. Sprite

    Не понял в описании:

    >ПолучитьТекстЯчейки(пИмя, пСтрока, пКолонка);

    >Примечание:

    >Позволяет получить текст только видимых в данный момент строк и в любых >колонках, в т.ч. невидимых в данных момент, определенных невидимыми в >конфигураторе.

    Вопрос:

    Могу ли делать так:

    На форме обработки есть табличная часть «ТЧ». В модуле формы:

    Процедура ПриОткрытии()

    …………..

    ТЧ.НоваяКолонка(«Подсказка»,,,,,);

    ТЧ.ВидимостьКолонки(«Подсказка»,0,);

    ………….

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

    Могу ли увидеть в качестве динамической подсказки — значение, присвоенное колонке «Подсказка» при наведении курсором на строку ТЧ ?

    Пока у меня не получилось…

    Было бы ОЧЕНЬ удобно!

    Reply
  31. Mucmepukc

    Sprite

    ПолучитьТекстЯчейки(пИмя, пСтрока, номер_колонки_с_подсказкой)

    разве не так?

    Reply
  32. Mucmepukc

    Sprite

    а.. все, понял, о чем речь… действительно не получается у ТаблицыЗначений 🙁

    просто сам делал у формы списка справочника, там с этим без проблем…

    Reply
  33. Sprite

    то: Mucmepukc

    Надежда только на Роберта….!

    Где-то надо откопать зарывшуюся собаку 🙂

    Reply
  34. Tempus

    Проблема — при закрытии 1С-ки она виснет с ошибкой. По ходу работы все отрабатывается нормально.

    Подозреваю, что связано с большим количеством ВК — загружаю последовательно:

    FormEx, Turbobl, 1spy, RToolTips.

    Reply
  35. Sprite

    Robert, в каком состоянии сейчас разработка? Работаете ли над ошибками?

    В любом случае — удачи!

    Reply
  36. Robert

    Сейчас разработка на паузе. Ошибки обязательно исправлю.

    Что касается ПолучитьТекстЯчейки.

    С таблицей значений это фича. Если в многострочных частях скрытая колонка как бы есть, то в таблице значений ее как бы и нет ;)) это особенность реализации 1С.

    Рекомендую как-нибудь извратиться. Например:

    — добавить просто видимую колонку с текстом подсказки

    — добавить просто видимую колонку с текстом в две строки; первая пустая, затем разделитель, вторая с текстом подсказки; вроде, в колонке отображается строка только до разделителя; надо проверить

    — добавить зафиксированную строку, что бы не маячила просто строка

    Reply
  37. Sprite

    Да. Вобщем-то так как я и думал…

    Столбец мизерной ширины. Пробелы или СимволТабуляции, чтобы не маячил текст для пользователя. Потом СокрЛ(ТЧ.Подсказка).

    Интереснее вставлять разделители. Тогда при обработке строки «ТЧ.Подсказка» появляется возможность динамическую подсказку разделить на несколько строк.

    Спасибо, что хоть помогли определиться с ситуацией 😉

    А как быть с слоями формы?

    Результат тестирования: Исчезли ЛЮБЫЕ подсказки на реквизитах, визуально расположенных в одном и том же месте на разных слоях формы.

    Reply
  38. Sprite

    Попробовал СимволТабуляции. Видимо воспринимается как управляющий символ.

    Отлично получилось просто : несколько пробелов + разделитель (у меня «;») + данные + разделитель + данные + разделитель и т.д.

    Потом:

    Функция ВозвратитьЭлемент(ТекСтр,Номер)

    ВидОпер=ТекСтр;

    Если Номер=1 Тогда

    Для Н=1 По Номер Цикл

    ТекН=Найти(ВидОпер,»;»);

    ВидОпер=Лев(ВидОпер,СтрДлина(ВидОпер)-ТекН);

    КонецЦикла;

    ТекН=Найти(ВидОпер,»;»);

    ВидОпер=Лев(ВидОпер,ТекН-1);

    Иначе

    Для Н=1 По Номер-1 Цикл

    ТекН=Найти(ВидОпер,»;»);

    ВидОпер=Прав(ВидОпер,СтрДлина(ВидОпер)-ТекН);

    КонецЦикла;

    ТекН=Найти(ВидОпер,»;»);

    ВидОпер=Лев(ВидОпер,ТекН-1);

    КонецЕсли;

    Возврат ВидОпер;

    КонецФункции

    Процедура ПриВыводеПодсказки(пТекст, пИмяАтрибута, пХ, пУ, пСтрока, пКолонка)

    ………………….

    лТекст12=СокрЛП(мМенеджерПодск.ПолучитьТекстЯчейки(«ТаблицаАнализа», пСтрока, 12));

    …………………..

    Период_Анализа=ВозвратитьЭлемент(лТекст12, 1);

    Дата_Первой_Партии=ВозвратитьЭлемент(лТекст12, 2);

    …………………..

    Коэффициент_Ликвидности=ВозвратитьЭлемент(лТекст12, 14);

    Коэффициент_Излишка_Товара=ВозвратитьЭлемент(лТекст12, 15);

    ……………………

    // Теперь выводим подсказку

    пТекст=Шаблон(«<body bgcolor=#99ccff> Артикул: [лТекст2]

    // |Строка: [пСтрока] Колонка: [пКолонка]

    |
    Наименование: [лТекст3]

    |<hr size=1>

    | Период анализа: [Период_Анализа]

    |
    Дата первой партии: [Дата_Первой_Партии]

    |
    Дата конца продаж: [Дата_Конца_Продаж]

    |
    Продано количество: [Коэффициент_Излишка_Партий]

    |»);

    ……………..

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

    Reply
  39. Mucmepukc

    опять про RMsgWindow2

    — не хватает кнопочки «закрыть» у окошка

    — как-то странно работает Переместить(Лево,Верх) — Лево кажется не начало окошка, а его середина 😉

    Reply
  40. Robert

    Решена проблема с появлением подсказок у невидимых реквизитов, на разных слоях и пр.

    Смотрите v.1.2.3

    Reply
  41. Sprite

    Ещё раз спасибо! Проблема действительно решена. Проверено! Зачёт!

    Reply
  42. Sprite

    В чём может быть проблема?

    Процедура ПриВыводеПодсказки(пТекст, пИмяАтрибута, пХ, пУ, пСтрока, пКолонка)

    ………………..

    Если пИмяАтрибута=»фл_ABC» Тогда

    Попытка

    пТекст=Шаблон(«<body bgcolor=#9ccff gfc=white>

    | Ранжирование асортимента по

    |
    доле в общей прибыли продаж.

    |<hr size=1>

    | А — товары, приносящие ВАЖНЫЙ результат

    |
    В — товары, приносящие СРЕДНИЙ результат

    |
    С — товары, приносящие СЛАБЫЙ результат

    |»);

    Исключение

    КонецПопытки;

    КонецЕсли;

    ……………

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

    Reply
  43. Robert

    Sprite

    А есть какая-то проблема?

    Reply
  44. Sprite

    Пробема. В таком виде, как привел ниже — подсказка не выводится. Если перед последней строчкой «|
    [ДокПеремещениеСтарый.ДатаДок]</b> тогда всё ОК`.

    Задолбался размышлять почему так. Причём похожие конструкции работают.

    Reply
  45. Sprite

    Ощущение такое, что строку с обычным текстом (а не вычисляемым значением) чем-то заканчивать надо. 🙁

    Reply
  46. Sprite

    Выслал в личку скриншот и обработку.

    Reply
  47. Sprite

    Спасибо за подсказку. Я этого не знал. Всё заработало.

    Reply
  48. Robert

    Поясняю для всех. Мало ли кто-то еще попадет в ту же ситуацию.

    Функция Шаблон работает таким образом, что когда в нее передаешь строку, не содержащую ни одной пары квадратных скобок, то она возвращает пустую строку.

    Например:

    Код
    Шаблон("йцукен[]") = "йцукен"
    Шаблон("йцукен") = ""
    

    Показать полностью

    Reply
  49. Sprite

    Причём важным оказывается лишь то, что шаблон должен заканчиваться

    …. ] «);

    т.е. не обязательно заканчивать каждую строку шаблона!

    Reply
  50. alyuev

    А без 1с++ эта компонента не работает?

    Reply
  51. alyuev

    Как я понял — без FormEx не работает. Правильно?

    Reply
  52. Robert

    Работает и без 1С++ и без FormEx.

    Просто метод УстановитьФорму необходимо вызывать после того, как форма создана. 1С++ и FormEx генерируют специальное событие после создания формы. Без них тоже самое можно сделать через обработку ожидания или как-то еще.

    Reply
  53. MAXXL

    Что то никак не получается вывести подсказку с картинкой. Подскажите как правильно написать тэги?

    Reply
  54. MAXXL

    А сетевые пути для картинок компонента не воспринимает?И еще — можно ли задавать ширину подсказки, чтобы переносились длинные строки автоматом?

    Reply
  55. antowski

    К сожалению компонента действительно не понимает сетевых путей 🙁

    Reply
  56. Burguin

    ìÌåíåäæåðÏîäñê=ÑîçäàòüÎáúåêò(«RToolTipsManager»);

    {Îáðàáîòêà.Èçäåëèÿ.Ôîðìà.Ìîäóëü(132)}: Íåóäà÷íàÿ ïîïûòêà ñîçäàíèÿ îáúåêòà (RToolTipsManager)

    короче неудачная попытка создать файл!

    Регил я файл! только толку то…

    МОжет это из за windows vista????

    Reply
  57. Burguin

    =) я ж начинающий ! только пару месяцов как изучаю 1с.. вообщем допетрил… в глобалке надо подключать модуль! капец.. на курсах о таком вообще речь не шла.. ну вообщем еще 1 шаг к освоению я преодалел!

    Reply
  58. JohnyDeath

    (58) ты б лучше с основ начинал. до этого потом дойдёшь, если надо будет.

    Reply
  59. aleksey_korol

    (1) Конкурс еще продолжается? Вот вам применение: http://infostart.ru/projects/218/?p=4&clear_cache=Y#comm78

    Робертус, ПЛЮСИЩЩЩЩЩЩЕ!!!

    Reply
  60. aleksey_korol

    Пытаюсь загрузить через vkloader:

    Загрузчик = СоздатьОбъект(«ЗагрузчикВК»);

    Рез = Загрузчик.КодЗагрузки(«RVXPLib.dll»);

    Если Рез.КодОшибки = 0 Тогда

    Сообщить(Рез.Результат);

    Иначе

    Сообщить(«Ошибка » + Рез.КодОшибки + РазделительСтрок + Рез.Результат);

    КонецЕсли;

    Ругается:

    Ошибка 5

    Не удалось получить идентификатор ВК

    @#$, а?

    Reply
  61. aleksey_korol

    RMsgWindow2:

    Первое:

    МегаОкноСообщ.Парсер.УстановитьТекст(«Новый текст»);

    МегаОкноСообщ.Парсер.Переформировать();

    Текст, пардон, не обновляется, пока не переключиться на другое приложение и не вернуться назад.

    Второе: мона как-то сразу задавать координаты, в которых его выводить, а то оно мерцает сначала в центре, а потом где мне надо?

    Третье: как-то считывать и запоминать текущие координаты окна мона, чтобы пользователь при каждом программном открытии окна не поминал меня незлым тихим, перемещая его в свое любимое место?

    Reply
  62. sysop168

    Жаль с 8-кой не работает — ругается на отсутствие точки входа в процедуру GetToolTipCtrl 🙁 Очень полезный функционал был бы.

    Reply
  63. Boog

    Если используется таблица совместно с формой (например: сверху форма, под ней таблица), то при закрытии формы 1С падает. Причем так, что процесс остается, но уже никогда никому не ответит.

    Reply
  64. Boog

    Если выводить подсказку методом ПоказатьВТочке, то подсказка только на мгновение показывается в указаной точке, а потом сразу же перемещается к указателю мыши.

    Свойство Прятать не работает (при установке в 0 подсказка исчезает при движении мыши).


    Извиняюсь, неправильно пользовался.

    Reply
  65. alyuev

    (64) У меня работает и не падает. Значит что-то не так делаешь.

    Reply
  66. V_K

    Использую вашу компоненту. Бывают глюки выводит одну и ту же подсказку. Что это может быть?

    Еще бывает выбивает 1с-ку. Может это быть связано с тем, что висит справочник товаров, где работает пользователь + он набивает накладные, а для подбора используется та же форма справочника товаров?

    Reply
  67. V_K

    Еще бывает выбивает 1с-ку. Может это быть связано с тем, что висит справочник товаров, где работает пользователь + он набивает накладные, а для подбора используется та же форма справочника товаров?

    Reply
  68. cabat

    (64) у меня тоже падало..

    Вроде помогло обнуление переменной, где хранится экземпляр объекта «RToolTipsManager» перед закрытием формы (в событии «ПриЗакрытии»)

    Reply
  69. Fiasko

    Здравствуйте!

    Использую эту ВК. На все машинах нормально, кроме одной — 1с-ка упорно валится при попытке СоздатьОбъект(«RToolTipsManager»). RVXPLib.dll зарегистрированы, dep, uac, антивири — выключены. Windows 7 x32.

    Пробовал даже на пустой базе создатьобъект (мало ли что-то мешает) — тоже не взлетает…

    В чем может быть беда?

    Сигнатура проблемы:

    Имя события проблемы: BEX

    Имя приложения: 1cv7s.exe

    Версия приложения: 7.70.0.27

    Отметка времени приложения: 4573fcd8

    Имя модуля с ошибкой: StackHash_0a9e

    Версия модуля с ошибкой: 0.0.0.0

    Отметка времени модуля с ошибкой: 00000000

    Смещение исключения: 041b04e0

    Код исключения: c0000005

    Данные исключения: 00000008

    Версия ОС: 6.1.7601.2.1.0.256.1

    Reply
  70. Fiasko

    В общем в течение нескольких дней обката пришел к выводу, что ВК крайне не стабильна… вылетает периодически у всех пользователей в каком-то непредсказуемом порядке…

    Reply
  71. Fiasko

    (70) с вылетом разобрался, отключил аппаратный DEP

    (71) пока актуально… но если на это тоже влиял аппаратный DEP и стало работать лучше — отпишусь…

    Reply
  72. Fiasko

    к сожалению как в (71) вылетало, так и продолжает:

    Сигнатура проблемы:

    Имя события проблемы: APPCRASH

    Имя приложения: 1cv7s.exe

    Версия приложения: 7.70.0.27

    Отметка времени приложения: 4573fcd8

    Имя модуля с ошибкой: RVXPLib.dll

    Версия модуля с ошибкой: 1.2.3.0

    Отметка времени модуля с ошибкой: 4776a34a

    Код исключения: c0000005

    Смещение исключения: 00014ca6

    Версия ОС: 6.1.7601.2.1.0.256.1

    Код языка: 1049

    Дополнительные сведения 1: 0a9e

    Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789

    Дополнительные сведения 3: 0a9e

    Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789

    Reply
  73. Fiasko

    к (73) — причем ошибка дважды выводится (не всегда)

    Reply
  74. Fiasko

    после еще определенного периода испытаний могу сказать, что все вылеты возникают при закрытии формы, к которой подключен rtooltips.. скорее всего это происходит при разрушении объекта…

    Reply
  75. andreykfk

    Может кто знает как зарегистрировать RVXPLib.dll в Win 10

    Reply
  76. Slypower

    так как и в 7ке, от имени Администратора

    Reply
  77. andreykfk

    (77)Спасибо разобрался

    Reply
  78. andreykfk

    При открытии из конфигурации Test RToolTips.ert все работает.

    Вставляю «кнопку» в справочник и вешаю на нее процедуру:

    Процедура ПоКнопкеПоказать()

    мПодск=СоздатьОбъект(«RToolTip»);

    мПодск.ИмеетТень=1;

    мПодск.ИмеетХвост=1;

    мПодск.Окружность=3;

    мПодск.Прозрачность=210;

    мПодск.ВремяПоявления=1000;

    мПодск.ВремяИсчезновения=1000;

    мПодск.Парсер.УстановитьФайлРесурсов(КаталогПрограммы()+»1crcrus.dll»);

    мПодск.Парсер.УстановитьТекст(«<body bgcolor=#99ccff gfc=white>Для загрузки картинок используется файл ресурсов 1crcrus.dll

    |
    Картинка загружена по идентификатору IDR_DEL_MARKED
    <img res=’ico:IDR_DEL_MARKED’>

    |
    Картинка загружена по идентификатору 209
    <img res=’ico:#209′>

    |»);

    мПодск.ПоказатьВТочке(100, 100);

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

    Не чего не происходит. В чем может біть проблема?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *