Универсальный мульти-конструктор отчета UNI




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

99 Comments

  1. script

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

    Жаль что в новых версиях 1С отходит от универсального отчета — сколько классных штук уже здесь наработано.

    СПАСИБО!!!

    Reply
  2. WKBAPKA

    я немного другим путем пошел, разработав Excel — подобный конструктор… а насколько быстро отчет будет работать?

    Reply
  3. kapustinag

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

    Насколько быстро работает по сравнению с, например, суммой времени на исполнение указанных в структуре отчета типовых отчетов? Примерное сравнение?

    Планируете развитие?

    Reply
  4. AnryMc

    Идея явно «зачетная»…

    Но почему конфигурация «УТ»?

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

    Reply
  5. Evgen.Ponomarenko

    Зачетная идея. Достойная похвалы глубина разработки!

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

    1) Вытаскивание информации «по крупинкам» (из существующих отчетов), копирование в Excel, добавление формул и использование прочих его возможностей

    2) Написание отдельного отчета, впоследствии часто изменяемого и дорабатываемого.

    Хочется добавить лишь одно: Управленческий баланс должен строиться на базе управленческого плана счетов. И будет всем счастье )))

    Reply
  6. Serdgio

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

    Reply
  7. Serdgio

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

    Reply
  8. Serdgio

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

    Развитие функционала планируется. Одну мысль уже подсказал AnryMc — буду добавлять что-то для бухгалтерских итогов (возможность использования, настройку выбора счетов, оборотов или итогов…). Спасибо за оценку!

    Reply
  9. Serdgio

    (4) AnryMc, огромное спасибо за идею с бух. итогами и шаблонами из типовых операций. Будем реализовывать. А отчет, в принципе, работает и в УТП и в УПП (для Украины).

    Reply
  10. Serdgio

    (5) Evgen.Ponomarenko, спасибо за оценку! Полностью согласен с Вами по поводу управленческого плана счетов как основы упр. баланса. К сожалению, большинство заказчиков пока к этому не готовы (не финансово — затраты на адаптацию типовых или покупку специализированных конфигураций+опять же адаптация, не морально — многих управленцев одно выражение «план счетов» пугает).

    Reply
  11. Ekovichev

    Автору плюс за работу. Однозначно очень полезная вещь

    Reply
  12. roma03v1

    Идея отличная, посмотрю поиграюсь с отчетом.

    Reply
  13. script

    Добавьте в свой универсальный отчет вот это http://infostart.ru/public/84642/

    Обнаружены некоторые не понятные явления.

    1) В расширенном варианте настройки, я попытался вывести дополнительное поле «Уровень» и «Номер строки». Ни то, ни другое не вывелось в отчет.

    2) Если в отчете был включена опция «Запросы» и бал описан запрос, но потом все запросы были удалены, флаг «Использовать запросы» все равно остается возведенным без возможности его снять — поле не доступно.

    Reply
  14. Evgen.Ponomarenko

    (10)

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

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

    А так, имея управленческий план счетов и находить общий язык можно и моделировать легко. Можно прогнозировать где вылезут неприятности перед внесением изменений, а не после. Самое смешное, что финансовые затраты, окупаются очень быстро. Есть разница потратить на внедрение три месяца или год?

    Скорее управленцы не готовы морально. Приходится ставить им на мозги капельницу.

    В любом случае — буду внимательно следить за вашими успехами.

    Reply
  15. CheBurator

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

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

    программист 1С, который майстрясит всю кухню расчетов, афиник жмакает кнопочку и получает готовый отчет?

    Reply
  16. psamt1k

    То, что доктор прописал! Обязательно скачаю для собственного образования, как накоплю $m.

    Как думаете, на Бухгалтерии этот отчет взлетит?

    Reply
  17. psamt1k

    (15) CheBurator, извиняюсь что влезаю, но не так ли выглядит создание любых других отчетов: программист клёпает отчет, которым потом используется пользователями, нажимающими 1-2 кнопки и вуаля?

    Reply
  18. Serdgio

    (15) CheBurator, пользователь отчета, по замыслу — опытный пользователь информационной системы, который «на ты» с универсальным отчетом. Все возможности отчета, кроме запросов (хотя встречаются «паровозы», которые и этим пользуются), ему по плечу.

    Reply
  19. Serdgio

    (16) psamt1k, в Бухгалтерии для Украины нет универсального отчета. Так что, к сожалению — не взлетит.

    Reply
  20. Serdgio

    (13) script, примочки скачал. Буду разбираться. Спасибо. С проблемами на днях разберусь. Выложу обновление.

    Reply
  21. Serdgio

    (14) Evgen.Ponomarenko, охотно соглашусь с Вами. Моральная неготовность — первопричина. Часть бывает не готов и внедренец. Еще раз спасибо за комментарии.

    Reply
  22. CheBurator

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

    Reply
  23. Serdgio

    (21) CheBurator, они, конечно, скорее исключение. Хотя, в моем опыте, слава Богу, не редкое. Но программисты и администраторы — тоже потенциальные настройщики конструктора.

    Reply
  24. Evgen.Ponomarenko

    (19)

    в Бухгалтерии для Украины нет универсального отчета. Так что, к сожалению — не взлетит.

    хм… тут я чего-то не понимаю…

    Я в свое время выгрыз из первых версий УТП универсальный отчет, допилил его. Чуток модернизировал —

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

    Теперь его можно вшить в любую конфу с обычными формами. Не пойму сути проблемы… почему не взлетит?

    Reply
  25. russinow

    очень полезная для меня штучка

    и так жаль что не хватает местной валюты…

    Reply
  26. Abadonna

    (25)

    и так жаль что не хватает местной валюты…

    А купить религия не позволяет? Продажа / покупка $m

    Reply
  27. AnryMc

    (25) russinow, Перевел 3 $m.

    – Я тебе дам свою пайку хлеба сейчас. А за вечерним чаем ты мне отдашь свою.
    Кузя поморщился.
    – Ишь ты, гулевой. За вечерним чаем хлеба по четвертке дают, а ты мне сейчас осьмушку всучиваешь.
    

    😉

    Reply
  28. Abadonna

    (27) AnryMc, полагаешь — доброе дело сделал?

    А что «Республика ШКИД» читал — плюс 😉

    Reply
  29. Abadonna

    (15) CheBurator, тем юзверям, которые ни фига не могут, кроме как жамкнуть кнопку, и в голову никогда не придет подобные отчеты формировать. А если ГБ более ни на что не способен — гнать поганой метлой.

    Получает, как правило, больше всех, и при этом еще ни фига не умеет. Плавали — знаем!

    Reply
  30. russinow

    (26) я действительно считаю что платить не обязательно. И хоть зареган я на сайте давно, я здесь совершенно не присутствовал, только несколько дней назад стал проявлять хоть какую-то активность. Возможно стану полезничать

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

    Reply
  31. russinow

    гы )

    глянул на кошаче-собачьи аватарки )) кошак нервничает, а собак собаку помогает )))))

    Reply
  32. Abadonna

    (31) russinow, чего мне нервничать. У меня этих $m, что у дурака фантиков.

    А если ты на жадность намекаешь, то глянь сюда:

    Reply
  33. Magister

    Крутая вещь!

    Мне, правда, нечасто такого типа отчеты приходилось делать — но было дело. Делал ручками 🙂

    Reply
  34. dyak84

    Даа ничего лишнего и скажеш на первый взгляд вещь что нада не нужно писать кучу отчетов а тут такое чудо. Жаль только денег нет. Появятся обязательно скачаю

    Reply
  35. Serdgio

    (24) Evgen.Ponomarenko, если в структуре конфигурации (в данном случае — Бухгалтерии) есть универсальный отчет, то все получится. Сам отчет-конструктор сделан на базе универсального, в его структуре — реквизит типа универсальный отчет…

    Reply
  36. russinow

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

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

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

    Reply
  37. Abadonna

    (36) russinow,

    Если это для показать свою крутизну и мое место

    Каждый, по ходу, по своим комплексам судит. Я тебе (по доброму, заметь!) посоветовал, где можно без напряга и в пять раз дешевле купить. А ты начал про аватарки базар.

    Отсюда стандартный вывод: ни одно доброе дело не останется безнаказанным

    Reply
  38. russinow

    (37) хорошо ) если по доброму ))) принимается

    Reply
  39. Evgen.Ponomarenko

    (35)

    Для работы универсального отчета, еще как минимум нужны: ГлЗначениеПеременной, УниверсальныеМеханизмы, ОбщегоНазначения в принципе в большинстве конфигураций они присутствуют. Так что нужно просто пробовать.

    Reply
  40. Serdgio

    (39) Evgen.Ponomarenko, конечно, я имел в виду, что связанные механизмы также понадобятся.

    Reply
  41. Evgen.Ponomarenko

    (40)

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

    это я скорее для сомневающихся:»Качать или не качать?» — «Качать и пробовать!» И хорошо, что есть

    люди готовые делиться и sm и идеями и качественными разработками.

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

    то её количество удваивается. В принципе этот принцип распространяется на тех, кто оказывает услуги,

    У тех кто пишет программы за деньги — другая философия. Мне кажется, что нужны и те и другие.

    Главное, чтобы было качество всегда было в приоритете.

    Reply
  42. Serdgio

    (13) script, спасибо за идею — добавил из (http://infostart.ru/public/84642/) замер производительности и кнопки быстрой настройки уровня группировок.

    По описанным Вами проблемам:

    1) В расширенном варианте настройки, я попытался вывести дополнительное поле «Уровень» и «Номер строки». Ни то, ни другое не вывелось в отчет.

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

    2) Если в отчете был включена опция «Запросы» и бал описан запрос, но потом все запросы были удалены, флаг «Использовать запросы» все равно остается возведенным без возможности его снять — поле не доступно.

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

    Reply
  43. AnryMc

    (28) Abadonna,

    А «+» где?

    Reply
  44. AnryMc

    (32) Abadonna,

    У меня этих $m, что у дурака фантиков.

    А на рисунке перевод — 4,66 $m… Несоответствие 😉

    Reply
  45. Abadonna

    (44) AnryMc, на рисунке остаток после перевода, я ж круглое число переводил.

    Reply
  46. servs

    Запускаю в УТ 2.3.18.1

    ошибка:

    {ВнешнийОтчет.УниверсальныйОтчетMulti.МодульОбъекта(2920)}: Ошибка при вызове метода контекста (Добавить)

    по причине:

    Не уникальное имя!

    Reply
  47. Serdgio

    (46) servs, ошибку исправил и выложил обновленный отчет. Спасибо, что сообщили о ней.

    Reply
  48. servs

    а теперь пишет:

    {ВнешнийОтчет.УниверсальныйОтчетMulti.МодульОбъекта(3106)}: Ошибка при вызове метода контекста (Добавить)

    по причине:

    Не уникальное имя!

    Reply
  49. servs

    Чувствую прийдется декомпилить, чтобы самому исправлять, гыгыгы)

    Reply
  50. Serdgio

    (48) servs, внес изменения. Похоже, что у Вас уже во встроенном универсальном отчете есть замер производительности…

    Reply
  51. servs

    (50) да, ты прав, и что мне теперь делать?

    UPD: Serdgio,

    Открылся, спасибо! Сейчас начинаю тестировать.

    UPD 2: РАБОТАЕТ!

    В универсальном отчете плохо то, что нельзя использовать ПАКЕТНЫЕ ЗАПРОСЫ. Или я плохо знаю мат. часть…

    Reply
  52. servs

    (del)

    Reply
  53. cybjavax

    Жирный плюс!

    Reply
  54. zarucheisky

    Хорошая идея. Плюсую

    Reply
  55. Prad2002

    Хорошая вещь, обязательно протестирую и прикручу к своим потребностям. Спасибо!

    Reply
  56. vicmos

    классная штука

    Reply
  57. help1Ckr

    Идея классная, но для пользователей слишком сложно)

    Reply
  58. Rad90210

    Это круто! Однозначно Плюс!

    Reply
  59. Rad90210

    Скачал. В УТП для Украины так и не открылось 🙁 . Зависло при открытии.

    В УТ для Украины в демо базе — открылось достаточно живенько, но шаблон простой баланс — показывает нули :(.

    Буду перечитывать настройки.

    В любом случае, что иожет быть причиной зависания при открытии отчета в УТП?

    В уважением.

    Reply
  60. Serdgio

    (59) Rad90210, странно, у меня в УТП открывается.

    Там и отличий никаких, только регистры бухгалтерии проверяются. А какой релиз УТП? Если база не секретная — выложите куда-то и дайте путь. Это поможет в решении проблемы.

    Reply
  61. Rad90210

    На 8.3 подглючило с Бух и УТП.

    На 8.2 открылось.

    В шаблоне цифры появились только при установке расшифровка = Да. Эх, еще бы пару-тройку шаблончиков… А

    Но сама идея очень не плоха.

    Reply
  62. Serdgio

    (61) Rad90210, на 8.3 я и не тестировал. Т.е. пока это работает на 8.2 — УТ, УТП, УПП.

    По поводу шаблонов: давайте идею — будем реализовывать. Или Вы в общем?

    Reply
  63. Rad90210

    На 7.7 для плана счетов писал что-то подобное … Чтобы бухи могли себе Упр баланс составлять.

    По принскринам:

    Настройка баланса



    Ввод статьи баланса



    Ввод суммы статей баланса



    Итог работы баланса

    Reply
  64. Rad90210

    По Вашей разработке — смысл тот же … но визуализация настройки … пол дня промучался так ничего толкового и не настроил. Хотелось бы пример для типовой УТП (например для демо базы), в которой можно было бы увидеть развернутую картину, и соответственно полазить по настройкам …

    Reply
  65. Serdgio

    (64) Rad90210, спасибо за скрин-шоты. Попытаюсь упростить настройку, как минимум формул и бух. данных. А, возможно, вообще упрощенный вариант придумаем.

    Reply
  66. Serdgio

    (64) Rad90210, поработал над визуализацией настройки и примерами:

    1) Реализована возможность ввода настройка конструктора отчета в упрощенном виде – все на одной странице.

    2) Также реализована возможность ввода новых источников данных непосредственно при указании вида расчета показателя в дереве структуры отчета. Для каждого вида источников данных реализованы отдельные формы ввода данных.

    3) Реализована возможность расшифровки результатов выполнения запросов и вывода данных расшифровки в отчете. Для использования данного функционала при задании текста запроса необходимо обязательно указать итоги и поля построителя запроса.

    4) Добавлен шаблон «Закупки, продажи, остатки, цены», демонстрирующий возможности соединения данных различных отчетов системы («Закупки», «Продажи», «Ведомость по товарам на складах») и данных произвольного запроса по ценам с расшифровкой по номенклатуре.

    Reply
  67. Rad90210

    Оперативненько 🙂 Будем пробовать. Нужно полСМ натролить в комментах. В любом случае, звучит очень обнадеживающе. Если не секрет куда поделку будете использовать? Бета в релизе наводит на мысль …

    В любом случае — скачаем — будем тестить.

    Reply
  68. Bassgood

    (0) Скачал, попробовал сконструировать пару простых отчетов, вроде бы все выглядит довольно понятно и просто, но что-то мне подсказывает, что рядовые пользователи конструкторами вряд ли когда-то будут пользоваться, им всегда хочется все иметь уже в готовом виде и с одной кнопкой. А так для более менее продвинутых пользователей и для тех кто любит осваивать что-то новое — в этом конструкторе я думаю разберутся довольно быстро (по крайней мере у меня получилось сбацать первый отчет на основании двух других примерно в течение получаса-часа). Но все же более менее сложные отчеты вряд ли кто-то будет собирать через конструктор — пользователю лень разбираться, а программисту быстрее и надежнее написать свой отдельный отчет с одной кнопкой, имхо.

    Плюс за разработку и за оригинальную идею!

    Reply
  69. MRAK

    Большая работа! Плюсую авансом!

    Reply
  70. gull22

    А почему расширение .cf стало?

    Reply
  71. Serdgio

    (71) gull22, спасибо, что заметили.

    По ошибке залил поставку конфигурации.

    Сейчас перезалил отчет.

    Reply
  72. gull22

    (72)

    Ну тогда за Вами должок! 🙂

    Reply
  73. sashajat

    Ошибка при открытии отчета {ВнешнийОтчет.УниверсальныйОтчетMulti.МодульОбъекта}: Переменная не определена (УниверсальныеМеханизмы)

    Reply
  74. TrinitronOTV

    в описании написано вот такое: «Внимание! В отчете реализовано ограничение использование отчета по времени. Ограничения вступают в действия 01.01.2014». С этой даты он уже не будет работать? Если да, то зачем это сделано?

    Reply
  75. Serdgio

    (74) sashajat, на какой конфигурации ошибка? Отчет работает на конфигурация для Украины — УТ (2.3), УТП, УПП

    Reply
  76. sashajat

    (76)Я купил для УТ 11 Россия

    Reply
  77. Serdgio

    (77) sashajat, для России на упр. формах эта версия не будет работать. На предыдущей УТ 10, если там есть универсальный отчет — должна работать.

    Reply
  78. zavoyskiy

    Идея просто супер. Без проблем настроили под собственные нужды, но возникла проблема — не воспринимает цифры больше 10 млн… Сумма в константах. Как бороться?

    Reply
  79. Serdgio

    (79) zavoyskiy, в ближайшее время выложу отчет с типом показателей — число 20,5.

    Reply
  80. mikhailovaew

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

    Reply
  81. Re:аниматор

    Давно нет обновлений, проект развивается?

    Reply
  82. Serdgio

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

    Reply
  83. taiba

    Потратил 3 смартмани на «{ВнешнийОтчет.УниверсальныйОтчетMulti.МодульОбъекта(4294)}: Запрещено использование отчета!» 🙁

    Reply
  84. StaticUnsafe

    Спасибо. Крутая штука.

    Reply
  85. rustemg

    Serdgio, ждем продолжения, каков прогресс?

    Reply
  86. Re:аниматор

    Судя по тишине .. проект окончательно заглох. Жаль

    Reply
  87. WKBAPKA

    да, идея хорошая. покрутил его немного, глюковат в плане восстановления настроек.

    иерархия по показателям не выводиться, надо посмотреть причину. Я так понимаю, это все завязано как то на источниках данных. А целом конечно классная задумка, не доведенная до ума.

    Reply
  88. WKBAPKA

    немного покопался в коде:

    относительно вывода иерархии

    результат, который возвращает универсальный отчет, корректен, с учетом иерархии. Может проблема в этом:

    Процедура ПроходРезультатаПостроителяЗаполнениеДопГруппировок(Выборка, МассивИзмерений, Номер, ИмяПеременнойОтчета, НомерПоказателя)
    ТекВыборка = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, МассивИзмерений[Номер]);
    
    Пока ТекВыборка.Следующий() Цикл
    
    

    ОбходРезультатаЗапроса.ПоГруппировкам

    Reply
  89. Serdgio

    (89) WKBAPKA, проблема точно в источнике данных — ТЗ. Это ограничение построителя. В это я и уперся…

    Reply
  90. WKBAPKA

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

    ну и группы выводятся в одной куче с элементами. но тут надо смотреть алгоритм 🙂

    Reply
  91. Serdgio

    (91) WKBAPKA, буду рад, если у Вас получится. Но я долго боролся и много подтверждений находил — при источнике данных ТЗ построитель не дает иерархию в группировках.

    Reply
  92. WKBAPKA

    результат во вложении.

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

    Reply
  93. WKBAPKA

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

    Reply
  94. WKBAPKA

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

    Reply
  95. WKBAPKA

    А вообще, считаю, что проект должен развиваться. На СКД такое не сделаешь, а универсальные отчеты еще долго будут ходить )

    готов принять участие в развитии проекта.

    Reply
  96. WKBAPKA

    что то с картинками )

    Reply
  97. Serdgio

    (96) WKBAPKA, я не против. Что от меня требуется? Какие идеи по развитию?

    Reply
  98. dimaster

    (98) ребят, есть ли что-то подобное на УФ для УТ последней?

    Reply
  99. Serdgio

    (101) пока нет ( в планах есть, но времени не хватает…

    Reply

Leave a Comment

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