Версия для печати темы (https://pro1c.org.ua/index.php?s=49857ce126c6af99bdd70eefe8f043b6&showtopic=24396)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Предприятие 7.7 Возможность передать все содержимое обработки в список значений

Автор: Sharzem 03.08.15, 16:21

Любая конфигурация.

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

Я понимаю что можно каждый реквизит перечислить, но может есть какие-то идеи что-бы как-то это универсализировать.

PS: Есть и ТЗ, и СЗ, и флажки с переключателями, и програмно добаленные закладки (хотя это тоже СЗ)...

Автор: TipsyKID 03.08.15, 17:06

Использовать стороннюю библиотеку : FormEx.dll

ПолучитьСледующийАтрибут / GetNextAttrib

Синтаксис: ПолучитьСледующийАтрибут()

Возвращает: тип: Число. В случае успеха поиска возвращает 1, иначе - 0.

Описание: Метод предназначен для поиска следующего атрибута в соответствии с параметрами, установленными ранее методом НайтиАтрибут / FindAttrib.

Пример:

ФормаРасш = СоздатьОбъект("РасширениеФормы");
р = ФормаРасш.НайтиАтрибут(5,"Основной");
Пока р = 1 Цикл
        Сообщить(ФормаРасш.ТекущийАтрибут().Заголовок);
        р = ФормаРасш.ПолучитьСледующийАтрибут();
КонецЦикла;

Автор: Sharzem 03.08.15, 18:31

Цитата
Использовать стороннюю библиотеку : FormEx.dll

32542460.gif

Нет слов.... с его помощью этакая "зверюка" и построена... А про метод забыл...

Итак, маленькое решение:
лпСписокЗнач = СоздатьОбъект("СписокЗначений");
лпРасшФорма = СоздатьОбъект("РасширениеФормы");
лпРасшФорма.УстановитьФорму(Форма);
Для лпСч = 0 по лпРасшФорма.КоличествоАтрибутов()-1 Цикл
    лпИдентификатор = лпРасшФорма.ПолучитьАтрибут(лпСч).Идентификатор;
    лпЗначение = лпРасшФорма.ПолучитьАтрибут(лпСч).Значение;
    Если ПустаяСтрока(лпИдентификатор) = 0 Тогда//Меня интересуют только с идентификаторами
        лпСписокЗнач.Установить(лпИдентификатор,лпЗначение);
    КонецЕсли;
КонецЕсли;

Все остальное, уже далее мелочи...

TipsyKID, спс за пенок в нужную сторону.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua