V8Reader (с расширенным анализом форм) Upd.




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

98 Comments

  1. itar59

    Даже нет слов!

    Мог бы и 10+ поставил

    одна из полезнейших разработок!

    Reply
  2. pumbaE

    При сравнение 2-х конфигураций:

    {Форма.НавигаторПоФайлам.Форма(41)}: Поле объекта не обнаружено (ИндексКартинки)
    ОформлениеСтроки.Ячейки.Имя.ИндексКартинки=ДанныеСтроки.ИндексКартинки;
    

    Извините, видно вспышка газа на Венере и в результате преломления лучей солнца, мне ударило в голову и я получил такую ошибку…

    Если серьезно, еще несколько раз попробовал все работает четко.

    Reply
  3. BalVlad

    Очень нужная разработка, спасибо. От меня +

    Reply
  4. tango

    мощно, спасибо

    Reply
  5. ThunderUA

    Нужная вещь

    Reply
  6. KliMich

    2 раза Супер!

    Reply
  7. xbic

    Обязательно надо

    Reply
  8. WendyH

    Вообще-то функциональности стандартной обработки сравнения и объединения конфигураций во многом хватает и даже где-то удобней и быстрей. Единственное прекрасное незаменимое — это сравнение печатных форм. За это спасибище!

    Reply
  9. Max.Potapov

    Архиважная вещь, большое спасибо за полезную разработку.

    Reply
  10. Программулькин

    ( 8 ) WendyH , +1 . Стандартный вполне функционален и удобен . А вот за сравнение форм — действительно плюс !

    Reply
  11. pumbaE

    (8) Подскажите, а как получить сравнение печатных форм? Ну никак не получается. скрин

    Reply
  12. semenich_b

    Спасибо!

    Reply
  13. bambr1975

    (11) pumbaE, спасибо Вам за скриншот — сразу стало видно, что с привязками имеет смысл еще поработать — а по поводу макетов печатных форм — просто по умолчанию работает режим:

    Сравнениефайлов.СпособСравнения=СпособСравненияФайлов.ТекстовыйДокумент;

    При попытке показать различие в табличном документе, он вызывает исключение — а при вызове исключения там ищется файл text (как для модулей объектов). Просто не предусмотрел потребность в сравнении табличных документов. Макеты-то сами из дерева объектов можно вызвать по-одиночке. Согласен, надо доработать. Вот, по поводу фильтра Вы мне тоже сказали, глюк с привязками показали — отдышусь — и все исправлю.

    Reply
  14. bambr1975

    (11) pumbaE, привязки и обработку сравнения табличных документов исправил — смотри рисунок к сообщению и новый скриншот к публикации.

    Reply
  15. amiralnar

    Отличная работа! Но я так и не понял, в чем отличие от стандартной? Расскажите, пожалуйста, как вы ей пользуетесь? Какой сценарий работы применяете?

    Reply
  16. bambr1975

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

    Reply
  17. amiralnar

    (16) Спасибо за ответ!

    Сравнение обновлений может быть полезно для принятия решения о перепрыгивании через версию.

    Сравнение обработок доступно через стандартный диалог сравнения файлов: Меню «Файл — Сравнить файлы»

    Поясните, пожалуйста еще один момент:

    есть возможность детально проанализировать изменения в формах (эта возможность отсутствует в стандартном функционале)

    На данный момент в стандартном функционале доступны следующие действия:

    — открыть старую форму

    — открыть новую форму

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

    Какая именно возможность отсутствует в стандартном функционале?

    Reply
  18. bambr1975

    Ну — считайте, что про сравнение обработок вы меня просветили (стыдно). Да и отчеты о сравнении в стандартном функционале, не спорю, побогаче. Но, Вы ведь понимаете, что все мы занимаемся одним общим делом — пытаемся разобраться… У каждого это происходит по-своему — кому-то нужно написать такую обработку для того, чтобы что-то расставить по своим местам. И, может, если это, все-таки, дает какие-то видимые результаты, оно к лучшему?

    Reply
  19. amiralnar

    (18) Как я уже отметил, вы проделали отличную работу, я нисколько не умаляю важность вашей обработки.

    Мне было важно узнать, какое преимущество она имеет, как её можно использовать в работе, вот и все.

    Спасибо!

    Reply
  20. Кадош

    очень круто. Спасибо

    Reply
  21. Pavel777777

    Гениально) … а нет ли возможности выводить размер файлов в колонке … у меня, например, «раздулась» конфигурация КА мегов на 150 после всех обновлений, а как найти из-за чего, пока не нашёл возможности … а так было бы наглядно видно, какие объекты конфигурации сколько места занимают….

    Или же это уже есть в этой обработке?

    Reply
  22. Pim

    Если то, что нарисовано на картинках правда, то ОГРОМНЫЙ респект и уважуха автору.

    Reply
  23. bambr1975

    (21) Pavel777777, в навигаторе файлов есть кнопки, перемещающие Вас в каталог распаковки — делаете в этом каталоге сортировку по размеру файлов и определяете, в чем у вас проблема. Наверное, так.

    Reply
  24. Pavel777777

    (23) Ясно, спасибо … но тут есть два момента ))) во-первых — названия файлов не совсем понятные сходу), а во-вторых — многие объекты расположены в папках, поэтому размер сразу не показывается. В принципе, это, конечно, можно прикрутить и самому…

    Reply
  25. karakozov

    Разработка весьма полезная, если не сказать очень полезная,Стандартные механизмы не позволяют анализировать формы и макеты, бывает сложно понять что же изменилось.Отличная работа.+

    Reply
  26. samamoiloff

    Здравствуйте. Огромное спасибо. Могу ли использовать в своих исследованиях-разработках? Со ссылкой на Вас, разумеется.

    Reply
  27. bambr1975

    Я не против.

    Reply
  28. Rustig

    (0) можно ли с помощью вашего инструмента увидеть код в модулях, не включенных в поставку?

    Reply
  29. bambr1975

    (28) Rustig, нельзя.

    Reply
  30. FLYYY1986

    Спасибо большое, очень меганужная штука!

    Reply
  31. Rustig

    (29) Спасибо 🙂

    есть своя разработка, код модуля не включен в поставку, поэтому вот спрашиваю — анализирую: достаточна ли защита? …обфускацию кода делать не хочется (имхо, трудоемко)

    Reply
  32. MRAK

    Круто!

    Reply
  33. antek

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

    Как тока времени хватает писать такое для себя любимых

    Reply
  34. yalo

    Обязательно скачаю, спасибо!

    Reply
  35. awa

    К сожалению, на данный момент, обработка несовместима с подсистемой «Инструменты разработчика». В общем модуле ирГлобальный есть функция

    Функция ЛксСтрокаВнутрВХМЛТело(вхСтрока, выхХМЛТело = Неопределено) Экспорт

    из-за этого при попытке анализа формы возникает ошибка

    {Форма.РазборФормы.Форма(1904,9)}: Процедура или функция с указанным именем уже определена (ЛксСтрокаВнутрВХМЛТело)
    Функция <<?>>ЛксСтрокаВнутрВХМЛТело(вхСтрока) (Проверка: Толстый клиент (обычное приложение))

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

    Reply
  36. bambr1975

    (35) awa, спасибо за совет. Признаю, исправлюсь. На счет заимствования чужого кода — вообще сложный вопрос — насколько это допустимо. Поэтому и не хотелось изменять характерные признаки, для сохранения сходства с оригиналом.

    Reply
  37. tormozit

    (36) Префикс Лкс был выбран специально на основе анализа вероятности встретить его в коде в другой роли. Поэтому достаточно просто сделать замену всех вхождений «Лкс» на свой префикс. Несовместимость с подсистемой ИР для многих станет очень неудобным фактором.

    Reply
  38. Trofimov_M

    ++

    Reply
  39. awa

    (36) Насчет допустимости заимствования чужого кода — если бы автор (в данном случае уважаемый tormozit) не хотел бы допустить копирования своего кода, то не выкладывал бы его в открытом виде, или четко написал бы в публикации и в самом коде о нежелании использования своего кода другими. Повторное использование кода — вещь, безусловно, полезная. Я думаю, что при копировании чужого кода префиксы можно и нужно менять, а в комментариях просто оставить информацию об авторстве кода и ссылку на источник.

    Reply
  40. zavedeev

    Авторы +10, классная разработка, молодец.

    Reply
  41. sound

    Работа, видимо, проделана немалая, поэтому плюс. Кстати как правильно подмечено в (17) многие пользователи (да и разработчики) не используют Меню «Файл — Сравнить файлы», хотя вещь действительно очень удобная. Америку не открою конечно … вот для чего это нужно программистам понятно, а вот для бухгалтеров, например, она становится незаменимым помощником при «анализе обороток» (проводок), когда хочется понять что изменилось в оборотке за период или вообще что изменилось в проводках отдельного документа после его перепроведения. Работает это примерно так:

    1) Бухгалтер открывает проводки документа любимой кнопкой «ДтКт».

    2) Жмакает правой кнопкой по полю с проводками, выбирает «вывести список», получает печатную форму, и сохраняет ее на комп в формате по умолчанию MXL (файл1.mxl).

    3) Перепроводит документ, заходит в проводки и также как в пунке 2 создает файл файл2.mxl

    4) Меню «Файл — Сравнить файлы», выбирает файл1.mxl и файл2.mxl

    5) Видит что изменилось.

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

    Reply
  42. Boroda

    Да, это то, что было бы очень полезно иметь в своём арсенале инструментов. Большое спасибо и, конечно, «+».

    Reply
  43. bambr1975

    (35),(37),(39) Обновил. Добавил в код комментарии со ссылками на изначальные источники. Убрал префикс Лкс из трех функций анализа документа DOM формы.

    Reply
  44. RomanUzmov

    Обработка супер! Спасибо!

    Reply
  45. elena_77

    Спасибо огромное. Проделана большая и нужная работа.

    Reply
  46. elena_77

    Разработка полезная автору плюс

    Reply
  47. iov

    (0)сравнение УПП-УПП cf windows 7 проф

    {Форма.Форма.Форма(1512)}: Индекс находится за границами массива

    СтрокаСравнения=ДеревоМетаданных.Строки[0];

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

    Reply
  48. bambr1975

    (51) iov, эта надпись появляется, когда что-то напутано с каталогами распаковки. Создайте для каждой конфигурации свой каталог распаковки (который не будет удаляться при закрытии обработки) — попробуйте еще раз. Напишите, если не получится. На сравнении cf УПП проверялось. Было все в порядке.

    Reply
  49. bambr1975

    +52 (51)Распаковать и вывести. Не просто Вывести

    Reply
  50. iov

    (52) два разных каталога

    УПП допиленная и УПП типовая — указаны каталоги распаковки

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

    на допиленной вылетает. причем сразу же при запуске.

    Типовая — без проблем.

    (53) Конечно распаковать и вывести.

    Reply
  51. iov

    (52) Сейчас попробую выгрузить опять и проверить…

    Reply
  52. bambr1975

    (54) iov, УПП на платформе 8.2?

    Reply
  53. bambr1975

    (51) iov, сообщение «Результат распаковки не является результатом распаковки для файла конфигурации» пишется, если в каталоге распаковки отсутствует файл root

    Структуру файлов каталога распаковки посмотрите, пожалуйста. Обычно, при сортировке файлов по имени там в самом низу должно быть три файла — root, version, versions

    Reply
  54. iov

    (56) естессно…

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

    Reply
  55. bambr1975

    Хотелось бы разобраться… А Вам не трудно из командной строки запустить что-то вроде:

    V8Unpack.exe -parse [ПолныйПутьКФайлуРаспаковкиВКавычках] [ПолныйПутьККаталогуРаспаковкиВКавычках]

    В каталоге с программой V8Unpack.exe и zlib1.dll

    Получится что-нибудь?

    Reply
  56. iov

    (59) UnpackToFolder. Error in reading file!

    Reply
  57. iov

    (59)файл не заблокирован — перемещал на разные диски — типовая распаковывается доработанная — нет

    Reply
  58. bambr1975

    (60) iov, от имени всей медицины ничего Вам сказать не могу. Но V8Unpack.exe — это не совсем мое. Хотелось бы думать, что выход найдется. Наверное, об этом надо написать в комментариях к соответствующей публикации.

    Reply
  59. iov

    (62) В любом случае спасибо за участие. попробуем добиться истины в других местах.

    Reply
  60. xhronx

    Отличная обработка, дерзайте! Ждем доступных версий.

    Reply
  61. Збянтэжаны Саўка

    Das ist fantastish!!!

    Reply
  62. Збянтэжаны Саўка

    (8) WendyH, по мне так для сравнения печатных форм стандарта за глаза хватит, но вот визуальное сравнения форм — это жемчужинка, которой всегда хотелось!

    Reply
  63. Gasdrubal

    отличная обработка, качну ,спасибО очень нехватало такого в вид дерева сравнения форм и печатных формочек!

    Reply
  64. xbic

    нужная штука

    Reply
  65. vasiliy_b

    Надеюсь 1Су теперь станет стыдно, и они реализуют это в платформе =)

    Reply
  66. amiralnar

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

    Скажите, пожалуйста, знакомились ли вы с методом динамического добавления элементов формы от TormozIT?

    Как вы думаете, возможно ли в вашей обработке написать функцию, которая по информации о сравнении форм — сгенерирует код для динамического добавления элементов на форму?

    Reply
  67. bambr1975

    (71) amiralnar, эта функция в обработке и так есть — в слегка непричесанном виде, согласен — при нажатии на гиперссылку с синонимом формы выводится текст для динамического добавления элементов формы — в случае сравнения — сравнение этих текстов динамического добавления. Задачи сформировать отдельно именно текст изменений одной формы от другой не ставилось — хотя, по-моему, это не сложно. Сильно восхищает предложенный формат подачи нужных изменений в обработке от Istur — у него более специализированная обработка, может, он возьмется ее слегка развить?

    Reply
  68. KVIKS

    хорошая обработка

    Reply
  69. bambr1975

    (74) petrov_al, пользовательский режим используется для вывода только потому, что других способов вывести для анализа нужные данные еще не знаю. Аудиторию бухгалтеров и операторов баз данных охватить в мои планы не входило. Конфигуратор, конечно, нужно еще подучить. Но альтернативные методы получения нужной для анализа информации тоже должны быть изучены.

    Reply
  70. astonvilla

    Однозначно одна из полезнейших разработок…

    Reply
  71. amiralnar

    (72) Большое спасибо за подсказку на обработку! Это как раз то, что мне было нужно.

    Reply
  72. vikorn

    Полезно. Спасибо

    Reply
  73. Magister

    Приятно видеть такие разработки 🙂

    А про объединение ещё не думали? Как замену функционалу конфигуратора?

    Reply
  74. bambr1975

    (79) Magister, ридер — от слова «читать». Подразумевалось, что те, кто ищет альтернативный разбор форм — как Вы в своих комментариях к CFU-ридеру, найдет для себя что-то подходящее. Замена конфигуратору не планировалась.

    Reply
  75. Magister

    (80) Понял, спасибо за ответ.

    Reply
  76. Batman

    спасибо, отличная разработка

    Reply
  77. lexa12345

    Спасибо, очень полезная вещь.

    Reply
  78. SSO

    Отличный и удобный механизм. Очень помогает когда есть множество изменений в форме. Спасибо.

    Reply
  79. svbel85

    видно, что проделана большая работа, но не повторяет ли механизм этой обработки, механизм сравнения конфигуратора???

    Reply
  80. bambr1975

    (85) svbel85, на самом деле — такая видимость действительно имеет место быть. И если у Вас нет потребности расширить имеющиеся механизмы и развить их в нужном для Вас направлении — обработка не для Вас. На возможности сравнения форм конфигуратором Вы, к сожалению, повлиять не сможете, а тут — проявить немного фантазии и… может быть, узнаете что-то новое для себя.

    Reply
  81. fanilya

    Сравнениефайлов.СпособСравнения=СпособСравненияФайлов.ТекстовыйДокумент;

    При попытке показать различие в табличном документе, он вызывает исключение — а при вызове исключения там ищется файл text (как для модулей объектов). Просто не предусмотрел потребность в сравнении табличных документов. Макеты-то сами из дерева объектов можно вызвать по-одиночке. Согласен, надо доработать. Вот, по поводу фильтра Вы мне тоже сказали, глюк с привязками показали — отдышусь — и все исправлю.

    Reply
  82. fap82

    Разработка весьма полезная, если не сказать очень полезная,Стандартные механизмы не позволяют анализировать формы и макеты, бывает сложно понять что же изменилось.Отличная работа.+

    Reply
  83. yalo

    Супер экономии времени при обновлении. Спасибо!!

    Reply
  84. yalo

    Экономия времени при обновлении. Спасибо!!

    Reply
  85. Uscolegy

    Спасибо, очень помогло. а дальнейшее развитие будет ?

    Reply
  86. bambr1975

    (91) Usc, конечно, было бы здорово довести дело до чего-то более практичного. То, что требует простой доработки напильником — будет реализовано в ближайшее время. Мне пока что не определиться с тем — в каком виде будет получаться информация на выходе. Поможете в этом «ступоре идей»?

    Reply
  87. Dethmond

    Оболденная вещь, спасибо большое

    Reply
  88. pumbaE

    Вариант: пустая база анализирует параметры командной строки и допустим если передается 2 пути к файлам выводить их diff (erf, epf, mxl) неважно. В этом случаи можно для svn написать скрипт, что эти файлы сравнивать с помощью определенной программы.

    Особенно будет прикольно для клюшечников — посмотреть визуально различия в mxl файле…

    Reply
  89. commo

    хорошая весчь спасибо

    Reply
  90. Yasen

    Спасибо

    Reply
  91. Artemuch2

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

    Reply
  92. владимирп

    Дошли руки попробовать. Задумка очень нравится, но произошло: {Форма.Форма.Форма(1111)}: Значение не является значением объектного типа (ВидМетаданных)ВидМетаданныхОбъекта=СтрокаДереваМетаданных.ВидМетаданных;

    Это выдала машина. В чем может быть причина? Пытался просмотреть свою конфигурацию УПП, но измененную

    Reply
  93. bambr1975

    (99) владимирп, единственное, что приходит в голову — это то, что в конфигурациях с версии 8.2.14 появились новые виды метаданных — обработка их еще не учитывает. Буду работать в этом направлении.

    Reply
  94. Zas1402

    (3) BalVlad,

    очень нужная вещь

    Reply
  95. DMSDeveloper

    (31) Rustig, защиты на основе исключения модулей в комплект поставки не достаточно. На основе V8Unpack была не известным мне автором разработана обработка — декодирование модулей V8. Эта обработка прекрасно вскрывает и декодирует модули с «псевдокодом». Таким же образом обходит установленные пароли на текст.

    Дабы не совсем offtop 🙂 Автору МЕГАРеспект! Я давно искал алгоритм + механизм разбора и формирования дерева конфигурации из файлов после V8Unpack.

    Есть идея реализовать свой собственный (на базе 1С) SVN-чик с функциями автоматического документирования на основе комментариев. Шаблоны для документирования уже готовы и успешно используются в кодировании, а вот с разбором программного кода сервером при добавлении новой версии в хранилище — затык. Конфигуратор может выгружать только всю конфигурацию в текстовые файлы, и не может выгружать отдельные объекты из конфигурации или внешние обработки или отчеты. А из поставленной задачи это основное.

    Еще раз — автору МЕГАРеспект.

    Reply
  96. ndacoder

    (60), (62)

    << от имени всей медицины ничего Вам сказать не могу. Но V8Unpack.exe — это не совсем мое. Хотелось бы думать, что выход найдется. Наверное, об этом надо написать в комментариях к соответствующей публикации.

    >>

    автору спасибо за труд.

    НО! архитектура решения жестко завязана на V8Unpack, что не даёт легкого простора для перевода на другие решения (в свободном доступе есть как минимум ещё 2 решения для получения аналогичного результата)

    P.S. автору V8Unpack писать бесполезно разработка не поддерживается и передана сообществу.

    P.P.S.если у кого не распаковывается V8Unpack-ом приму на изучение другими инструменами.

    Reply
  97. babys

    «Тут, эта, как его, не работает, начальника». В части «анализ и сравнение ролей и ограничений доступа» при нажатии на кнопки перехода «Различия в ограничениях доступа (4):» выдаёт вот такое сообщение:

    {Форма.ФормаДляРолей.Форма(951)}» Ошибка при вызове метода контекста (Индекс)
    ИндексТекущейСтроки=ТабличноеПолеСравненияРЛС.Индекс(ТекущаяСтрока);
    по причине:
    Несоответствие типов (параметр номер ‘1’)

    PS: И можно, что нибудь с реквизитным составом сделать, а то СтандартныйРеквизит, тяжело понимается.

    Reply

Leave a Comment

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