Выгрузка внешних отчетов и обработок в виде файлов в выбранный каталог и поиск ошибок в них после обновления
Разработка - Инструментарий разработчика
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
После обновления 1С ЗУП у клиента у пользователя появилась ошибка:
Слишком много фактических параметров
{ВнешняяОбработка.ТрудовойДоговорВнешний.МодульОбъекта(372)}:ТаблицаНачислений = КадровыйУчет.ТаблицаНачисленийСотрудниковПоВременнойТаблице(Запрос.МенеджерВременныхТаблиц, "ВТСотрудникиПериоды", , , , Ложь, Истина);
После анализа было выявлено, что 1С изменили функцию "ТаблицаНачисленийСотрудниковПоВременнойТаблице", изменив в ней передаваемые параметры. Я исправил вызов этой функции во внешнем отчете, и ошибка у пользователя пропала. Но встал вопрос, а сколько еще ошибок может быть, до которых пользователь еще не добрался.
В итоге я решил сделать обработку, которая помогла бы выгрузить все отчеты в каталог.
Я создал таблицу с данными о внешних отчетах.

На форму добавил команды "Заполнить" и "Выгрузить в каталог"
&НаКлиенте
Процедура Заполнить(Команда)
ЗаполнитьНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНаСервере()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Таблица.Ссылка КАК ВнешнийОтчет,
| Таблица.ПометкаУдаления КАК ПометкаУдаления,
| Таблица.Наименование КАК Наименование,
| Таблица.Версия КАК Версия,
| Таблица.Ответственный КАК Ответственный,
| Таблица.Публикация КАК Публикация,
| Таблица.Вид КАК Вид,
| Таблица.ИмяОбъекта КАК ИмяОбъекта,
| Таблица.ЭтоГруппа КАК ЭтоГруппа,
| ВЫБОР
| КОГДА Таблица.Вид В (&ВидыДопОтчетов)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоОтчет,
| Таблица.ИмяФайла КАК ИмяФайла
|ИЗ
| Справочник.ДополнительныеОтчетыИОбработки КАК Таблица
|ГДЕ
| НЕ Таблица.ЭтоГруппа";
ВидыДопОтчетов = Новый Массив;
ВидыДопОтчетов.Добавить(Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет);
ВидыДопОтчетов.Добавить(Перечисления.ВидыДополнительныхОтчетовИОбработок.Отчет);
Запрос.УстановитьПараметр("ВидыДопОтчетов",ВидыДопОтчетов);
Объект.ТаблицаОтчетов.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьВКаталог(Команда)
//Создадим массив файлов, которые надо будет сохранить на клиинте
МассивПередаваемыхФайлов = Новый Массив;
Для Каждого ДанныеСтроки из Объект.ТаблицаОтчетов Цикл
Если НЕ ЗначениеЗаполнено(ДанныеСтроки.ВнешнийОтчет) Тогда
//пустой отчет не выгружаем
Продолжить;
КонецЕсли;
Адрес = ДополнительныеОтчетыИОбработкиВызовСервера.ПоместитьВХранилище(ДанныеСтроки.ВнешнийОтчет, Неопределено);
ИмяФайла = СокрЛП(ДанныеСтроки.ИмяФайла);
МассивПередаваемыхФайлов.Добавить(Новый ОписаниеПередаваемогоФайла(ИмяФайла,Адрес));
КонецЦикла;
ПараметрыДиалога = Новый ПараметрыДиалогаПолученияФайлов("Выберите каталог для сохранения файлов", Истина);
НачатьПолучениеФайловССервера(МассивПередаваемыхФайлов, ПараметрыДиалога);
ПоказатьПредупреждение(,"Выгрузка завершена");
КонецПроцедуры
После того, как все внешние отчеты были сохранены в каталог.

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


В итоге я нашел все места использования данной функции и исправил их. Во внешние обработки я уже загружал каждый файл по отдельности и проверял корректность работы.
Буду рад, если кому-то мой опыт показался полезным.
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.187.20
- Зарплата и управление персоналом, редакция 3.1, релизы 3.1.36.19
Вступайте в нашу телеграмм-группу Инфостарт