ДатаТек = ТекущаяДата();
ДатаНачала=Дата(Формат(ДатаТек, “ДФ=””дд.ММ.гггг”””)+” 09:05:38″);
ДатаОкончания=Дата(Формат(ДатаТек, “ДФ=””дд.ММ.гггг”””)+” 18:11:42″);
РезультатВыбора = Новый СписокЗначений;
Режим = РежимДиалогаВопрос.ДаНет;
Если (ДатаТек > ДатаНачала) или (ДатаТек < ДатаОкончания) Тогда
Ответ=Вопрос(“Рабочий День еще не закончился, Вы уверены что хотите закончить работу в программе?”,Режим,0);
Если Ответ = КодВозвратаДиалога.Нет Тогда
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ВыборВариантаОбеда()
ВариантОбеда = Новый СписокЗначений;
ВариантОбеда.Добавить(“курица”);
ВариантОбеда.Добавить(“рыба”);
ВариантОбеда.Добавить(“мясо”);
ВариантОбеда.ОтметитьЭлементы(“Какой вариант обеда Вы предпочитаете?”);
глОбед = Новый Массив;
Для Каждого Эл Из ВариантОбеда Цикл
Если Эл.Пометка=Истина Тогда
глОбед.Добавить(Эл);
КонецЕсли
КонецЦикла;
Если глОбед.Количество()=0 Тогда
ВыборВариантаОбеда();
Иначе
ЗаданиеСтруктурыЧисла();
КонецЕсли;
КонецПроцедуры
Процедура ЗаданиеСтруктурыЧисла()
Числа = Новый Структура();
Х = “Число332″;
Для Перемен = 1 По 1000 Цикл
Количество = 0;
Для Делитель = 1 По Перемен Цикл
Если Перемен%Делитель=0 Тогда
Количество=Количество+1;
КонецЕсли;
КонецЦикла;
Ключ=”Число”+ Формат(Перемен,”ЧГ=””);
Если Количество<3 Тогда
Числа.Вставить(Ключ,”Простое”);
Иначе
Числа.Вставить(Ключ,”Не простое”);
КонецЕсли;
КонецЦикла;
Сообщить(“Число591 – ” + Числа.Число591);
Результат=Числа.Свойство(Х);
Если Результат = Истина Тогда
Сообщить(Х +” – ” +Числа[Х]);
КонецЕсли;
КонецПроцедуры
</code>
Функция ПроверкаРабочегоВремени()
Год = Год(ТекущаяДата());
Месяц = Месяц(ТекущаяДата());
День = День(ТекущаяДата());
Если Дата(Год,Месяц,День,09,05,38) < Дата(ТекущаяДата()) И Дата(ТекущаяДата()) < Дата(Год,Месяц,День,18,11,42)
Тогда Возврат Истина;
Иначе Возврат Ложь;
КонецЕсли;
КонецФункции
Процедура ПриНачалеРаботыСистемы()
Если ПроверкаРабочегоВремени() = Ложь Тогда
Предупреждение (“Работа в система возможна только в рабочее время”);
ЗавершитьРаботуСистемы (Истина);
Иначе
ВыборОбеда();
КонецЕсли;
КонецПроцедуры
Процедура ПередЗавершениемРаботыСистемы(Отказ)
Год = Год(ТекущаяДата());
Месяц = Месяц(ТекущаяДата());
День = День(ТекущаяДата());
Если Дата(Год,Месяц,День,09,05,38) < Дата(ТекущаяДата()) И Дата(ТекущаяДата()) < Дата(Год,Месяц,День,18,11,42) Тогда
Если Вопрос(“Закончить работу в системе в рабочее время?”, РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
Отказ = Истина;
КонецЕсли;
КонецЕсли
КонецПроцедуры
Процедура ВыборОбеда()
Обед = Новый СписокЗначений;
Обед.Добавить(“Курица”);
Обед.Добавить(“Рыба”);
Обед.Добавить(“Мясо”);
Обед.ОтметитьЭлементы(“Необходимо выбрать обед!”);
глОбед = Новый Массив;
Для Каждого Строка Из Обед Цикл
Если Строка.Пометка Тогда
глОбед.Добавить(Строка.Значение);
КонецЕсли;
КонецЦикла;
Если глОбед.Количество() = 0 Тогда
ВыборОбеда();
Иначе Предупреждение (“Хорошего рабочего дня”);
СтруктураЧисел();
КонецЕсли;
КонецПроцедуры
Процедура СтруктураЧисел()
Переменная = “Число332”;
Числа = Новый Структура;
Для Счетчик=1 По 1000 Цикл
Числа.Вставить(“Число” + Формат(Счетчик, “ЧГ=0”), ПроверкаПростоеЧисло());
КонецЦикла;
Сообщить (Числа[“Число591”]);
Сообщить (Числа[Переменная]);
КонецПроцедуры
Функция ПроверкаПростоеЧисло()
СписокДелителей = Новый Массив;
Для Перебор = 1 по Счетчик Цикл
Если Счетчик % Перебор = 0 Тогда
СписокДелителей.Добавить(Перебор);
КонецЕсли;
КонецЦикла;
Если СписокДелителей.Количество() > 2 Тогда
Возврат “Не простое”;
Иначе
Возврат “Простое”;
КонецЕсли;
КонецФункции
</code>
Все материалы этого сайта являются составной частью Базового / Продвинутого курсов по программированию - и являются объектами авторского и имущественного права.
Любое их распространение без письменного согласования с авторами запрещено.
<code>
Перем глОбед Экспорт;
Процедура ПриНачалеРаботыСистемы()
ДатаТек = ТекущаяДата();
ДатаНачала=Дата(Формат(ДатаТек, “ДФ=””дд.ММ.гггг”””)+” 09:05:38″);
ДатаОкончания=Дата(Формат(ДатаТек, “ДФ=””дд.ММ.гггг”””)+” 18:11:42″);
Если (ДатаТек < ДатаНачала) или (ДатаТек > ДатаОкончания) Тогда
Предупреждение(“Сейчас заходить в конфигурацию нельзя”);
ЗавершитьРаботуСистемы(Ложь);
Иначе
ВыборВариантаОбеда();
КонецЕсли;
КонецПроцедуры
Процедура ПередЗавершениемРаботыСистемы(Отказ)
ДатаТек = ТекущаяДата();
ДатаНачала=Дата(Формат(ДатаТек, “ДФ=””дд.ММ.гггг”””)+” 09:05:38″);
ДатаОкончания=Дата(Формат(ДатаТек, “ДФ=””дд.ММ.гггг”””)+” 18:11:42″);
РезультатВыбора = Новый СписокЗначений;
Режим = РежимДиалогаВопрос.ДаНет;
Если (ДатаТек > ДатаНачала) или (ДатаТек < ДатаОкончания) Тогда
Ответ=Вопрос(“Рабочий День еще не закончился, Вы уверены что хотите закончить работу в программе?”,Режим,0);
Если Ответ = КодВозвратаДиалога.Нет Тогда
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ВыборВариантаОбеда()
ВариантОбеда = Новый СписокЗначений;
ВариантОбеда.Добавить(“курица”);
ВариантОбеда.Добавить(“рыба”);
ВариантОбеда.Добавить(“мясо”);
ВариантОбеда.ОтметитьЭлементы(“Какой вариант обеда Вы предпочитаете?”);
глОбед = Новый Массив;
Для Каждого Эл Из ВариантОбеда Цикл
Если Эл.Пометка=Истина Тогда
глОбед.Добавить(Эл);
КонецЕсли
КонецЦикла;
Если глОбед.Количество()=0 Тогда
ВыборВариантаОбеда();
Иначе
ЗаданиеСтруктурыЧисла();
КонецЕсли;
КонецПроцедуры
Процедура ЗаданиеСтруктурыЧисла()
Числа = Новый Структура();
Х = “Число332″;
Для Перемен = 1 По 1000 Цикл
Количество = 0;
Для Делитель = 1 По Перемен Цикл
Если Перемен%Делитель=0 Тогда
Количество=Количество+1;
КонецЕсли;
КонецЦикла;
Ключ=”Число”+ Формат(Перемен,”ЧГ=””);
Если Количество<3 Тогда
Числа.Вставить(Ключ,”Простое”);
Иначе
Числа.Вставить(Ключ,”Не простое”);
КонецЕсли;
КонецЦикла;
Сообщить(“Число591 – ” + Числа.Число591);
Результат=Числа.Свойство(Х);
Если Результат = Истина Тогда
Сообщить(Х +” – ” +Числа[Х]);
КонецЕсли;
КонецПроцедуры
</code>
Сергей, ваш отчет принят.
<code>
Перем глОбед Экспорт;
Перем Счетчик;
Функция ПроверкаРабочегоВремени()
Год = Год(ТекущаяДата());
Месяц = Месяц(ТекущаяДата());
День = День(ТекущаяДата());
Если Дата(Год,Месяц,День,09,05,38) < Дата(ТекущаяДата()) И Дата(ТекущаяДата()) < Дата(Год,Месяц,День,18,11,42)
Тогда Возврат Истина;
Иначе Возврат Ложь;
КонецЕсли;
КонецФункции
Процедура ПриНачалеРаботыСистемы()
Если ПроверкаРабочегоВремени() = Ложь Тогда
Предупреждение (“Работа в система возможна только в рабочее время”);
ЗавершитьРаботуСистемы (Истина);
Иначе
ВыборОбеда();
КонецЕсли;
КонецПроцедуры
Процедура ПередЗавершениемРаботыСистемы(Отказ)
Год = Год(ТекущаяДата());
Месяц = Месяц(ТекущаяДата());
День = День(ТекущаяДата());
Если Дата(Год,Месяц,День,09,05,38) < Дата(ТекущаяДата()) И Дата(ТекущаяДата()) < Дата(Год,Месяц,День,18,11,42) Тогда
Если Вопрос(“Закончить работу в системе в рабочее время?”, РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
Отказ = Истина;
КонецЕсли;
КонецЕсли
КонецПроцедуры
Процедура ВыборОбеда()
Обед = Новый СписокЗначений;
Обед.Добавить(“Курица”);
Обед.Добавить(“Рыба”);
Обед.Добавить(“Мясо”);
Обед.ОтметитьЭлементы(“Необходимо выбрать обед!”);
глОбед = Новый Массив;
Для Каждого Строка Из Обед Цикл
Если Строка.Пометка Тогда
глОбед.Добавить(Строка.Значение);
КонецЕсли;
КонецЦикла;
Если глОбед.Количество() = 0 Тогда
ВыборОбеда();
Иначе Предупреждение (“Хорошего рабочего дня”);
СтруктураЧисел();
КонецЕсли;
КонецПроцедуры
Процедура СтруктураЧисел()
Переменная = “Число332”;
Числа = Новый Структура;
Для Счетчик=1 По 1000 Цикл
Числа.Вставить(“Число” + Формат(Счетчик, “ЧГ=0”), ПроверкаПростоеЧисло());
КонецЦикла;
Сообщить (Числа[“Число591”]);
Сообщить (Числа[Переменная]);
КонецПроцедуры
Функция ПроверкаПростоеЧисло()
СписокДелителей = Новый Массив;
Для Перебор = 1 по Счетчик Цикл
Если Счетчик % Перебор = 0 Тогда
СписокДелителей.Добавить(Перебор);
КонецЕсли;
КонецЦикла;
Если СписокДелителей.Количество() > 2 Тогда
Возврат “Не простое”;
Иначе
Возврат “Простое”;
КонецЕсли;
КонецФункции
</code>
Максим, ваше решение принято.