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





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

Итак, вы сделали отчет на СКД, например , в классической консоли отчетов СКД с ИТС  (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 не будет опубликован. Обязательные поля помечены *