Подсистема "Контекстная подсказка" v1.51




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

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

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

<?php // Полная загрузка сервисных книжек, создан 2025-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='\

99 Comments

  1. German

    А в 8.0 то будет работать?

    Reply
  2. tormozit

    Следующий релиз постараюсь сделать для двух плафторм, но описание платформы будет в обоих случаях от 8.1.

    Reply
  3. German

    Ну вообщем +1, было бы интересней если бы вывалися по CTRL+SPACE список значений а не эта громоздкая таблица.

    А так очень даже нечего, глубоко не удалось посмотреть, но реально это необходимо.

    Reply
  4. tormozit

    По поводу громоздкой таблицы — там же можно настроить видимость колонок. По умолчанию все включены в первую очередь для отладки.

    Reply
  5. tormozit

    v 0.70

    — улучшен «интеллект»

    — реализовано простое вычисление типов в режиме запроса

    — улучшена поддержка метаданных

    — сделал фильтр для списка слов

    — улучшена раскраска различных типов слов

    — исправлена куча ошибок

    Reply
  6. CheBurator

    чувствую — пригодится…

    Reply
  7. tormozit

    v 0.71

    — исправил парочку мелких багов

    Reply
  8. tormozit

    v 0.75

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

    — добавлена поддержка составных типов

    — теперь в заголовке окна подсказки отображается текущий контекст, а его тип в информационном поле вверху окна

    Reply
  9. tormozit

    v 0.76

    — багфикс релиз

    Reply
  10. tormozit

    Теперь доступны две версии: под 8.0 и под 8.1

    Reply
  11. tormozit

    Исправлена ошибка в v0.77 под 8.0

    {ВнешняяОбработка.КлсПолеТекстовогоДокументаСКонтекстнойПодсказкой(1482,9)}: Процедура или функция с указанным именем уже определена (ЗначениеНеЗаполнено)

    Функция <<?>>ЗначениеНеЗаполнено(Значение) Экспорт

    Reply
  12. German

    Вот это было бы класно.

    «Для режима внутреннего языка — возможность указания локального контекста»

    То есть можно будет програмно указать нужные переменые?

    Допустим если я пишу на встроенном языке и знаю что результат выполнения я должен передать в переменную «Результат» и это результат я смогу найти в подсказке?

    Или ты хочешь самостоятельно анализировать текущий контекст?

    Еще было бы прикольно всетаки отказаться от таблицы значений(иногда отображается в самом неподходящем месте ), правда даже пока незнаю как исхитрится…. :(( Или сделать ее прикремляемой…..

    Reply
  13. tormozit

    >> Возможность указания локального контекста.

    Да. Можно будет програмно указать нужные локальные свойства (переменные). Также можно будет указать тип локального контекста (например, ДокументОбъект.РасходнаяНакладная).

    >> Еще было бы прикольно всетаки отказаться от таблицы значений.

    На начальном этапе я экспериментировал с окном, даже пытался его пизиционировать через обходные пути, но ничего достойного не вышло =(

    Reply
  14. German

    >>>> Еще было бы прикольно всетаки отказаться от таблицы значений.

    >>На начальном этапе я экспериментировал с окном, даже пытался его пизиционировать через обходные пути, но>> >>ничего достойного не вышло =(

    может стоит посмотреть в сторону AutoIT?

    Reply
  15. tormozit

    >> может стоит посмотреть в сторону AutoIT?

    Да, думаю, попробую применить это средство. Правильная позиция окна подсказки играет немаловажную роль.

    Reply
  16. tormozit

    v 0.79

    — реализована поддержка табличных частей в обоих режимах

    — обработка обращения по индексу несколько раз подряд

    — исправлены мелкие ошибки

    Reply
  17. German

    Когда будет долгожданная

    >>програмно указать нужные локальные свойства

    Reply
  18. tormozit

    >> Когда будет долгожданная

    Сегодня-завтра. Уже сделал, нужно немного потестировать.

    Reply
  19. tormozit

    v 0.80

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

    — теперь можно в режиме внутреннего языка указывать свойства локального контекста (можно увидеть в демонстрационной форме)

    Reply
  20. tormozit

    v 0.80

    — добавлено получение предопределенных элементов

    — в глобальный контекст больше не попадают общие модули с признаком «Глобальный

    Reply
  21. German

    Для 8.0 версия .77….. хочется .8

    Reply
  22. German

    И в 8.0 ЭлементУправленияTextBox не хочет работать так как он работает в 8.1

    Reply
  23. German

    Указываю свойства локального контекста

    Необходимо брать данные из структуры Параметр

    Добавляю

    Параметр.Число — строка

    Параметр.Число2- строка

    пишу «П»+Ctrl+Spase

    вижу в окне

    Параметр.Число

    Параметр.Число2

    вроде все нормально

    Пишу

    «Параметр.»+Ctrl+Spase

    получаю пустое окно.

    Reply
  24. tormozit

    German, спасибо за багрепорт. Ошибка устранена.

    Обновил .77 для 8.0

    Reply
  25. tormozit

    Свойства локального контекста должны быть идентификаторами, а не адресами.

    Reply
  26. tormozit

    Возможность реализации иерархического задания свойств локального контекста будет рассмотрена после реализации «вычисление элементов универсальных коллекций по имени, поддержка колонок таблиц значений».

    Reply
  27. German

    Сергей, а «Параметр.Число» в данном случае является адрес? Что тогда будет идентификатор?

    Колонки таблицы значений это тоже дело. Респект. Плюсонул бы еще раз.

    Reply
  28. German

    Хотелось бы еще для формы «ФормаПодсказки» грамонтный содержательный хелп а то приходится при внедрении класса самому писать :)) и мне кажется что значение поля (поле)»ТипКонтекста» можно поместить в заголовок, что бы минимизировать форму, по хорошему там вообще должна остаться одна таблица и ЭлементУправленияTextBox

    Reply
  29. German

    в общем случае я вот так сделал http://infostart.ru/file.php?0,file=281

    Reply
  30. tormozit

    Под идентификатором я понимал — [А-Яа-я_A-Za-z][А-Яа-я_A-Za-z0-9]*.

    Под адресом я понимал — ([А-Яа-я_A-Za-z][А-Яа-я_A-Za-z0-9]*.)*[А-Яа-я_A-Za-z][А-Яа-я_A-Za-z0-9]*.

    Прошу помочь мне называть все своими именами.

    Reply
  31. tormozit

    Хелп скоро будет. Поле «ТипКонтекста» сначала не было и тип отображался в заголовке, но затем оно мне лично понадобилось и было решено разместить его менно там. Ведь тип может быть и составной и сам контекст не маленький, поэтому почти ничего видно в заголовке формы подсказки не будет.

    Reply
  32. tormozit

    Герман, форму подсказки замучаешься каждый раз переделывать 😉

    Хотелось бы все же, чтобы форму подскази не переделывали, а общими усилиями пришли к оптимальному виду.

    Reply
  33. tormozit

    >> по хорошему там вообще должна остаться одна таблица и ЭлементУправленияTextBox.

    Да, наверное командную панель я все таки уберу, а оставлю только контекстное меню.

    Reply
  34. tormozit

    0.81 под 8.1

    — теперь сообщения об ошибках и компиляции и выполнения содержат адекватную информацию и ошибочная строка выделяется в тексте

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

    — положил начало справке

    Reply
  35. German

    Сергей ты совсем забросил версию под 8.0?

    Reply
  36. tormozit

    Герман, сейчас просто запуск моего проекта на работе идет. Поэтому очень мало свободного времени.

    Постараюсь в выходные обновить версию под 8.0

    Reply
  37. tormozit

    В версии под 8.0 были исправлены 2 важных ошибки, которые сильно снижали удобство использования подсказки.

    Reply
  38. tormozit

    0.81 под 8.0

    Каждый релиз для 8.0 требует все больше и больше времени на переделку из 8.1.

    В версии под 8.0 в силу ограничений платформы не будет отображаться ошибочная строка при неудачной компиляции.

    Reply
  39. German

    Поэтому нужно было писать на 8.0 сразу, так чтобы можно было конвертировать в 8.1 ;)))

    Reply
  40. tormozit

    0.82 для 8.1

    — реализован переход к ближайшему определению слова в тексте

    — улучшена работа с комментариями

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

    — исправлены мелкие ошибки

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

    Reply
  41. tormozit

    v 0.83 для 8.1

    — в режиме внуреннего языка реализован интерфейс для выполнения редактируемой программы в локальном контексте любого объекта (у объекта должен присутствовать соответствующий экспортный метод); в форме-примере объявлены 2 локальные переменные «лСписок» и «лПостроительОтчета», которые объявлены в подсказке

    — теперь после слова Новый отображаются только те типы, у которых существует конструктор (как и должно быть)

    Reply
  42. tormozit

    Обнаружилось, что под видом версии 0.81 под 8.0 лежала 0.77 под 8.0. Накладочка вышла. Исправил. Теперь там лежит правильная версия 0.81 под 8.0

    На днях планирую выпустить 0.83 под 8.0

    Reply
  43. Sol

    Таблицу со «свойством локального контекста» лучше прятать (делать Свертку), как это часто делают в Отчетах, в типовых.

    Reply
  44. tormozit

    Sol, не мог ты пояснить, что имеется ввиду?

    Reply
  45. tormozit

    Догадался. Речь о свертке элемента управления табличное поле в версии 0.81 для 8.0. Да, так будет удобнее, но так как совсем скоро выйдет новый релиз для 8.0, где табличного поля не будет, то реализовавыть такую возможность не разумно.

    Reply
  46. tormozit

    В обоих версиях исправлена ошибка

    {ВнешняяОбработка.КлсПолеТекстовогоДокументаСКонтекстнойПодсказкой(1745,9)}: Процедура или функция с указанным именем уже определена (СкопироватьУниверсальнуюКоллекцию)

    Функция <<?>>СкопироватьУниверсальнуюКоллекцию(КоллекцияИсходная) Экспорт

    Reply
  47. Sol

    Т.е. остался только программный интерфейс доступа до Локального контекста, от интерактивного ты отказался?

    Можно узнать почему?

    Reply
  48. Sol

    Кстати у лСписок, методы после точки не появляются

    Reply
  49. tormozit

    >> Кстати у лСписок, методы после точки не появляются

    Спасибо. Это ошибка. Вечером будет исправлено.

    Reply
  50. tormozit

    Исправлена ошибка с неправильным вычислением типа СписокЗначений.

    Reply
  51. tormozit

    0.84 под 8.1

    — исправлены мелкие ошибки

    — у функций теперь свой значок аналогично подсказке конфигуратора

    — улучшена подсказка в режиме выбора типа (но пока не доделана)

    Reply
  52. CheBurator

    чувствую — офигенная вещь…

    Reply
  53. tormozit

    Чебурашка, ты я смотрю очень чувствительный =)

    Reply
  54. tormozit

    Выложил файлы справки от платформы 8.1

    Reply
  55. Очень полезная штука. +1.

    Смотрю для 8.1.

    А можно ли оптимизировать, чтобы макет «ОписаниеПлатформы» загружался при первом обращении к контекстной подсказке. На данный момент 2 секунды открывается окошко (по замеру производительности 75% чтение макета и еще 10% на индексы таблиц).

    Просто не факт, что контекстной подсказкой будут пользоваться при открытии окна, а инициализировать надо, ибо кнопки на панель добавить надо. Но из-за кнопок на панели ждать 2 секунды… анноит.

    Попробовал создать проц ОтложеннаяИнициализация туда перенести чтение макета, создание индексов для таблиц, сразу лучше стало. Проблема только с локальным контекстом — происходит чтение таблиц для заполнения массивов типов… По-моему, это дело поправить было бы несложно, сам не хотел менять уж сильно имеющийся код….

    И еще пожелание. Сделать кнопку проверки алгоритма на внутр. языке без необходимости его выполнять (иногда алгоритмы бывают не безобидными). Сделать обрамление с помощью Если Ложь Тогда <ТекстАлгоритмы> КонецЕсли; и для использования локальных переменных инициализировать их в Неопределено перед этим Если. Про ВыполнитьЛокально пока не смотрел, но не всегда контекст формы редактирования алгоритма совпадает с контектом самого алгоритма, т.е. вызываться может не из формы, а например из общего модуля…

    Reply
  56. tormozit

    Спасибо за ценные замечания и предложения.

    Выпустил версию 0.85 под 8.1.7

    — добавлен синтаксический контроль в режиме внутреннего языка

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

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

    — исправлена ошибка при обращении к контексту элемента формы (их поддержка пока даже не планируется)

    — исправлена ошибка при определении адреса перехода по гиперссылке в файлах справки

    — в настройках компоненты добавлена опция отказа от открытия формы подсказки в случае пустого списка

    ВНИМАНИЕ! Данная версия совместима только с версиями платформы 8.1.7 и выше

    Reply
  57. Robert

    А что значит «Выпустить компоненту в виде подсистемы (CF)»? Можно поподробней? Что за подсистемы такие?

    Reply
  58. tormozit

    0.86 для 8.1.7

    — исправлена неработающая опция условия открытия формы подсказки в настройках компоненты

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

    — реализовано вычисление системных перечислений

    — доделана работа с константами

    Reply
  59. Sol

    > На днях планирую выпустить 0.83 под 8.0

    Будет? Или для 8.0 решил прекратить поддержку?

    Reply
  60. tormozit

    > Будет? Или для 8.0 решил прекратить поддержку?

    Скорее всего будет, но последняя. Возможно в конце недели.

    Reply
  61. tormozit

    Вышла 0.87 под 8.1

    — доведен до ума браузер по справке (реализовано динамическое подключение стилей)

    — устранена ошибка в синтаксическом анализаторе, приводящая к зацикливанию

    — немного улучшен синтаксический анализатор

    — сделана подсказка по типам (контексты внутреннего языка «Тип(«», «Новый»и языка запросов «ССЫЛКА»)

    Reply
  62. tormozit

    Для версии 0.87 необходимо скачать новые файлы справки. Со старыми она работать не будет.

    Reply
  63. tormozit

    Да, еще поля виртуальных таблиц стали более корректно вычисляться.

    Reply
  64. German

    Сергей где обещеная 0.83 под 8.0? Неможем новую версию выпустить EI

    ждем тебя…..

    Reply
  65. tormozit

    >> Сергей где обещеная 0.83 под 8.0? Неможем новую версию выпустить EI

    ждем тебя…..

    Ладно. Сейчас попытаюсь…

    Reply
  66. tormozit

    Наконец то! Выпустил 0.88 под 8.0.

    0.88 включает исправление мелких ошибок

    Reply
  67. tormozit

    0.89 под 8.1

    — добавлена посдказка для первого параметра конструктора ОписаниеТипов — <Новый ОписаниеТипов(«>

    — в таблицу типов добавлены все примитивные типы

    Reply
  68. Sol

    Спасибо.

    Исправь под 8.0 ошибку. Ты там забыл убрать проверку Общего модуля на свойство «Глобальный» 😉

    P.S. Небольшой совет. Если хочешь, чтобы разработка пользовалась большей популярностью, то приложи здесь пару Приложений, где она уже включена в Поддержку. Привлекешь новичков, которым она как раз и нужна, но которые сами ее в Приложения вставить не могут.

    Для начала мог бы приложить Консоли запросов и Отчетов (только последнюю бери из последних российских УПП). Можешь также выложить обработку «Универсальный подбор и обработка объектов», которую я выкладывал в партнерском форуме (второй вариант). Короче, чем больше приложений — тем лучше.

    Так как обработка очень полезна новичкам, но они-то как раз сами, вряд ли пока смогут ее куда-нибудь подсоединить 😉

    Reply
  69. tormozit

    Спасибо за багрепорт.

    Устранил проверку общих модулей на глобальность в версии 0.89 под 8.0. Нужно перекачать заново.

    Reply
  70. tormozit

    Sol,

    по поводу конечных продуктов я уже думал. Когда реализую «Выпустить компоненту в виде подсистемы (CF)», тогда уже можно будет включить туда пару «вкусных» приложений.

    Reply
  71. tormozit

    Вышли версии 0.90

    — исправлены 2 ошибки в синтаксическом анализаторе (статистика)

    Reply
  72. tormozit

    В версиях 0.90 в форме подсказки была добавлена очень полезная горячая кнопка «.» (кириллица). Она позволяет сразу входить в выбранное слово, не закрывая окна подсказки.

    Reply
  73. tormozit

    Исправлена ошибка в релизах 0.90 с вычислением системных перечислений (внес ее в одном из предпоследних релизов).

    Reply
  74. В процедуре ПроверитьПрограммныйКод() не хватает:

    Код
          Для каждого ЛокальноеСлово из ТаблицаЛокальногоКонтекста Цикл
             Если ЛокальноеСлово.ТипСлова = "Свойство" Тогда
                ТекстДляВыполнения = ЛокальноеСлово.Слово+" = Неопределено;
                   |"+ТекстДляВыполнения;
             КонецЕсли;
          КонецЦикла;
    

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

    Переменные локального контекста надо бы инициализить.

    Еще не хватает процедуры УдалитьСловоЛокальногоКонтекста(Слово). Контекст может меняться в зависимости от каких-либо параметров….

    Reply
  75. tormozit

    > Переменные локального контекста надо бы инициализить.

    Тут позволю себе не согласиться. Допустим у меня есть таблица значений определенной структуры, которая передается в программный код для обработки. Если я ее буду превращать в Неопределено, то о какой обработке той таблицы может идти речь? Думаю, правильнее всего будет инициализировать конкретные локальные переменные в самом программном коде явно.

    Процедура УдалитьСловоЛокальногоКонтекста(Слово, ТипСлова) будет добавлена в следующем релизе.

    Reply
  76. Пусть есть Конвертация данных от 1С. И вот мы пишем в обработчике перед выгрузкой.

    Код
    КлючВыгружаемыхДанных = ЗначениеВСтрокуВнутр(Источник.Дата) + ЗначениеВСтрокуВнутр(Источник.ТипЦен);

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

    Что такое Источник? В алгоритме его не инициализят. Или

    Код
    Запросы.КорректировкаДолга.УстановитьПараметр("ДатаНачала",     ДатаНачала);

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

    Не всегда алгоритм может быть целиком текстом какой-либо процедуры. А даже если и так, в любом случае у процедуры и функции есть параметры, которые явно никто инициализировать не будет, они формируют контекст, к которому применяется алгоритм.

    При проверке алгоритма такое допущение (=Неопределено) необходимо…

    Reply
  77. tormozit

    Согласен. В следующей версии сделаю.

    Reply
  78. German

    Пожелания мелкие….

    1. Убрать кнопку конструктора запросов из макетов, она хуже работает чем стандартная

    2. Кнопку Справка Ctrl+F1 Переименовать в «Поиск в синтаксисе помошнике»; И картинку поставить как в конфигураторе, а то чтото в начале запутался.

    3. Если путь к файлам справки не указан тогда кнопку поиск в синтаксисе помошнике делать недоступной.

    Хорошо бы… Фантазии…

    1. Синтаксис помошник открывался как в конфигураторе с деревом, ну а если будет индекс тогда вообще фантастика!!!…..

    2. Применить шаблоны которые входят в стандартный конфигуратор…..

    3. Файлы синтаксиса помошника выложить где нибуть в группах например Googlу на http://groups.google.ru/grphp?hl=ru&tab=wg&q=

    для общего доступа и изменения, дополнения примерами и прочее…., тогда фалы справки придется держать у себя если только нет интернета, а так прямо из сети.

    Reply
  79. tormozit

    > 1. Убрать кнопку конструктора запросов из макетов, она хуже работает чем стандартная

    Поясни пожалуйста.

    Reply
  80. Sol

    В запросах не работает компонента практически не работает с бух.регистрами

    Например после «ВЫБРАТЬ * ИЗ РегистрБухгалтерии.Хозрасчетный.» нажать Crtl+Space, то выходит ошибка «Поле объекта не обнаружено (ВидРегистра)».

    Если самостоятельно порешить эту проблему, то далее выходит другая — «Значение не является значением объектного типа (ИмяКоллекции)». Спотыкается на <Измерения>, т.к. в Макете «ОписаниеТиповИКоллекций» есть только <Имя измерения>, но нет просто <Измерения>.

    P.S. При этом <Имя измерения>, содержится в Макете дважды 😉

    Reply
  81. tormozit

    На бух.регистрах в запросах пока не отлаживалась. Также, наверное, не работает и с регистрами расчета.

    Регистрами бухгалтерии займусь в ближайшие дни.

    Reply
  82. German

    >> 1. Убрать кнопку конструктора запросов из макетов, она хуже работает чем стандартная

    >Поясни пожалуйста.

    если выделяю только вложенный запрос строит для всего запроса конструктор.

    Reply
  83. German

    Описание добавления локальных свойств вообще нет.

    Какие возможности?

    Планы?

    Есть только два примера почти одинаковых….:(

    Чем отличаются «ТипСлова» -свойство и т.д.

    как мне допустим указать в локальном контексте текущую строку табличного поля?

    Или просто строку таблицы?

    Reply
  84. tormozit

    Герман

    Я понял. В самом деле выделение не учитывается в моей команде, но зато выделяется ошибочная строка. Поэтому постараюсь реализовать в своей команде учет выделения текста при вызове конструктора.

    Reply
  85. German

    + По кнопке конструктора дополнения:

    Да если доделать твоя будет лучше без сомнения

    Нужно еще проверять в какое меню она выводится(кнопка), если в контекстное тогда, надо снимать галку авто контекстное меню. а то получается 2 к

    Reply
  86. tormozit

    > Нужно еще проверять в какое меню она выводится(кнопка), если в контекстное тогда, надо снимать галку авто контекстное меню.

    На мой взгляд, это лучше делать вне компоненты. Опиши ситуацию, в которой по-твоему это целесообразней производить из компоненты?

    Reply
  87. Мелкие исправления для справки.

    Создавать сначала стиль, потом грузить body. Иначе скачет страничка когда рендерится.

    Получая форму справки, делать владельцем ЭтаФорма, иначе справка остается висеть после закрытия диалога редактирования текста.

    Reply
  88. tormozit

    > Чем отличаются «ТипСлова» -свойство и т.д.

    «Метод» — к слову добавляется одна (или две) скобки

    «Свойство» — к слову ничего не добавляется

    Reply
  89. tormozit

    >как мне допустим указать в локальном контексте текущую строку табличного поля?

    Или просто строку таблицы?

    В данный момент нет нормального способа. Расширения элементов формы пока не поддерживаются и описание колонок для таблиц значений тоже.

    Reply
  90. tormozit

    > Создавать сначала стиль, потом грузить body.

    Я бы с радостью. Дашь пример кода?

    Reply
  91. Ну просто местами поменять. Сначала

    Код
    ЭлементыФормы.ПолеHTMLДокумента.Документ.createStyleSheet(ПутьКСтилю);

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

    потом

    Код
    ЭлементыФормы.ПолеHTMLДокумента.Документ.body.innerHTML = СодержаниеСтраницы;

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

    Reply
  92. tormozit

    > Ну просто местами поменять.

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

    Reply
  93. tormozit

    Вышли 0.91

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

    — уменьшено время отображения сырой страницы справочной системы

    — добавлен метод УдалитьСловоЛокальногоКонтекста

    — в режиме языка запросов ввведены новые типы слова «Поле» и «Таблица» со своими пиктограммами

    — исправлено вычисление полей ряда виртуальных таблиц (главным образом, регистров бухгалтерии)

    — в версии для 8.1 оптимизирована структура индексов

    — исправлены мелкие ошибки с поиском нужной страницы синтаксис-помощника

    — добавлен реквизит компоненты ФормаВладелец и теперь все дочерние формы закрываются вместе с главной

    — исправлены ошибки в таблицах описания платформы

    — добавлены типы для системных констант Null, Неопределено, Истина, Ложь

    Reply
  94. Все краше и краше 🙂

    Что-то надо делать с параметрами методов локального контекста…

    Ладно, передать массив массивов типов в процедуру добавления слов несложно, но вот каким образом показать эти параметры при редактировании?…

    Может по нажатию для методов локального контекста по Ctrl+F1 отображать popup меню с параметрами (НаименованиеПараметра — ТипПараметра)? Развивая мысль для свойств локального контекста, по Ctrl+F1 тоже показывать тип в этом контекстном меню. Честно говоря, не знаю будет ли это работать достаточно быстро…

    Либо второй вариант дать возможность передавать код html-страницы с хелпом по методу/свойству. Это будет смотреться универсально, хотя писать в формате help’а от 1С сложновато, да и ссылок не получится по типам…

    Reply
  95. German

    >На мой взгляд, это лучше делать вне компоненты. Опиши ситуацию, в которой по-твоему это целесообразней производить из >компоненты?

    Да очень просто

    КонтекстнаяПодсказка1.Инициализировать(ПолеТекстовогоДокументаСКонтекстнойПодсказкой,ЭтаФорма, ЭлементыФормы.ТекстЗапроса, ЭлементыФормы.КонтМеню.Кнопки.Предприятие,Истина);

    где

    ЭлементыФормы.КонтМеню.Кнопки.Предприятие контекстное меню ЭлементыФормы.ТекстЗапроса с признаком авто.

    Да на самом деле это не существенно, но если бы сделал было бы ничего

    Reply
  96. Sol

    Если вызвать синтаксис-помошник (Ctrl+F1) для значений Истина или Ложь — ничего не происходит, Справка не открывается. Если данные значения встретить в СП (еще сам тип Булево) и щелкнуть по ним, то пишет «Указаная страница справочной информации отсутствует.«

    Reply
  97. tormozit

    > Если вызвать синтаксис-помошник (Ctrl+F1) для значений Истина или Ложь — ничего не происходит,

    К сожалению, я пока не нашел способа это исправить.

    Reply
  98. German

    Развитие то идет?

    Reply
  99. drx211

    Если в качестве каталога справки указать сетевой — не работает.

    Ошибка здесь:

    {Обработка.ирПлатформа.Форма.ФормаСправки(56)}: Ошибка при вызове метода контекста (Прочитать): Каталог не обнаружен ‘SrvMossuploadСинтакс-помощникobjectsGlobal contextmethodsMessage30.html’

    ТекстСодержания.Прочитать(ПутьКСодержанию);

    по причине:

    Каталог не обнаружен ‘SrvMossuploadСинтакс-помощникobjectsGlobal contextmethodsMessage30.html’

    Надо бы так: «\SrvMossuploadСинтакс-помощникobjectsGlobal contextmethodsMessage30.html»

    Reply

Leave a Comment

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