Имя: Пароль:
1C
 
Почему вылетает 1с?
0 pro3ri
 
26.05.15
08:35
День добрый!
Запускаю обработку, вылетает 1с:

&НаКлиенте
Процедура Команда1(Команда)
    ВыходныеДни = Новый Структура;
    ПодсчитатьКоличествоРабДней(ВыходныеДни, 0, Дата(2010,1,1),2010);
КонецПроцедуры

&НаСервере
Процедура ПодсчитатьКоличествоРабДней(ВыходныеДни, РабДней, ТекДата, Год)
    
    Если Год(ТекДата)>Год Тогда
    
        ВыходныеДни.Вставить("Год" + Формат(Год, "ЧГ=0"), РабДней);
        Сообщить("" + Год +" год - "+РабДней+ " рабочих дней");
        РабДней = 0;
            
    КонецЕсли;
    
    Если ДеньНедели(ТекДата)<6 И Не (ДеньГода(ТекДата) = 1 Или ДеньГода(ТекДата) = 54)
        И Не (Месяц(ТекДата) = 3 И День(ТекДата)=8)  Тогда
        РабДней = РабДней +1;
    КонецЕсли;

    Если Год(ТекДата)<2017 Тогда
    
        ПодсчитатьКоличествоРабДней(ВыходныеДни, РабДней, ТекДата+60*60*24, Год(ТекДата))    
    
    КонецЕсли;

        
КонецПроцедуры // ПодсчитатьКоличествоРабДней()
разве есть ограничения на стэк?
1 ДенисЧ
 
26.05.15
08:36
Ограничения есть всегда. Например - доступная память.
2 pro3ri
 
26.05.15
08:42
использование физич памяти 66%
3 ДенисЧ
 
26.05.15
08:42
И что?
4 orangekrs
 
26.05.15
08:43
А как вылетает то ? На улицу,в окно ?
5 pro3ri
 
26.05.15
08:47
(4) try
6 Andy13
 
26.05.15
08:49
Рекурсивный вызов в бесконечность?
7 pro3ri
 
26.05.15
08:51
если поставить вместо 2017  2012 то все ворк
8 kosts
 
26.05.15
08:56
(0) Сотри и никому не показывай.
Наверняка в базе есть какой-то производственный календарь или график его заменяющий. Открой для себя запросы.
9 fisher
 
26.05.15
09:23
(0) А когда их не было? И всегда это зависело от реализации и окружения. У меня, например, за 5 лет считает.
Да и вообще рекурсия - это дело такое. Лекарство с инструкцией, показаниями к применению, ограничениями и списком побочных эффектов.
Умные языки автоматом заменяют хвостовую рекурсию на циклы при  компиляции.
10 Fragster
 
гуру
26.05.15
09:24
около 1000-1500 ограничение уровня рекурсии
11 Господин ПЖ
 
26.05.15
09:25
(0)

>Сотри и никому не показывай.

+1

так кодируют .удаки...
12 fisher
 
26.05.15
09:26
У меня около 2000 получилось в файловой. Сейчас клиент-сервер попробую.
13 fisher
 
26.05.15
09:28
В клиент-серверной тоже самое, зато не коврик свернуло, а выдало вменяемое исключение "Переполнение стека встроенного языка на сервере"
14 Andy13
 
26.05.15
09:29
(13) Ну ты прям аглицкий естествоиспытатель...
15 fisher
 
26.05.15
09:32
(0) ТС, у тебя талант. Не уверен, что программист из тебя хороший, но тестер отменный бы вышел. Постоянно на нештатные ситуации натыкаться и в граничные условия упираться - это уметь надо.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn