Имя: Пароль:
1C
1С v8
Помогите выпрямить корявый код сохранения отчета в документ
,
0 demous
 
11.05.12
10:18
Упп 8.2
суть в том, что есть отчет составленный на СКД
он должен сохраняться с актуальными на данный момент времени данными в список документа, и из этого списка открываться с актуальными на момент сохранения данными

вот такая корявизна получилась, в списке документ создается, а из списка не открывается(
подскажите что тут исправить, и какую процедуру в список документа написать правильную что бы отчет от туда открывался?(((
заранее всем огромное спасибо





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

//    ХранилищеДанных = Новый ХранилищеЗначения(СписокСохранения);
//мСохраненныйДок.ДанныеОтчета = ХранилищеДанных;
//мСохраненныйДок.Записать() ;
//Модифицированность = Ложь;
КонецПроцедуры
Процедура Записать ()
   мСохраненныйДок =
Документы.Д_ПланируемыеПлатежи.СоздатьДокумент();
мСохраненныйДок.Дата = ТекущаяДата();

//        ХранилищеДанных = Новый ХранилищеЗначения(СписокСохранения);
//мСохраненныйДок.ДанныеОтчета = ХранилищеДанных;

//Модифицированность = Ложь;

СписокСохранения = Новый Структура();
   СписокСохранения.Вставить("ТабДок", ТабДок);
Хранилище = Новый ХранилищеЗначения(СписокСохранения);
мСохраненныйДок.ТабДок = Хранилище;
мСохраненныйДок.Записать() ;

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


Процедура ПередОткрытием ()
   мСохраненныйДок = ВладелецФормы.ДокументОбъект;
   мДатаНачалаПериодаОтчета = мСохраненныйДок.ДатаНачала;
   мДатаКонцаПериодаОтчета = мСохраненныйДок.ДатаОкончания;
КонецПроцедуры

Процедура ПриОткрытии ()
   Организация = мСохраненныйДок.Организация;
//
СписокСохранения = мСохраненныйДок.ДанныеОтчета.Получить();
КонецПроцедуры

Процедура ВосстановитьСохраненныеДанные ()
   //восстанавливаем версию формы
   Если СписокСохранения.Свойство("ВерсияФормы", ВерсияФормы) Тогда
       Если ВерсияФормы <> мВерсияФормы Тогда
            мВерсияФормы  = ВерсияФормы;
       КонецЕсли;
   КонецЕсли;
   // восстановим сохраненные данные редактируемых ячеек
   СписокСохранения.Свойство( "ПоказателиОтчета", ПоказателиОтчета );
   Для Каждого ПоказателиСтраницы Из ПоказателиОтчета Цикл
       ИмяТекТабличноеПоле = ПоказателиСтраницы.Ключ;
       ТекТабличноеПоле = ЭлементыФормы[ИмяТекТабличноеПоле] ;
       ПоказателиТаблПоле = ПоказателиСтраницы.Значение;
       Для Каждого Показатель Из ПоказателиТаблПоле Цикл
           ИмяПоказателя = Показатель.Ключ;
           ЗначениеПоказателя = Показатель.Значение;
           // установим значение в таблице
           ТекТабличноеПоле.Области[ИмяПоказателя].Значение =ЗначениеПоказателя;
       КонецЦикла;
   КонецЦикла;
КонецПроцедуры
1 Cube
 
11.05.12
10:24
Чо?))
2 demous
 
11.05.12
10:30
говорю же, корявизну))) завязываю я с 1С ) перехожу постепенно в веб)
помогите с этим доразобраться)
3 demous
 
11.05.12
10:42
апну)
4 aleks-id
 
11.05.12
10:43
100 баксов
5 demous
 
11.05.12
10:51
а как помощь подрабатывающему студенту?)
6 proger2011
 
11.05.12
10:54
(5) А ты сайты тоже бесплатно лабаешь?
7 Necessitudo
 
11.05.12
10:55
(0) Что за бред? Отчет выводится в ТабличныйДокумент. Запихивай его в хранилище - и профит.
8 demous
 
11.05.12
10:58
(6) так как начинаю, то есть и бесплатные проекты, например нотариальной конторе районной)
(7) ну вот не получается у меня все это сделать( объясните пожалуйста как....
9 demous
 
11.05.12
11:09
в шапке та корявость которая у меня вышла(
10 demous
 
11.05.12
11:25
аппп
11 demous
 
11.05.12
11:47
не???????????
12 Cube
 
11.05.12
11:51
(11) Бросай 1С и беги без оглядки. Придет к ним специалист и сделает все хорошо, а благодаря тебе, ещё и дорого))
13 demous
 
