Имя: Пароль:
1C
1С v8
обработка перезаполнение сумм
,
0 denis_solyanko
 
21.12.14
12:13
Добрый день вопрос такой создал обработку для перезаполнения сумм в справочнике,
сдедал 2 кнопки для сохранения значений в табличную часть обработки
вторую для восстановления старых значений в справочнике.
данные сохранить сохранил теперь как сделать чтобы их ввостановить запросом получил суммы из справочника, получил объект как заполнить теперь из табличной части обработки

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    РасходыБудущихПериодов.Сумма КАК Сумма,
|    РасходыБудущихПериодов.Ссылка,
|    РасходыБудущихПериодов.Наименование,
|    РасходыБудущихПериодов.Контрагент,
|    РасходыБудущихПериодов.ДатаНачалаСписания
|ИЗ
|    Справочник.РасходыБудущихПериодов КАК РасходыБудущихПериодов
|ГДЕ
|    РасходыБудущихПериодов.ДатаНачалаСписания МЕЖДУ &НачалоПериода И &КонецПериода";
Запрос.УстановитьПараметр("НачалоПериода",НачПериода);
Запрос.УстановитьПараметр("КонецПериода",КонПериода);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Объект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
Объект.Сумма = ????
Объект.Наименование = ?????????
Конеццикла;
ТАБЛИЧНУЮ ЧАСТЬ  назвал старые данные как к ней обратиться теперь
1 Mankubus
 
21.12.14
12:37
обратись по имени
2 denis_solyanko
 
21.12.14
12:44
(1) что ты имеешь ввиду?
3 denis_solyanko
 
21.12.14
12:47
(1) СтарыеДанные.СуммаСтарая?
4 ОбычныйЧеловек
 
21.12.14
12:47
(2)
НоваяСтрока=Объект.ИмяТвойТабличнойЧасти.Добавит();
НоваяСтрока.Сумма= .....
5 ОбычныйЧеловек
 
21.12.14
12:48
Добавит --> Добавить
6 denis_solyanko
 
21.12.14
12:49
(5) это я уже сделал когда сохранял значения мне теперь их надо получить
7 Mankubus
 
21.12.14
12:50
(3) сначала надо найти в таблице СтарыеДанные строку с суммой, соответствующей объекту. потом из этой строки подставить сумму
8 Mankubus
 
21.12.14
12:51
а лучше в том же запросе сделать соединение к старой таблице
9 Cyberhawk
 
21.12.14
12:53
(0) покажи скриншот твоей обработки
10 denis_solyanko
 
21.12.14
12:59
11 denis_solyanko
 
21.12.14
13:01
(8) у меня таб частьв  обработке для временного хранения данные в случае если не правильно что то обработается вернуть обратно суммы которые были изменены
12 Cyberhawk
 
21.12.14
13:06
(10) а теперь покажи дерево метаданных этой обработки
13 denis_solyanko
 
21.12.14
13:10
14 Cyberhawk
 
21.12.14
13:12
(13) теперь выложи модуль объекта (правой кнопкой по обработке в дереве - открыть модуль объекта)
15 denis_solyanko
 
21.12.14
13:13
(14) хахах издеваешься) что ли что именно тебе скинуть какие процедуры?
16 Mankubus
 
21.12.14
13:13
и модуль формы сразу
17 Cyberhawk
 
21.12.14
13:14
(15) все из модуля объекта
18 Cyberhawk
 
21.12.14
13:14
(16) тссс, будем последовательны :)
19 denis_solyanko
 
21.12.14
13:15
(18) Процедура СохранитьЗначенияНажатие(Элемент)
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    РасходыБудущихПериодов.Сумма КАК Сумма,
        |    РасходыБудущихПериодов.Ссылка,
        |    РасходыБудущихПериодов.Наименование,
        |    РасходыБудущихПериодов.Контрагент,
        |    РасходыБудущихПериодов.ДатаНачалаСписания
        |ИЗ
        |    Справочник.РасходыБудущихПериодов КАК РасходыБудущихПериодов
        |ГДЕ
        |    РасходыБудущихПериодов.ДатаНачалаСписания МЕЖДУ &НачалоПериода И &КонецПериода";
        
        Запрос.УстановитьПараметр("НачалоПериода",НачПериода);
        Запрос.УстановитьПараметр("КонецПериода",КонПериода);
        Результат = Запрос.Выполнить();
        ВыборкаДетальныеЗаписи = Результат.Выбрать();
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
             НовСтр = СтарыеДанные.Добавить();
             НовСтр.Наименование = ВыборкаДетальныеЗаписи.Наименование;
             НовСтр.СуммаСтарая = ВыборкаДетальныеЗаписи.Сумма;
            
      Конеццикла;

