Процедура ВычислениеРабочихДней(ИсходнаяДата,кол)
доб=12*кол;
ДатаАктуальности=НачалоГода(ДобавитьМесяц(ИсходнаяДата,доб));
//пройти 1 января
ДатаАктуальности=КонецДня(датаАктуальности)+1;
Конеч= КонецГода(ДатаАктуальности);
сколько=0;
Пока ДатаАктуальности <= Конеч Цикл
ск= ДеньНедели(ДатаАктуальности)/6;
Если Цел(ск)=1 Тогда
ДатаАктуальности=КонецДня(ДатаАктуальности)+1;
Продолжить;
КонецЕсли;
Если ((Месяц(ДатаАктуальности) =2) И (День(ДатаАктуальности)=23)) ИЛИ
((Месяц(ДатаАктуальности) =3) И (День(ДатаАктуальности)=8)) Тогда
ДатаАктуальности=КонецДня(ДатаАктуальности)+1;
Продолжить;
КонецЕсли;
сколько=сколько+1;
ДатаАктуальности=КонецДня(ДатаАктуальности)+1;
КонецЦикла;
Год= Год(Конеч);
Сообщить(Строка(Год)+" год - "+строка(сколько)+" рабочих дней");
КонецПроцедуры
1. Новое: градация по видам клиентов 8-ки. Приёмы программирования.
2. Пришлось повозиться с переменными типа «Дата». Знаю 7-ку. Там переход на следующую дату – это добавление 1 к предыдущей дате. Здесь же надо оперировать с функциями КонецДня и т.д.
3. Для новичка всё очень детально и подробно изложено. У меня нет доступа к описанию лекции по web – программированию (выложена раньше 19 ноября), поэтому хотелось бы чтобы это поподробнее изложили в основном курсе или бы выложили в бонусах нашего потока.
1. Что нового я узнал в нулевом блоке или в чем поменялись взгляды после изучения материала?
Узнал:
1) О существовании инструмента “Закладки” Alt+F2, перемещение по F2.
2) Закрытие окна сообщения происходит по Ctrl+Shift+Z
3) Узанал о коварстве неявного преобразования типов.
2. Затруднений не было, уже более 8 лет работаю с 1С, но образование по книжкам и справочникам – лоскутное, потому решил пройти все с нуля от начала до конца, вдруг что-то не знаю.
3. Какую тему, имеющую отношение к текущему блоку, вы бы хотели подробнее раскрыть в мастер-группе?
Честно, пока никакую.
Единственный вопрос:
Почему фигурная скобка закрывающаюся и открывающаяся для перемещения по условию или циклу с зажатым Ctrl – не работает. Версия платформы 1С:Предприятие 8.2 (8.2.16.368).
> Почему фигурная скобка закрывающаюся и открывающаяся для перемещения по условию или циклу с зажатым Ctrl – не работает. Версия платформы 1С:Предприятие 8.2 (8.2.16.368).
Проверил, работает. Убедитесь, что курсор установлен на начале цикла (условия).
&НаКлиенте
Процедура РассчитатьКоличествоДней(Команда)
ЧислоГод=Год(Год);
ГодЧерез10Лет=ЧислоГод+10;
ЧислоРабочихДнейЗа10Лет=0;
Для СчетчикПоГодам = ЧислоГод По ГодЧерез10Лет Цикл
ЧислоРабочихДнейЗа10Лет=ЧислоРабочихДнейЗа10Лет+РассчетКоличестваРабочихДнейВГоду(СчетчикПоГодам);
КонецЦикла;
Сообщить("Количество рабочих дней за 10 лет: "+ЧислоРабочихДнейЗа10Лет);
КонецПроцедуры
&НаКлиенте
Функция РассчетКоличестваРабочихДнейВГоду(ГодЧислом)
ПеременнаяДата=Дата(ГодЧислом,1,1);
СчетчикДней=?(ДеньНедели(Дата(ГодЧислом,1,1))<6,-1,0)
+?(ДеньНедели(Дата(ГодЧислом,2,23))<6,-1,0)
+?(ДеньНедели(Дата(ГодЧислом,3,8))<6,-1,0);
Пока ГодЧислом=Год(ПеременнаяДата) цикл
СчетчикДней=СчетчикДней+?(ДеньНедели(ПеременнаяДата)<6,1,0);
ПеременнаяДата=ПеременнаяДата+24*60*60;
конецЦикла;
Сообщить("Количество рабочих дней в "+ГодЧислом+" году: "+СчетчикДней);
Возврат СчетчикДней;
КонецФункции // РассчетКоличестваРабочихДнейВГоду()
После прохождения нулевого блока:
1. Что нового я узнал в нулевом блоке или в чем поменялись взгляды после изучения материала?
Для меня новое – практически всё, кроме разве что базовых понятий, таких как переменные, функции, процедуры, операторы и их применение. Что же касается 1С как объектной среды разработки – знакомлюсь, очень интересно, спасибо.
2. В какой теме были наибольшие затруднения, и что помогло их преодолеть?
Некоторые затруднения по нулевому блоку возникли в булевских операциях.
3. Какую тему, имеющую отношение к текущему блоку, вы бы хотели подробнее раскрыть в мастер-группе?
Трудно сказать, всё пока поддается самосотоятельному изучению, дальше, думаю, будет еще возможность задать более конкретные и интересные вопросы, нежели вопросы базового характера, поднятые в нулевом блоке.
Вход
Важно!
Для новых покупателей Базового курса - с чего начать
...........................................................
Все контакты Саппорта Spec8.ru
...........................................................
Как задавать вопросы по материалам курса и ДЗ
...........................................................
Что такое Мастер-группа
...........................................................
Все материалы этого сайта являются составной частью Базового / Продвинутого курсов по программированию - и являются объектами авторского и имущественного права.
Любое их распространение без письменного согласования с авторами запрещено.
Процедура ВычислениеРабочихДней(ИсходнаяДата,кол)
доб=12*кол;
ДатаАктуальности=НачалоГода(ДобавитьМесяц(ИсходнаяДата,доб));
//пройти 1 января
ДатаАктуальности=КонецДня(датаАктуальности)+1;
Конеч= КонецГода(ДатаАктуальности);
сколько=0;
Пока ДатаАктуальности <= Конеч Цикл
ск= ДеньНедели(ДатаАктуальности)/6;
Если Цел(ск)=1 Тогда
ДатаАктуальности=КонецДня(ДатаАктуальности)+1;
Продолжить;
КонецЕсли;
Если ((Месяц(ДатаАктуальности) =2) И (День(ДатаАктуальности)=23)) ИЛИ
((Месяц(ДатаАктуальности) =3) И (День(ДатаАктуальности)=8)) Тогда
ДатаАктуальности=КонецДня(ДатаАктуальности)+1;
Продолжить;
КонецЕсли;
сколько=сколько+1;
ДатаАктуальности=КонецДня(ДатаАктуальности)+1;
КонецЦикла;
Год= Год(Конеч);
Сообщить(Строка(Год)+" год - "+строка(сколько)+" рабочих дней");
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
//Вставить содержимое обработчика
ИсходнаяДата = "20100202";
КоличествоЛет=8;
Для т=0 По КоличествоЛет Цикл
ВычислениеРабочихДней(ИсходнаяДата,т);
КонецЦикла;
КонецПроцедуры
1. Новое: градация по видам клиентов 8-ки. Приёмы программирования.
2. Пришлось повозиться с переменными типа «Дата». Знаю 7-ку. Там переход на следующую дату – это добавление 1 к предыдущей дате. Здесь же надо оперировать с функциями КонецДня и т.д.
3. Для новичка всё очень детально и подробно изложено. У меня нет доступа к описанию лекции по web – программированию (выложена раньше 19 ноября), поэтому хотелось бы чтобы это поподробнее изложили в основном курсе или бы выложили в бонусах нашего потока.
1. Что нового я узнал в нулевом блоке или в чем поменялись взгляды после изучения материала?
Узнал:
1) О существовании инструмента “Закладки” Alt+F2, перемещение по F2.
2) Закрытие окна сообщения происходит по Ctrl+Shift+Z
3) Узанал о коварстве неявного преобразования типов.
2. Затруднений не было, уже более 8 лет работаю с 1С, но образование по книжкам и справочникам – лоскутное, потому решил пройти все с нуля от начала до конца, вдруг что-то не знаю.
3. Какую тему, имеющую отношение к текущему блоку, вы бы хотели подробнее раскрыть в мастер-группе?
Честно, пока никакую.
Единственный вопрос:
Почему фигурная скобка закрывающаюся и открывающаяся для перемещения по условию или циклу с зажатым Ctrl – не работает. Версия платформы 1С:Предприятие 8.2 (8.2.16.368).
> Почему фигурная скобка закрывающаюся и открывающаяся для перемещения по условию или циклу с зажатым Ctrl – не работает. Версия платформы 1С:Предприятие 8.2 (8.2.16.368).
Проверил, работает. Убедитесь, что курсор установлен на начале цикла (условия).
Процедура РассчитатьКоличествоДней(Команда)
ЧислоГод=Год(Год);
ГодЧерез10Лет=ЧислоГод+10;
ЧислоРабочихДнейЗа10Лет=0;
Для СчетчикПоГодам = ЧислоГод По ГодЧерез10Лет Цикл
ЧислоРабочихДнейЗа10Лет=ЧислоРабочихДнейЗа10Лет+РассчетКоличестваРабочихДнейВГоду(СчетчикПоГодам);
КонецЦикла;
Сообщить("Количество рабочих дней за 10 лет: "+ЧислоРабочихДнейЗа10Лет);
КонецПроцедуры
&НаКлиенте
Процедура ГодПриИзменении(Элемент)
Год=НачалоГода(Год);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Год=НачалоГода(ТекущаяДата());
КонецПроцедуры
&НаКлиенте
Функция РассчетКоличестваРабочихДнейВГоду(ГодЧислом)
ПеременнаяДата=Дата(ГодЧислом,1,1);
СчетчикДней=?(ДеньНедели(Дата(ГодЧислом,1,1))<6,-1,0)
+?(ДеньНедели(Дата(ГодЧислом,2,23))<6,-1,0)
+?(ДеньНедели(Дата(ГодЧислом,3,8))<6,-1,0);
Пока ГодЧислом=Год(ПеременнаяДата) цикл
СчетчикДней=СчетчикДней+?(ДеньНедели(ПеременнаяДата)<6,1,0);
ПеременнаяДата=ПеременнаяДата+24*60*60;
конецЦикла;
Сообщить("Количество рабочих дней в "+ГодЧислом+" году: "+СчетчикДней);
Возврат СчетчикДней;
КонецФункции // РассчетКоличестваРабочихДнейВГоду()
После прохождения нулевого блока:
1. Что нового я узнал в нулевом блоке или в чем поменялись взгляды после изучения материала?
Для меня новое – практически всё, кроме разве что базовых понятий, таких как переменные, функции, процедуры, операторы и их применение. Что же касается 1С как объектной среды разработки – знакомлюсь, очень интересно, спасибо.
2. В какой теме были наибольшие затруднения, и что помогло их преодолеть?
Некоторые затруднения по нулевому блоку возникли в булевских операциях.
3. Какую тему, имеющую отношение к текущему блоку, вы бы хотели подробнее раскрыть в мастер-группе?
Трудно сказать, всё пока поддается самосотоятельному изучению, дальше, думаю, будет еще возможность задать более конкретные и интересные вопросы, нежели вопросы базового характера, поднятые в нулевом блоке.