11.05.12
11:54
(12)не варик, диплом еще не дописал)))
вот диплом допишу и тогда побегу)
а эт уже чуть-чуть осталось)
помогите плз сделать эту задачу)
14 Cube
 
11.05.12
11:58
(13) Дык задачу ты толком не описал, а в (0) какая-то белиберда написана... :)
Я даже не до конца понял, при чем здесь (в отчете) какой-то документ???
15 hhhh
 
11.05.12
11:58
(13) больничный возьми.
16 Cube
 
11.05.12
11:59
+(15) для этого, прострели себе коленку))
17 demous
 
11.05.12
12:06
НУ вот есть отчет, после его формирования хотят сохранят его в базе, а не во внешнем файле, и что бы насохраненные отчеты выводились общим списком как документы выводятся в списке по датам
и что бы можно было зайти в этот список, открыть отчет, и без нажатия на кнопку сформировать, отчет сразу открывался с актуальными на момент сохранения данными
18 demous
 
11.05.12
12:06
вот как хотят все это видеть
19 demous
 
11.05.12
12:07
вот процедура для сохранения
Процедура Сохранить ()
   мСохраненныйДок =
Документы.Д_ПланируемыеПлатежи.СоздатьДокумент();
мСохраненныйДок.Дата = ТекущаяДата();

   ХранилищеДанных = Новый ХранилищеЗначения(СписокСохранения);
мСохраненныйДок.ДанныеОтчета = ХранилищеДанных;
мСохраненныйДок.Записать() ;
Модифицированность = Ложь;
КонецПроцедуры
которая сейчас накарябана)
20 Cube
 
11.05.12
12:08
(19) Так ты сохраняй только ТабличныйДокумент из отчета и всё. При открытии, показывай его.
21 Cube
 
11.05.12
12:09
+(20) В СКД ТабличныйДокумент на форме отчета называется "Результат".
22 demous
 
11.05.12
12:09
(20) а как это сделать?)))
23 Cube
 
11.05.12
12:11
(22) Что "это"?
24 demous
 
11.05.12
12:12
(20) вот это)))
25 demous
 
11.05.12
12:47
Люди добрые
26 Cube
 
11.05.12
12:47
(25) Чо?)
27 demous
 
11.05.12
12:48
(26) допомогите)
28 Cube
 
11.05.12
12:52
Процедура Сохранить ()
   мСохраненныйДок = Документы.Д_ПланируемыеПлатежи.СоздатьДокумент();
   мСохраненныйДок.Дата = ТекущаяДата();
   мСохраненныйДок.ДанныеОтчета = Новый ХранилищеЗначения(Результат, Новый СжатиеДанных(9));
   мСохраненныйДок.Записать() ;
   Модифицированность = Ложь;
КонецПроцедуры
29 Cube
 
11.05.12
12:55
Процедура ПоказатьСохраненныйОтчет()
   СохраненныйОтчет = Документы.Д_ПланируемыеПлатежи.ПустаяСсылка();
   Если ВвестиЗначение(СохраненныйОтчет, "Выберите сохраненный отчет") Тогда
       Результат = СохраненныйОтчет.ДанныеОтчета.Получить();
   КонецЕсли;
   Модифицированность = Ложь;
КонецПроцедуры
30 demous
 
11.05.12
12:58
(28)(29) Спасибо большое!
С Процедурой Показать отчет, ее в основную форму документа?
31 Cube
 
11.05.12
13:00
(30) Обе процедуры в форму отчета.
32 demous
 
11.05.12
13:03
(31) в документе создаю только форму Списка и оставляю ее пустой полностью ?
33 Cube
 
11.05.12
13:07
(32) Можешь вообще формы не создавать.
34 Cube
 
11.05.12
13:08
(32) Но организация у тебя фиговая... Лучше справочник для твоей задачи использовать.
35 demous
 
11.05.12
13:10
Переменная не определена (Результат)
36 demous
 
