Генерация внешнего отчета на основе варианта в "классической" консоли СКД





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

Итак, вы сделали отчет на СКД, например , в классической консоли отчетов СКД с ИТС  (https://its.1c.ru/db/files/1CITS/EXE/ExtReps/Unireps83/DCSConsole/DCSConsole.zip). Настроили вариант отчета:установили параметры, группировки, поля, отборы.

Вроде всё работает.

Теперь надо передать посмотреть отчет предварительно пользователю , чтобы они может замечания какие-нибудь внёс или уже окончательно передать в работу. А чтобы передать отчет нужно:

  • либо передать саму консоль с файлом настроек — но слишком сложная для нашего пользователя (бухгалтера) консоль отчетов с настройками.
  • либо сделать в конфигураторе внешний отчет на основании сделанной схемы СКД и настроек компоновщика, выгруженных в файл.!!! Настройки отбора — принципиальная вещь, т.к. их нельзя задать в конфигураторе, например, если в отборе используются ссылки на справочники, документы.

В любом из вариантов нужно отправлять 2 файла пользователю и объяснять, что с этим делать.

Для того, чтобы можно было получить сразу готовый отчет со всеми настройками одним файлом добавлена кнопка "Сгенерировать внешний отчет в файл". Нажимаем кнопку, указываем в какой файл генерировать отчет. Для работы этой функции необходима возможность запускать Конфигуратор и платформа не ниже 8.3.8, т.к. используется штатная возможность собирать внешние отчеты/обработки из файлов.

Теперь на примере:

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

2. Добавляем вариант отчета, выбираем поля и отбор по группе контрагентов, выполняем вариант, настраиваем параметры, поля, структуру и отбор по группе "Покупатели"

3. Переходим на вариант и кнопка из меню "Сгенерировать внешний отчет в файл", получаем файл

4. Открываем полученный внешний файл, формируем отчет, результат тот же, что и в консоли.

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

 

Технические особенности: Отчет сохраняется на основе шаблонного отчета, находящегося в макете консоли отчетов. Если у вас своя форма для отчетов, то нужно заменить этот шаблон, но свой отчет-заготовку.

Тестировалось на платформах:

  • 8.3.8.1861
  • 8.3.9.2170
  • 8.3.10.2667
  • 8.3.12.1714
  • 8.3.13.1513

P.S. Подобную функцию также добавил в расширение для отладки отчетов на СКД (infostart.ru/public/972709/ ), она позволяет во время отладки в Конфигураторе выгрузить отлаживаемый отчет во внешний отчет со всеми настройками, установленные в точке остановки.

 

21 Comments

  1. Makyrka

    Добрый день.

    Выходит такое сообщеие при генерации внешнего отчета в файл «Не удалось сгенерировать отчет. Проверьте, если ли доступ в Конфигуратор, есть ли права на сохранение в указанный каталог».

    Доступ к каталогу есть.

    Reply
  2. maxx

    (1) Какой путь к базе?

    Reply
  3. maxx

    .

    Reply
  4. Makyrka

    База файловая D:Base

    Reply
  5. b1958

    (1) Та же хрень. Не хочет сохранять. Что-то заморочено.

    Никакой конкретики, что именно мешает записать.

    Какие особенности?

    Пробовал на файловой базе.

    На серверной тоже не будет работать?

    Может каких параметров не хватает?

    Reply
  6. maxx

    (5) Проверьте

    1. Что у вас есть доступ в Конфигуратор, например, зайдите в свою базу Конфигуратором

    2. Возможно у вас проблемы с правам на запуск Конфигуратора. Запускайте 1С в режиме 1С:Предприятие под правами Администратора

    3. Проверьте номер платформы не ниже 8.3.8 (На всякий случай проверьте какая по умолчанию запускается номер платформы на компьютере, может у вас как-то стоит что платформа запускается версией ниже)

    4. Проверьте, что есть доступ в каталог куда сохраняете.

    Отпишитесь.

    Reply
  7. maxx

    (4) Проверьте

    1. Что у вас есть доступ в Конфигуратор, например, зайдите в свою базу Конфигуратором

    2. Возможно у вас проблемы с правам на запуск Конфигуратора. Запускайте 1С в режиме 1С:Предприятие под правами Администратора

    3. Проверьте номер платформы не ниже 8.3.8 (На всякий случай проверьте какая по умолчанию запускается номер платформы на компьютере, может у вас как-то стоит что платформа запускается версией ниже)

    4. Проверьте, что есть доступ в каталог куда сохраняете.

    Отпишитесь.

    Reply
  8. b1958

    (6) Да, работаю как Администратор, с полными правами. Конфигуратор запускается. Платформа 8.3.12. Доступ в каталог полный.

    Что может быть еще?

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

    А почему в примере указано, что файл сохраняется на диск С:, а в сообщениее сказано, что файл сформирован на диске D:?

    Reply
  9. maxx

    (8)Какой у вас путь к платформе, к исполняемым файлам?

    Например, у меня вот так «C:Program Files (x86)1cv88.3.13.1513in»

    Reply
  10. b1958

    (9) Вот небольшой протокольчик выполнения вашей обработки:

    C:Program Files (x86)1cv88.3.13.1801in1cv8.exe CREATEINFOBASE File=»C:UsersorisnAppDataLocalTemp58c8b52d-d679-4e16-99f7-018ddc1679e5″;

    D:отчет.erf

    C:UsersorisnAppDataLocalTempv8_2EF4_2a.erf

    /DumpExternalDataProcessorOrReportToFiles «C:UsersorisnAppDataLocalTempf88a8ead-8c65-456a-944d-76f919a78735ОтчетДляОтладки.xml «C:UsersorisnAppDataLocalTempv8_2EF4_2a.erf»

    DESIGNER /IBConnectionString File=»C:UsersorisnAppDataLocalTemp58c8b52d-d679-4e16-99f7-018ddc1679e5″ /N «» /P «» /DumpExternalDataProcessorOrReportToFiles «C:UsersorisnAppDataLocalTempf88a8ead-8c65-456a-944d-76f919a78735ОтчетДляОтладки.xml «C:UsersorisnAppDataLocalTempv8_2EF4_2a.erf»

    C:UsersorisnAppDataLocalTempf88a8ead-8c65-456a-944d-76f919a78735ОтчетДляОтладкиTemplates

    /LoadExternalDataProcessorOrReportFromFiles «C:UsersorisnAppDataLocalTempf88a8ead-8c65-456a-944d-76f919a78735ОтчетДляОтладки.xml» «D:отчет.erf»

    DESIGNER /IBConnectionString File=»C:UsersorisnAppDataLocalTemp58c8b52d-d679-4e16-99f7-018ddc1679e5″ /N «» /P «» /LoadExternalDataProcessorOrReportFromFiles «C:UsersorisnAppDataLocalTempf88a8ead-8c65-456a-944d-76f919a78735ОтчетДляОтладки.xml» «D:отчет.erf»

    Не удалось сгенерировать отчет. Проверьте, если ли доступ в Конфигуратор, есть ли права на сохранение в указанный каталог

    Причем, в Диспетчере задач видно, что Конфигуратор запускается и, практически, сразу закрывается.

    Может ошибка в командной строке запуска?

    Reply
  11. maxx

    (10) я и пытаюсь понять где ошибка.

    У вас она есть, а у меня нет.

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

    1.) Создаётся ли пустая базу в вашем примере по каталогу C:UsersorisnAppDataLocalTemp58c8b52d-d679-4e16-99f7-018ddc1679e5, но имеется каждый запуск делает новый каталог. Т.е. должна быть база , файл 1cv8.cd

    2.) Выгружается ли каталог файлов для сборки внешней обработке , в вашем примере s «C:UsersorisnAppDataLocalTempf88a8ead-8c65-456a-944d-76f919a78735ОтчетДляОтладки.xml

    Reply
  12. b1958

    (11) Да, я смотрел, что в каталоге TEMP создаются все нужные каталоги и файлы, и чистая БД и файлы сборки. И остаются после неудачного сохранения сгенерированного отчета.

    Попробовать вывести лог программы запуска конфигуратора?

    Может кодировка? Избавиться от наименований файлов русскими буквами?

    Reply
  13. maxx

    (12) Если файлы сборки внешнего отчета сгенерировались. Попробуйте вручную собрать отчет, т.е. в Конфигураторе- Файл — Новый внешний отчет — Действия — Загрузить из файлов — C:UsersorisnAppDataLocalTempf88a8ead-8c65-456a-944d-76f919a78735ОтчетДляОтладки.xml. Может покажет ошибку при сборке?

    Reply
  14. b1958

    (13) При попытке собрать отчет вручную выдается такое сообщение об ошибке:

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

    Ошибка разбора XML: — [1,1]

    Фатальная ошибка:

    Extra content at the end of the document

    SystemId: file://C:/Users/borisn/AppData/Local/Temp/4a39eea2-2dc3-43fd-bbd0-467546a3d9b9/ОтчетДляОтладки/Templates/ОсновнаяСхемаКомпонов­киДанных/Ext/Template.xml

    по причине:

    Ошибка разбора XML: — [1,1]

    Фатальная ошибка:

    Extra content at the end of the document

    SystemId: file://C:/Users/borisn/AppData/Local/Temp/4a39eea2-2dc3-43fd-bbd0-467546a3d9b9/ОтчетДляОтладки/Templates/ОсновнаяСхемаКомпонов­киДанных/Ext/Template.xml

    Файл Template.xml в сответствующем каталоге — пустой (размер 3 байта)

    И все Template.xml во всех каталогах сборки — пустые (по 3 байта).

    Похоже, что-то не сгенерировалось.

    Reply
  15. maxx

    (14)выложите или киньте файлы все, включая файл настроек варииант из консоли запросов

    Reply
  16. b1958

    (15)

    https://cloud.mail.ru/public/AYxA/UahpfpCST

    Попробуй скачать с облака архив.

    Reply
  17. maxx

    (16) Я посмотрел ваши данные.

    Причина неработы похоже в следующем:

    В консоли отчетов СКД вы не настроили ни один вариант отчета вашего отчета. Т.е. вы его не разу реально не формировали.

    Когда настроите вариант отчета, вы должны выделить нужный вариант отчета и тогда нажать «Сгенерировать внешний отчет в файл».

    Отпишитесь, помогло ли это.

    Reply
  18. b1958

    (17) Еще нужно как-то по особенному настраивать?

    Я создал СКД с помощью конструктора и сформировал отчет, получив нужные мне данные. То есть проверил его работоспособность.

    Что еще нужно сделать для настройки варианта?

    (что имеется ввиду под термином «вариант отчета»?)

    Reply
  19. b1958

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

    Думаю, что эту ситуацию можно было бы обработать в программе, а не ссылаться на недоступность каталогов.

    Reply
  20. maxx

    (19) Согласен, что отладочные сообщение можно умнее выдать.

    Сейчас сообщение одно, сформировался или не сформировался отчет и возможные причины.

    Reply
  21. maxx

    (18) Вариант отчета в консоле отчетов СКД, это следующией в дереве уровень настройке после схемы компоновки.

    Reply

Leave a Comment

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