Имя: Пароль:
1C
1С v8
Управление итогами
0 Alex1979rak
 
29.12.11
07:51
Есть один вопрос по управлению итогами в Бухгалтерии 8 (2.0.28.3).
Хочу реализовать автоматическое изменение границы рассчитанных итогов в базе, когда бухгалтеры ещё не начали работу.
Взял за основу механизм в типовой, когда эта штука запускается при определенном условии.
В сообщении-предупреждении сказано, что Рекомендуется поддерживать границу рассчитанных итогов на конец предыдущего месяца, т.е. если сейчас декабрь 2011 года, то граница должна быть 30.11.2011 г.
И обнаружил такую вещь: в условии сказано, что граница будет меняться тогда, когда ПериодРассчитанныхИтогов < КонтрольнаяДата. Причем КонтрольнаяДата = ДобавитьМесяц(НачалоМесяца(ТекущаяДата)-1,-1). И получается, что условие срабатывает, когда текущая дата будет в январе 2012 года. А мне думается, что условие проверки здесь не совсем верное.
Рассудите меня, пожалуйста.
1 Alex1979rak
 
29.12.11
08:19
ну неужели никто с этим не сталкивался?
2 Alex1979rak
 
29.12.11
08:30
Процедура ПроверитьИзменитьПериодРассчитаныхИтогов(ПервыйЗапуск)
   
   ТекущаяДата = ТекущаяДата();
   КонтрольнаяДата = ДобавитьМесяц(НачалоМесяца(ТекущаяДата)-1,-1);
   ДатаИтогов = НачалоМесяца(ТекущаяДата)-1;
   БазоваяПоставка = (Найти(ВРег(Метаданные.Имя), "БАЗОВАЯ") > 0);
   ПериодРассчитанныхИтогов = РегистрыБухгалтерии.Хозрасчетный.ПолучитьПериодРассчитанныхИтогов();
   
   Если ПервыйЗапуск Тогда
       
       ИзменитьПериодРассчитанныхИтогов(Истина, ДатаИтогов);
       
   ИначеЕсли БазоваяПоставка Тогда
       
       Если ПериодРассчитанныхИтогов < КонтрольнаяДата Тогда
           ИзменитьПериодРассчитанныхИтогов(Истина, ДатаИтогов);
       ИначеЕсли ПериодРассчитанныхИтогов > ТекущаяДата Тогда
           ИзменитьПериодРассчитанныхИтогов(Ложь, ДатаИтогов);
       КонецЕсли;
       
   Иначе
       
       #Если Клиент Тогда
           
           Если ПериодРассчитанныхИтогов = '00010101' Тогда
               ТекстСообщения = "Итоги в информационной базе не рассчитаны."
           Иначе                
               ТекстСообщения = "Итоги в информационной базе рассчитаны по " + Формат(ПериодРассчитанныхИтогов, "ДЛФ=DD");
           КонецЕсли;
           
           ТекстСообщения = ТекстСообщения  + "
           |Дата рассчитанных итогов влияет на скорость проведения документов и формирования отчетов.
           |Рекомендуется поддерживать границу рассчитанных итогов на конец предыдущего месяца.";
           
           Если РольДоступна("ПолныеПрава") ИЛИ РольДоступна("ПравоАдминистрирования") Тогда
               
               ТекстВопроса = ТекстСообщения  + "
               |Установка новой границы рассчитанных итогов может занять некоторое время.
               |
               |Установить границу рассчитанных итогов на " + Формат(ДатаИтогов, "ДЛФ=DD") + "?";
               
               Если ПериодРассчитанныхИтогов < КонтрольнаяДата Тогда
                   Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет);
                   Если Ответ = КодВозвратаДиалога.Да Тогда
                       ИзменитьПериодРассчитанныхИтогов(Истина, ДатаИтогов);
                   КонецЕсли;
               ИначеЕсли ПериодРассчитанныхИтогов > ТекущаяДата Тогда
                   Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет);
                   Если Ответ = КодВозвратаДиалога.Да Тогда
                       ИзменитьПериодРассчитанныхИтогов(Ложь, ДатаИтогов);
                   КонецЕсли;
               КонецЕсли;
               
           Иначе
               Если ПериодРассчитанныхИтогов < ДобавитьМесяц(КонтрольнаяДата,1) Тогда
                   ТекстСообщения = ТекстСообщения + "
                   |
                   |Для выполнения этой процедуры необходимо обратиться к пользователю, обладающему полными правами.";
                   Предупреждение(ТекстСообщения);
               КонецЕсли;
           КонецЕсли;
       #КонецЕсли
       
   КонецЕсли;
   
КонецПроцедуры
3 Alex1979rak
 
29.12.11
09:23
подниму разок
4 Alex1979rak
 
29.12.11
09:57
еще раз...
5 PCcomCat
 
29.12.11
10:07
Тихи сам с собою я веду беседу...

А что сказать-то?
6 Alex1979rak
 
29.12.11
10:10
(5) Вопрос не понятен?
7 Alex1979rak
 
29.12.11
13:39
и еще разок
8 Alex1979rak
 
03.01.12
10:59
помогите найти правильный ответ, пожалуйста
9 Petr28
 
03.01.12
12:17
С помощью отладчика можно убедится что ты прав.
Авторы типовой конфигурации не следуют своим собственным рекомендациям ))
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан