Решение ДЗ № 4 Базового курса

Представляем решение четвертого домашнего задания.

16 видео-уроков, рекомендую к просмотру всем участникам базового курса, поскольку в решении рассмотрены несколько подводных камней текущего задания.

К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь. Если Вы оплачивали курс, у Вас активирован токен доступа, Вы залогинены, но Вы видите эту запись — напишите нам на e-mail поддержки.

комментария 34 на “Решение ДЗ № 4 Базового курса”

  1. Зиля Гайфуллина 08.12.2010 в 15:17

    Задание выполнила, про обычное приложение даже и не думала, что надо отслеживать… в части задания про структуру поиск простого числа реализовала через алгоритм решето Эратосфена, в общем-то после просмотра материала про синтаксис-помощник им стало проще пользоваться…

  2. Трояновский Евгений 27.10.2010 в 17:15

    Задание выполнил. Проблем не возникло. Разве что забыл про модуль обычного приложения. После просмотра решения попенял себе за невнимание к пользователям (при отказе не выдавал предупреждение) и невнимательность (в процедуре “ПередЗавершениемРаботыСистемы” использовал значки > и <, а вот = упустил )

  3. Александр Горлов 31.08.2010 в 14:38

    Интересно, в процессе решения вылетала платформа не потому ли, что:
    “Примечание:
    Для режима запуска ОбычноеПриложение в данной процедуре не допускаются открытие форм и других окон, не поддерживаются выдача сообщений, установка текста в панели состояния, а также другие действия, требующие наличия главного окна.” (Синтакс-Помощник, ПередНачаломРаботыСистемы)
    ?

  4. Георгий Иванов 21.08.2010 в 17:37

    Выполнил

  5. Сергей Коцюра 08.08.2010 в 06:21

    В решениях автора принципиально не понравилось лишь одно:
    “…Нужно стараться создавать решения, работающие при любых обстоятельствах..”, а при этом использование Прав(ТекущаяДата(),8) – как было показано в одной из мастер-групп – приведение типов в некоторых случаях может быть совершенно далеко от ожидаемого, а уж в соответствии с какими установками (региональными? системными в настройках приложения? установленной локализацией для базы? прочее?) ТекущаяДата() приводится к строке – лично мне – непонятно… ;-) Так что, выдирая время таким образом, можно незаметно наступить на грабли ;-)

    • Да, находясь в заморских странах, можно наступить на грабли)) Учтем.

  6. Сергей Коцюра 08.08.2010 в 06:16

    такс, разбор показал следующие допущенные мной ошибки:
    1. глОбед не объявил Экспортной; – критичная ошибка
    2. в массив загнал не строки обедов, а элемент коллекции; – критичная ошибка;
    .
    обычное приложение – не отследил; хотя на задворках мысль мелькала, про общие модули тоже думал – но делать не стал, потому как принципиально по коду все понятно. Плюс к этому с толку сбило, что задание начал делать после того прочитал ДО модуля внешнего соединения + прочитал ДЗ. Решил что прочитанного – вполне хватит для выполнения ДЗ. Поэтому считаю – некритично, функционал требуемый реализован, другое дело что не всеми доступными методами.. ;-) Поэтому к авторам повторна убедительная просьба – даже для старых ДЗ выложить “метки” – после каких глав рекомендуется приступать к выполнению ДЗ.

  7. Выполнено.

  8. Выполнил. Использовал функции Час и Минута, но только потому что забыл про функцию НачалоДня;).

  9. Сделал ДЗ№4. Начал делать, затем подсмотрел в комментарии, после чего скорректировал модуль. Честно, не додумался бы сразу и для обычного приложения делать проверку. Так же сразу не выносил все алгоритмы в общие модули. ГлОбед сохранил в переменную модуле приложения. Проверил, все работает. Была заминка в процедуре ПередЗавершениемРаботыСистемы(Отказ) Получалась так, что Отказ равен был Неопределено, после чего система не закрывалась, и ее нельзя было закрыть по крестику :-))

    • Александр Горлов 31.08.2010 в 14:34

      Проблемы с ПередЗавершениемРаботыСистемы(Отказ=Неопределено) у кого-нибудь повторились? Это фишка или баг?

  10. SmartUseless 18.07.2010 в 21:42

    Done..Однако мысли о вынесении функционала в общий модуль как первый шаг к “кроссбраузерности” по отношению к тому, где же вызываются методы общего модуля – тонком или толстом клиентах- не дает покоя..

  11. Оркия Барташевич 16.07.2010 в 16:26

    Задание выполнила. Правда, для обычного приложения добавила после просмотра эталонного решения.

  12. Сергей Профьев 12.07.2010 в 21:03

    поскольку в задании было все-таки ровно 9 и 18 часов, то использовал в условии функцию Час()
    Сделал копию обработчиков событий в обоих модулях приложения, но потом понял, что исполняется только “управлямое приложение”.
    Но что с глобальной переменной “глОбед”? Не будет где-нибудь конфликтов из-за одноименности?

    • Не будет конфликтов.
      Одна переменная доступна при работе в обычном приложении, другая – в управляемом.

  13. Задание выполнено, проблем не возникло

  14. Выполнил, но оказалось частично. Где то вы говорите, что в задании не было указано где хранить обеды, поэтому не стали использовать перечисления, а где-то вы, наоборот, пишите то, что не указано в задании :), это я про обычный модуль и управляемый… сделал только в управляемом, но мог бы сделать и в обычном, по заданию не было сказано :(

    • Нужно стараться создавать решения, работающие при любых обстоятельствах..
      Даже если об этом не сказано в задании ;)

  15. Михайлов Сергей 11.07.2010 в 20:05

    Задание выполнил. Время определял через Час(), слостей не возникло.

  16. Задание выполнил только сейчас. Посмотрим решение…
    Мда… Не подумал про модуль обчного приложения…

  17. Сергей 09.07.2010 в 23:54

    Как я понял, вынос обедов в общий модуль не был выполнен, в приведенном решении, только потому, что у вас возникла ошибка платформы, и вы стали разносить методы взаимодействия с пользователем (Предупреждение, Вопрос…) в модулях соответствующих приложений.
    У меня таких проблем не было. И сделал я все через общий модуль.

  18. Константин Павленко 09.07.2010 в 16:56

    Погонял доработанный вариант, но с вызовами Предупреждение(), Вопрос() и ОтметитьЭлементы() в общем модуле РаботаСПользователями. Скомпилирован на клиенте (управляемое приложение и обычное приложение). Заходил-выходил несколько раз в режиме управляемого и обычного приложения под отладчиком и без оного, с выдачей предупреждения и вопроса. Ни одной ошибки, релиз платформы 8.2.11.236, база файловая локальная. Могу прислать выгрузку базы (20 кб). Как обычно отвечает 1С: “Воспроизвести проблему не удалось” :)

    • Меня самого удивило поведение системы.
      Релиз платформы точно такой же.
      Хорошо, что у вас проблема не воспроизводится.
      Присылайте выгрузку, запущу у себя.

      • Евгений Ершов 10.07.2010 в 21:07

        У меня релиз платформы 8.2.10.77 . Всё общее для модулей Управляемого приложения и Обычного приложения вынес в Общий модуль (как вы хотели сделать в видео по решению ДЗ №4). Все нормально работает (и в режиме обычного приложения в том числе). Глюков нет.

        • Глюк был “плавающий”, после перезагрузки исчез, такое бывает )

  19. В решении задачи вы присваиваете глобальным переменным модуля приложения значение даты и времени, при том даты дня запуска, а не начала времен, так что если пользователь оставит программу до следующего дня открытой, то условие при выходе все будет считаться выходом в не рабочее время. Так же это конечно дело вкуса, но нагляднее использовать метод формат() вместо прав(,8) и опять же дело вкуса но мне всегда съедает мозг расчет времени методом 9*3600, нагляднее было бы использовать дата(1,1,1,9,0,0)

    • Да, вот этот момент я не учел. Спасибо.
      Что касается описания времени, скорее дело привычки..

  20. Сергей Гуков 09.07.2010 в 10:27

    Честно признаться, забыл, что надо в двух модулях приложения делать и сделал только в управляемом..

    Понравился способ проверки времени, я как раз применил более громоздкий – с часами и минутами.

    Спасибо Евгений за идеи! ;)

  21. Евгений, во сколько же Вы спать ложитесь, если при решении задачи был 2-й час ночи?

  22. Кто сделал в 2-х модулях приложения? Поднимите руки =) !