Панель избранного 3.03 (beta)




Принцип обмена данными из 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='\

97 Comments

  1. bashta.aleksey

    Нужная вещь

    Reply
  2. Evg-Lylyk

    Мощно 🙂 побольше бы на инфостарте разработок такого уровня

    Reply
  3. Sam.

    Вполне, +1. Буду юзать, спасибо!

    (2) согласен!

    Reply
  4. MRAK

    (0) плюсую авансом, обязательно посмотрю!

    Reply
  5. MRAK

    (3) зря ты так. удобная вещь в снеговике, типо «рабочий стол» в винде

    Reply
  6. Totoro

    (3) Без этого тоже не обходится ) Но и об удобствах стоит подумать …

    (7) Вообще это совершенно другой внешний вид (если имеешь ввиду первую версию панели избранного). А отдельно выложил потому, что первая версия тоже используется …

    Reply
  7. halushka

    (3) Не согласен. Код без интерфейса просто академический интерес представляет не более. Юзабельность штука не менее важная. Украшательство этт одно, а тут нечто более красивых кнопочек. ИМХО качество юзеров оставляет желать лучшего, потому обработка «в тему». Согласен что ничего новаторского нет в идее, но кто-то должен делать просто хорошую работу. Пока великие мира сего заняты чем-то «по-грандиознее». 🙂 Может просто стареем ???

    От себя просто плюс. За качество работы.

    Reply
  8. acsent

    Выложи файл настроек, для БП

    Reply
  9. acsent

    Нашел, в макете ))

    Reply
  10. IamAlexy

    плюсану (раз так модно) но:

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

    максимум на что они способны:

    мужики — фото бабы с сиськами на фон рабочего стола

    женщины — ребенок/котенок/щенок на фон рабочего стола

    соответственно идея хорошая но по сути в реальной жизни нафиг пользователям (по крайней мере большинству) нафиг не нужная…

    а так да — хорошо сделал

    Reply
  11. Totoro

    (12) Ты просто не понял идею. Для настройки интерфейса конкретным пользователем полно и без этого инструментов (даже для таких которым нужны обои с картинками). Вот если бы ты пробовал настроить стандартную панель функций … Особенно добавить туда внешние отчеты и обработки, которые конфигурацию не меняют. Так что это обработка главным образом замена стандартной панели функций для конфигураций, где нужен интерфейс сразу для всех/группы пользователей и администратор мог бы просто его изменять/хранить не возясь с каждым уникумом. А конкретному пользователю выдумывать свой интерфейс незачем …

    ЗЫ Плюсов — потому что модно — мне не нужно … 🙁

    Reply
  12. Magister

    (12) так админ может настроить раз — и всё 🙂

    сейчас скачаю посмотрю…

    Reply
  13. IamAlexy

    (13) да понял я идею..

    просто единственное действие которое пользователи делают с панелью функции заключается в «настройка-отключить панель функций» ибо она при старте тормозит запрашивая данные из базы…

    хорошо если у вас не так 🙂

    (14) вот админу больше делать нечего 🙂

    Reply
  14. Magister

    (15) У нас в одной конфе нету панели функций, а в другой — да, отключают 🙂

    Но думаю эту поставить на первую… там запросы слегка «особенные», думаю понравится народу

    Reply
  15. Magister

    (0) Из области хотелок — неплохо было бы иметь возможность размещать на форме табличные поля документов/справочников

    Reply
  16. Totoro

    (15) Конечно нет 🙂 Первым делом я им отключил «Монитор» и «Антикризисные отчеты». В остальном все довольны ) А теперь и я, т.к. с обновлением возиться не требуется.

    (17) Не вижу особого смысла сильно усложнять обработку — будет тормозить и универсальность уменьшится. Да и 8.2 скоро со всем этим встроенным 🙂 В 8.1 проще отчетами пользоваться. Или создай свою закладку и пропиши её работу.

    Reply
  17. Magister

    (18) Почему уменьшится? Я имею ввиду обычные табличные поля, привязанные к ДокументСписок.*** или СправочникСписок.***

    Хотя может и правда не стоит усложнять. Посмотрим…

    Reply
  18. Totoro

    Обнаружена ошибка с отключению видимости всей группы кнопок/действий. Вообще завтра-послезавтра уже выложу немного исправленную обработку с описанием, т.ч. просьба немного подождать.

    Да, и еще поступило предложение улучшить работу с ограничением доступа с возможностью заполнения доступа у подчиненных/всех или наследованием. Интересуют мнение по этому поводу )

    Reply
  19. mini_root

    интересно, как оно внутри устроено

    буду копать, глядишь какая идея в голову придет

    P.S. плюсую

    Reply
  20. as

    Прикольно.

    Reply
  21. fuxic

    {Форма.Форма(492)}: Преобразование значения к типу Число не может быть выполнено

    НадписьКнопка.Лево = КнопкаЛево * 92;

    соре, я доигрался с обработкой.

    Reply
  22. fuxic

    это как-то из-за кнопок получается

    Reply
  23. fuxic

    и у меня не работают галки для действий «в новой колонке». они постоянно добавляются в новой колонке хотя по умолчанию галка сброшена

    Reply
  24. fuxic

    зачет. 15 минут и я могу оценить всю мощь драг энд дроп технологий =)) единственное что я бы посоветовал добавить — это отборы на списки, чтобы не программировать ни строчки кода. то есть дать возможность на простые действия вроде открытия списков справочников или документов накладывать дополнительные отборы. Например, «хочу видеть только документы по которым я ответственный», «мои вопросы с состоянием «закрытые»» или отчет на базе универсального с моими настройками

    Reply
  25. jem

    (0) Хотелось бы кнопочку в пиПанельИзбранного2 «Обновить», чтобы перечитывались настройки формы, если считывание происходит из файла

    Reply
  26. Totoro

    (23), (25) будет исправлено в новой версии

    (26) Насчет выбора настроек отчетов обязательно сделаю позже (думаю удобно будет), а вот отбор … Для добавления отбора на форму достаточно исправить одну строчку кода + добавить параметры отбора, а вот интерактивное редактирование потребует больших энергозатрат, т.ч. не судьба )

    (27) Тоже планирую сделать в ближайшем времени.

    Reply
  27. IgorMgn

    Плюс, однозначно. Руки у самого как-то не доходили, а вопрос уже назрел. Только вот сохранение настроек через справочник в УТ не работает, т.к. настройки через регистр сведений сохраняются. Я в плане универсальности 🙂

    Reply
  28. Froloid

    Авансом плюс (за описание и континки). На днях поюзаю.

    Reply
  29. IOL

    Прикольная штуковина, мну очень понравилась

    Reply
  30. RomDron

    «Закладок монитора и антикризисных отчетов в БП естественно не будет»

    А почему? Раз уж пошло развитие обработки, можно добавить и вставку произвольных объектов (ТЗ, списков с произвольным наполнением и т.д)

    Reply
  31. IOL

    Мелочь, но при закрытии если набор данных изменен, спросить про сохранение.

    Вопрос, а как создавался интерфейс из стандартного? Ручками набивали или какая то процедура конвертации с формы Обработки.ПанельФункций

    Reply
  32. Totoro

    Версия 2.03:

    1) Добавлено более менее подробное описание в обработку «Настройка панели избранного».

    1) Добавлено сохранение настроек в типовой регистр сведений «Сохраненные настройки»

    2) Доработана закладка «Метаданные» в «Настройка панели избранного». Из закладки метаданные можно перетаскивать сразу группы действий (например, после наложения фильтра на подсистемы).

    3) Подправлен механизм перетаскивания.

    4) Добавлена возможность указывать для каждого подраздела макс. количество колонок и их относительную высоту. Общую высоту и ширину кнопок.

    4) Другие мелкие исправления.

    Для работы в «Панель избранного» с сохраненными настройками версии 2.02 их сначала единожды нужно загрузить и сохранить в новой версии «Настройка панели избранного».

    Reply
  33. Totoro

    (32) Как уже говорил, излишний функционал и универсальность порождают большие накладные расходы в том числе и в скорости работы обработки (т.к. она внешняя). Гораздо проще добавить нужные закладки и прописать их работу для конкретной конфигурации (в принципе, для этого и делал настройки в макете — чтобы можно было передать пользователю готовую настроенную обработку). С теми же монитором и антикризисными отчетами проблем не должно возникнуть. Если уж очень надо, то могу сделать позже такую стандартную версию для БП.

    (33) Сделаю.

    Старым добрым копипастом ) В версии 2.01 обработки настройки еще не было. Все настройки читались только из макета — табличного документа, где по областям было все прописано. А потом уже функционал расширился. В принципе, времени на копирование не много потребовалось. На разработку и тестирование конвертера ушло бы больше …

    Reply
  34. LavS

    100й плюс тебе за эту обработку! 🙂

    Reply
  35. Asdam

    У меня в настройках не активны кнопки «Переместить вверх/вниз»

    Reply
  36. Totoro

    Версия 2.04:

    1) В обработке «Панель избранного» переделано формирование формы. Теперь на форму выводятся только видимые элементы. Соотв. пропали «дыры» в колонках и действиях. Настройка видимости пользователем. вынесена в отдельную форму, при изменении видимости происходит пересборка формы. Добавлено восстановление настроек.

    2) В обработке «Настройка панели избранного» исправлена ошибка с сохранением в справочник из меню.

    Добавлена модифицированность формы при изменении данных. Вопрос о сохранении измененных данных при ручном закрытии формы (кроме места хранения Макет).

    Reply
  37. Totoro

    (37) Ну, так только сейчас сделал )

    Reply
  38. dim_85

    (38) я как понял в новой версии исчезают «дырки», которые по началу немного напрягали, но что то я так и не понял где это всё настраивается…есть например три кнопки, назначил что первая и третья кнопки видно у одного, вторую кнопку- у другого, у первого пользователя так и осталась эта «дырка» между значками 1 и 3-им, можно ли чтоб автоматически значки смещались влево?

    Reply
  39. Asdam

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

    Reply
  40. Totoro

    (40) (41) Естественно 🙂 Я для кнопок и не делал. «Дырки» убираются в нижней части — у действий и колонок. С кнопками в следующем варианте буду разбираться, когда текущий вариант протестирую.

    Reply
  41. WKBAPKA

    что то не работает. Открываю получаю:

    {Форма.Форма(2097)}: Поле объекта не обнаружено (Избранное_СохранитьВРегистр)

    по причине:

    {Форма.Форма(2097)}: Поле объекта не обнаружено (Избранное_СохранитьВРегистр)

    Reply
  42. Totoro

    (43) Спасибо, исправлю в следующей версии. Пока эту и следующую строчку можно закомментировать.

    Reply
  43. Totoro

    Версия 2.05:

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

    2) Исправлены ошибке при выборе картинки

    3) Исправлены ошибки при сохранении/загрузки в справочник и регистр

    4) для внутренней функции пиОткрытьФорму добавлен второй параметр Отбор. Пример использования:

    — добавляем док. «Поступления товаров и услуг» с простым действием

    — убираем флаг простого действия

    — в коде после «.ПолучитьФормуСписка()» добавляем «, пиПараметры».

    — добавляем параметры «ВидОперации» и прописываем его значение как список значений видов операций «Оборудование» и «Объекты строительства»

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

    Reply
  44. Totoro

    46+ Для работы с сохраненными настройками версии 2.03, 2.04 необходимо их загрузить/сохранить в новой версии «Настройка панели избранного».

    Reply
  45. dim_85

    В новой версии загрузил и сохранил настройки, выдает при открытии:

    {Форма.Форма(323)}: Поле объекта не обнаружено (ВысотаКолонокДействий)

    ПодразделВысотаКолонок = ПодразделДЗ.ПрочиеДанные.ВысотаКолонокДействий;

    Reply
  46. Totoro

    (48) У тебя настройки версии 2.02? Загрузи/сохрани настройки в файл в версии 2.04 или 2.03, а затем в новой 2.05. Я не стал в новой версии лишний код конвертации с версии 2.02 добавлять. Если не получиться — тогда добавлю.

    Reply
  47. lexkex

    Штука очень полезная 🙂

    Reply
  48. Istur

    Да, штука очень полезня и интересная)) Молодца автор))

    Reply
  49. ksvt

    (+)

    💡 А еще можно организовать функцию в модуле обработки «ДобавитьНаПанель», чтоб её можно было вызвать из любой формы.

    Reply
  50. Totoro

    (52) В самой обработке не хранятся настройки в полном виде. При загрузке они обрезаются в зависимости от ограничения прав. И соотв. не сохраняются Поэтому такую функция добавлять нет смысла.

    Reply
  51. ksvt

    (53) А в обработку настройки? Ибо если добавлять такую кнопку — все равно придется конфигурацию менять, можно тогда и затащить в конфигурацию обе. А саму панель — перезагрузить после добавления.

    Reply
  52. Totoro

    (54) Ну, допустим, я добавлю эту функцию в обработку настройки. Т.о. она должна будет добавить кнопку/действие на одну из страниц и потом перезагрузить панель с данными? Все равно придется ссылаться на имеющееся дерево значений, что бы выбрать нужную строку-родитель и передать все нужные параметры. Либо выделять одну из закладок под такие действия (наподобии рабочего стола).

    Reply
  53. birkoffff

    Автору респект, спас от работы на новогодних праздниках…

    Начала писать аналогичное, а оно уже есть )))

    Reply
  54. Asdam

    (42) Как на счет убирания «дырок» для кнопок? По-моему это единственный недостаток.

    Reply
  55. Totoro

    (57) Убирания «дырок» описано в (46) п.1 — задаются настройки в группе кнопок. Правда, задавать конкретные позиции кнопок будет уже нельзя.

    Reply
  56. taishy

    Вот бы туда табличное поле «универсальное» какое-нибудь добавить.. Чтобы туда выводить результаты отчетов/журналы документов/и тд..

    Reply
  57. Totoro

    (59) Я понимаю, что универсальности и удобства всегда хочется побольше, но пока это неоправданная трата времени. Сейчас я занят другой задачей. Я выкладывать сделанное тяп-ляп не хочется.

    Reply
  58. taishy

    (60) Подскажите хотябы, в каком направлении действовать?

    Reply
  59. Totoro

    (61) Если просто нужна доп. страница с одним из универсальных отчетов/ списков, то достаточно добавить еще одну страницу в панель шаблона на форме. И прописать при открытии её инициализацию. Если используете «Инструменты разработчика», то там есть неплохой универсальный список.

    Или в типовой панели посмотреть как «Монитор» или «Отчеты руководителю» заполняются.

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

    Reply
  60. specialist

    Ждем новую версию 😀

    Reply
  61. rasswet

    сначала потыкался так и не понял как пользоваться.

    но потом что-то начало прояснятся.

    если сохраняю настройки в файл. не понятно как их потом в саму обработку загрузить (восстановить). а через восстановление из регистра работает.

    Reply
  62. anp

    В пиПанельИзбранного2.Форма неправильное описание — там остался хелп от Монитора из БП

    Reply
  63. Totoro

    (65) Спасибо. Исправлю.

    Reply
  64. Asdam

    Неплохо бы добавить возможность открытия отчетов с определенной сохраненной настройкой. Т. е. там, где мы ставим флаг «Простое действие», выбираем «Вид: Отчет», добавить возможность выбора сохраненной настройки, чтобы отчет открывался и формировался с выбранной настройкой.

    Reply
  65. Asdam
    Reply
  66. Totoro

    (67) Давно хотел сделать. Сейчас как раз занимаюсь переделкой панели. Думаю включить эту возможность обязательно.

    (68) Спасибо за пример.

    Reply
  67. Yuri2010

    Очень полезная вещь! Есть 2 вопроса:

    1) Можно ли на закладке панели выводить таблицу отчета ( как БП для руководителя)?

    2) Как сделать чтобы настройка грузилась для всех пользователей, а не загружать и сохранять ее для каждого?

    Reply
  68. Totoro

    (70)

    1) Пока нельзя (если только самому не изменять сборку формы или добавить закладку). В новой версии будет добавление на форму Табличного документа или HTML-документа.

    2) Если выбор метод хранения настроек «Стандартно», то настройки сохраняются для текущего пользователя через СохранитьЗначение / ЗагрузитьЗначение, если метод хранения «Файл», то в документах текущего пользователя (можно переопределить в модуле обработке получение пути к хранению настроек и сделать его общим). Или, если типовая, использовать методы хранения «Регистр» или «Справочник» — тогда можно выбрать сохранение для группы пользователей. Ну, или переписать сохранение в свое место — всего две процедуры добавить.

    Reply
  69. Totoro

    Выложил тестовую версию 3.01

    — переработана сборка формы

    — на форму можно добавлять табличное поле, табличный док, HTML-документ

    Планируется:

    — написать документацию

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

    — добавить панель внешних обработок и дерево метаданных (как в 2.05)

    — добавить подключение контекстной подсказки

    Reply
  70. Sol

    А можно увидеть макет настроек панели, чтобы получить результат как на выложенных скриншотах (там где присутствует левая боковая панель — «Начало работы», «Схема работы»)? Напоминает Рабочий стол в 8.2, а также старый вариант «Панели функций» из БП редакции 1.5. К тому же, как я понял, именно в этой настройке видны новые возможности панели 3.01.

    Когда в новой редакции БП сделали полноэкранный рабочий стол — я просил разработчиков совместить старую концепцию с новой. Обещали подумать, но всё осталось как есть. А сейчас уже 8.2 вышла…

    Кстати, в версии 3.01, нет и предыдущих предопределённых настроек (БП, КД), пришлось сохранять из 2.05, а потом импортировать в 3.01.

    Также 3.01 ещё сыровата пока (2.05 в этом плане очень хорошо вылизана) — в некоторых местах вылезают глюки и программные ошибки. Но добавленные возможности очень интригуют, будем ждать развития.

    Reply
  71. Totoro

    (73) Вечером выложу подправленную версию и пример настроек. Старые настройки 2.05 специально не конвертировал, т.к. структура данных 3.Х сильно отличается и несколько раз менялась. Поэтому сделал импорт до того как доделаю механизм загрузки.

    Reply
  72. Totoro

    Тестовая версия 3.02

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

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

    — добавлен пример настройки для БП 2.0 с табличным полем

    Reply
  73. cleaner_it

    Отличная реализация!

    Reply
  74. cleaner_it

    Не хватило отборов/сортировки/группировки в табличных полях справочников:(

    Про группировку можно глянуть здесь http://infostart.ru/community/groups/148/blog/1157/

    PS: Пока сам попробую, получится — попрошу включить в состав панели

    Reply
  75. cleaner_it

    Еще одна идея, правда не могу пока оценить ее осуществимость — внедрять существующую форму списка/элемента для справочников/документов/… на форму панели. Должно получиться мощно, если использовать с умом

    PS: кажется нашел пример такой реализации в ЗиУП 2.5.26.3, в форму справочника добавляется информация по остаткам отпусков. Буду проверять предположение:)

    Reply
  76. cleaner_it
    {Форма.ФормаНастройки(108)}: Значение не является значением объектного типа (Строки)

    РодительСтроки = ТекущиеДанные.Родитель.Строки;

    вот здесь подправить нужно. Возникает при нажатии кнопки «Вниз» на корневом узле

    Reply
  77. Totoro

    (77) В планах, но позже.

    (78) Не вижу особого смысла. Слишком много особенностей при создании панелей, установке привязок. Да и разобрать состав имеющейся формы еще тот процесс… Как вариант использовать разработку Декомпиляция и анализ формы с генерацией кода формы — там генерируется код создания элементов на форме.

    (79) Спасибо, исправлю.

    Reply
  78. cleaner_it
    {Справочник.ВнешниеОбработки.Форма.ФормаЭлемента(189)}: Ошибка при вызове метода контекста (Создать): {ВнешняяОбработка.пиПанельИзбранного3(11,7)}: Переменная с указанным именем уже определена (мТекущийПользователь)

    ошибка в УТ 8.1, при попытке добавить в справочник внешних обработок

    Reply
  79. Totoro

    Тестовая версия 3.03

    — исправлены (79), (81)

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

    — обновлен пример настройки для БП 2.0 с табличным полем

    Reply
  80. dim85

    Всё супер, до этого ставил бухам 2 версию, сейчас 3 версия вышла ещё удобнее, бухгалтера только за, очень понравилось, только не могу немного настроить:

    Выставляю ТабличноеПоле, там указываю, что это список например документов Реализация, но как можно применить, чтоб при открытии всегда открывался текущий месяц, подобие такого:

    ДокументСписок.отбор.дата.видсравнения=ВидСравнения.ИнтервалВключаяГраницы;

    ДокументСписок.отбор.дата.значениеС=НачалоМесяца(ТекущаяДата());

    ДокументСписок.отбор.дата.значениеПО=КонецМесяца(ТекущаяДата());

    ДокументСписок.отбор.дата.использование=истина;

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

    Reply
  81. Totoro

    (83) Здесь нельзя обращаться к данных (реквизитам формы), т.к. их не существует! Например, присвой для удобства имя табличному полю — «ДокументСписок». Тогда обращение к отбору в ПередОткрытием будет: «ЭлементыФормы.ДокументСписок.Значение.Отбор». Далее работай с отбором как обычно.

    ЗЫ В примере настроек есть код установки отбора для контрагента и договора такого списка и добавление на форму полей ввода с обработкой их событий…

    Reply
  82. dim85

    Всё получилось, спасибо огромное!

    Reply
  83. cleaner_it

    (0) Мне кажется, не хватает наследования прав доступа подчиненным элементам дерева от родительских

    Reply
  84. Totoro

    (86) Вообще, сейчас ограничения на доступ накладываются от родителя к подчиненным. Т.е. если для группы установить ограничение на «ПолныеПрава», то она (и все её подчиненные элементы) будет доступна только для полных прав. Если у тебя другое видение, тогда приведи примерчик хотелок.

    Reply
  85. RomikMf

    Хорошая штука. Единственный минус — это возможность в режиме «Только просмотр», открыв форму объекта, нажать кнопки «Найти в списке», «Копировать» и получить доступ к стандартной форме списка объектов. Их, конечно, можно сделать недоступными в обработчике, но хотелось бы, чтобы это происходило автоматически.

    Reply
  86. Totoro

    (88) Т.к. кнопки на командную панель добавляются не программно, а используется автозаполнение, то что либо с ними сделать проблематично (хотя конечно можно добавлять стандартные кнопки программно, но не документированными средствами и с большой возней). Т.ч. единственный приемлемый способ — либо добавлять свои кнопки, либо настроить права на просмотр этого вида объекта. Сейчас пока руки не дошли до описание кнопок командной панели в настройках.

    Reply
  87. RomikMf

    У меня сделано нечто подобное, только настройки формируются и хранятся в отдельном справочнике и назначаются пользователюгруппе пользователей в регистре сведений. Эту задачу решил тем, что при открытии формы объекта сначала собирал все кнопки в дерево значений, потом отключал свойство «Автозаполнение» у командной панели и добавлял кнопки по дереву значений программно.

    Reply
  88. Flinkey

    Большое спасибо за разработку, постоянно ею пользуюсь — очень доволен. Будет ли дальнейшее развитие? Фильтры, отборы, сортировки в списках…

    Reply
  89. mevgenym

    __

    Reply
  90. pmtvv

    нужная обработка, спасибо

    Reply
  91. DrAku1a

    Авансом плюс — за описание и картинки. Нужная вещь! Спасибо!

    Reply
  92. АлексейН

    Нужная вещь, авансом плюс буду юзать

    Reply
  93. CaSH_2004

    ОТЛИЧНАЯ вещь, было бы неплохо еще и возможность рисовать схемы последовательностей документов/справочников (указывая стрелками направления и ветвления). ОГРОМНОЕ спасибо автору!!!

    Reply
  94. break

    давно такую вещь хотел, надо только под 8.2 сконвертировать

    Reply
  95. break

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

    Reply
  96. Totoro

    (100) Для того, чтобы нормально работало заполнение таблицы значений нужно:

    — добавить реквизит(-ы) на основную форму «Форма» обработки с типом ТаблицаЗначений (я добавляю сразу несколько ТЗ1, ТЗ2, ТЗ3, ТЗ4). Без данных в ТЗ ничего храниться не будет.

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

    — прописать в ПередОткрытием присвоение имени данных и код заполнения этой ТЗ

    Пример настроек для БП в файле — ТЗ с остаками по складам

    Reply
  97. break

    (101) Спасибо с примером быстро разобрался. Очень не хватает обрабочика «ПриСменеСтраницы», т.е. чтобы при переключении вкладок данные в Табличных полях обновлялись.

    Reply

Leave a Comment

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