Как выгрузить отчет 1с erf
Всё вроде бы выгружается хорошо, исправляем отчет под требования клиента, пробуем открыть в режиме предприятия и сталкиваемся с принеприятнейшей ошибкой: Ошибка при выполнении функции ОбщегоНазначения.ИдентификаторОбъектаМетаданных()
Потратив часика полтора два на поиск устранения данной ошибки в доблестном интернете (информация сводится к двум вещам или обновить метаданные (//infostart.ru/public/372055/) или поправь права на объекты и обнови метаданные. Напомню, конфигурация на поддержки, мы ничего сломать не могли, просто пытаемся открыть отчет), результата так и не добился. Далее решил попробовать подключить его как внешний через "дополнительные отчеты и обработки", - результат тоже не тот:
Посмотрел в конфигуратор, на ошибки и понял, что почти все типовые отчеты содержат такую штуку как МодульМенеджера, в котором прописано поведение отчета и сидеть переписывать модуль менеджера отчета "под себя" что называется не было никакого желания.
Решив, уже ради спортивного интереса, добиться всё таки чтобы механизм по выгрузке отчетов заработал так как мне нужно (напомню, цель была сделать возможным доработку типового отчета с минимальными трудозатратами) прибегнул к методу которого нигде не нашел: Расширение! Если отчету нужен модель менеджера сделаем ему его :) Но столкнулся с проблемой что при заимствовании отчета в расширение СКД нельзя поменять, но вот если загрузить внешний отчет (ПКМ в конфигураторе), тогда картина становится совсем другой.
Далее переименовал имя отчета и вот беда подкралась не заметно, в расширении не открывается СКД этого отчета (потому что мы не "перетянули" в расширение все объекты, из которых строится отчет).
Однако и тут оказалось всё достаточно просто. В том отчете который мы просто выгрузили в самом начале, СКД прекрасно открывается и редактируется. Подправив СКД под требования заказчика, осталось только заменить его в нашем отчете из расширения.
Сделать это тоже очень просто достаточно просто сравнить отчет
при этом мы знаем, что нам нужно только измененное СКД:
Теперь нужно не забыть проанализировать реквизиты отчета и позаимстовать в расширение те объекты типов которых не хватает. (в моем примере это справочник.Организация и ХранилищеВариантовОтчетов), подсистема в которую необходимо выводить отчет (сделал в администрирование чтобы было проще искать). Далее копируем модуль менеджера типового отчета в свой добавленный и вуаля, всё готово.
Любое решение требует поддержки, в том числе и в части улучшения программного кода и архитектуры решения. Это то, в чем нуждается каждое программа, а в нашем случае каждая конфигурация, созданная на базе платформы 1С.
Модули конфигураций чаще всего подвергаются адаптации под изменяющуюся архитектуру, но как обстоят дела с внешними отчетами и обработками? В одной из прошлых публикаций был сделан простой инструмент для пакетной выгрузки и загрузки внешних отчетов и обработок, который будет постепенно развиваться дальше.
Давайте рассмотрим простой пример того, как выгрузить внешние отчеты и обработки для обновления и улучшения, а после загрузить изменения массово обратно.
Суть проблемы
Реальная ситуация: после полугода доработки конфигурации появилась необходимость привести ее программный код в порядок. Разработчики по всем вносимым доработкам, например, использовали один общий модуль. Настало время разделить процедуры и функции этого модуля на отдельные части. Для решения подобной задачи нужно определиться со структурой конфигурацией, четко определить границы подсистем, включаемых в ее состав. Затем перенести процедуры и функции в соответствующие модули.
Конечно же, останавливаться на этом нельзя, но может потребовать внесения изменений в модули внешних отчетов и обработок. Все это можно проделать с помощью механизма глобальной замены конфигуратора.
Сегодня мы и рассмотрим как выгрузить справочник внешних обработок на диск для их последующего изменения, а после загрузить все обратно.
Решение
Чтобы решить задачу мы можем воспользоваться стандартной возможностью конфигуратора по поиску и замене текстов модулей. На этот раз нам нужно будет установить настройки на вкладке "Файлы", где мы укажем каталог с внешними обработками и отчетами, а также указать текст поиска и замены.
Остается только выгрузить все внешние обработки из информационной базы в назначенный каталог, обработать тексты их модулей и загрузить обратно. Мы, конечно, можем проделать это вручную, но мы ведь программисты! Напишем пару скриптов для автоматизации выгрузки / загрузки внешний отчетов и обработок. Для примера решим эту задачу для конфигурации "Управление производственным предприятием" версии 1.3, а после для чего-нибудь более нового. Например, для "Бухгалтерии предприятия" редакции 3.
Автоматизация процесса для УПП
Обработка для выгрузки будет достаточно простой, поэтому алгоритм выгрузки и загрузки приведу в обычных листингах кода. Для УПП все внешние обработки и отчеты, прикрепленные к информационной базе, хранятся в справочнике "ВнешниеОбработки". Вот так выглядит структура метаданных справочника:
И так, приступим! На следующем листинге представлен алгоритм выгрузки внешний обработок и отчетов в выбранный каталог.
Скрипт для выгрузки внешних отчетов и обработок с предварительным выбором каталога.
Выгрузка данных из строк табличной части справочника не выполняется.
Загрузка внешних обработок представлена далее.
Аналогичный скрипт с выбором каталога, но для загрузки файлов внешних отчетов и обработок в соответствующий справочник.
Поиск выполняется по коду, т.к. в предыдущем скрипте для выгрузки использовался именно он. При использовании наименования или GUID'а скрипт нужно подкорректировать.
Используя приведенный алгоритм проблем с выгрузкой/загрузкой внешний обработок и отчетов быть не должно. Нужно лишь учитывать, что коды элементов справочника должны иметь уникальные имена и у пользователя, запускающего обработку, должны быть соответствующие права доступа.
Стоит понимать, что в некоторых случаях внешние обработки и отчеты могут храниться не в реквизите "ХранилищеВнешнейОбработки", а в табличной части "Принадлежность". Тогда необходимо доработать представленные выше алгоритмы выгрузки/загрузки. Обычно это редко встречается, т.к. такой подход хранения создает некоторые проблемы в сопровождении - все эти обработки нужно отслеживать и дорабатывать отдельно.
Алгоритмы для БП 3.x
В современных конфигурациях справочник "Дополнительные отчеты и обработки" значительно отличается от того, что было в предыдущих версиях решений на обычных формах. Структура метаданных справочника имеет следующий вид.
Выгружать внешние отчеты и обработки будем в явно указанный каталог. Если база файловая, то выгрузка будет выполняться там, где запущено клиентское приложение. Если база клиент-серверная, то выгрузка выполняется на стороне сервера. Пример алгоритма для выгрузки отчетов и обработок в каталог под следующим спойлером.
Алгоритм выгрузки достаточно простой. Все что нужно:
- Получаем элементы справочника, у которого нет пометки на удаление и это не группа.
- Если есть двоичные данные файла в справочнике, то выгружаем в каталог.
- Расширение файла зависит от вида внешней обработки / отчета.
- Профит!
Теперь у нас есть выгруженные обработки и отчеты в каталоге. Ура!
Теперь задача поинтересней - нужно ранее выгруженные файлы загрузить обратно в справочник.
Алгоритм загрузки намного сложнее, т.к. требует доп. проверок и вызова типовых алгоритмов регистрации дополнительных отчетов и обработок.
Для ключевых частей алгоритма добавлены комментарии.
Если у Вас бардак в справочнике из-за обменов или некорректной работы со справочником программным образом, то типовые алгоритмы регистрации могут выдавать оповещения об ошибках или просто предупреждения о корректности настройки элементов.
Вот и все, задача решена!
Выводы
В итоге, внесение изменений в модули внешних обработок / отчетов сводятся к трем шагам:
- Выгрузка внешних обработок и отчетов из информационной базы в каталог на диске.
- Изменение модулей. Простые изменения можно выполнять с помощью стандартных возможностей конфигуратора по поиску и замене текстов модулей, а в сложных случаях нужно подходить индивидуально.
- Загрузка внешний отчетов и обработок обратно в информационную базу (соответствие файлов и элемента справочника устанавливается по коду элемента, который был записан ранее в имя файла. Последнее поведение может быть изменено по необходимости).
Пример ситуации, когда понадобилось массовое изменение внешних отчетов и обработок Вы также можете найти в публикации "Пакетная выгрузка / загрузка внешних отчетов и обработок".
Управлять внешними отчетами и обработками будет намного проще, если они будут храниться в GIT, а их изменения будут версионироваться. Но это уже совсем другая история.
А как Вы выполняете массовые изменения внешних отчетов и обработок?
Другие ссылки
Авторские разработки
Анализ производительности APDEX - отчет для просмотра и анализа замеров производительности в конфигурациях на базе БСП.
Путеводитель по истории релизов - отчет по истории выпуска релизов продуктов фирмы "1С" и анализа информации по обновлениям.
Просмотр и анализ структуры базы данных (отчет на СКД) - отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.
Просмотр и анализ журнала регистрации (отчет на СКД) - отчет на базе системы компоновки данных (СКД) для просмотра записей журнала регистрации.
Обозреватель криптографии - отчет для просмотра доступных провайдеров и сертификатов криптографии на сервере и клиенте.
Пакетная выгрузка / загрузка внешних отчетов и обработок - пакетная выгрузка / загрузка внешних отчетов и обработок для массовый манипуляций с ними.
Как открыть внешнюю обработку *.epf, *.erf (1C 8.3) ?
ИНСТРУКЦИЯ 1С 8 → перейти в меню [СТАТЬИ И ИНСТРУКЦИИ]
Для открытия внешних отчетов и/или обработок в 1С 8.3 есть несколько способов. Самый быстрый способ открыть внешнюю обработку или отчет – это перетащить мышкой файл в окно 1С Предприятие. Однако этот способ не всегда удобен.
В меню программы (сверху-справа) жмем на кнопку меню и находим пункт "Файл". Нажимаем "Файл" –> "открыть" :
Выбираем нужный нам файл с расширением *.erf или *.epf (например: ВнешнийОтчетРезультат.erf ) с жёсткого диска или сетевой папки и нажимаем кнопку открыть:
Если платформа не обнаружит синтаксических ошибок или, например недостающих компонент, то внешняя обработка/отчет запустится в окне 1С Предприятия для выполнения своего предназначения.
Если предполагается использование отчета (обработки) для определённого документа, то можно подключить его в меню конфигурации:
В меню начальной страницы выбираем "Администрирование" и открываем "Дополнительные отчеты и обработки":
Система безопасности выдаст следующее предупреждение. Если уверены в происхождении отчета, жмем "Продолжить":
В конфигурации подключена БСП и при отсутствии функции СведенияОВнешнейОбработке, появится следующая ошибка: "Невозможно подключить дополнительный отчет из файла. Возможно, он не подходит для этой версии программы. Техническая информация: Метод объекта не обнаружен (СведенияОВнешнейОбработке)". Для решения этой проблемы нужно создать соответствующую функцию в модуле объекта. См.пример кода!
Когда функция СведенияОВнешнейОбработке в отчете будет определена, программа зарегистрирует отчет в системе и запомнит, для какого документа предназначен отчет (корректно заполнит настройки).
ИНСТРУКЦИЯ 1С 8 → перейти в меню [СТАТЬИ И ИНСТРУКЦИИ]
*.cf - файл содержит только конфигурацию(код и структура) без пользовательских данных. Создаётся из конфигуратора 1С 8.х: «Конфигурация -> Сохранить конфигурацию в файл» или «Конфигурация -> Поставка конфигурации -> Создать файл поставки и обновление конфигурации -> признак «Создать файл поставки»».
*.cfu - файл содержит только обновление конфигурации. Например файл 1cv8.cfu. Создать конфигурацию из этого файла невозможно, так как он содержит в себе только отличия новой конфигурации от предыдущей. Создаётся из конфигуратора 1С 8.х: «Конфигурация -> Поставка конфигурации -> Создать файл поставки и обновление конфигурации -> признак «Создать файл обновления конфигурации»».
*.cfe - файл-расширение, предназначенный для доработки конфигурации без её изменения. При использовании расширений 1С (*.cfe) - доработанная конфигурация может полноценно обновляться и с поддержки не снимается.
*.dt - файл содержит конфигурацию вместе с пользовательской базой данных. Это специализированный формат архива 1С 8. Создаётся из конфигуратора 1С 8.х: «Администрирование -> Выгрузить информационную базу».
*.epf (*.erf) – файл внешней обработки (отчёта). Любую обработку (отчёт) из конфигурации можно сохранить внешней. Создаётся из конфигуратора 1С 8.х: «Конфигурация -> Открыть конфигурацию -> становимся на нужную обработку (отчёт) -> выделяем правой кнопкой мыши -> Сохранить как внешнюю обработку, отчёт…». Открыть эти файлы в режиме 1С Предприятия 8.3 можно по инструкции .
*.1cd – файл полноценной базы данных. Представление имени по умолчанию: 1Cv8.1CD. Включает в себя конфигурацию, базу данных, пользовательские настройки. Открывается платформой 1С 8.x. Создаётся для разработки новой конфигурации автоматически по кнопке «Добавить» при выборе пункта «Создание новой информационной базы».
*.log, *.lgf, *.lgp, *.elf - лог файлы, которые собирают информацию (регистрируют данные) в 1С 8.0 8.1, 8.2, 8.3. Например, файл 1Cv8.lgf (в каталоге 1Cv8Log ) содержит информацию журнала регистрации.
*. cdn - файл с таким расширением ( 1Cv8.cdn) служит для ручной или автоматической блокировки базы данных 1С Предприятия восьмой версии .
*.mxl - файлы печатных форм используются, в том числе и в 1С. Являются как печатными формами документов, справочников, отчётов, так и различными накопителями данных для различных классификаторов. Открывается через Конфигуратор или в режиме 1С:Предприятии через «файл -> открыть». Создаётся точно так же: в режиме Конфигуратор или в 1С:Предприятии через «файл -> новый». Так же файлы с такими расширениями могут служить правилами переноса, например, из 1С 7.7 в 8.2 ( acc77_82.xml и вспомогательная обработка exp77_82.ert) - находятся они обычно в папке ExtForms.
*.efd - это архивный файл 1С, используется для установки конфигурации. Содержит или конфигурацию 1с или обновление к ней. Запускается с помощью вспомогательного исполняющего файла setup.exe (должен находиться в одной папке).
*.mft – вспомогательный файл для создания конфигурации из шаблона. Содержит информацию о конфигурации, описание, пути, название. Используется непосредственно самой платформой при создании информационной базы 1С из шаблона.
*.grs - файлы графических схем в специализированном формате 1С. Открывается через Конфигуратор или в режиме 1С:Предприятии через «файл -> открыть». Создаётся точно так же: в режиме Конфигуратор или в 1С:Предприятии через «файл -> новый».
*.geo - файлы географических схем в специализированном формате 1С. Открывается через Конфигуратор или в режиме 1С:Предприятии через «файл -> открыть». Создаётся точно так же: в режиме Конфигуратор или в 1С:Предприятии через «файл -> новый».
*.st - файлы шаблонов текстов. Используются в основном 1С разработчиками. Рекомендую для автозамены эти шаблоны кода .
*.pff - файл с сохраненными замерами производительности. Используются системными администраторами и специалистами 1С.
. 1Cv8.pfl - параметры для компьютера/информационной базы/пользователя (в т.ч. пароли пользователей, настройки текстового редактора, настройки глобального поиска по текстам конфигурации, список переменных для быстрого просмотра в отладчике ). Настройки модулей в конфигураторе хранятся в файле 1Cv8.pfl . Этот файл обычно находится в каталоге настроек пользователя C:\Users\<ИмяПользователя>\AppData\Roaming\1C\1cv8.
ИмяПользователя>
. 1Cv8cmn.pfl - общие параметры для компьютера, используемые в 1С:Предприятии/Конфигураторе (в т.ч. цвета редактора модулей в конфигураторе )
*.ini - стандартное расширение файла настроек в разных программах. В 1С 8 используется файл nethasp.ini для хранения настроек аппаратного ключа.
Несмотря на то, что 1С является самой популярной, удобной и надежной информационной системой, имеющей в своей линейке комплекс решений для автоматизации и обработки абсолютно всех бизнес-процессов на предприятиях любого масштаба и области деятельности, все равно у пользователей ежедневно возникает необходимость выгрузить данные из 1С в сторонние программы или файлы. В данной статье рассмотрим, что такое выгрузка из 1С и покажем, как сделать выгрузку из 1С и какие проблемы могут возникать при этом. Забегая вперед, отметим, что если по прочтение статьи вам будет нужно задать вопрос по 1С, обратитесь к нашим специалистам по телефону или через заявку на сайте. Мы свяжемся с вами в кратчайшие сроки.
Данные, которые можно выгружать из 1С
1С любой конфигурации штатно поддерживает выгрузку таких данных как:
- Печатные формы;
- Отчеты;
- Таблицы и списки.
Выгрузка данных из 1С 8.3 возможна во многих популярных форматах:
- Microsoft Excel;
- Microsoft Word;
- PDF;
- Выгрузка в CSV;
- HTML и другие.
Выгрузка печатных форм и отчетов
Любую печатную форму или отчет в 1С можно сохранить в нужном формате. Для этого понадобится открыть форму или отчет, затем выбрать в Главном меню Файл - Сохранить как.
Рис.1 Сохранение печатной формы и отчета
После этого будет открыто окно сохранения файла, в котором указывается имя и тип файла:
Рис.2 Окно сохранения файла
Возможные проблемы при выгрузке из 1С
В некоторых случаях кнопка меню «Сохранить как» может быть недоступна для выбора:
Рис.3 Сохранение невозможно
Это связано с тем, что печатная форма или отчет не активизированы в данный момент. Чтобы печатная форма стала доступна для сохранения, требуется просто кликнуть мышкой в любое место на ней:
Рис.4 Активация печатной формы
Теперь пункт меню «Сохранить как» будет доступен. Если при выгрузке данных у вас возникли также и другие проблемы, обратитесь к нашим специалистам по сопровождению 1С 8.3, мы с радостью вам поможем.
Выгрузка в Excel
Обработка данных в самом популярном табличном формате требует соответствующей выгрузки. Для того чтобы сохранить нужные данные в формате Excel, необходимо в диалоге сохранения файла указать тип Лист Excel2007-. (*.xlsx). Реже необходимо сохранить данные в старом формате Лист Excel (*.xls):
Рис.5 Сохранение нужных данных в формате Excel
Аналогично, выбирая нужный формат, можно сделать выгрузку из 1С в PDF, из 1С в WORD, из 1С в CSV, а также в другие форматы.
Выгрузка произвольных таблиц из 1С
В данном разделе будет показано, как можно выгрузить любые данные, при условии, что у вас есть на это права.
В 1С разработан штатный механизм, который позволяет выгрузить любой список (например, список документов или элементы справочника). Для этого в командной панели любого списка, в группе «Еще» доступна команда «Вывести список»:
Рис.6 Выгрузка списков
Далее требуется указать нужные колонки и нажать кнопку ОК:
Рис.7 Выбор колонок
Информация будет выведена в специальный табличный документ. Этот документ выглядит так же, как любой другой отчет в 1С, и его можно выгрузить точно так же, используя команду Файл – Сохранить как:
Рис.8 Табличный документ
Как выгрузить данные, которые не видно в списке
Зачастую, возникшая задача по выгрузке какой-то список, сопровождается необходимостью добавления туда колонок, которые точно есть в документе (справочнике), но их по каким-то причинам не видно в текущем списке. Пример: в списке «Клиенты» добавить для выгрузки поле «Телефон», которое отображается только в дополнительной панели справа:
Рис.9 Выгрузка данных, не отображающихся в списке
Чтобы телефон можно было выгрузить из 1С, его все же сначала необходимо добавить в список. Для этого надо вызвать команду «Еще - Изменить форму». Далее нам понадобиться в списке колонок найти нужную. Тут есть одна хитрость: разработчики типовых конфигураций почти всегда добавляют поле «Ссылка». Если встать на него, а затем нажать кнопку «Добавить поля», то мы увидим все возможные поля этого справочника. Находим поле «Телефон» и ставим у него галочку использования.
Рис.10 Добавить поля
Рис.11 Выгрузить данные
После этого базу данных клиентов с телефонами можно выгрузить в файл через штатную команду «Вывести список».
Обмен данными с 1С
Гарантируем обмен без ошибок между любыми системами 1С. Условия гарантии прописываем в договоре!
Перенос данных 1С
Переходите на новую программу 1С? Проведем бесплатный анализ и перенесем только необходимые данные
Читайте также: