Универсальный отчет (4.2.0.1)




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

    Извини, но по моему, это уже перегруз функционалом. Многоуровневые горизонтальные группировки используются очень редко…

    Reply
  2. alexk-is

    (1) Если группировки по колонкам не использовать, то и кнопки для горизонтальных группировок отображаться не будут. А если использовать группировки по колонкам и включить заголовки, то совсем как-то корявенько получается без кнопок-то.

    Reply
  3. Alraune

    А текст анонса слово в слово взят вот отсюда)))

    http://infostart.ru/public/83915/

    Reply
  4. Altair777

    (3) мда…. дожились!

    уже анонсы плагиатируют

    Reply
  5. Ish_2

    С анонсом как-то не очень вышло. Самому что ли невмоготу написать ?

    Reply
  6. alexk-is

    😳

    Reply
  7. madmpro

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

    А за дополнительный функционал +, конечно. Остается анонс изменить ;).

    Reply
  8. milkers

    (8) Вертикальную многоуровневую. Горизонтальная многоуровневая используется очень редко.

    Reply
  9. Ish_2

    (9) С горизонтальной группировкой — перегруз небольшой.

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

    На мой вкус, конечно.

    Reply
  10. milkers

    (10) Мое мнение, что надо знать меру когда остановиться.

    Reply
  11. alexk-is

    Рисовать или не рисовать кнопки управления группировками колонок это дело личное. Но если не учитывать наличие группировок колонок, то кнопки управления группировками строк окажутся не на «своих» местах и при включении заголовков из под них вылезут маркеры.

    Прорисовка кнопок управления группировками колонок это 50 строк кода в модуле состоящем из ~7300 строк.

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

    Reply
  12. Jorj20

    Он просто не работает

    Reply
  13. alexk-is

    (14)

    Он просто не работает

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

    Предлагаемые изменения могут быть внесены в любой отчет, который выводится в ПолеТабличногоДокумента. В том числе и в отчеты сформированные СКД.

    Reply
  14. madmpro

    Поставил бы еще один плюс за ускорение расчета ширины колонок. Реально долго рассчитывается, а товаров всего-лишь 4000 (так… для начала ;)). Спасибо, alexk-is!

    Reply
  15. zabaluev

    Для какой конфигурации «УниверсальныйОтчет»?

    У меня в УТ 10.3.13.2 выскакивает ошибка:

    {Отчет.УниверсальныйОтчет(4809)}: Метод объекта не обнаружен (ПолучитьСписокОбработокПодключаемыхКОтчету)

    мОбработкиПодключаемыеКОтчету = УниверсальныеМеханизмы.ПолучитьСписокОбработокПодключаемыхКОтчету(ИмяМетаданныхОбъекта);

    Reply
  16. alexk-is

    (17) Перезалил. Попробуйте ещё раз.

    Проверено на УТ 10.3.1.17, УТ 10.3.6.8, УТ 10.3.13.2, УПП 1.2.39.1, УПП 1.3.10.1

    Reply
  17. zabaluev

    Спасибо,заработало.

    Reply
  18. DrAku1a

    Может сделает кто версию такого универсального отчета без привязки к конкретной конфигурации… А то при написании новой нетиповой тянуть за собой половину «УТ» как-то не особо хочется… Но приходится 🙁

    Reply
  19. alexk-is

    (20) Какая конфигурация?

    Reply
  20. DrAku1a

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

    Reply
  21. alexk-is

    (22) Тогда проще в универсальном отчете поставить заглушки на отсутствующий функционал конфигурации.

    Reply
  22. DrAku1a

    (23) Уже сделал. Кнопки прикрутил, как показано в статье. Результат выложу здесь. А что нужно сделать для ускорения расчета ширины колонок?

    Reply
  23. alexk-is

    (24) Все изменения помечены комментариями // ИС КАВ

    Reply
  24. DrAku1a

    (25) Все, нашел. И все исправил.

    Во вложении конфигурация 8.1 с универсальным отчетом, который сохраняет настройки. Также дописал его на работу со справочниками, документами и регистрами сведений. Вышло даже круче, чем в УТ)) Кто хочет — можете добавить регистры бухгалтерии и регистры расчета — для еще бОльшей универсальности…

    Да, кстати… Делалось все это давно — еще из конфы УТ 10.3.6.8… Так что, если каких-то нововведений нет (встроенная справка, выполнение обработок до и после формирования отчета и т.п.), то извиняйте… )))

    Reply
  25. alexk-is

    (26) Прикольно. 🙂

    Reply
  26. alexk-is

    (26) А для какой конфигурации этот отчет? На УТ 10.3.6.8 не работает.

    Reply
  27. DrAku1a

    (28) Это вообще отдельная конфигурация, с одним только универсальным отчетом в составе. Еще оставлен регистр «СохраненныеНастройки», но в нем заменен тип поля «Пользователь» с «СправочникСсылка.Пользователи;СправочникСсылка.ГруппыПользователей» на текстовую строку…

    Reply
  28. Максим2

    Платформа 8.2.13.205, 219. Конфигурации Бухг. 2.0.17.6, Комплексная автоматизация 1.1.8.1

    Ошибка загрузки документа.

    Внешний отчет не может быть прочитан текущей версией программы.

    Reply
  29. Максим2

    (30) Скачал версию для 8.2. Отдельную бы ссылку сделать, для избежания подобных недоразумений.

    Reply
  30. Поручик

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

    Reply
  31. kitt

    Про универсальность

    УниверсальныйОтчет.erf не имеет привязки к конкретной конфигурации…



    {ВнешнийОтчет.УниверсальныйОтчет(442)}: Поле объекта не обнаружено (НастройкиКолонтитуловПоУмолчанию)

    Настройка = Константы.НастройкиКолонтитуловПоУмолчанию.Получить().Получить();

    хотя в целом не плохо

    Reply
  32. AleksSF

    Что-то я не догнал как он работает в Бухгалтерии. У меня ничего не выводится

    Reply
  33. alexk-is

    (33) Исправлено в 2.1.0.2.

    Reply
  34. zzerro

    Я вот не пойму, это универсальный отчет только по регистрам накопления?

    Reply
  35. alexk-is

    (34)(36) Почти так. Да, в версии 2.х свои настройки у универсального отчета только по регистрам накопления.

    Но…

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

    Анонс настроек для версии 3.х

    Reply
  36. alexk-is

    (26) Хороший отчет. Нашел для себя много новых идей.

    Reply
  37. alexk-is

    (34) (36) Добавлена работа со справочниками и документами. Расширена работа с регистрами накопления.

    Reply
  38. LeaNaeD

    Конфигурация «Управление торговлей», редакция 10.3 (10.3.14.3), демо-версия, заменил полностью стандартный универсальный отчет на Ваш, тыркнул на первый попавшийся регистр и сделал рандомные же настройки — Регистр накопления: Денежные средства в резерве (Остатки и обороты), группировки строк — «Организация», формируем отчет, тыркаем на любую строку, например в поле «приход», выбираем в форме выбора поля «период+регистратор» для формирования нового отчета, результат

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

    МассивВыбранныеПоляПоказатели.Добавить(ПостроительОтчета.ВыбранныеПоля.Добавить(Показатель.Имя));

    по причине:

    по причине:

    Поле не найдено. «СуммаНачальныйОстаток»

    По полю «Документ движения (регистратор)» если тыркать — та же ошибка.

    Сейчас попробовал по регистру «Товары на складах» — та же ошибка.

    Попробовал просто открыть этот универсальный отчет, как внешнюю обработку — ошибка повторяется.

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

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

    Приемник.Строки.Сдвинуть(НайденнаяГруппаПоказателей, Источник.Строки.Индекс(ТекущийПоказатель) — Приемник.Строки.Индекс(НайденнаяГруппаПоказателей));

    по причине:

    Неправильное смещение внутри коллекции

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

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

    Reply
  39. alexk-is

    (40) Исправлено в 3.0.1.2

    Reply
  40. Baglandir

    Скачал. Поставил. Все работает отлично. Глюков после установки небыло. Рекомендую

    Reply
  41. dkprim

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

    Reply
  42. alexk-is
  43. MrXaN

    Автору спасибо, пользуюсь очень удобно, смотря на него думаешь почему в типовую сразу изменения такие же не вносят)))) Еще раз Спасибо!!!

    Reply
  44. alexk-is

    (45)

    MrXaN пишет:

    почему в типовую сразу изменения такие же не вносят

    Потому что я работаю не в фирме 1С 🙂

    Reply
  45. Shapat

    Вообщем очень удобная, и полезная вещь…

    Reply
  46. dopolnenia

    Буду смотреть и тестить, потом отпишусь за результат

    Reply
  47. dopolnenia

    Автору большой респект за данный отчёт, радует такой огромный функционал. Что называется на все случаи в жизни бухгалтера. Так же радует постоянные обновления и совершенствование программы

    Reply
  48. VirtuozSD

    Огромное спасибо. Выручили. Проверено на УПП 1.3.15.2

    Reply
  49. dimanich70

    Пытаюсь пользоваться отчетом как внешним, — вылетает ошибка. Управление производственным предприятием, редакция 1.3 (1.3.15.1), 1С:Предприятие 8.2 (8.2.13.219).

    при выборе источника данных ошибка (регистр типовой, например, «Продажи»)

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

    ПостроительОтчета.Текст = ТекстЗапроса;

    по причине:

    по причине:

    {(24, 17)}: Поле не найдено «ИсточникДанных.ВидДвижения»

    ИсточникДанных.<<?>>ВидДвижения КАК ВидДвижения,

    Подскажите, пожалуйста, как исправить. Скрин прилагаю.

    А каким событием запускается подсчет сумм ячеек?

    Reply
  50. alexk-is

    (51) Исправлено в 4.0.0.2

    А каким событием запускается подсчет сумм ячеек?

    Событие ПриАктивизацииОбласти

    Reply
  51. dimanich70

    Все работает, спасибо. Обработка события создается программно, здорово.

    Reply
  52. Drizer2000

    Просто в восторге от отчета, и как же ты вовремя, пару недель назад хотел универсальный отчет перетащить из УПП в БП,но толком не получилось,т.к. еще очень плохо владею СКД.Думал разберусь, позже сделаю,но этот отчет еще лучше универсального отчета из УПП и главное работает для БП. Огромный тебе плюс.

    Reply
  53. alexk-is

    (54) А ещё есть Универсальный журнал документов. Он умеет сам рисовать отчеты в СКД.

    Reply
  54. Drizer2000

    Сейчас тестирую отчет, в БП 2.0 при выборе настройки «использовать свойства и категории» выдается ошибка:

    {ВнешнийОтчет.УниверсальныйОтчет.МодульОбъекта(2679)}: Поле объекта не обнаружено (Справочник_ХарактеристикиНоменклатуры)
    Если ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ХарактеристикиНоменклатуры И
    
    Reply
  55. alexk-is

    (56) Исправлено в 4.0.0.3

    Reply
  56. Drizer2000

    (57) подскажите пожалуйста по не вашему отчету,но вы в теме даете ссылку на эту разработку.

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

    http://forum.infostart.ru/forum24/topic39318/

    Reply
  57. alexk-is

    (58) Этот шаблон не подошел? http://infostart.ru/public/84519/

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

    Reply
  58. Drizer2000

    (59) да я скачал и этот шаблон,но тоже самое, открываю этот отчет через БП 2.0 и сразу выдается ошибка:

    {Форма.Форма.Форма(61)}: Значение не является значением объектного типа (ФормаПриОткрытии)
    УниверсальныйОтчет.ФормаПриОткрытии(УниверсальныйОт

    Может его как-то по другому нужно использовать, либо он скорее всего не предназначен для конфигурации БП 2.0

    Reply
  59. alexk-is

    (60) В БП нет объекта Универсальный отчет.

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

    Reply
  60. Drizer2000

    (61) я добавил в конфигурацию ваш УниверсальныйОтчет, вот теперь такая ошибка выдается:

    {Форма.Форма.Форма(9)}: Значение не является значением объектного типа (ПолноеНазваниеПрограммы)
    ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + УКО.ПолноеНазваниеПрограммы;
    
    Reply
  61. alexk-is

    (62) Эта ошибка в каком модуле? 🙂

    Reply
  62. Drizer2000

    (63) нет сори, запустил не тот отчет. А при открытии шаблона в основном модуле шаблона ШаблонУниверсальногоОтчетаMilkers1_02 выдается ошибка:

    {ВнешнийОтчет.ШаблонУниверсальногоОтчетаMilkers1_02.МодульОбъекта(17)}: Метод объекта не обнаружен (ВосстановитьРеквизитыОтчета)
    УправлениеОтчетами.ВосстановитьРеквизитыОтчета(ЭтотОбъект, ДополнительныеПараметры);
    

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

    Reply
  63. alexk-is

    (64) Хм. Тогда пожалуй нужен другой шаблон, который адаптирован к БП. Сейчас на вскидку ссылку не дам, нужно поискать…

    Reply
  64. Drizer2000

    Шикарно было бы , если в отчет можно бы вставлять хотя бы простые функции, например, рассчитать среднюю цену из Документа ПоступлениеТоваровиУслуг в разрезе товаров. Такое в подобном отчете вообще возможно или это очень сложно?

    Reply
  65. alexk-is

    (66) Если добавлять визуальный редактор произвольных формул с проверкой правильности формул, то «да», достаточно сложно. Но и это возможно, было бы время…

    Reply
  66. Boroda

    Обожаю всякие прибамбасы, они делают жизнь 1С-ника ярче и веселее. Спасибо!

    Reply
  67. xaker1C

    Хорошая обработка но формул не хватает

    Reply
  68. mirkomp

    А в Управлении торговлей ред 11 (управляемое приложение) будет работать?

    Reply
  69. alexk-is

    (71) Нет. В режиме управляемого приложения работать не будет.

    Reply
  70. Altair777

    Что я делаю не так?

    Версия для 8.1

    Источник данных — Справочник.Контрагенты

    Группировка строк — Ссылка

    Дополнительные поля — поле: ИНН, размещение: в отдельных колонках, положение: после группировки

    Поле ИНН выводится в той же строке, в следующей колонке, но дважды

    Reply
  71. Altair777

    за процедуру НачатьПроверкуВерсий() надо бить по пальцам 🙂

    Спамовская процедура. Она изначально подключена и вызывается исключение при попытке открыть ИЕ, т.к. на моем сервере это заблокировано. Кстати, а почему ИЕ, а не браузер по умолчанию?

    Reply
  72. alexk-is

    (75) В меню есть пункт «Отключить проверку новых версий на infostart.ru».

    Reply
  73. alexk-is

    (75) Потому, что платформа 1С использует IE. Справка в 1С без IE работать не будет.

    Reply
  74. Altair777

    (76) Лучше бы там был пункт включить проверку

    Reply
  75. alexk-is

    (74) Это очень интересная особенность построителя отчетов при работе с представлениями данных не ссылочного типа.

    Исправлено в 4.1.1.1

    Reply
  76. Altair777

    (79) Опять скачивать? мани тратить 🙂

    Reply
  77. alexk-is

    (80) Нет. Можно просто использовать другую настройку отчета:

    Нужно поставить галочки «Раширенная настройка» и «Выводить детальные записи». На закладке «Группировки» очистить группировки. На закладке «Дополнительные поля» добавить Ссылка и ИНН. Результат будет такой же, но без задваивания полей.

    Reply
  78. Boroda

    А какие изменения произошли на 30.12.2011 по ставнению с предыдущим? Что-то «История изменений» об этом умалчивает… Или она (история) больше не поддерживается? Что-либо существенное или косметические изменения? Хотелось бы узнать, прежде чем повторно скачивать…

    Reply
  79. alexk-is

    (82) В (74) была обнаружена очень интересная особенность построителя отчетов при работе с представлениями данных не ссылочного типа. В версии 4.1.1.1 этот нюанс учтен и при описанной в (74) настройке результат будет правильным. Хотя при настройке описанной в (81) даже в версии 4.1.0.1 можно получить тот же результат.

    Reply
  80. Drizer2000

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

    Reply
  81. alexk-is

    (85) Можно использовать другую настройку:

    Не использовать группировки

    На закладке «Общие» установить флажки: «Выводить детальные записи», «Расширенные настройки»

    На закладке «Дополнительные поля» добавить необходимые реквизиты

    Reply
  82. DrAku1a

    Вставил в УТ 10.3.14.5 (заменил стандартный УниверсальныйОтчет), платформа 1С 8.2.14.540, запускается без прав администратора.

    В процессе работы выдает ошибку:

    Не удалось получить доступ к Internet Explorer

    {Отчет.УниверсальныйОтчет.Форма.Форма.Форма(83)}: Ошибка при вызове конструктора (COMОбъект): Завершение работы системы по расписанию уже запланировано.: Завершение работы системы по расписанию уже запланировано.

    При этом завершение работы запланировано не было… Что это?… О_о

    Reply
  83. alexk-is

    (88) Прикольно. Это наверное было установлено какое-то новое программное обеспечение, драйвер или обновление Windows и система запланировала перезагрузку для окончания установки. К 1С это прямого отношения не имеет.

    Reply
  84. alexk-is

    (88) Исправлено сообщение в 4.1.2.1

    Reply
  85. Drizer2000

    (86) спасибо за совет. пусть будет так. есть вопрос, а как вызвать ваш отчет из внешнего отчета , чтобы использовать регистр сведений? Для регистра накоплений стандартно используется процедура:

    УниверсальныйОтчет.УстановитьНачальныеНастройки(Истина);

    А вот для регистраСведений я не стал пока детально разбираться как лучше вызвать, сделал пока так:

    В универсальном отчете к процедуре ИсточникДанныхРегистрСведений добавил запускать ее из вне (Экспорт).

    А запускаю из внешнего отчета как:

    УниверсальныйОтчет.ИсточникДанныхРегистрСведений(УниверсальныйОтчет.ИмяРегистра, «СрезПоследних»);

    Reply
  86. alexk-is

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

    Reply
  87. IEmelya

    Спасибо автору!

    По описанию очень полезная штука.

    Ушел осваивать.

    Reply
  88. Zoba

    Спасибо. Полезный инстумент.

    Reply
  89. rom-x

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

    Reply
  90. warenic

    Альфа-Авто: Автосервис+Автозапчасти. Редакция 4.1 (4.1.01.20)

    Вылетает ошибка;


    {ВнешнийОтчет.УниверсальныйОтчет.МодульОбъекта(5047)}: Поле объекта не обнаружено (ТекущийПользователь)

    лУстановитьКолонтитулыПоУмолчанию(ТабличныйДокумент, мНазваниеОтчета, Строка(ПараметрыСеанса.ТекущийПользователь));

    И вот еще

    (90)

    (88) Исправлено сообщение в 4.1.2.1

    тогда что ЭТО?

    Не удалось получить доступ к Internet Explorer

    {Форма.Форма.Форма(83)}: Ошибка при вызове конструктора (COMОбъект): Завершение работы системы по расписанию уже запланировано.: Завершение работы системы по расписанию уже запланировано.
    Reply
  91. DrAku1a

    (98)

    По первому пункту — это привязка к стандартному в конфигурациях 1С механизму работы с пользователями… Либо надо в конфигурации завести параметр сеанса ТекущийПользователь и позаботиться ПриНачалеРаботыСистемы чтобы этот параметр был заполнен, либо в коде отчета заменить «Строка(ПараметрыСеанса.ТекущийПользователь)» на «ИмяПользователя()». Второй вариант проще.

    По второму пункту — было выше (88). Это встроенный механизм проверхи обновлений (ИМХО — штука не нужная) пытается запустить на компьютере Internet Exploer через OLE. Вроде так…

    Reply
  92. alexk-is

    (98) Какая версия?

    Reply
  93. warenic

    (101)

    Скачал заново, п.2 отпал…

    Reply
  94. leon111

    Спасибо! Шустрый отчет

    Reply
  95. alexk-is

    (102) Был ещё пункт 1? Видимо я что-то пропустил.

    Это?

    лУстановитьКолонтитулыПоУмолчанию(ТабличныйДокумент, мНазваниеОтчета, Строка(ПараметрыСеанса.ТекущийПользователь));

    Такой строки в последней версии нет.

    Reply
  96. Sean1s

    Спасибо. Работает гораздо быстрей стандартного.

    Reply
  97. Rino

    Спасибо! Шустрый отчет

    Reply
  98. Space_143

    Очень качественный отчет. Удобно, быстро… Большое спасибо, пригодился. Автору респект

    Reply
  99. danya1606

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

    Reply

Leave a Comment

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