Здравствуйте! Подскажите пожалуйста, я сохраняю НЕСКОЛЬКО вариантов отчетов в файлы. И делаю несколько вариантов настроек для пастроителя.
Каким образом я могу восстановить эти настройки в построитель, файлы я получаю, но в построитель передается только один вариант.
Процедура ПередСохранениемЗначений(Отказ)
СохраненныеНастройки = Новый Структура;
СохраненныеНастройки.Вставить("НастройкиПостроителя",
ПостроительОтчета.ПолучитьНастройки());
Диалог = Новый
ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Диалог.Заголовок = "Выберите имя файла для сохранения";
Диалог.МножественныйВыбор = Ложь;
Диалог.Фильтр = "Прайс(*.CSV)|*.CSV";
Если Диалог.Выбрать() Тогда
ИмяФайла = Диалог.ПолноеИмяФайла;
ЗначениеВФайл(ИмяФайла,СохраненныеНастройки);
КонецЕсли;
КонецПроцедуры // ПередСохранениемЗначений()
ПоказатьКаким образом я могу восстановить эти настройки в построитель, файлы я получаю, но в построитель передается только один вариант.
Процедура ПослеВосстановленияЗначений()
СписокФайлов = Новый СписокЗначений;
Если ТипЗнч(СохраненныеНастройки) = Тип("Структура") Тогда
ЗаполнитьПостроительОтчетаПоЦенамНоменклатуры();
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогОткрытияФайла.Каталог= "\\tsclient\E\1С\Прайс";
НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "*.xls"); //Тут одну надо оставить *
Для Каждого ИмяФайла Из НайденныеФайлы Цикл
СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
КонецЦикла;
НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "*.xlsx");
Для Каждого ИмяФайла Из НайденныеФайлы Цикл
СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
КонецЦикла;
НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "*.xlsm");
Для Каждого ИмяФайла Из НайденныеФайлы Цикл
СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
КонецЦикла;
НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "*.ODS");
Для Каждого ИмяФайла Из НайденныеФайлы Цикл
СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
КонецЦикла;
НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "*.CSV");
Для Каждого ИмяФайла Из НайденныеФайлы Цикл
СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
КонецЦикла;
Для Каждого ИмяФайла Из СписокФайлов Цикл
ФайлПутьКФайлу = ИмяФайла.Значение;
//ПРОВЕРКА НОВОГО ФАЙЛА
ФайлНаДиске = Новый Файл(ФайлПутьКФайлу);
ВремяИзмененияФайла = ФайлНаДиске.ПолучитьВремяИзменения();
РазмерФайла = ФайлНаДиске.Размер();
ИдентификаторПрайса = ""+РазмерФайла+"/"+ВремяИзмененияФайла;
СтруктураЭлементов = ЗначениеИзФайла(ФайлПутьКФайлу);
ПостроительОтчета.УстановитьНастройки(СохраненныеНастройки.НастройкиПостроителя);
ОбновитьОтчет();
КонецЦикла;
КонецЕсли;
КонецПроцедуры // ПослеВосстановленияЗначений()
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Методы ПолучитьНастройки() и УстановитьНастройки() работают с настройками самого построителя отчета, такими как "Отбор", "Порядок", "Измерения", "ВыбранныеПоля" и "УсловноеОформление". При изменении варианта отчета настройки пишутся в построитель отчета или они где-то в другом месте хранятся (ну мало ли)?
Анастасия, добрый день,
а нет ли ошибки в коде?
Вы получаете настройки из файла в структуру
но не используете их:
Возможно следовало попробовать:
а нет ли ошибки в коде?
Вы получаете настройки из файла в структуру
СтруктураЭлементов = ЗначениеИзФайла(ФайлПутьКФайлу);
но не используете их:
УстановитьНастройки(СохраненныеНастройки.НастройкиПостроителя);
Возможно следовало попробовать:
УстановитьНастройки(СтруктураЭлементов.НастройкиПостроителя);
Прикрепленные файлы:
мною было переделано
он теперь берет настройки мои, но только один файл, хотя в цикла проходит два раза,т.к. у меня два файла. Может надо очистить элементы формы?
Процедура ПередСохранениемЗначений(Отказ)
Диалог=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Диалог.Заголовок="Сохранение настроек построителя отчета в файл";
Диалог.Каталог="\\tsclient\E\1С\Прайс";
Диалог.Расширение="set";
Диалог.Фильтр="Настройки посторителя отчета (*.set)|*.set";
Если Диалог.Выбрать() Тогда
ЗначениеВФайл(Диалог.ПолноеИмяФайла, ПостроительОтчета.ПолучитьНастройки());
КонецЕсли;
КонецПроцедуры // ПередСохранениемЗначений()
ПоказатьПроцедура ВосстановитьНастройки() Экспорт
СписокФайлов = Новый СписокЗначений;
//проверим как это будет работать
Диалог=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок="Выбор файла настроек построителя отчета";
Диалог.Каталог="\\tsclient\E\1С\Прайс";
Диалог.Расширение="set";
Диалог.Фильтр="Настройки посторителя отчета (*.set)|*.set";
НайденныеФайлы = НайтиФайлы(Диалог.Каталог, "*.set");
Для Каждого ИмяФайла Из НайденныеФайлы Цикл
СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
КонецЦикла;
Для Каждого ИмяФайла Из СписокФайлов Цикл
Файл = ИмяФайла.Значение;
Попытка
НастройкиПостроителя=ЗначениеИзФайла(Файл);
ПостроительОтчета.УстановитьНастройки(НастройкиПостроителя);
Исключение
Сообщить("Не удалось загрузить настройки построителя отчета.", СтатусСообщения.Внимание);
КонецПопытки;
ОбновитьОтчет();
КонецЦикла;
Сообщить("Все СДелано!");
Показатьон теперь берет настройки мои, но только один файл, хотя в цикла проходит два раза,т.к. у меня два файла. Может надо очистить элементы формы?
(5)
На форме при этом отображается отчёт?
Должен прошлый результат (таб.док) на форме перезатереться сверху новым результатом?
А сейчас на форме не перезатирает? Остаётся прежний табдок?
восстанавливает настройки - формирует
На форме при этом отображается отчёт?
потом далее повторяет цикл, но уже берет второй файлик (восстанавливает настройки - формирует) . Вот как-т
Должен прошлый результат (таб.док) на форме перезатереться сверху новым результатом?
А сейчас на форме не перезатирает? Остаётся прежний табдок?
Настя, а конечная цель какая?
Я так понимаю на форме есть ТабДок, в него результат отчета при формировании отчета выдаётся.
Если цикл две итерации делает, то отчет формируется два раза (с разными настройками), и табдоку присваивается сначала один результат отчета, потом сразу же второй результат отчета. Или как это сейчас происходит? Что видит на форме пользователь? Результат отчета для первой настройки?
Я так понимаю на форме есть ТабДок, в него результат отчета при формировании отчета выдаётся.
Если цикл две итерации делает, то отчет формируется два раза (с разными настройками), и табдоку присваивается сначала один результат отчета, потом сразу же второй результат отчета. Или как это сейчас происходит? Что видит на форме пользователь? Результат отчета для первой настройки?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот