Имя: Пароль:
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
С помощью отладчика можно убедится что ты прав.
Авторы типовой конфигурации не следуют своим собственным рекомендациям ))
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс