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