Каталог решений - Универсальное сохранение элементов форм (Поле ввода, флажок, табличное поле) для 8.х

Универсальное сохранение элементов форм (Поле ввода, флажок, табличное поле) для 8.х

Универсальное сохранение элементов форм (Поле ввода, флажок, табличное поле) для 8.х

В наличии

Как же надоело каждый раз заполнять поля ввода, ставил галочки и заполнять табличные поля для своих обработок(отчетов).
Вот и написал универсальный алгоритм который сохраняет значения всех полей ввода, флажков и табличных полей.

Категория:

Описание

Просто создадим в любой форме две кнопки «Сохранить», «Открыть». И создадим события при нажатии.

// Процедура сохранения

Процедура кнСохранить(Кнопка)

    ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);

    ДиалогВыбораФайла.Фильтр = «Файл сохраненной настройки (*.sav)|*.sav»;

    ДиалогВыбораФайла.Заголовок = «Выберите файл»;

    ДиалогВыбораФайла.ПредварительныйПросмотр = Ложь;

    ДиалогВыбораФайла.Расширение = «sav»;

    ДиалогВыбораФайла.ИндексФильтра = 0;

    ДиалогВыбораФайла.ПроверятьСуществованиеФайла = Ложь;

    Если ДиалогВыбораФайла.Выбрать() Тогда

        ИмяФайла = ДиалогВыбораФайла.ПолноеИмяФайла;

    Иначе

        Возврат;

    КонецЕсли;

    Настройка = Новый Соответствие();

    Для Каждого Стр Из ЭлементыФормы Цикл

        Если Строка(Стр)=«ПолеВвода» Тогда

            Настройка.Вставить(Стр.Имя, Стр.Значение);

        КонецЕсли;

        Если Строка(Стр)=«Флажок» Тогда

            Настройка.Вставить(Стр.Имя, Стр.Значение);

        КонецЕсли;

        Если Строка(Стр)=«ТабличноеПоле» Тогда

            ТП_ДляСохранения = Новый ТаблицаЗначений;

            Для Каждого Кол Из Стр.Колонки Цикл

                ТП_ДляСохранения.Колонки.Добавить(Кол.Имя);

            КонецЦикла;

            Для Каждого аа Из Стр.Значение Цикл

                вв=ТП_ДляСохранения.Добавить();

                Для Каждого Кол Из Стр.Колонки Цикл

                    вв[Кол.Имя]=аа[Кол.Имя];

                КонецЦикла;

            КонецЦикла;

            Настройка.Вставить(Стр.Имя, ТП_ДляСохранения);

        КонецЕсли;

    КонецЦикла;

    Если НЕ ЗначениеВФайл(ИмяФайла, Настройка) Тогда

        Предупреждение(«Настройка не сохранена!!!»);

    КонецЕсли;

КонецПроцедуры

//Процедура Открытия

Процедура кнОткрыть(Кнопка)

    ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

    ДиалогВыбораФайла.Фильтр = «Файл сохраненной настройки (*.sav)|*.sav»;

    ДиалогВыбораФайла.Заголовок = «Выберите файл»;

    ДиалогВыбораФайла.ПредварительныйПросмотр = Ложь;

    ДиалогВыбораФайла.Расширение = «sav»;

    ДиалогВыбораФайла.ИндексФильтра = 0;

    ДиалогВыбораФайла.ПроверятьСуществованиеФайла = Истина;

    Если ДиалогВыбораФайла.Выбрать() Тогда

        ИмяФайла = ДиалогВыбораФайла.ПолноеИмяФайла;

    Иначе

        Возврат;

    КонецЕсли;

    Настройка = ЗначениеИзФайла(ИмяФайла);

    Для Каждого Стр Из ЭлементыФормы Цикл

        Если Строка(Стр)=«ПолеВвода» Тогда

            Попытка

                Стр.Значение = Настройка[Стр.Имя];

            Исключение

            КонецПопытки;

        КонецЕсли;

        Если Строка(Стр)=«Флажок» Тогда

            Попытка

                Стр.Значение = Настройка[Стр.Имя];

            Исключение

            КонецПопытки;

        КонецЕсли;

        Если Строка(Стр)=«ТабличноеПоле» Тогда

            Попытка

                Стр.Значение.Очистить();

                ТП_ДляОткрытия = «»;

                ТП_ДляОткрытия = Настройка[Стр.Имя];

                Для Каждого Стп Из ТП_ДляОткрытия Цикл

                    СС=Стр.Значение.Добавить();

                    Для Каждого Кол Из Стр.Колонки Цикл

                        Попытка

                            СС[Кол.Имя]=Стп[Кол.Имя];

                        Исключение

                        КонецПопытки;

                    КонецЦикла;

                КонецЦикла;

            Исключение

            КонецПопытки;

        КонецЕсли;

    КонецЦикла;

КонецПроцедуры

has been added to your cart:
Оформление заказа