Расшифровка отчета СКД формируется только 1 раз
Сделал отчет на основе общей формы ФормаОтчета. Всё прекрасно работало. В новом релизе Бух 3.0 эта форма была доработана. Дообновил форму из общей формы. Теперь если работаю с отчетом через Файл - Открыть, то расшифровка прекрасно работает. Если же встраиваю во внешние отчеты и обработки, то расшифровка работает только 1 раз. Со второго раза валится в ошибку вида:
"Ошибка создания источника доступных настроек компоновки данных
e1cib/tempstorage/971c81cc-ac81-....
Undefined"
Может кто подскажет, куда смотреть и что чинить?
"Ошибка создания источника доступных настроек компоновки данных
e1cib/tempstorage/971c81cc-ac81-....
Undefined"
Может кто подскажет, куда смотреть и что чинить?
По теме из базы знаний
- Расшифровка отчета Расчет страховых взносов (с 2017г.) для ЗУП, УПП, ЗиКБУ: Раздел 1, Раздел 2, Раздел 3 (с навигацией по ФИО).
- Универсальный конструктор отчетов СКД (управляемые формы, тонкий клиент)
- Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП
- Программная корректировка при выводе отчета СКД
- По-настоящему свои макеты в отчетах СКД. Исследование процесса компоновки и генерация кода отчета
Найденные решения
Кажется, разобрался. Слава Богу!
Проблема была в том, что использовал какой-то старый вариант функции СведенияОВнешнейОбработке().
После того, как заменил на новую - всё заработало.
Предполагаю, что помогло использование "ДополнительныеОтчетыИОбработкиКлиентСервер." - возможно, на каком-то этапе происходит инициализация. Комментарии приветствуются.
Было:
Стало:
Проблема была в том, что использовал какой-то старый вариант функции СведенияОВнешнейОбработке().
После того, как заменил на новую - всё заработало.
Предполагаю, что помогло использование "ДополнительныеОтчетыИОбработкиКлиентСервер." - возможно, на каком-то этапе происходит инициализация. Комментарии приветствуются.
Было:
Функция СведенияОВнешнейОбработке() Экспорт
СтруктураСведений = Новый Структура;
СтруктураСведений.Вставить("Наименование", "Мой новый отчет");
СтруктураСведений.Вставить("Информация", "Мой новый отчет");
СтруктураСведений.Вставить("Версия", "0.1");
СтруктураСведений.Вставить("Вид", "ДополнительныйОтчет");
СтруктураСведений.Вставить("БезопасныйРежим", Истина);
ТаблицаКоманд = Новый ТаблицаЗначений;
ТаблицаКоманд.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
ТаблицаКоманд.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
ТаблицаКоманд.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
ТаблицаКоманд.Колонки.Добавить("Обработчик", Новый ОписаниеТипов("Строка"));
СтрокаТаблицы = ТаблицаКоманд.Добавить();
СтрокаТаблицы.Использование = "ОткрытиеФормы";
СтрокаТаблицы.Представление = "Мой новый отчет";
СтрокаТаблицы.Идентификатор = "мойНовыйОтчет";
СтруктураСведений.Вставить("Команды", ТаблицаКоманд);
Возврат СтруктураСведений;
КонецФункции
ПоказатьСтало:
/////////////////////////////////////////////////////////////////////////////
// ОПИСАНИЕ ИНТЕРФЕЙСОВ
// Интерфейс для регистрации обработки.
// Вызывается при добавлении обработки в справочник "ВнешниеОбработки"
//
// Возвращаемое значение:
// Структура:
// Вид - строка - возможные значения: "ДополнительнаяОбработка"
// "ДополнительныйОтчет"
// "ЗаполнениеОбъекта"
// "Отчет"
// "ПечатнаяФорма"
// "СозданиеСвязанныхОбъектов"
//
// Назначение - массив строк имен объектов метаданных в формате:
// <ИмяКлассаОбъектаМетаданного>.[ * | <ИмяОбъектаМетаданных>]
// Например, "Документ.СчетЗаказ" или "Справочник.*"
// Прим. параметр имеет смысл только для назначаемых обработок
//
// Наименование - строка - наименование обработки, которым будет заполнено
// наименование справочника по умолчанию - краткая строка для
// идентификации обработки администратором
//
// Версия - строка - версия обработки в формате <старший номер>.<младший номер>
// используется при загрузке обработок в информационную базу
// БезопасныйРежим – Булево – Если истина, обработка будет запущена в безопасном режиме.
// Более подбробная информация в справке.
//
// Информация - Строка- краткая информация по обработке, описание обработки
//
// Команды - ТаблицаЗначений - команды, поставляемые обработкой, одная строка таблицы соотвествует
// одной команде
// колонки:
// - Представление - строка - представление команды конечному пользователю
// - Идентификатор - строка - идентефикатор команды. В случае печатных форм
// перечисление через запятую списка макетов
// - Использование - строка - варианты запуска обработки:
// "ОткрытиеФормы" - открыть форму обработки
// "ВызовКлиентскогоМетода" - вызов клиентского экспортного метода из формы обработки
// "ВызовСерверногоМетода" - вызов серверного экспортного метода из модуля объекта обработки
// - ПоказыватьОповещение – Булево – если Истина, требуется оказывать оповещение при начале
// и при окончании запуска обработки. Прим. Имеет смысл только
// при запуске обработки без открытия формы.
// - Модификатор – строка - для печатных форм MXL, которые требуется
// отображать в форме ПечатьДокументов подсистемы Печать
// требуется установить как "ПечатьMXL"
//
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет());
ПараметрыРегистрации.Вставить("Назначение", Новый Массив);
ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = 'Мой новый отчет'"));
ПараметрыРегистрации.Вставить("Версия", "0.1");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'Мой новый отчет'"));
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд,
НСтр("ru = 'Мой новый отчет'"),
"мойНовыйОтчет",
ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы());
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
/////////////////////////////////////////////////////////////////////////////
// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "ПечатьMXL")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Кажется, разобрался. Слава Богу!
Проблема была в том, что использовал какой-то старый вариант функции СведенияОВнешнейОбработке().
После того, как заменил на новую - всё заработало.
Предполагаю, что помогло использование "ДополнительныеОтчетыИОбработкиКлиентСервер." - возможно, на каком-то этапе происходит инициализация. Комментарии приветствуются.
Было:
Стало:
Проблема была в том, что использовал какой-то старый вариант функции СведенияОВнешнейОбработке().
После того, как заменил на новую - всё заработало.
Предполагаю, что помогло использование "ДополнительныеОтчетыИОбработкиКлиентСервер." - возможно, на каком-то этапе происходит инициализация. Комментарии приветствуются.
Было:
Функция СведенияОВнешнейОбработке() Экспорт
СтруктураСведений = Новый Структура;
СтруктураСведений.Вставить("Наименование", "Мой новый отчет");
СтруктураСведений.Вставить("Информация", "Мой новый отчет");
СтруктураСведений.Вставить("Версия", "0.1");
СтруктураСведений.Вставить("Вид", "ДополнительныйОтчет");
СтруктураСведений.Вставить("БезопасныйРежим", Истина);
ТаблицаКоманд = Новый ТаблицаЗначений;
ТаблицаКоманд.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
ТаблицаКоманд.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
ТаблицаКоманд.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
ТаблицаКоманд.Колонки.Добавить("Обработчик", Новый ОписаниеТипов("Строка"));
СтрокаТаблицы = ТаблицаКоманд.Добавить();
СтрокаТаблицы.Использование = "ОткрытиеФормы";
СтрокаТаблицы.Представление = "Мой новый отчет";
СтрокаТаблицы.Идентификатор = "мойНовыйОтчет";
СтруктураСведений.Вставить("Команды", ТаблицаКоманд);
Возврат СтруктураСведений;
КонецФункции
ПоказатьСтало:
/////////////////////////////////////////////////////////////////////////////
// ОПИСАНИЕ ИНТЕРФЕЙСОВ
// Интерфейс для регистрации обработки.
// Вызывается при добавлении обработки в справочник "ВнешниеОбработки"
//
// Возвращаемое значение:
// Структура:
// Вид - строка - возможные значения: "ДополнительнаяОбработка"
// "ДополнительныйОтчет"
// "ЗаполнениеОбъекта"
// "Отчет"
// "ПечатнаяФорма"
// "СозданиеСвязанныхОбъектов"
//
// Назначение - массив строк имен объектов метаданных в формате:
// <ИмяКлассаОбъектаМетаданного>.[ * | <ИмяОбъектаМетаданных>]
// Например, "Документ.СчетЗаказ" или "Справочник.*"
// Прим. параметр имеет смысл только для назначаемых обработок
//
// Наименование - строка - наименование обработки, которым будет заполнено
// наименование справочника по умолчанию - краткая строка для
// идентификации обработки администратором
//
// Версия - строка - версия обработки в формате <старший номер>.<младший номер>
// используется при загрузке обработок в информационную базу
// БезопасныйРежим – Булево – Если истина, обработка будет запущена в безопасном режиме.
// Более подбробная информация в справке.
//
// Информация - Строка- краткая информация по обработке, описание обработки
//
// Команды - ТаблицаЗначений - команды, поставляемые обработкой, одная строка таблицы соотвествует
// одной команде
// колонки:
// - Представление - строка - представление команды конечному пользователю
// - Идентификатор - строка - идентефикатор команды. В случае печатных форм
// перечисление через запятую списка макетов
// - Использование - строка - варианты запуска обработки:
// "ОткрытиеФормы" - открыть форму обработки
// "ВызовКлиентскогоМетода" - вызов клиентского экспортного метода из формы обработки
// "ВызовСерверногоМетода" - вызов серверного экспортного метода из модуля объекта обработки
// - ПоказыватьОповещение – Булево – если Истина, требуется оказывать оповещение при начале
// и при окончании запуска обработки. Прим. Имеет смысл только
// при запуске обработки без открытия формы.
// - Модификатор – строка - для печатных форм MXL, которые требуется
// отображать в форме ПечатьДокументов подсистемы Печать
// требуется установить как "ПечатьMXL"
//
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет());
ПараметрыРегистрации.Вставить("Назначение", Новый Массив);
ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = 'Мой новый отчет'"));
ПараметрыРегистрации.Вставить("Версия", "0.1");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'Мой новый отчет'"));
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд,
НСтр("ru = 'Мой новый отчет'"),
"мойНовыйОтчет",
ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы());
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
/////////////////////////////////////////////////////////////////////////////
// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "ПечатьMXL")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот