// получение даты из строкового представления даты в виде ДД.ММ.ГГГГ Функция дд_мм_гггг2дата(дд_мм_гггг_стр) // найдено в I-net Возврат Дата(дд_мм_гггг_стр + " 00:00:00"); КонецФункции Функция число_пятниц(имя_файла) Попытка даты = Новый ЧтениеТекста; даты.Открыть(имя_файла); Исключение Сообщить("ОШИБКА: Проблема с файлом ["+имя_файла+"]"); Возврат -1; КонецПопытки; чис_пятниц = 0; Пока Истина Цикл строка = даты.ПрочитатьСтроку(); Если строка = Неопределено Тогда Прервать КонецЕсли; дата = дд_мм_гггг2дата(строка); чис_пятниц = чис_пятниц + тест_даты(дата, 5); КонецЦикла; даты.Закрыть(); Возврат чис_пятниц; КонецФункции // число_пятниц Функция число_вторников(имя_файла) Попытка даты = Новый ЧтениеТекста; даты.Открыть(имя_файла); Исключение Сообщить("ОШИБКА: Проблема с файлом ["+имя_файла+"]"); Возврат -1; КонецПопытки; чис_вторников = 0; Пока Истина Цикл строка = даты.ПрочитатьСтроку(); Если строка = Неопределено Тогда Прервать КонецЕсли; дата = дд_мм_гггг2дата(строка); чис_вторников = чис_вторников + тест_даты(дата, 2); КонецЦикла; даты.Закрыть(); Возврат чис_вторников; КонецФункции // число_вторников Функция число_сред(имя_файла) Попытка даты = Новый ЧтениеТекста; даты.Открыть(имя_файла); Исключение Сообщить("ОШИБКА: Проблема с файлом ["+имя_файла+"]"); Возврат -1; КонецПопытки; чис_сред = 0; Пока Истина Цикл строка = даты.ПрочитатьСтроку(); Если строка = Неопределено Тогда Прервать КонецЕсли; дата = дд_мм_гггг2дата(строка); чис_сред = чис_сред + тест_даты(дата, 3); КонецЦикла; даты.Закрыть(); Возврат чис_сред; КонецФункции // число_сред Функция тест_даты(дата, тест) Возврат ДеньНедели(дата) = тест; КонецФункции // тест_даты Функция число_четвергов(имя_файла) Попытка даты = Новый ЧтениеТекста; даты.Открыть(имя_файла); Исключение Сообщить("ОШИБКА: Проблема с файлом ["+имя_файла+"]"); Возврат -1; КонецПопытки; чис_четвергов = 0; Пока Истина Цикл строка = даты.ПрочитатьСтроку(); Если строка = Неопределено Тогда Прервать КонецЕсли; дата = дд_мм_гггг2дата(строка); чис_четвергов = чис_четвергов + тест_даты(дата, 4); КонецЦикла; даты.Закрыть(); Возврат чис_четвергов; КонецФункции // число_четвергов Процедура ПриНачалеРаботыСистемы() чис_пятниц = число_пятниц("N:\даты.txt"); чис_вторников = число_вторников("N:\даты.txt"); чис_сред = число_сред("N:\даты.txt"); чис_четвергов = число_четвергов("N:\даты.txt"); КонецПроцедуры Перем Min; Перем Max; // x <= Min + D ? => Истина / Ложь Функция тест_числа(x, D) Возврат x <= Min + D; КонецФункции // тест_числа // x >= Max - D ? => Истина / Ложь Функция тест_числа2(x, D) Возврат x >= Max - D; КонецФункции // тест_числа2 // Нахождение минимального числа в файле Функция минимум(имя_файла) Попытка числа = Новый ЧтениеТекста; числа.Открыть(имя_файла); Исключение Сообщить("ОШИБКА: Проблема с файлом ["+имя_файла+"]"); Возврат Неопределено; КонецПопытки; мин = 9999999999999; Пока Истина Цикл строка = числа.ПрочитатьСтроку(); Если строка = Неопределено Тогда Прервать КонецЕсли; число = 0 + строка; Если число < мин Тогда мин = число КонецЕсли; КонецЦикла; числа.Закрыть(); Возврат мин; КонецФункции // минимум // Нахождение максимального числа в файле Функция максимум(имя_файла) Попытка числа = Новый ЧтениеТекста; числа.Открыть(имя_файла); Исключение Сообщить("ОШИБКА: Проблема с файлом ["+имя_файла+"]"); Возврат Неопределено; КонецПопытки; макс = 0; Пока Истина Цикл строка = числа.ПрочитатьСтроку(); Если строка = Неопределено Тогда Прервать КонецЕсли; число = 0 + строка; Если число > макс Тогда макс = число КонецЕсли; КонецЦикла; числа.Закрыть(); Возврат макс; КонецФункции // максимум // подсчет числа_чисел_по_условию Функция число_чисел_по_условию(имя_файла,D) числа = Новый ЧтениеТекста; числа.Открыть(имя_файла); N = 0; Пока Истина Цикл строка = числа.ПрочитатьСтроку(); Если строка = Неопределено Тогда Прервать КонецЕсли; число = 0 + строка; Если тест_числа(число,D) Тогда N=N+1 КонецЕсли; КонецЦикла; числа.Закрыть(); Возврат N; КонецФункции // число_чисел_по_условию // подсчет числа_чисел_по_условию_МАКСИМУМ Функция число_чисел_по_условию_максимум(имя_файла,D) числа = Новый ЧтениеТекста; числа.Открыть(имя_файла); N = 0; Пока Истина Цикл строка = числа.ПрочитатьСтроку(); Если строка = Неопределено Тогда Прервать КонецЕсли; число = 0 + строка; Если тест_числа2(число,D) Тогда N=N+1 КонецЕсли; КонецЦикла; числа.Закрыть(); Возврат N; КонецФункции // число_чисел_по_условию_максимум Процедура ПриНачалеРаботыСистемы() D = 10; Min = минимум("N:\числа.txt"); Max = максимум("N:\числа.txt"); Если Min = Неопределено Тогда Сообщить("ОШИБКА: Min не найдено!"); Возврат; КонецЕсли; Если Max = Неопределено Тогда Сообщить("ОШИБКА: Min не найдено!"); Возврат; КонецЕсли; чисел_D = число_чисел_по_условию("N:\числа.txt",D); чисел_D_максимум = число_чисел_по_условию_максимум("N:\числа.txt",D) КонецПроцедуры // ПриНачалеРаботыСистемы()