helpf.pro
Регистрация

Сохранение значений

IKSparrow
09.08.2010 11:02Прочитано: 3079
Есть штатная обработка ВыгрузкаЗагрузкаДанныхXML81.epf - для обмена данными между конфигурациями посредством XML. Достаточно удобная штука, поэтому взяли её в качестве инструмента, настроили определённым образом критерии выгрузки/загрузки данных и отдали пользователям. Но вот один нюанс есть весьма раздражающий - как сохранить все настройки обработки, чтобы они были одинаковыми вне зависимости от пользователя, компа, логина и т.д. и т.п.? Про файлики, в которых хранятся настройки внешних отчётов и обработок наслышан, но с ними морока, да и их копирование другому пользователю не работает. Что тут можно придумать быстрое по реализации, простое по задумке и элегантное в общем смысле?
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
09.08.2010 11:35Ответ № 1
Привет! Вот пара примером решения проблемы:

1. Можно у каждого пользователя запустить обработку указать все параметры и нажать Сохранить значения - поставив галочку использовать при загрузке!
Теперь при открытии обработки у пользователя - она будет запускаться с сохраненными значениями.

2. Написать маленькую обработку для запуска этой, где Создаешь кнопку Выгрузить и в ее коде пришешь:
Код 1C v 8.х
  Если ИмяПользователя() = "Вася Пупкин" Тогда
Обработина = Обработки.УниверсальныйОбменДаннымиXML.Создать();
Обработина.РежимОбмена = "Выгрузка";
Обработина.ДатаНачала = НачалоДня(ДобавитьМесяц(ТекущаяДата(),-1));
Обработина.ДатаОкончания = КонецМесяца(ТекущаяДата());
Обработина.ИмяФайлаОбмена = "D:\Obmen\UploadVP.xml";
Обработина.ИмяФайлаПравилОбмена = "D:\Obmen\Pravila_vasy.xml";
Обработина.ЗагрузитьПравилаОбмена();
Обработина.ВыполнитьВыгрузку();
ИначеЕсли ИмяПользователя() = "Петя Пупкин" Тогда
// ... тотже запуск что и в первом случае, только с другими правилами
Обработина = Обработки.УниверсальныйОбменДаннымиXML.Создать();
Обработина.РежимОбмена = "Выгрузка";
Обработина.ДатаНачала = НачалоДня(ДобавитьМесяц(ТекущаяДата(),-1));
Обработина.ДатаОкончания = КонецМесяца(ТекущаяДата());
Обработина.ИмяФайлаОбмена = "D:\Obmen\UploadVP.xml";
Обработина.ИмяФайлаПравилОбмена = "D:\Obmen\Pravila_pety.xml";
Обработина.ЗагрузитьПравилаОбмена();
Обработина.ВыполнитьВыгрузку();
КонецЕсли;
IKSparrow
10.08.2010 07:56Ответ № 2
1. Трудоёмко получается - каждому пользователю настройки указывать - их там просто очень много )
2. Эм... Это ты перепутал обработки - в этой не используются правила выгрузки/загрузки )

Всё-таки, двигателем прогресса была лень *06
E_Migachev
10.08.2010 09:54Ответ № 3
Если это штатная обработка, то ее тоже можно запускать из другой обработки, как во втором примере )
IKSparrow
21.09.2010 14:59Ответ № 4
По данной обработке решил проблемку просто - добавил пару кнопок на форму и к каждой привязал соответствующий код. Там самое главное сохранить данные дерева конфигурации и отбора - остальное обработка сама восстановить и сделает. Код ниже. Вдруг кому пригодится.


Код 1C v 8.х
 Процедура ОсновныеДействияФормыСохранитьНастройкиВыгрузки(Кнопка)
ДиалогСохраненияНастроек = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
ДиалогСохраненияНастроек.Заголовок = "Введите имя файла для сохранения";
ДиалогСохраненияНастроек.Фильтр = "XML (*.xml)|*.xml";
Если ДиалогСохраненияНастроек.Выбрать() Тогда
ИмяФайлаНастроек = ДиалогСохраненияНастроек.ПолноеИмяФайла;
Иначе
Возврат;
КонецЕсли;

Если СокрЛП(ИмяФайлаНастроек) = "" Тогда
Сообщить("Не задано имя файла для сохранения настроек!");
Возврат;
КонецЕсли;
СтруктураНастроек = Новый Структура;
СтруктураНастроек.Вставить("ПолеИмениФайла",ПолеИмениФайла);
СтруктураНастроек.Вставить("ДатаНачала",ДатаНачала);
СтруктураНастроек.Вставить("ДатаОкончания",ДатаОкончания);
СтруктураНастроек.Вставить("ТипВыгрузкиПериодическихРегистров",ТипВыгрузкиПериодическихРегистров);
СтруктураНастроек.Вставить("ДеревоМетаданных",ДеревоМетаданных_КопияФормы);
ЗначениеВФайл(ИмяФайлаНастроек,СтруктураНастроек);
КонецПроцедуры


Процедура ОсновныеДействияФормыПрочитатьНастройкиВыгрузки(Кнопка)
ДиалогЧтенияНастроек = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогЧтенияНастроек.Заголовок = "Выберите файл с настройками";
ДиалогЧтенияНастроек.Фильтр = "XML (*.xml)|*.xml";
Если ДиалогЧтенияНастроек.Выбрать() Тогда
ИмяФайлаНастроек = ДиалогЧтенияНастроек.ПолноеИмяФайла;
Иначе
Возврат;
КонецЕсли;

Если СокрЛП(ИмяФайлаНастроек) = "" Тогда
Сообщить("Не задано имя файла для сохранения настроек!");
Возврат;
КонецЕсли;
Попытка
СтруктураНастроек = ЗначениеИзФайла(ИмяФайлаНастроек);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;

КопияДерева = СтруктураНастроек.ДеревоМетаданных;
Если КопияДерева = Неопределено Тогда
Возврат;
КонецЕсли;
Если ДеревоМетаданных.Строки.Количество() = 0 Тогда
Инициализация();
КонецЕсли;
ВосстановитьФлажкиДерева(ДеревоМетаданных, КопияДерева);
НастроитьПостроитель();

ПолеИмениФайла = СтруктураНастроек.ПолеИмениФайла;
ДатаНачала = СтруктураНастроек.ДатаНачала;
ДатаОкончания = СтруктураНастроек.ДатаОкончания;
ТипВыгрузкиПериодическихРегистров = СтруктураНастроек.ТипВыгрузкиПериодическихРегистров;
КонецПроцедуры


p.s.> С возвращением меня из отпуска, нифига не чувствую себя отдохнувшим. *03
Подсказка: Щелникни по Имени пользователя напротив ответа, и тем самым покажешь, что сообщение адресовано ему.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.