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




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2026-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 не будет опубликован. Обязательные поля помечены *