11.05.12
13:11
(34) я честно даже не знаю что тут лучше использовать... думаю это видно, данная задача поставила меня в тупик(
37 Cube
 
11.05.12
13:20
(35) Отчет на СКД? Форма есть? На форме есть ПолеТабличногоДокумента? И что, называется не "Результат"?
38 demous
 
11.05.12
13:24
Вот скрин, все есть
http://rghost.ru/38021800
39 Cube
 
11.05.12
13:27
(38) Всё есть, тока называется ПолеТабличногоДокумента не "Результат", а "ТабДок"... В (28) и (29) замени слово "Результат" на "ТабДок" и будет тебе счастье :)
40 demous
 
11.05.12
13:29
(39) сейчас попробую)
41 demous
 
11.05.12
13:37
смотри как открылся отчет....
http://rghost.ru/38021966
42 demous
 
11.05.12
13:38
щас удалю все реквизиты лишние
43 Cube
 
11.05.12
13:41
(41) Бредятина... Ты как его открыл? Через (29) открывай!
44 demous
 
11.05.12
13:47
я документ ПланируемыеПлатежи открыл, там выдало в списке сохраненный отчет, открыл его и он форму эту выдал
45 Cube
 
11.05.12
13:51
(44) Забудь про это, зачем ты вообще в список полез? Забудь про него и в меню его не выноси - не нужен он там.

Просто в форме ОТЧЕТА сделай две кнопки "Сохранить отчет" с процедурой из (28) и "Показать сохраненный отчет" с процедурой из (29).
46 demous
 
11.05.12
14:03
(45)сделал отдельные кнопки
(29) открывает список в маленьком окошке, но от туда не открывается ни чего(
47 Cube
 
11.05.12
14:05
(46) Открывается список выбора. Выбери там че-нить (щелкни два раза мышкой на каком-нибудь пункте). Если, конечно, ты этот документ сохранял кодом из (28).
48 demous
 
11.05.12
14:05
реквизит в документе ДанныеОтчета, у него тип ХранилищеЗначения?
49 Cube
 
11.05.12
14:05
У меня рабочий день заканчивается, давай реще! :)
50 Cube
 
11.05.12
14:06
(48) Да, должен быть хранилищем значения.
51 demous
 
11.05.12
14:07
так и делаю... он не открывает его(
52 demous
 
11.05.12
14:08
точнее это окошко пропадает и все
53 Cube
 
11.05.12
14:09
(51) Пометь все свои прошлые документы этого вида на удаление.
Открой отчет.
Сформируй отчет, чтобы появились данные.
Сохрани отчет.
Закрой отчет.
Открой отчет и нажми "Показать сохраненный отчет".
54 Cube
 
11.05.12
14:10
+(53) В появившемся окне выбери документ не помеченный на удаление.
55 demous
 
11.05.12
14:16
ни чего не изменилось... все пошагово сделал...
http://rghost.ru/38022547
потом выбираю его... и остается тоже самое пустое окно отчета
56 demous
 
11.05.12
14:17
http://rghost.ru/38022568 вот скрин процедур на кнопки
57 noxxx
 
11.05.12
14:20
Зачем отчет сохранять? Он на то и отчет что б его формировать и смотреть.
58 Cube
 
11.05.12
14:21
(56) Попробуй так:

Процедура ПоказатьСохраненныйОтчет()
   СохраненныйОтчет = Документы.Д_ПланируемыеПлатежи.ПустаяСсылка();
   Если ВвестиЗначение(СохраненныйОтчет, "Выберите сохраненный отчет") Тогда
       СохраненныйОтчет.ДанныеОтчета.Получить().Показать();
   КонецЕсли;
   Модифицированность = Ложь;
КонецПроцедуры
59 demous
 
11.05.12
14:22
основная мотивация такова, что :-" Это столько лишних движений, что бы сохранить его во внешнем файле, нам надо именно в базе их хранить"... после попыток спорить :-"Знаешь в чем разница между начальством и подчиненными? Начальник сказал, значит делай"
60 demous
 
11.05.12
14:23
(58) минутку
61 Cube
 
11.05.12
14:23
Всё, меня нет.
62 demous
 
11.05.12
14:25
(60) пустая таблица разбитая на клетки открылась(
63 Cube
 
11.05.12
14:26
(62) Значит ты нифига не сохранил. Копайся в процедуре сохранения.
64 demous
 
11.05.12
14:28
(63) Спасибо большое за помощь! Буду сидеть разбираться! Точнее Огромное спасибо))))
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn