Имя: Пароль:
1C
1С v8
Форма регламентированной отчетности - сломался выбор периода
0 Vladal
 
28.02.12
12:08
Сегодня с утра бухгалтерия стоит на ушах - не могут выбрать отчетность прошлого месяца.

http://i062.radikal.ru/1202/b7/c48fa48ec265.png

Но если выбрать "произвольный период" и там указать январь 2012 - работает. Ковыряние в модуле привело к такому коду:

Процедура ВосстановитьПараметрыОтбора()
   
   Организация = ВосстановитьЗначение("ФормаРеглИФинОтчетности_Организация");
   КодИФНС = ВосстановитьЗначение("ФормаРеглИФинОтчетности_КодИФНС");
   ОтборКодИФНС = ВосстановитьЗначение("ФормаРеглИФинОтчетности_ОтборКодИФНС");
   ОтборПериод = ВосстановитьЗначение("ФормаРеглИФинОтчетности_ОтборПериод");
   Периодичность = ВосстановитьЗначение("ФормаРеглИФинОтчетности_ПолеВыбораПериодичность");
   Если Периодичность = Неопределено Тогда
       Периодичность = "По итогам";
   КонецЕсли;
   ДатаНачалаПериодаОтчета = ВосстановитьЗначение("ФормаРеглИФинОтчетности_ДатаНачалаПериодаОтчета");
   ДатаКонцаПериодаОтчета = ВосстановитьЗначение("ФормаРеглИФинОтчетности_ДатаКонцаПериодаОтчета");
...

Процедура ПриЗакрытии()
   
   СохранитьЗначение("ФормаРеглИФинОтчетности_СписокВидовОтчетов"             , СписокВыбранныхСсылокВДеревеОтчетов());
   СохранитьЗначение("ФормаРеглИФинОтчетности_ТекущаяСтраницаОсновнойПанели"  , ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница.Имя);
   СохранитьЗначение("ФормаРеглИФинОтчетности_Организация"                       , Организация);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ОтборПериод"                    , ОтборПериод);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ПолеВыбораПериодичность"        , Периодичность);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ДатаНачалаПериодаОтчета"        , ДатаНачалаПериодаОтчета);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ДатаКонцаПериодаОтчета"         , ДатаКонцаПериодаОтчета);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ДокументОтбор"                  , мДокументОтбор);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ПоказыватьПустые"               , мОтображатьПустые);
   СохранитьЗначение("ФормаРеглИФинОтчетности_мИерархическийПросмотр"         , мИерархическийПросмотр);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ПечататьСДвухмернымШтрихКодом"  , мПечататьСДвухмернымШтрихКодом);
   СохранитьЗначение("ФормаРеглИФинОтчетности_мОтбиратьПоДокументуОтбора"     , мОтбиратьПоДокументуОтбора);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ФильтроватьВидыОтчетовПоПериоду" , мФильтроватьВидыОтчетовПоПериоду);

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

Следуя логике кода, выбираю период "Январь 2012", переоткрываю форму и вуаля - работает. Дальше делаю как бухгалтер - мышкой хочу выбрать 2011 год (кнопка выбора "вниз") и сразу с 2012 падаю в 2000 год, мышкой "поднимаюсь" вверх - и только до 2010 года, как и было в начале. Выбираю 2012 вручную, чтобы опять попасть в январь 2012, а мне система говорит - нихт!

http://s017.radikal.ru/i441/1202/cf/11e46b22437b.png

Я уже сделал принудительно выбор периода, но после манипуляций всё становится опять наперекосяк.
Кудой копать?
1 Vladal
 
28.02.12
12:16
Программно тоже назначал нужные мне значения, но что-то не то.

   СохранитьЗначение("ФормаРеглИФинОтчетности_СписокВидовОтчетов"             , СписокВыбранныхСсылокВДеревеОтчетов());
   СохранитьЗначение("ФормаРеглИФинОтчетности_ТекущаяСтраницаОсновнойПанели"  , ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница.Имя);
   СохранитьЗначение("ФормаРеглИФинОтчетности_Организация"                       , Организация);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ОтборПериод"                    , ОтборПериод);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ПолеВыбораПериодичность"        , Периодичность);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ДатаНачалаПериодаОтчета"        , ДатаНачалаПериодаОтчета);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ДатаКонцаПериодаОтчета"         , ДатаКонцаПериодаОтчета);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ДокументОтбор"                  , мДокументОтбор);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ПоказыватьПустые"               , мОтображатьПустые);
   СохранитьЗначение("ФормаРеглИФинОтчетности_мИерархическийПросмотр"         , мИерархическийПросмотр);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ПечататьСДвухмернымШтрихКодом"  , мПечататьСДвухмернымШтрихКодом);
   СохранитьЗначение("ФормаРеглИФинОтчетности_мОтбиратьПоДокументуОтбора"     , мОтбиратьПоДокументуОтбора);
   СохранитьЗначение("ФормаРеглИФинОтчетности_ФильтроватьВидыОтчетовПоПериоду" , мФильтроватьВидыОтчетовПоПериоду);
2 Vladal
 
28.02.12
13:29
Вместо апа. Сляпал обработку по мотивам (1), ничего пока не помогло.
Смутные сомнения, что сохраняемые значения доступны всем и кто-то из бушек лажает, открыв отчетность за старый период.
3 Sensodin
 
28.02.12
14:30
Есть Справочник СохраненныеНастройки - можно попытаться его почистить
4 pumbaEO
 
28.02.12
14:31
(3) СохранитьЗначение ну никак в сохраненные настройки не пишет...
5 Jaffar
 
28.02.12
14:33
а в элементе формы, который за год отвечает, диапазон значений не ограничен?
и как на акселераторе обрабатываются события "больше/меньше"?
6 Vladal
 
28.02.12
14:33
Почистить кэш пользователей?
Это их выгонять надо и админа просить, т.к. это в его компетенции.
7 pumbaEO
 
28.02.12
14:38
Так, ты без чистки кеша? Не-не, сначала кеш, а потом все остальное.
8 Vladal
 
28.02.12
14:45
(5) // Процедура - обработчик события ПриИзменении поля ввода Год.
Процедура ГодПриИзменении(Элемент)
   
   ДатаКонцаПериодаОтчета = Дата(Год, Месяц(ДатаКонцаПериодаОтчета), День(КонецМесяца(Дата(Год, Месяц(ДатаКонцаПериодаОтчета), 1))));
   ДатаНачалаПериодаОтчета = НачалоГода(ДатаКонцаПериодаОтчета);
   ОбновитьДеревоОтчетов(Ложь);
   
КонецПроцедуры

Вот на этот ДатаКонцаПериодаОтчета и аллергия. Вот отладчик говорит, что
ДатаКонцаПериодаОтчета = 31.12.2012 00:00:00, тип Дата.
ДатаНачалаПериодаОтчета = 01.01.2012 00:00:00, тип Дата.

(7) Угу... суровый хохляцкий мужик ;)
9 Vladal
 
28.02.12
15:05
(5) НЕ, НУ НЕ БЛИН! Одни эмоции! В свойствах поля ввода года стоит МаксЗначение = 2010!

Спасибо!
Проблема решилась!

Вот интересно ж, как они до того работали - весь 2011 год работали ведь... Выбирали "произвольный период" и работали. А тут, видите ли, ползунком поиграться захотелось. ;) *dacing*
10 Jaffar
 
28.02.12
15:10
(9) интуиция... :-)
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.