Универсальная консоль отчетов




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

    А что в ней есть чего нету в типовой консоли отчетов на основе СКД кроме выполнения в фоне?

    Reply
  2. Evg-Lylyk

    (1) Обновил подробное описание посмотри

    Reply
  3. German

    достойно

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

    Reply
  4. WiseSnake

    Хорошо бы иметь всякие такие штучки как (5), (10), (17), (20), (21) на новой консоли… остальное там есть. Регрессировать как то не хочется…

    Reply
  5. Evg-Lylyk

    (3) спасибо. Можно конкретнее.

    (4) Это консоль запросов не компановки данных, пока об этом не думал компановку использую очень мало. На запросах никакого регресса.

    Reply
  6. German

    Более интересные вещи в новом выпуске Ei … Реклама :)))

    Reply
  7. Evg-Lylyk

    (3) «остальное уже было» может плохо смотрел аналоги, но 1,4,5,6,7,8,14,15,16,19 вроде небыло.

    Reply
  8. Evg-Lylyk

    (6) может сделаешь мне бесплатную рекламу :), в силу использования моих «молодых» наработок по разбору дерева запросов 😉

    Reply
  9. WiseSnake

    (5) для меня регресс… есть всякие интересные штучки, но нет возможностей СКД… и это очень плохо…

    Reply
  10. WiseSnake

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

    Reply
  11. Evg-Lylyk

    (9) ну извини доделывать веще компановки недолго, но у меня в плане нет. Хочешь пиши на мой email я тебе код открою. А для запросов на мой взгляд самое оно. 🙂

    Reply
  12. Evg-Lylyk

    (10) ну если поделишся потом я непротив.

    Reply
  13. WiseSnake

    (11) код, я думаю, сам открою 😉

    Reply
  14. WiseSnake

    (12) обязательно, без вопросов!!! я доработаю вот это как времени немного будет http://infostart.ru/profile/15778/projects/2795/

    Reply
  15. German

    (7) 16 было в Консили DmitrO

    Reply
  16. Душелов

    А вообще, с какой целью код обработки закрывается?

    Reply
  17. Evg-Lylyk

    (15) не досмотрел спасибо.

    (16) «decode» 😉 много труда стоила.

    Reply
  18. German

    (16) для себя .. что бы не так жалко было расставаться с ней.:)

    Reply
  19. luns

    1. при выводе копии в Ёксель или макет НЕНАДО вновь формировать отчет.

    2. при фоновом выполнении на БП (возможно и других конфах) как то НУЖНО давить стартовые вопросы при создании юзера для фона.

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

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

    5. в дереве запросов не отрабатывают стандартные комбинации клавиш: (ins, del)

    Reply
  20. Evg-Lylyk

    (19)

    1. Можно выделить другой запрос и незавимо от выведеного результата в табличном документе вывести в Excel другой запрос, хотя идея ценная подумаю.

    2. В настройках есть Логин Пароль для фонового выполнения.

    3,4,5 поправил в 2.3. SR2

    Reply
  21. stol6

    Потестил — работает. Только это наверное все же консоль запросов, а не отчетов.

    Reply
  22. Evg-Lylyk

    (21) от части согласен но если смотреть аналогичные по названию обработки 1С и других то фукнционал по моему мнению не уступает. Я например с ее помощи делал много отчетов создаю группу и вней куча запросов и один самый главный. Потом можно сравнить результаты допустим оригинального отчета и отчета доработки.

    Reply
  23. theshadowco

    При закрытии 2.4 вот такая ошибка

    {ВнешняяОбработка.д_КонсольОтчетов(1285)}: Ошибка при вызове метода контекста (Удалить): Нарушение прав доступа!

    Объект.Удалить();

    по причине:

    Нарушение прав доступа!

    Reply
  24. Evg-Lylyk

    (23) Спасибо, поправил в 2.4 beta 2

    Reply
  25. Evg-Lylyk

    Начиная с 2.4 SR3 Добавлена групповая обработка объектов

    Reply
  26. luns

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

    Reply
  27. German

    На что то похожа групповая обработка 🙂

    Reply
  28. Evg-Lylyk

    (26) добавил чуть

    (27) 🙂 конечно. Прежде чем делать я посмотрел что уже сделано 😉 в том числе и Ei.

    Reply
  29. Evg-Lylyk

    2.4 SR5

    — улучшен «Многократный замер» теперь он выводит больше информации по выполнению

    — значительно ускорена групповая обработка(50-200%)

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

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

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

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

    Reply
  30. Morning-Sun

    Пишет:

    Неверный формат данных

    Reply
  31. Morning-Sun

    При открытии

    Reply
  32. Morning-Sun

    А все разобрался….расширение у файла поставте.

    Reply
  33. Evg-Lylyk

    (32) epf внешняя обработка, erf — внешний отчет может у вас чтото с платформой желательно иметь последнию платформу 1С8.1.

    Reply
  34. Morning-Sun

    Расширение файла ZIP !!!!!

    Reply
  35. luns

    (34) Ну да… ))) это архив, а внутри обработка и файл справки….

    Reply
  36. Душелов

    zip-ы качать нельзя!

    Reply
  37. luns

    (36) Кому нельзя? На предприятии что ли, ограничения?

    Reply
  38. Душелов

    (37) Всем нельзя! Как же так? Почему не epf ? 😉

    Reply
  39. Evg-Lylyk

    Позже исправлюсь т.к. у меня на работе почему то кнопок по изменению обработки нету.

    Добавлю обработку т.к. в справке пока всего два раздела About и History.

    Reply
  40. bozo

    Спасибо за консоль!

    Баг:

    Не проставляет двойные кавычки при выводе текста запроса во встроенный язык.

    Reply
  41. Evg-Lylyk

    (40) спасибо в 2.5 beta 1 исправлено

    Reply
  42. Evg-Lylyk

    Новогоднее обновление 😉

    Версия 2.5 beta 1 (не сморя на то что бета все вроде работает, внес достаточно много изменения поэтому могут быть ошибки)

    В связи с добвление СКД переименовал обработку в универсальная консоль отчетов.

    Файл от версии 2.5 не открывается более ранними версиями.

    1. Добавлена возможность делать отчеты на СКД (для этого нужно добавить компановку через панель дерева отчетов).

    2. Изменения в многократном замере (более информативно и СКД)

    3. Значительно ускорена групповая обработка.

    4. Добавлена генерация текста втроенного языка для предопределенных значений параметров

    5. Добавлена общая для баз и пользователей база групповой обработки сохраняется в файле base.gw

    6. В ген. на встроенном более читабельный код

    7. В групповой обработке «в цикле» добавлена возможность обращения к результату запроса

    8. Добавлен пункт объединить для добавления данных другого файла

    9. Сумма макета по областям выделения теперь с разбивкой по областям выделения 100+250+100=450

    10. Выполнен рефакторинг кода теперь проще разбиратся

    11. Мелкие улучшения и иправления

    12. Исправлены ошибки

    Reply
  43. Evg-Lylyk

    2.5 beta 3

    1. В дереве добавлена кнопка Уровень (1,2,3) для выбора уровня дерева

    2. Для «Запрос на встроенном языке» новая опция все комментарии

    3. Добавление спец.запроса (Все справочники, Все документы)

    4. Улучшено юзабилити ручного редактирования запроса

    5. Добавлено заполнение значений только выделенных параметров

    6. Добавлена функция интуитивное заполнение параметра(Заполняет параметры типа Счет90)

    7. Мелкие улучшения и исправления и исправлены некоторые ошибки

    Reply
  44. luns

    (20) Что? Не только пил на праздники? ))))))))))))

    Reply
  45. Evg-Lylyk

    алкоголь закончился :)))

    Reply
  46. Evg-Lylyk

    2.5 beta 4

    1. Ускорен многократный замер на 1-3 сек. для серверного варианта работы базы

    2. Для многократного замера количество пользователей выводится и для файлового варанта работы базы

    3. В настройках хобавлен «Тест подключения» для фонового пользователя и выделение красной рамкой в случае ошибки

    4. Исправлена ошибка теста подключения для файлового варианта работы базы

    Reply
  47. Evg-Lylyk

    2.5 beta 5

    1. Добавлены подсказки ко всем элементам формы

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

    3. Выводится результат запроса помещающий результат во временную таблицу

    Reply
  48. Evg-Lylyk

    2.5 beta 6

    Исправлена ошибка при использовании временной таблицы и пакетов (в пакете).

    Reply
  49. K_A_O

    Нельзя зайти в настройки, если агент сервера находится не на стандартном порту 1540. Как бы давать пользователю выбирать порт.

    Reply
  50. WiseSnake

    > (0)6. СКД

    Может быть плохо я смотрел, но не нашел где используется СКД?

    Reply
  51. Evg-Lylyk

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

    (50) Добавте новую компоновку через панель дерева запросов новый-Компоновка а дальше все аналогично стандартной консольки 1С пока здесь доработок мало т.к. СКД редко использую.

    Reply
  52. Evg-Lylyk

    (51)+1 Компоновка есть только с версии 2.5

    Reply
  53. Evg-Lylyk

    (49) Исправлено в новой версии. Спасибо.

    2.5 beta 7

    1. Исправлена ошибка «Нельзя зайти в настройки, если агент сервера находится не на стандартном порту 1540». Пользователь может задать порт в настроках

    2. Добавлен механизм контекстной справки (пока только один раздел «Редактирования текста запроса») который открывает при открытии закладки «Текст запроса»

    Reply
  54. rasswet

    укажите пожалуйста, чем консоль отчетов отличается от универсальной консоли.

    Reply
  55. Evg-Lylyk

    (54) Версия 2.4 я называл Консоль запросов т.к. в ней можно делать юыло в онсновном запросы.

    в 2.5. добавил использование компоновки все что добавлено с версии 2.5 beta 1 это начиная с 42 комментария вот этим и отличается, а вообще достаточно значительно.

    Reply
  56. Evg-Lylyk

    Сорри за ошибки в (55) торопился.

    (55)+ Универсальной консолью отчетов я ее стал называть когда добавил компоновку.

    Reply
  57. rasswet

    (56) не вижу где там СКД, где?

    Reply
  58. Evg-Lylyk

    (57) Читайте комментарий (50)

    Reply
  59. Evg-Lylyk

    (58)+ Сорри 51

    Reply
  60. Evg-Lylyk

    2.5 SR1

    несколько мелких улучшений

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

    из нового:

    Улучшено «интуитивное заполение значений параметров» теперь заполняется больше перечислений. Например «ВидУчетаНУ».

    Для «Контекстной справки» добавлен раздел «Данные элемента» и дополнен раздел «Редактирование запроса».

    Reply
  61. sva0

    При использовании настроек построителя отчетов:

    — не запоминает порядок группировок,

    — нет возможности редактировать макет средствами редактора макетов (меню «Таблицы»).

    Тем не менее, красиво.

    Reply
  62. Evg-Lylyk

    (61) «не запоминает порядок группировок» проверю. Если есть возможность уточните.

    » нет возможности редактировать макет средствами редактора макетов (меню «Таблицы»).» есть такая проблема только я не знаю как ее победить. Давно к ней не возврашался может тормазю 🙂

    «Красиво» Спасибо.

    Reply
  63. Evg-Lylyk

    (61) «не запоминает порядок группировок» подтвердилось исправил в версии 2.5 SR2

    Reply
  64. sva0

    При попытке ввода значения параметра с типом Список появляется сообщение об ошибке:

    {Форма.РедактированиеСпискаЗначений(83)}: Поле объекта не обнаружено (КоманднаяПанель)

    КнопкаПодбор=ЭлементыФормы.КоманднаяПанель.Кнопки.Подбор;

    Reply
  65. Evg-Lylyk

    (64) 🙁 досадная ошибка раньше все работало. Спортил в процессе 🙂

    То о чем вы писали исправил в версии 2.5 SR3

    Reply
  66. Evg-Lylyk

    2.5 SR3

    Исправлена ошибка описанная в комментарии (64)

    Reply
  67. IronDemon

    Привязки подправь в закладке «Компоновка». Не растягивается 🙁

    Reply
  68. Evg-Lylyk

    (67) Исправил 2.5 SR4

    Исправлена ошибка возникающая при открытии формы настройки сравнения

    Исправлены привязки компоновки

    Reply
  69. artbear

    Вопрос: как насчет совместимости со штатными/типовыми консолями запросов/СКД ?

    Т.е. будут ли читаться ранее сохраненные файлы настроек из этих консолей?

    и наоборот, если сохранить настройки данной обработкой, будут ли они читаться типовыми консолями?

    Reply
  70. Evg-Lylyk

    (69) Хорошо в след. версии сделаю открытие файлов стандартной консоли запросов, но сохранение естественно только в моем формате. Да давно хотел сделать, но не чувствую необходимости т.к. запрос можно и скопировать компоновку тоже.

    Reply
  71. IronDemon

    А можешь одну давнюю «хотелку» реализовать?

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

    Reply
  72. IronDemon

    Замечания по СКД.

    При добавлении/изменении схемы настройки не переносятся.

    Reply
  73. Evg-Lylyk

    (71) а зачем, поясните? Я смысла не вижу.

    (72) подробнее пожалустая у меня с СКД туго.

    Reply
  74. IronDemon

    По поводу отдельных файлов. Выше скорость чтения/записи, теоретически. У меня файл с отчетами 18 метров. После пару записей изменений объем оперативки увеличивается на 100 метров. А если читать файлы только при открытии группы, то теоретически этого не будет. Вот только что с сохранением делать, не знаю.

    По СКД. Создаем отчет конструктором, делаем нужную настройку (группировки, выводимые поля и т.д), жмем ОК. Настройки появляются только после применения «Стандартной настройки». В «типовой» консоли СКД они применяются стразу если текущие настройки пустые или задается вопрос «Загрузить стандартные настройки?»

    Reply
  75. Evg-Lylyk

    (74) У вас 18 метров отчетов в в формате стандартной консоли 1С O_o. Мне кажется это не очень нужно (делать проблематично, а пользы мало на мой взгляд) у меня данные отчетов хранятся в зазипованном XML размер должен быть меньше (ну естественно если данных много то и много потребляют памяти). На счет СКД понял посмотрю поправлю. Спасибо.

    Reply
  76. IronDemon

    (75) Не, 18 метров отчетов СКД :-[

    Reply
  77. Evg-Lylyk

    (69)

    (72),(74)

    версия 2.5 SR5

    1. Добавлена возможность импортирования данных файлов стандартной консоли rcf (Файл — Импортировать…)

    2. Исправлена ошибка при добавлении/изменении схемы компоновки настройки не переносились

    позже доделаю импорт консоли компоновки данных 1с «dcf»

    Reply
  78. Evg-Lylyk

    2.5 SR6

    1. Добавлена возможность импортирования данных файлов стандартной консоли компоновки данных dcf (Файл — Импортировать…)

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

    3. Исправлена ошибка неверно определялся признак модифицированности после не успешного импортирования

    4. Исправлена ошибка не генерировался GUID для испортированных строк дерева что приводило к невозможности работы с импортированными данными Фонового выполнения, Сравнения

    5. Теперь для полей с подчеркиваниями генерируется более правильное представление «Прошлый_Период» = «Прошлый период»

    6. Исправлена ошибка при выполнении СКД не отображалось состояние выполнения

    7. Исправлена ошибка для импортированных файлов неправильно определялось имя сохранения (должно быть пустым, а оставалось последнее использованное)

    Reply
  79. artbear

    (78) А файлы консоли запросов *.sel будешь импортировать ?

    Reply
  80. Evg-Lylyk

    (79) Это те что от консоли «Инструменты разработчика» (ИР) ну раз нужно сделаю в след. версии.

    Reply
  81. Evg-Lylyk

    (79)

    2.5 SR7

    1. Добавлена возможность импортирования данных файлов sel (Файл — Импортировать…)

    2. Добавлена возможность отладки компоновки данных ОткрытьДляОтладки(СхемаКомпоновки[,Настройки])

    Reply
  82. baan4c

    СКД — тот же, что и у 1С. Принципиально нужно только визуализировать сложные запросы. Все остальное — украшательство.

    Reply
  83. Evg-Lylyk

    (82) механизм построения дерева запросов я делал в «Консолька 1.2» на котором работает построение дерева Ei (все посты были в духе еще одна консоль отчетов), но используя понял что не так много пользы т.к. почти всегда нужно видеть результат запроса на всех этапах до левого соединения и после и т.д. СКД только добавил я на нем почти ничего не делаю поэтому он как у 1С, но зато в одной обработке и запросы и компоновка. Построение дерева сделаю в последйющих версия потому как хочу сделать по «новому»

    (83) вроде работает просто если ставить 10, а колонки помешаются то автоматом расширяются.

    Reply
  84. baan4c

    (84), (85)

    1.Спасибо.

    2.Считаю, что ориентация на «продвинутых бухгалтеров» — бред. Особенно, если учесть кто исторически занимал в России места бухгалтеров.

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

    Reply
  85. Evg-Lylyk

    (86) с п.3. согласен. Дерево запроса сделаю позже.

    Reply
  86. baan4c

    (86) Евгений, вот именно!

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

    2. Ту же идею следует развить и на параллельные запросы, просто явно указывая те из них, которые отлаживаются и результат которых исследуется.

    Успехов!

    Reply
  87. Evg-Lylyk

    (88) Это реализовано в Консольке 1.2 только нет всего отстального. В ней можно посмотреть как это работает.

    Reply
  88. baan4c

    (89) Замечание по консольке 1.2, впрочем, вполне понятное:

    Парсер не распознает {}-инструкции Построителя в источнике данных, например:



    ИЗ

    РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, {Организация.* КАК Организация, Проект.* КАК Проект, Подразделение.* КАК Подразделение, Контрагент.* КАК Покупатель, ДоговорКонтрагента.* КАК ДоговорПокупателя, Номенклатура.* КАК Номенклатура, ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры}) КАК ПродажиОбороты

    Будет выдана ошибка о нехватке закрывающей круглой скобки, поскольку неразобранной оказывается {}-инструкция.

    Reply
  89. Evg-Lylyk

    (1) Чтоб не открыли другими способами кроме как УКО. Там могут быть важные данные.

    (2) Я практически никогда не пиши текст запроса в ручную т.к. это ИМХО дольше и неудобно.

    Подводные камни следующие:

    1. Нет события изменения текстового документа следовательно непонятно когда измененили.

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

    3. Не добрался еще до этого. Раз брался сделать как ты говоришь но наткнулся на некоторые вещи и отложил.

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

    (162) Не понял настроки чего имеются ввиду. Настройки типа «Выводить сообщения в трей»?

    Если настроек построителя то опишу подробно реализую.

    Пожалуйста не надо «лишних» вопросов. Я разрабатываю так как считаю правильным ставью пароли ввожу новые форматы. Я ваши предложения воспринял спасибо. Многое обусловлено тем что обработка УКО <> ИР и у меня свои проблемы связанные с тем что+ и как реализовал я. Если хотите вникнуть и что то доделать я с радостью объясню как что и где устроено, а если нет ну какая разница какие там внутренние проблемы есть. Они есть поверьте. Если что просто я делаю быстро это можно проследить по динамике исправлений и реализации просьб.

    🙂

    Reply
  90. luns

    После нажатия кнопки "Вывести последний результат", ошибка:

    Код
    {Форма.Основная(55)}: Ошибка при установке значения атрибута контекста (Текст): {(1, 1)}: Ожидается выражение "ВЫБРАТЬ"
          НовыйПостроитель.Текст = ДанныеСтроки.ТекстЗапроса;
    по причине:
    {(1, 1)}: Ожидается выражение "ВЫБРАТЬ"
    
    

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

    Текст запроса:

    Код
    ВЫБРАТЬ
       ПродажиОбороты.Номенклатура,
       ПродажиОбороты.ХарактеристикаНоменклатуры,
       ПродажиОбороты.ЗаказПокупателя,
       ПродажиОбороты.ДоговорКонтрагента,
       ПродажиОбороты.ДокументПродажи,
       ПродажиОбороты.Подразделение,
       ПродажиОбороты.Проект,
       ПродажиОбороты.Организация,
       ПродажиОбороты.Контрагент,
       ПродажиОбороты.КоличествоОборот,
       ПродажиОбороты.СтоимостьОборот,
       ПродажиОбороты.СтоимостьБезСкидокОборот,
       ПродажиОбороты.НДСОборот
    ИЗ
       РегистрНакопления.Продажи.Обороты(&НачПериода, &КонПериода, Авто, ) КАК ПродажиОбороты
    

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

    ]

    Конфа: УТ 10.3.6.8

    Версия консоли: 2.6.1.7

    Reply
  91. luns

    Еще.

    Выбираю "Фиксированный макет", редактирую, получаю:

    Код
    {Форма.РедактированиеМакета(50)}: Поле объекта не обнаружено (ГлавнаяКомманднаяПанель)
       ФормаВладелец.ГлавнаяКомманднаяПанель.Доступность = Истина;
    
    

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

    Reply
  92. mtv:)

    Уважаемый Evg-Lylyk, при попытке экпорта отчета на СКД во внешний отчет, после выбора шаблона, вываливается ошибка:

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

    GUIDОбработки = АнализТекста.Item(0).SubMatches.Item(0);

    по причине:

    Произошла исключительная ситуация (0x80070057)


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

    Запускаю «Универсальную консоль отчетов» под 1С 8.2 (толстый клиент), предварительно сконвертировл все внутренние обработки.

    Reply
  93. milkers

    (440) У меня такая же ошибка!

    Reply
  94. mtv:)

    (440), (441) Видимо, уважаемый автор сюда заходит редко, или ему просто некогда.

    Поэтому сам себе и отвечу:

    «Универсальная консоль отчетов» написана для 8.1. А в 8.2 немного изменился внутренний формат внешних отчетов, поэтому при попытке экпорта отчета на СКД во внешний отчет и вываливается вышеописанная ошибка.

    Жалко терять такую хорошую фичу под 8.2. Немного покопавшись в коде, нашел решение. Правда я не силен в RegExp, так что пошел простым путем. Короче во внешней обработке «ЭкспортОтчетаВоВнешнийОтчет» в модуле объекта строку № 67 надо изменить вот так:

    GUIDОбработки = Сред(СтрокаRoot, 4, 36); //GUIDОбработки = АнализТекста.Item(0).SubMatches.Item(0);

    После такой замены экспорт ЗАРАБОТАЛ под 8.2!

    Да простит меня уважаемый Evg-Lylyk за такой чайниковский подход, но очень уж хотелось иметь возможность экпорта во внешний отчет из замечательной «Универсальной консоли отчетов» под 8.2.

    Reply
  95. artbear

    (442) Молодец, нужное исправление.

    Reply
  96. Rudakov_D

    Работаю в обычных формах, на платформе 1С:Предприятие 8.2 (8.2.15.318). Конвертировал все обработки, и она работает, попытался конвертировать шаблоны, появаилась ошибка при экспорте СКД из консоли отчетов в шаблон.

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

    GUIDОбработки = АнализТекста.Item(0).SubMatches.Item(0);

    по причине:

    Произошла исключительная ситуация (0x80070057)

    Возможно ли аддаптировать под 8.2 ?

    Reply
  97. Evg-Lylyk

    (522) есть версия для 8.2 в файлах

    (524) должно быть много файлов запускать одну обработку. качайте http://infostart.ru/public/download.php?file=91803

    Reply
  98. tuskan

    При экспорте СКД во внешний отчет

    вот такую ошибку имею.

    никак не пойму, что нужно починить

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

    GUIDОбработки = АнализТекста.Item(0).SubMatches.Item(0);

    по причине:

    Произошла исключительная ситуация (0x80070057)

    Reply
  99. Evg-Lylyk

    (544) Помочь не могу. Обработка не поддерживается. Этот механизм писался очень давно… может в платформе что изменилось.

    Reply

Leave a Comment

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