КонецПроцедуры
20 Cyberhawk
 
21.12.14
13:16
Теперь выложи код, вызываемый при нажатии на кнопку "Выполнить"
21 denis_solyanko
 
21.12.14
13:18
тебе выполнить не зачем
22 denis_solyanko
 
21.12.14
13:18
там все нормльно
23 Cyberhawk
 
21.12.14
13:20
(22) мне "Выполнить" нужен не для проверки, нормально ли "там", а для проверки, нормально ли в голове у автора :)
24 denis_solyanko
 
21.12.14
13:28
(23) представь что нету выполнить подскажи мне ответ на мой вопрос
25 denis_solyanko
 
21.12.14
13:29
выполнить тебе не зачем
26 Cyberhawk
 
21.12.14
13:29
(24) Ок, давай тогда обработчик события нажатия на кнопку "Сохранить..."
27 denis_solyanko
 
21.12.14
13:29
(19)
28 Cyberhawk
 
21.12.14
13:30
Тогда жду (14)
29 denis_solyanko
 
21.12.14
13:32
(28) там нет ничего
30 Cyberhawk
 
21.12.14
13:35
(29) Ок. Тогда вопрос: что будет изменено (по плану в "Выполнить") в элементах справочника "РБП" после того, как нажали "Сохранить..."?
31 denis_solyanko
 
21.12.14
13:38
(30) при нажатии кнопки сохранить сохраняются суммы из справочника, после выполняется процедура выполнить, здесь происходит пересчет сумм, и если вдруг суммы не правилные тогда нажимают на кнопку восстановить и тут должны суммы сохраненные заполнится
32 Cyberhawk
 
21.12.14
13:39
"если вдруг суммы не правилные" кто, когда и как это будет определять?
33 denis_solyanko
 
21.12.14
13:44
(32) да неважно это, человек передумал надо вернуть обратно суммы , к чему лишние вопросы
34 Cyberhawk
 
21.12.14
13:47
"человек передумал надо вернуть обратно" спустя сколько (максимум) секунд ему разрешается передумать и захотеть вернуть обратно?
35 denis_solyanko
 
21.12.14
13:54
(34)ну в ближайшее время можно сказать сразу допустим, а какие варианты есть?
36 Cyberhawk
 
21.12.14
13:55
(35) Я задам вопрос по-другому: что важнее в обработке - функциональность по восстановлению старых значений или их обработка в кнопке "Выполнить"?
37 denis_solyanko
 
21.12.14
13:57
ну и то и другое
ну допустим важнее выполнить
38 Cyberhawk
 
21.12.14
13:57
(37) ок, еще проще для примера: после нажатия на кнопку "Выполнить" выключился свет (на ПК, где хранится инфобаза). Пользователя это устроит? Имею в виду отсутствие возможности восстановиться
39 denis_solyanko
 
21.12.14
13:59
да
40 denis_solyanko
 
21.12.14
13:59
к чему ты клонишь
41 Cyberhawk
 
21.12.14
14:01
К тому, что убери кнопку "Вернуть..." из обработки и задача будет выполнена
42 Cyberhawk
 
21.12.14
14:02
+(41) просто считай, что каждый раз после нажатия "Выполнить" пользователь будет терять возможность работать в инфобазе. Тогда и кнопка "Вернуть" не нужна
43 denis_solyanko
 
21.12.14
14:05
(42) ты издеваешься явно да? я задал вопрос, дай ответ не знаешь не задавай вопросов лишних не по теме, и не пытайся меня отговорить
44 denis_solyanko
 
21.12.14
14:05
поставлена задача такая
45 shuhard
 
21.12.14
14:11
(43) или в дворники,
с таким подходом в 1С делать нечего
46 denis_solyanko
 
21.12.14
14:16
(45) с каким подходом? ты что говоришь вообще? я задал вопрос как сделать можно он мне говорит вообще не делай так