Имя: Пароль:
1C
1C 7.7
v7: FormEx: сохранение / восстановление реквизитов на форме отчета
0 dk
 
25.11.11
14:23
Исходные:
База 1С 7.7 (1С++)
Есть много отчетов, которые запускаются ночью автоматом и выкладывают готовые данные пользователям. Кроме того, что отчетов много, они еще и запускаются с разными параметрами.

Задача:
Унифицировать передачу параметров в отчеты для автоматического формирования

Решение:
1. вроде на инфостате валяется готовое http://infostart.ru/public/18384/
если кому не в лом - качните плиз
2. Пока работаю с перебором реквизитов формы через формекс. Идея простая перебрать и сохранить в списокзначений и в файл. Потом из файла восстановить значения всех реквизитов

Проблема:
1. Списки значений странно восстанавливаются, я про списки с пометками

   Если ПустоеЗначение(ВыбЧисло) = 0 Тогда
       ФормаРасш = СоздатьОбъект("РасширениеФормы");
       ФормаРасш.УстановитьФорму(Форма);
       Попытка
           Атр = ФормаРасш.ПолучитьАтрибут(ВыбЧисло);
           Сообщить("Было: " + Атр.Значение);
           Сообщить("Было: " + ЗначениеВСтрокуВнутр(Атр.Значение));
           Атр.Значение = ЗначениеИзСтрокиВнутр(ВыбНеопределенный);
           Сообщить("Стало: " + Атр.Значение);
           Сообщить("Стало: " + ЗначениеВСтрокуВнутр(Атр.Значение));
           Форма.Обновить();
       Исключение
           Сообщить("Ошибка: " + ОписаниеОшибки());
       КонецПопытки;
   Иначе
       Сообщить("нет номера реквизита");
   КонецЕсли;
   
   для сч = 1 по сп2.РазмерСписка() Цикл
       Сообщить(СокрЛП(сч) + " - " + сп2.Пометка(сч));    
   КонецЦикла;


Код показывает что значение изменилось, однако пометки неверно возвращает
Было: СписокЗначений
Было: {"VL",{{{"N","0","0","0","0","0","22221"},"","1"},{{"S","0","0","0","0","0","222211"},"1"},{{"N","0","0","0","0","0","222222"},""},{{"N","0","0","0","0","0","2222233333333333"},""}}}
Стало: СписокЗначений
Стало: {"VL",{{{"N","0","0","0","0","0","22221"},"","1"},{{"S","0","0","0","0","0","222211"},"1"},{{"N","0","0","0","0","0","222222"},""},{{"N","0","0","0","0","0","2222233333333333"},""}}}
1 - 1
2 - 0
3 - 0
4 - 0
1 dk
 
25.11.11
14:24
т.е. пометки на форме не совпадают со значениевстрокувнутр
2 dk
 
25.11.11
14:36
может есть более простое решение?
3 АЛьФ
 
25.11.11
14:57
Заполняй список значений циклом.
4 FN
 
25.11.11
14:59
Используй Выгрузить()

ЗЫ если обработка еще нужна - пиши мыло
5 dk
 
25.11.11
15:08
(4) спасиб, тоже допер )
krdaТявrambler.ru

с пометками тоже через выгрузить получилось, осталось только у combobox текущую строку восстанавливать
6 FN
 
25.11.11
15:11
(5) ушло
7 dk
 
25.11.11
15:12
(6) спб
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший