<?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='\
О, с картинками и по-человечески!
— что еще бы надо: возможность «прятать» колонки «имя файла» и «папка файла» (есть такое?)
— ну и для полной красоты: раздача прав на обработки по пользователям — был бы вообще песня…
— «импорт» данных из стандартных «доп.возможностей» — вот у меня там мнооого обработок — как их перекинуть…?
а описание — проанализировать — если установлен формекс — вытягивать стандартное описание обработки (может как-то так и делается?)
ТекТабОтч.НоваяСтрока();
{C:DOCUMENTS AND SETTINGSDENISРАБОЧИЙ СТОЛНОВАЯ ПАПКА (2)EXTREPADMIN.ERT(216)}: Значение не представляет агрегатный объект (НоваяСтрока)
Ошибки нынче появились
DDD2005, исправил ошибку. (возникала, если не было настроек)
Че:
1. Спешл фо ю. Настройка видимости колонок. (пока работает только на самом верхнем уровне иерархии, т.к. при изменении видимости колонок в таблице с фиксированными строками, значения в ячейках слетают, в дальнейшем поглядим)
2. Права будут (даже специальную колонку зарезервировал) но пока не до них. Планирую же сделать завязку как на имя пользователя 1С, на имя прав, на имя интерфейса, так и на глобальные переменные типа глПользователь, может и на имя виндового юзверя.. короче вариантов масса) При этом планирую не только права на запуск, но и права на чтение (видимость) обрбаботки. Возможно будут группы пользователей.
3.Импорт есть. (обрати внимание на кнопку «Заполнить»).
4. Не работал с формэксом. Сорри. Если сделаешь — гран мерси тебе. Сам — очень не скоро, может никогда.
Маньяку: галочки расставлять по пользователям и обработкам — запаришься. У меня внешних обработок за сотню всяких перевалило, допустим юзверей десяток — 1000 штук руками — забабахаться… имхо надо типа групп юзверей.. ща гляну свои соображения на Т1С я там как-то эту тему обмозговывал…
Опять же — как при простом открытии обработки из меню — обрубить возможность?
в формексе кстати есть
//ПРЕДОПРЕДЕЛЕННАЯ ПРОЦЕДУРА FORMEX
Процедура ПриЗагрузкеВнешнегоОтчета(ИмяФайлаОтчета)
//можно типа так
Если Правонарушено(ИмяФайлаОтчета)=1 Тогда
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры //ПриЗагрузкеВнешнегоОтчета()
Опять же Маньяку: хотя у меня ограничение прав на обработки прописано на уровне галочек в справочнике доступных для юзверей обработок
А вот хотелось бы узнать: на картинке у автора: Обработки с инфостратра по авторам — я там есть? (скромно потупился)… 😉
Чикатала: На конкретного юзверя завязываться точно не буду. Обработка должна работать в нескольких базах (хотя бы и без параметров). Будут группы пользователей. К конкретной группе будут относиться юзвери по условию (по вхождению подстроки в ИмяПользователя() в ПолноеИмяПользователя(), в глПользователи, по реквизиту глПользователя, по WSH.netUser..
Права будут раздаваться на группы обработок и на обработки. Поиск прав бкдет осуществляться по восходящей Обработка — Обработка.Родитель — Обработка.Родитель.Родитель — Обработка.Родитель.Родитель.Родитель и т.п. с соответствующими приоритетами по условию И или ИЛИ.
Че: Ну конечно! Там есть все! Все-все-все… И некоторые даже по нескольку раз (особенно те, кто +1 ставит)
P.S. Ну даже если этот пример я наколотил специально для скриншота, разве ж я в ентом признаюсь? 😉
Ну ты маньяк.
Не согласен — пиши в Гаагу.
В группе может быть 1 пользователь.
Групп может быть сколько угодно.
Определять их ты можешь и по имени.
Я тут вчера нагнал много (конец дня, устал). Конечно права будут на видимость в списке. Если пользователь не видит группу, то он не видит и обработку. Если он видит группу, то может видеть не все обработки группы. Повторюсь права могут задаваться как на группу так и на конкретную обработку. Но если на группу стоит запрет, то и обработка не видна (вне зависимости от прав на обработку).
В списке обработки могут повторяться много раз. Так что, распихав нужную обработку по нужным группам можно добиться нужного результата.
Если бы я делал по принципу «делов на пять минут», то боюсь наступал бы на те же грабли..
>Импорт есть. (обрати внимание на кнопку «Заполнить»).
Обратил и попробовал — не заполняет… Где грабли?
+1 Все-равно
Грабли в файлах efd. Заполнение производится на основании информации в этих файлах.
Вобщем-то ничто не мешает мне добавлять в спиок просто ert файлы… В сл. версии так и сделаю.
Азернот! Мочи их всех! с правами — правильно!
Типа надо если есть EFD (соответствующий ERT) — тащить инфу оттуда, если EFD нет — брать ERT — типа так сделано будет?
ну да. В наименование — имя файла, в описание — «». (может и вставлю фермексовскую приблуду)
При создании группы, наверное, логично было бы располагать ее ПО УМОЛЧАНИЮ вверху списка — а то забодаться сколько стрелками двигать…
Yes, sir!
By your command!
With pleasure!
(Поклонникам Warcraft 2 посвящается)
Двоечник!
Распихал по группам…. выставил галки, вырезал, перешел в нужную группу, вставить — вывалилось с сообщением «номер за пределами значения» — вся работа — ек! УУУУУ!!!!
Но удобно… хотя есть куда развиваться…
Проводи диагностику, в каком случае такя штука возникает. Я воспроизвести не могу. Может вставляешь в группу, которую вырезаешь?
Опять!!!
ТекТабОтч.ПолучитьСтрокуПоНомеру(ТекОтч[А]);
{\SERVERPC2BAZDATACOMPLEX_SQL.DIREXTFORMSEXTREPADMIN.ERT(218)}: Номер за пределами значения!
— после этого таблица пустая.
Последовательность действий к ошибке.
1. пустая таблица.
2. заполнил — ок.
3. ввел несколько групп — все на первом уровне — находятся в конце списка
4. включил колонку пометок
5. отметил пару обработок.
6. вырезать — отметки снялись
7. перешел в нужную группу
8. вставить — ОШИБКА, после этого таблица пустая
..
ошибка происходит при попытке вставить в ПОСЛЕДНЮЮ ПО СПИСКУ ГРУППУ (что-то видимл сл счетчиком строк) — опа… не обязательно в последнюю — видимо когда кол-во вставляемых строк к чему-то плюсуется и оказывается больше номера строки последней…
+ еще трабл:
Есть предложение — 1. обязательно кнопка БЭКАП и восстановить из БЭКАПА
2. перед перестройкой списка — спрашивать (опционально?) о сохранении того что уже есть (если были изменения)
А я так скажу. Перед операцией «Вырезать» — сохранись. (Только она деструктивная)
А ещё лучше не пользоваться ей, пока не разберусь. Копируйте и удаляйте -так надёжнее.
Есть пожелание:
1. сделать сдвиг строки по кольцу — т.е. если последняя в списке и вниз — то в начало списка (в соответствии с иерархией, ясен пень)
2. возможно — сортировка по алфавиту (в соответсвии с иерархией), группы соритруются отдельно от элементов… типа так…
Есть пожелание: сделать кнопку «печать» — для печати описания выбранной обработки, а еще лучше — печать для группы — получится книжечка с описанием использования обработок… ОЧЕНЬ НУЖОННАЯ ВЕСЧЬ!
Что касается краткого описания — так без проблем.
Но вот что касается полного.. Был у меня геморрой с этим делом (печатать файл асоциированным Windows-приложением). Единственное, что я нашёл — это выдёргивать из реестра командную строку команды «Печать по умолчанию» и запускать как команду системы с параметром <ИмяФайла>. При этом не всё в порядке было с диспетчером печати (если кол-во заданий на печать превышало определённый лимит, задания попросту пропадали). Приходилось через каждое N файлов выдавать предкпреждение и продолжать только по нажатию ОК.
Так что, глубокоуважаемый ушастый революционер из Аргентины, пораскинь мозгами и процедуру печати придумай сам…
Ну вы извратились!!
Сделать по простому: описание обработки в Таблицу и показать…
ок. сделаю сам — процедуры выдам тебе (и вытаскивание описания из самой обработки тоже)
Я же говорю, с кратким — нет проблем. А если ты мне в полном описании файл tif присобачишь? Или таблицу Excel на 65000 строк?
Описание в т.ч. и полное — имеется в виду описание, которое задается в конфиге — туда «штатно» ничего не зафигачишь (есть хорошая ВК — позволяет туда код HTML запихнуть — получается тогда красиво)…
Когда, когда уже будет новая версия с исправлением глюков и правами…? не терпится ужо…
Ну не люблю брать не себя обязательства, если нет уверенности что смогу выполнить.
А по сему — как только, так сразу. Затягивать не буду — обещаю.
Скачал еще с проклуба — понравилось. Но с давних пор использую встроенную в конфу обработку с записью в Спр.ВнешниеОтчетыПользователя прописанных юзверю отчетов. Так там я могу отчет на всех/нескольких пользователей повесить, или несколько отчетов на пользователя. Удобно, однако… Так же и удалить. Конечно, все без групп, вырезаний и перемещений, в форме списка справочника.
Как насчет таких возможностей?
Версия 1.1
— группы пользователей. Гибкая настройка условий отнесения пользователей к группе.
— возможность раздачи прав на просмотр обработок (через группы пользователей). Можно указать как права на просомтр так и запрет на просмотр;
— заполнение списка обработками из каталога (ert, mxl, txt), при этом если найден соответствующий efd-файл, наименование берётся оттуда;
— исправлены ошибки с копированием, вырезанием и вставкой групп и элементов;
— возможность сохранения в backup и восстановления;
— в параметрах запуска можно указать необходимость загрузки внешней компоненты перед запуском отчёта (обработки).
— настройка видимости колонок в пользовательской части (имеется возможность запрета пользователям управять видимостью).
— сортировка списка по признаку группы и наименованию;
— заполнение относительных каталогов, восстановление реальных каталогов;
Ну вот… Кричали, кричали: «Где права? Вот если бы ещё и права.. А когда права?»
Недоедал, недосыпал, на личную жизнь забил — сделал… И что?! Где отзывы? Неужели всё так неопнятно сделано?
спакуха! не ты один с личной жизнью забивший — аналогично сижу…
смотреть буду обязательно.
Готов поощрить небольшой суммой.
скинь вебмани на личку.
конечно немного лучше хотелось бы…
типа прописал группу (как СЗ из строк — у тебя на кртинке все в строке — надо на каждую одиночную обработку писать эту строку) а так завел несколько СЗ типа Продажи, закуп и проверяешь принадлежит — типа проще было бы манипулировать с большими объемами.
а какая иерархия прав? аллоу-дени или дени-аллоу?
Накой иерархии прав.
Если пользователь входит хоть в одну группу и эта группу в правах строки — строка показывается (или наоборот не показывается, если галка «При указании в правах группы — есть права» снята).
Про СЗ не понял.
Версия 1.2
— система статистики использования (запуска) отчётов и обработок;
— поправлены разнообразные баги (thanks to Че Бурашка);
Статистика ведётся в текстовых файлах (резделитель — СимволТабуляции).
Схема простая — при запуске отчёта (обработки) в оперативный лог записывается информация о среде окружения, пользователе, времени запуска и обработке. По мере переполнения оперативного лога (превышения максимального количества строк), информация переносится в файл статистики (процедуру переноса можно инициироать из административной части в любое время). Анализ выполняется через файл статистики. Пока в качестве анализатора предлагается использовать MS Excel, в дальнейшем будет разработан специальный анализатор.
> система статистики использования (запуска) отчётов и обработок
Ну, ты, Санёк, даёшь! Вот это крутизна! Жаль, блин, что нельзя повторно рейгнуть.
+1
Очень хорошая обработка! Особо понравилось разделение прав!
+1
надо сделать поиск обработки по (фрагменту)названию и/или по (фрагменту)имени файла
..обязательно!
Что называется, закрыл тему.
+1
Не, не закрыл, а раскрыл 🙂
Но ещё не до конца. Чебуратор идей накидал вагон, да у самого в планах маленькая тележка… Так что, есть куда двигаться..
А вот еще один навигатор попроще
http://infostart.ru/projects/791/ с интерфейсом красивым…
но мне тутошний больше нравится… 😉
.. и когда автор порадует новыми феньками?
Версия 1.3.
— поиск отчётов (обработок) в списке по вхождению подстроки в:
наименование отчёта (обработки);
имя файла;
имя каталога;
краткое описание;
Результаты поиска заполняются в табличную часть, кликом на нужной обработке можно спозиционироваться в иерархической структуре на найденном отчёте (обработке), либо войти в найденную группу.
(структура файла настроек не менялась, но обновление версии в файле всё равно происходит)
ура! есть еще одна нужная фишка!
Спасибо автору, замечательная вещь ! 🙂
Я добавил новый функционал
2007-02-20 artbear
* ExtForms/НавигаторВнешнихФайлов/ExtRepAdmin/МодульФормы.1s 1.2:
* ExtForms/НавигаторВнешнихФайлов/ExtRepViewer/МодульФормы.1s 1.2:
если каталог находится внутри каталога ИБ, путь к нему задается относительно каталога ИБ
сначала пытаемся использовать файл настройки в каталоге КаталогИБExtForms
А также возможность создания специального меню «Доп.возможности» на базе данных для Навигатора с помощью классов 1С++ и ВК RWidjets
Более подробная инфа
http://www.1cpp.ru/forum/YaBB.pl?num=1169222935/84#84
Хочется: нашел обработки по вхождению «продажи» — кликаю по списку — перехожу на строку в навигаторе, а список найденных закрывается!!!! ЗАЧЕМ???
хочу бродить по найденному списку и типа «из него» (или позиционироваться на навигатор) открывать нужную обработку, а если список найденных не понадобится больше — закрою его сам…
Хочется — перехочется.
Если объяснишь мне неразумному как из немодального окошка передать параметр в родительскую форму (для позиционирования ведь нужно знать на что позиционироваться!) можно сделать незакрывающееся окно поиска..
Для запуска же из формы поиска — нужно перетаскивать в эту форму весь функционал с параметрами запуска, статистики и т.п. что не есть правильно.
Надо было тогда поиск мутить просто на отдельной вкладке основного списка, тогда бы и запуск сделать проще и при позиционировании результат поиска не теряется. Но, сделал — как сделал, не обессудь.
Короче, мухи — отдельно, котлеты — отдельно. Поиск и запуск — вещи разные.
Ок. С передачей из немодального — подумаю, есть идея.. надо проверить…
Вопрос: есть например набор обработок, который распихан по папочкам навигатора.
Если я сделаю «заполнить» — прога поймет что обработки распиханы по папочкам и не будет вносить их в корень списка? Внесет в корень только новые?
Нет, внесёт все какие найдёт.
1. Бяка… по предыдущемй посту.
2. регулярно в папке скапливается всякая ненужная… типа хорошо бы: кнопка «мусор» — список всех что есть в каталоге но нет в навигаторе с возможностью разруливания — эти убить нафиг, эту — в навигатор.. или как-тотак…?
Доработал немного в части внесения новых файлов в Навигатор.
Отправил автору.
Ждем версию 1.4
Еще раз — замечательная вещь!
Советую всем.
Взял на себя смелость выложить доработанную мной версию 1.4
http://www.infostart.ru/file.php?0,file=275 — распаковать, файл обработки положить в общий комплект обработок НАВИГАТОРА.
Обработка лежит здесь:
Из существенного: выбор режима добавления обработок/файлов/отчетов — «только новые» или «все», так как зачастую папки с внешними обработками пополняются из разных источников и каждый раз проводить «пополнение» НАВИГАТОРА всеми файлами как-то некрасиво — вот и будем добавлять только новые файлв… причем файлы в НАВИГАТОР теперь добавляются в создаваемую автоматом папку для новых файлов.. Подробное описание нововведений в версии 1.4 представлено ниже.
Нововведения в версии 1.4
Версия 1.4. ( 04.04.2007, Che Burashka, e.meil@mail.ru )
— перед удалением группы задается вопрос-подтверждени;
— добавление отчетов/обработок/файлов производится в папку, создаваемую автоматически на текущем уровне иерархии
(т.е. новая папка создается в той папке, в которой вы находитесь на текущий момент); имя папки, в которую будут добавлены
отчеты/обработки/файлы формируется по шаблону _ <ДОБАВЛЕНО ГГГГММДД ЧЧММСС ТипФайлов>, где ГГГГММДД ЧЧММСС — маркер времени.
после добавления новых элементов они могут быть разнесены по разным группам с использованием штатных возможностей НАВИГАТОРА.
— возможность выбора режима добавления новых отчетов/обработок/файлов:
• только новые файлы: в этом режиме файл добавляется только если он больше нигде не найден в таблице (на любом уровне иерархии папко);
• все файлы: в этом режиме добавляются все файлы из выбранного каталога;
— исправлены мелкие программные недоработки, в определенных ситуациях приводящие к некритичным ошибкам в работе с лог-файлом.
Выложена версия 1.4.
Хочу сказать отдельное спасибо глубокоуважаемому Че Бурашке за произведённые доработки.
Сам уже весь в 8.0, поэтому особого развития обработки не предвидится…
Однако, если кто-то из сообщества 1С-ников желает поучавствовать в разработке — милости просим.
Вот основные идеи по доработке:
— хранение состава обработки (перечень основных и вспомогательных файлов, которые имеют отношение к конкретной обработке, с целью дальнейшей работы с обработками — проверка целостности, копирование, перенос в другой каталог, на другой диск и т.п.);
— хранение состава возможных параметров запуска для обработок (с идентификаторами, возможными типами и т.п., для более удобной работы с параметрами)
— экспорт и импорт настроек конкретной обработки/обработок (для того, чтобы сторонние программисты разрабатывая новый отчёт/обработку создавали файл настроек для быстрого и корректного добавления в навигатор. Что-то типа стандартного efd-файла, но существенно навороченнее);
— добавление ДЕЙСТВИТЕЛЬНО только новых файлов (поиск по имени и по свойствам файла, замена обновлённых файлов или путей к ним);
— анализатор статистики;
— печать перечня обработок (с возможностью вывода любой доступной информацией об обработке, начиная от имени и свойств файла, заканчивая описанием);
В случае, если количество дорабатывающих будет достаточно большим, придумаем вкладку «Разработчики», в которой разместим информацию о всех учавствовавших в процессе разработки авторах (с указанием контактной информации, ссылки на страничку и т.п.).
Ну,
— анализатор статистики
— печать перечня обработок…
это я наверное прикручу, но опять же — когда время будет…
— хранение состава обработки(обработок) — вообщем-то тоже не проблема — уже думал над этим.. (но.. см.выше).
Но когда это будет… — НАВИГАТОР в своей нише имхо лучшее что я видел и по функциональности — мои потребности перекрывает процентов на 90%…
.. а то что весь а 8-ке — ну что же.. еще один переметнулся на сторону капиталистов 😉
Плюсуем.
Вы мне скажите — добавлена ли работа с каталогам относительно каталога ИБ?
Т.е. в настройках хранится не всегда полный путь, а в том случае, если обработка находится внутри КаталогаИБ или его подпапок, в настройках хранится только относительный путь.
ИМХО удобно при настройке с одной машины/базы переносить файлы на другую машину/базу/базы
.
Сделано или нет?
Каталог ИБ можно добваить в перечень относительных каталогов.
Далее, при переносе базы, меняем путь к этому относительному каталогу и вуаля!
Вообще, старался не привязывать обработку к каталогами ИБ потому как предполагал использования одной обработки (и одного комплекта настроек) сразу из нескольких информационных баз.
Если использовать твой механизм, то при любом переносе данных из одной базы/одного компа на другую базу/другой комп, нужно заново открывать Администратор и перебивать путь.
ИМХО очень и очень неудобно.
Я же делал по-другому — если указанного абсолютного пути для каталога не существует, пытаюсь искать по имени КаталогИБ+Путь.
В этом случае решается указанная проблема.
Может быть, добавишь подобную фичу?
Вроде и твоя схема работы не нарушается, т.к. проверка на принадлежность КаталогуИБ производится в последнюю очередь, уже после остальных проверок.
Ну как хотите… Теперь, в случае отсутствия реального каталога, указанного в относительных каталогах, поиск осуществляется последовательно в:
— Каталоге текущей ИБ
— Подкаталоге ExtForms текущей ИБ
— Подкаталоге ExtFormsPrnForms текущей ИБ
У меня, например, одинаоквые наборы обработок в 2-х меситах, но разные пути…
приходилось «перебивать» не пути, а относительные имена просто менял.. была мвсль типа «переключалку» относительных путей сделать…
1) Спасибо! Сейчас посмотрю.
http://www.1cpp.ru/forumfiles/Attachments/1_002.JPG
.
2) Не смотрели мою доработку по созданию МЕНЮ Доп.возможностей на базе данного Навигатора?
Вот скриншот
Т.е. я сделал 2 класса, которые добавляют в основное меню подменю «Дополнительные возможности» с возможностью вызова любых внешних форм и файлов. Сделано с использованием ВК RWidjets.
При использовании обработки от azernot-а можно ограничивать права на показ и запуск обработок. Соответственно в меню доп.возможностей появляются только те файлы, на которые у пользователя есть права.
Моим пользователям очень ПОНРАВИЛОСЬ это меню дополнительных возможностей.
Более развернутая инфаhttp://www.1cpp.ru/forum/YaBB.pl?num=1169222935/84#84
Все комменты не читал, но судя по дискуссии. вещь полезная. +1.
artbear2 Не могу оценить МЕНЮ Доп.возможностей, ибо полный профан в 1с++… Подозреваю, что всё круто. Спасибо, за развитие Навигатора.
Автор, расскажи чуть подробнее что делается в твоей фиче и как она «привязана» к Навигатору?
Точно так же не смог оценить объявленную artbear фишку..
потому что тотально непонятно откуда ее скачать, как установить/подключить/запустить…
видимо — это только для приверженцев 1С++
>Точно так же не смог оценить объявленную artbear фишку..
http://openconf.1cpp.ru/beta/artbear/1cpp_classes.rar конфу и юзаем.
>потому что тотально непонятно откуда ее скачать, как установить/подключить/запустить…
>видимо — это только для приверженцев 1С++
Качаем отсюда:
Че, ответил тебе в личку, продублирую здесь
http://1cpp.ru/files/nightbuild.zip
http://www.1cpp.ru/forum/YaBB.pl?num=1169222935/0
http://www.1cpp.ru/forum/YaBB.pl?num=1169222935/103#103
Отвечаю на все вопросы по порядку.
— Для работы конфигурации нужны
1) последняя сборка 1С++ версии 2.5.0.2 (ночная сборка)
2) и ВК ФормЕкс 2.0.5 http://www.dorex.ru
.
— по поводу меню Доп.возможностей проверю.
У меня все ок, все работает.
У тебя ВК RWidjets какой версии?
.
— По поводу набора классов — честно скажу, нет времени детально все оформить, как обычно, на документирование нет времени.
Просто практически все эти классы созданы достаточно давно, прошли обкатку временем и доказали свою явную полезность.
.
— Полный адрес ветки с описанием всех изменений в указанной конфигурации с самого начала
.
— Последнее сильное добавление в набор классов — я показал, как помощью 1С++ возможно добавлять универсальные механизмы в конкретную конфигурацию, практически не изменяя саму конфу, только 4 строчки в глобальнике — это последние посты.
Посмотрите, я думаю, что понравится 🙂
.
Например, посмотрите вот этот мой пост
Разобрался, в чем была проблема.
http://openconf.1cpp.ru/beta/artbear/1cpp_classes.rar
http://www.1cpp.ru/forum/YaBB.pl?num=1169222935/114#114
— Исправлено — не работал класс «Общие.МенюНавигатораДополнительныхВозможностей» из-за неверной настройки в папке ExtForms
.
Текущий вариант готовой конфигурации с классами всегда выкладывается здесь
.
Заново закачайте утром 23.04.07 этот файл — он собирается ночью!
.
Более полное описание
Есть предложение: переименовать файлы, входящие в состав Навигатора, типа
_ExtRep_Admin.ert
_ExtRep_Viewer.ert
_ExtRep_SetParamRep.ert
_ExtRep_SetUsersGroup.ert
_ExtRep_SetLabel.ert
_ExtRep_SearchRep.ert
…
???
Не, считаю переименование ненужным. Если так уж хочется можно поместить все файлы НАВИГАТОРА в отдельный каталог, который можно назвать «_Navigator»
Обнаружился мелкий глючок.
Есть группа, в ней подгруппа и элементы. Отмечаю, вырезаю.
Иду в другую группу, вставляю — внезапно оказываюсь в другой группе.
При этом вставка произошла корректно — в нужное место.
…
и еще: при ручном добавлении файла в список — если путь к файлу присутсвует в списке каталогов — по умолчанию ставить алиас
Не могу продиагностировать ошибку, поскольку у меня она не возникает…
Попробуй закоментировать строку кода № 365
//Отчеты.НСтроки = ТекТабОтч.НомерСтроки;
Про алиас не понял… Вроде бы и так при добавлении файла используется идентификатор относительного каталога…
Ок. Покопаюсь еще.
А как «открепить» Полное описание..? Получается что штатно — никак…
Ну почему же, удалить файл описания можно той же кнопкой что и прикрепить (скрепка).
Если к обработке прикреплено полное описание, по нажатию на эту кнопку выплывает подменю Изменить / Очистить.
Cgc,/ мне уже это подсказали.. я тут обработку твою пиарю направо и налево…
Начал настраивать права по группам — не заработало. Заработало после:
обработка ExtRepViewer, процедура ОпределитьСписокГрупп() заменил:
1) Подходит =ПроверкаУсловия(ПроверяемоеЗначение,Условие,Значение);
на
Подходит =Подходит+ПроверкаУсловия(ПроверяемоеЗначение,Условие,Значение);
2)Если Соответствие = 0 Тогда
на
Если Соответствие = 1 Тогда
3)ИначеЕсли Соответствие = 1 Тогда
на
ИначеЕсли Соответствие = 2 Тогда
PS: буду внедрять по полной программе, если че нарою — могу намылить
PS: обработка отличная 😉
Поправлен механизм отнесения пользователя к группе. Спасибо OldCadet!
Все бы так баги искали… 😉
Всякое обсуждение по данной обработке — актуально однозначно!
Кхм… Посмотрел обработку ещё раз (+ поставлен ещё бог весть когда, по моему, с версии 1.1).
Есть ли возможность задать относительный путь? (КаталогИБ()+»тра-ля-ля»).
УРБД, чтоб её… свои ограничение накладывает…
Дельный вопрос! Поддерживаю!
Я работаю над этим.
Будут вшитые предопределённые каталоги:
1. Каталог из которого запускается навигатор
2. Каталог BIN из которого запущен сеанс
3. Каталог информационной базы в которой выполняетя навигатор
4. Каталог ExtForms информационной базы в которой выполняетя навигатор
5. Каталог prnForms информационной базы в которой выполняетя навигатор
6. Каталог пользователя информационной базы под которым запущен навигатор
…
К сожалению катастрофически не хватает времени…. Как сделаю, сразу размещу.
Чертовски нужен удобный механизм переключения относительных каталогв. Идентичная структура на работе и дома. Хочется притащив набор с работы и развернув его дома — быстро для всех обработок переключится на домашний каталог.
можно подробно рассказать — как это делать быстро и удобно?
Так я же давно сделал работу с относительными каталогами, полгода точно 🙂
И даже выкладывал или отправлял автору вроде, но автор эти изменения не принял.
В своей работе давно использую — например, один набор обработок в разных папках на сервере, на рабочем компе и домашнем компе.
Даже еще точнее — в постах 68 и 69 мы с автором говорим о решении проблемы с относительными путями.
ЗЫ я лично не использую последние версии именно из-за того, что неудобно работать с относительными путями.
(95) А вот на счёт «отправлял автору» ты не прав.. Нету, пересмотрел все архивы.
Механизм работы относительных каталогов:
— Заводим относительный каталог с идентификатором «ПутьДоОбработок», указываем путь к корневому каталогу в том месте где сейчас находимся (например \FSAPPSWin321C)
— при добавлении, программа спросит, мол «осуществить поиск во всех обработках и если найден будет указанный путь, заменить на относительный?»
— Пути всегда можно восстановить/установить через кнопочку «Обновить каталоги» на вкладке «Каталоги»
— приходим домой, меняем путь относительного каталога «ПутьДоОбработок» на свой (например C:1C)
Всё!
При запуске обработок, если путь указан с использованием относительного каталога будет подставляется путь указанный на вкладке «Каталоги»
Например, запускаем демку «Печать документов от имени поставщика», для неё указан путь: <ПутьДоОбработок>New_demoPDPDP_demo_zav\r
— На работе это путь \FSAPPSWin321CNew_demoPDPDP_demo_zav\r
— Дома это путь C:1CNew_demoPDPDP_demo_zav\r
После комментариев artbear, я сделал так:
Если получаемый путь не существует, вместо относительной части подставляется последовательно:
1. КаталогИБ (КаталогИБ() + «New_demoPDPDP_demo_zav»);
2. Каталог ExtForms (КаталогИБ() +»ExtForms»+ «New_demoPDPDP_demo_zav»);
3. Каталог PrnForms (КаталогИБ() +»ExtFormsPrnForms»+ «New_demoPDPDP_demo_zav»);
Возможно, я не так понял, возможно письмо от artbear не дошло, но после того, как я это сделал никаких претензий не было. Поймите, я сам не использую навигатор! Соответственно о багах и пожеланиях узнаю только от вас!
Обратите внимание на п. 93. Это будет. Т.е. в относительных путях можно будет использовать все указанные пути без указания на вкладке «Каталоги». Когда это будет — вопрос отдельный, надеюсь, что скоро.
Ага, я как раз и говорил о таком варианте — если путь обработки не существует, не важно, относительный или нет, пытаемся найти этот путь относительно каталога ИБ и других предопределенных каталогов.
Меня такая схема вполне устраивает.
Версия 1.5
Версия 1.5 (07.09.2007)
— Реализован пеханизм предопределённых относительных каталогов
• Каталог, откуда запущен НАВИГАТОР (Идентификатор «ERZ»);
• Каталог запускаемого файла 1С:Предприятие (Идентификатор — «BIN»);
• Каталог пользователя информационной базы под которым запущен НАВИГАТОР (Идентификатор — «USR»);
• Каталог информационной базы в которой выполняетя НАВИГАТОР (Идентификатор — «IB»);
• Каталог ExtForms информационной базы в которой выполняетя НАВИГАТОР (Идентификатор — «EXF»);
• Каталог PrnForms информационной базы в которой выполняетя НАВИГАТОР (Идентификатор — «PRN»);
Эти идентификаторы нельзя использовать в относительных каталогах.
При редактировании каталогов в списке отчётов (обработок) доступны действия:
• восстановление реального каталога;
• замена относительного каталога на другой (в т.ч. предопределённый);
• ручное редактирование каталога;
В SetParamRep.ert желательно бы строчку
Возврат «ни выбрано нихрена!»;
привести к более приличному виду 🙂
(103) ответил по почте через этот сайт.