Имя: Пароль:
1C
Админ
v8: Помогите решить задачу
,
0 buvtank
 
02.05.12
12:53
помогите решить задачу, если можно
________
Условие:
Включите в процедуру - обработчик ПриНачалеРаботыСистемы()  вызов процедуры ПримерыОбращенияКРегиструСведений().

В этой процедуре напишите фрагмент программного кода, который распечатывал бы в окне "Служебные сообщения" первое значение валютного курса в 2003 г.

_______
в ПриНачалеРаботыСистемы есть вот что:

// Модуль приложения
//---------------------------------------------------------
// Раздел переменных:
Перем НачалоРаботы;
//---------------------------------------------------------
//Раздел процедур и функций:
//ПриНачалеРаботыСистемы() - проверяет время входа в систему
Процедура ПриНачалеРаботыСистемы()
   ВремяЧас=Час(ТекущаяДата());
   Если (ВремяЧас>=14) и (ВремяЧас<15) Тогда
       Ответ=Вопрос("Сейчас не рабочее время!"+Символы.Таб+"Будете работать?",РежимДиалогаВопрос.ДаНет);
       Если Ответ=КодВозвратаДиалога.Нет Тогда
           ПрекратитьРаботуСистемы();
           Если (ВремяЧас>=17) и (ВремяЧас<17) Тогда
               ПрекратитьРаботуСистемы();
               
       КонецЕсли;
   КонецЕсли;
КонецЕсли;

КонецПроцедуры
 

  Функция ИнтервалСтр(Начало,Конец)
   Интервал=Конец-Начало; //вычислим интервал в секундах
   Часов=Цел(Интервал/3600); //сколько это будет часов
   Время='00010101'+Интервал; //преобразуем Интервал к дате
   Минут=Минута(Время); //получим число минут и секунд
   Секунд=Секунда(Время);
   // напишем это все строкой
   Стр=""+Часов+"ч"+Минут+"м"+Секунд+"с";
   Возврат Стр;
КонецФункции

___________________________________
я очень в танке((((
19 buvtank
 
02.05.12
13:26
Deon, Если (ВремяЧас>=14) я думала это значит, что время больше или равно 14.... (не кидайтесь тапками, я, можно сказать первый день)
20 AlexTim03
 
02.05.12
13:26
(0) Даже не знаю, смеяться или плакать)))
21 Wobland
 
02.05.12
13:27
(19) вкупе со вторым условием даёт ровно 14
22 Deon
 
02.05.12
13:28
(19) Именно так и есть. Но при этом ты сюда же дописываешь И ВремяЧас<15
23 Deon
 
02.05.12
13:28
(7) Ты уже пробовала выполнить код в (7) ? Какие результаты?
24 Wobland
 
02.05.12
13:28
(22) хм, наверное, имеется в виду, что 14:30=14.5 часов ;)
25 Wobland
 
02.05.12
13:29
а вообще, необходимо завести РС, в котором указывать допустимое время работы для каждого юзера, и при запуске проверять. гибче
26 Alex S D
 
02.05.12
13:30
(25) оставь ей это на 2-й день работы с 1с
27 buvtank
 
02.05.12
13:30
так работает, же. сейчас поставила время машины 14.30, при запуске 1С в режиме пользователя был запрос: сейчас не рабочее время,блабла
28 Deon
 
02.05.12
13:30
(25) Может лучше регламентным событием проверять? И если он задержался на работе, выдавать сообщение "Сверхурочные не оплачиваются"
29 Wobland
 
02.05.12
13:31
злоумышленник, кстати, лекго обойдёт защиту, придя на работу после 18
30 buvtank
 
02.05.12
13:32
а запись про 17 у меня не работает потому, что она в другую процедуру вложена или почему?
31 Alex S D
 
02.05.12
13:33
(29) пользователи они такие.. дай волю будут приходит и ночью работать и даже в обед, за этим надо следить
32 Wobland
 
02.05.12
13:33
(30) не в процедуру, а в условие. сходи в (18) вообще
33 Deon
 
02.05.12
13:33
(27) Ну оно, безусловно, работает. Но тебе не хватает понимания КАК оно работает
34 buvtank
 
02.05.12
13:34
(23) еще не пробовала, ща попробую
35 buvtank
 
02.05.12
13:36
(27) мне ооочень не хватает его, да(((
а (18) я не поняла
36 Wobland
 
02.05.12
13:37
(35) Если ВремяЧас=14 Тогда задаём вопрос, сравниваем ответ с "нет". иначе смотрим, не равно ли ВремяЧас 17
37 Wobland
 
02.05.12
13:38
(36) в последнем случае безо всяких вопросов уже
38 buvtank
 
02.05.12
13:39
// Модуль приложения
//---------------------------------------------------------
// Раздел переменных:
Перем НачалоРаботы;
//---------------------------------------------------------
//Раздел процедур и функций:
//ПриНачалеРаботыСистемы() - проверяет время входа в систему
Процедура ПриНачалеРаботыСистемы()
   ВремяЧас=Час(ТекущаяДата());
   Если (ВремяЧас>=14) и (ВремяЧас<15) Тогда
       Ответ=Вопрос("Сейчас не рабочее время!"+Символы.Таб+"Будете работать?",РежимДиалогаВопрос.ДаНет);
       Если Ответ=КодВозвратаДиалога.Нет Тогда
           ПрекратитьРаботуСистемы();
           Если (ВремяЧас>=17) и (ВремяЧас<17) Тогда
               ПрекратитьРаботуСистемы();
               
       КонецЕсли;
   КонецЕсли;
КонецЕсли;

КонецПроцедуры
Процедура ПримерыОбращенияКРегиструСведений()
   ………………………………………………………
   // Найдем курс на сегодняшнее число:
   Запись=РегистрыСведений.Курсы.ПолучитьПоследнее(ТекущаяДата());
   Сообщить("Сегодня курс УЕ="+Запись.Курс);
   // Найдем курс на первое число после 01.01.2002:
   Запись=РегистрыСведений.Курсы.ПолучитьПервое(01.01.2002)
   Сообщить("Курс УЕ на первое число после 01.01.2002"+Запись.Курс);//эээ...???
   
КонецПроцедуры



  Функция ИнтервалСтр(Начало,Конец)
   Интервал=Конец-Начало; //вычислим интервал в секундах
   Часов=Цел(Интервал/3600); //сколько это будет часов
   Время='00010101'+Интервал; //преобразуем Интервал к дате
   Минут=Минута(Время); //получим число минут и секунд
   Секунд=Секунда(Время);
   // напишем это все строкой
   Стр=""+Часов+"ч"+Минут+"м"+Секунд+"с";
   Возврат Стр;
КонецФункции
Процедура ПередЗавершениемРаботыСистемы(Отказ)
   КонецРаботы=ТекущаяДата();
   Ответ=Вопрос("Завершить работу системы?"+Символы.ПС+"(Вы работали "    
   +ИнтервалСтр(НачалоРаботы,КонецРаботы)+")",
   РежимДиалогаВопрос.ДаНет,30);
   Отказ=(Ответ=КодВозвратаДиалога.Нет);
КонецПроцедуры
//---------------------------------------------------------
// раздел основной программы:
НачалоРаботы=ТекущаяДата();
39 buvtank
 
02.05.12
13:39
ошибка, говорит "ожидается ключевое слово "Конец процедуры"
40 buvtank
 
02.05.12
13:41
процедуру в процедуру нужно?
41 Alex S D
 
02.05.12
13:41
Запись=РегистрыСведений.Курсы.ПолучитьПервое(01.01.2002) -
надо Запись=РегистрыСведений.Курсы.ПолучитьПервое('20020101')
42 eklmn
 
гуру
02.05.12
13:44
(40) точку с запятой забыла в конце
43 Alex S D
 
02.05.12
13:46
замени содержимое процедуры ПриНачалеРаботыСистемы на  

ВремяЧас=Час(ТекущаяДата());
 Если ВремяЧас=14 Тогда
     Ответ=Вопрос("Сейчас не рабочее время!"+Символы.Таб+"Будете работать?",РежимДиалогаВопрос.ДаНет);
     Если Ответ=КодВозвратаДиалога.Нет Тогда
         ПрекратитьРаботуСистемы();
     КонецЕсли;
 ИначеЕсли ВремяЧас=17 Тогда
     ПрекратитьРаботуСистемы();
 КонецЕсли;
44 Wobland
 
02.05.12
13:49
вот зашёл я в 16:59 в базу - всё, никакие ВремяЧас=17 мне уже не страшны ;)
45 Wobland
 
02.05.12
13:50
а вот кусок типовой:

Процедура ПередНачаломРаботыСистемы(Отказ)
   
   ПроверитьВозможностьРаботыПользователя(Отказ);
   
   Если Отказ Тогда
       Возврат;
   КонецЕсли;
46 buvtank
 
02.05.12
13:51
Alex S D Спасиб=)
А УЕ в чем косяк? Ошибку "Ожидается ключевое слово "конец процедуры" из-за чего выдает?
точку с запятой я добавила
47 Alex S D
 
02.05.12
13:51
(41) смотрела?
48 Wobland
 
02.05.12
13:53
(46) 01.01.2002 - ни разу не дата. '20020101' - вот дата
49 buvtank
 
02.05.12
13:54
(47), (48) да, спасиб, я это тоже исправила.
ошибка в другом, как я поняла
что вообще значит ошибка "Ожидается ключевое слово"?
50 Адинэснег
 
02.05.12
13:55
волонтёры...
51 Капитан О
 
02.05.12
13:56
(49) слова ключевого не хватает
52 Адинэснег
 
02.05.12
13:57
КО на страже, бгг
53 Alex S D
 
02.05.12
13:57
текст ошибки давай полностью
54 buvtank
 
02.05.12
13:58
(53)
{МодульУправляемогоПриложения(20,5)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
   <<?>>……………………………………………………… (Проверка: Тонкий клиент)
55 Wobland
 
02.05.12
14:00
я понял! это фото в ЛК ожидается
56 Адинэснег
 
02.05.12
14:00
........................................................................
57 Alex S D
 
02.05.12
14:00
это просто на работе делать нефиг)
58 Адинэснег
 
02.05.12
14:00
модуль приложения - это не блокнот, рисовать в нем не надо
59 Alex S D
 
02.05.12
14:01
(54)  че за точки, очень информативно
60 buvtank
 
02.05.12
14:02
(59) я скопировала, как было(((
61 Адинэснег
 
02.05.12
14:02
(59) да какая разница, нажать ctrl+F7, в окне служебных сообщений кликнуть по тексту ошибки
62 Alex S D
 
02.05.12
14:03
………………………………………………………  хаха только заметил..
63 Alex S D
 
02.05.12
14:03
убери эту фигню
64 buvtank
 
02.05.12
14:06
терь вот что говорит
{МодульУправляемогоПриложения(20,15)}: Переменная не определена (РегистрыСведений)
      Запись=<<?>>РегистрыСведений.Курсы.ПолучитьПоследнее(ТекущаяДата()); (Проверка: Тонкий клиент)
{МодульУправляемогоПриложения(23,9)}: Переменная не определена (РегистрыСведений)
   Запись=<<?>>РегистрыСведений.Курсы.ПолучитьПервое(20020101); (Проверка: Тонкий клиент)
65 Wobland
 
02.05.12
14:06
(64) в тонком клиенте  нет РС, отдавай управление на сервер. ещё 200 постов?
66 Alex S D
 
02.05.12
14:07
оо, началось..
67 IKSparrow
 
02.05.12
14:08
(66) сам виноват :)
68 buvtank
 
02.05.12
14:08
(65) ?
69 Alex S D
 
02.05.12
14:09
не. я клиент сервер не проходил, пойду поработаю ))
70 IKSparrow
 
02.05.12
14:09
Им ладонь протягиваешь, а они по локоть откусывают:-)
71 buvtank
 
02.05.12
14:10
нееееееетттт!!!! непокидайтеменя!!!!!
72 buvtank
 
02.05.12
14:13
я тоже могу в чем-нить помочь, если надо, например в юриспруденции или маркетинге, еще могу написать стихи, нарисовать, спеть, сварить борщ))))))))))))
не бросайте меня тут(((
73 IKSparrow
 
02.05.12
14:14
(72) Борщ вкусный? По традиции еще личико надо показать.
74 Wobland
 
02.05.12
14:16
(71) на вот, схематично. обдумай

Опля=ДайМнеКурс();

&НаСервере
Функция ДайМнеКурс()
РегистрыСведений....
Возврат НужныйКурс;
Конец
75 Alex S D
 
02.05.12
14:20
чето типо того..

&НаКлиенте
Функция  ПолучитьКурсКлиент(Команда)
   Курс = ПолучитьКурсВалюты('20120101');
   Сообщить(Курс);
КонецФункции

&НаСервере
Функция  ПолучитьКурсВалюты(ДатаКурса)
   Запись = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ДатаКурса);
   Возврат   Запись.Курс;
КонецФункции
76 Адинэснег
 
02.05.12
14:27
77 Alex S D
 
02.05.12
14:28
(76) волонтер..
78 buvtank
 
02.05.12
14:43
спасиб, ребят.
пойду почитаю(((
вы совсем не уходите, я сегодня еще вернусь.
из книг есть Радченко.1СПредприятие.Практическое ПособиеРазрабртчика и 1СПредприятие.КонфигурированиеИАдминистрирование.
и этот непонятный курс он-лайн от 1С, который скоро закончится, а я еще в самом начале, потому, что невтыкаю(((((
еще есть учебная платформа 8.2
а спросить вооообще не у кого.
79 Wobland
 
02.05.12
14:44
молю, хотя бы пол измени ;)
80 Alex S D
 
02.05.12
14:45
Радченка самое то
81 buvtank
 
02.05.12
14:48
да, всё сделаю))) щасвирнус и усе будет
вот, пока, так
http://forum.bratsk.org/showthread.php?107002-Olka))))
82 buvtank
 
02.05.12
15:51
я вернулсо)))
о
в тонком клиенте  нет РС, что это значит?
83 buvtank
 
02.05.12
15:53
http://v8.1c.ru/metod/books/ (76) я уже купила. такую хрень купила, что больше хрен что куплю у них, пока из русских букв не научатся составлять слова, похожие на мысли.
84 Deon
 
02.05.12
15:54
Борща бы
85 buvtank
 
02.05.12
15:55
(84) ума бы (мне)
86 Адинэснег
 
02.05.12
15:58
(85) +
87 Deon
 
02.05.12
16:00
(85) Возможно, его отсутствие компенсировано красотой? )
88 zak555
 
02.05.12
16:03
> Задачу дали в 1С, он-лайн обучении на профессионала, введение в конфигурирование

дай ссылочку
89 Deon
 
02.05.12
16:04
(88) Учат как-то странно
90 buvtank
 
02.05.12
16:04
91 Deon
 
02.05.12
16:05
В условии задачи в (0) стопудово должен быть толстый клиент
92 Deon
 
02.05.12
16:06
В конфигураторе запусти через меню Отладка - Начало отладки - Толстый клиент (управляемое приложение)
93 buvtank
 
02.05.12
16:10
запустила
94 Deon
 
02.05.12
16:11
(93) Начало неплохое )
95 buvtank
 
02.05.12
16:13
(94)Йиииииииихххххаааа!!!
96 Deon
 
02.05.12
16:13
Я выиграл борщ
97 bright2508
 
02.05.12
16:21
(87) посмотри ссылку на (81) только в конце ссылки скобки убери :)
98 Deon
 
02.05.12
16:28
(97) Не открывается оно у меня что-то
99 bright2508
 
02.05.12
16:31
(98) так говорю же в ссылке скобки убери :)
правильная ссылка такая будет:
http://forum.bratsk.org/showthread.php?107002-Olka
100 buvtank
 
02.05.12
16:32
со скобками правильная ссылко. тормозит только
101 buvtank
 
02.05.12
16:33
ходи так: http://forum.bratsk.org далее ФОТОАЛЬБОМ далее Olka))) далее там буду я
102 Deon
 
02.05.12
16:41
Да открылось, хорошо
103 Deon
 
02.05.12
16:41
Но фотка борщ не отменяет
104 buvtank
 
02.05.12
16:42
дык, эта,...вэлкам, какбэ)))
105 buvtank
 
02.05.12
16:43
будешь лопать борщ и помогать мне с задачей)))
106 buvtank
 
02.05.12
16:48
я буду кормить борщом, петь о правах, читать стихи об event и стратегическом позиционировании и рисовать код маслом))
107 buvtank
 
02.05.12
16:54
может быть сам косяк с платформой? или в коде все-таки что-то не так?
108 buvtank
 
02.05.12
16:59
у меня 8.2 а обучение по 8.0
109 buvtank
 
02.05.12
17:03
ладн. пошел я спать. завтра со свежей головой посмотрю.
110 Deon
 
02.05.12
17:04
А нафига обучение по 8.0 проходить?
111 Alex S D
 
02.05.12
17:04
надо с 7.7 начинать
112 buvtank
 
02.05.12
17:23
Франчайзи набирает персонал, старт обучения с этого курса 1с конфигурирование от 1с, там восьмерка. Указано, для тех, кто в танке. Но после введения резкий переход к языку, три строчки - задача. Я не понимать, почему так, почему, почему, почему, и что все это значит. А обучение этому этапу заканчивается через 1.5 недели, а я застряла в начале. Аттестацию хрен пройду, времени мало.
113 zak555
 
02.05.12
17:37
> 107002-Olka


это что за аббревиатура ?
114 zak555
 
02.05.12
17:37
(112) как звоут франчайзи ?
115 buvtank
 
02.05.12
17:48
(113) 107002 втф?
А Olka=Олька
116 zak555
 
02.05.12
19:10
ну так что не получается ?
117 buvtank
 
02.05.12
20:03
(116) у меня ночь, завтра заходи, как высплюсь, продолжу.
Щас искала основы программирования и забрела на сайт, где (правда, другой язык) всё расписано для тех, кто в танке, ясно и понятно, последовательно, кратко и ёмко.
А того, кто писал этот курс в 1с — уволить нахрен. Своим бардаком в голове создает бардак у других.
118 buvtank
 
03.05.12
07:55
еще раз для особо одаренных (то есть меня)

// Модуль приложения
//---------------------------------------------------------
// Раздел переменных:
Перем НачалоРаботы;
//---------------------------------------------------------
//Раздел процедур и функций:
//ПриНачалеРаботыСистемы() - проверяет время входа в систему
Процедура ПриНачалеРаботыСистемы()
   ВремяЧас=Час(ТекущаяДата());
   Если (ВремяЧас>=14) и (ВремяЧас<15) Тогда
       Ответ=Вопрос("Сейчас не рабочее время!"+Символы.Таб+"Будете работать?",РежимДиалогаВопрос.ДаНет);
       Если Ответ=КодВозвратаДиалога.Нет Тогда
           ПрекратитьРаботуСистемы();
           ИначеЕсли ВремяЧас=17 Тогда
     ПрекратитьРаботуСистемы();
                   КонецЕсли;
           КонецЕсли;
   КонецЕсли;
КонецПроцедуры

Процедура ПримерыОбращенияКРегиструСведений()
      Запись=РегистрыСведений.Курсы.ПолучитьПоследнее(ТекущаяДата());
   Сообщить("Сегодня курс УЕ="+Запись.Курс);
   // Найдем курс на первое число после 01.01.2002:

   Запись=РегистрыСведений.Курсы.ПолучитьПервое(20020101);
   Сообщить("Курс УЕ на первое число после 01.01.2002"+Запись.Курс);
КонецПроцедуры

  Функция ИнтервалСтр(Начало,Конец)
   Интервал=Конец-Начало; //вычислим интервал в секундах
   Часов=Цел(Интервал/3600); //сколько это будет часов
   Время='00010101'+Интервал; //преобразуем Интервал к дате
   Минут=Минута(Время); //получим число минут и секунд
   Секунд=Секунда(Время);
   // напишем это все строкой
   Стр=""+Часов+"ч"+Минут+"м"+Секунд+"с";
   Возврат Стр;
КонецФункции

Процедура ПередЗавершениемРаботыСистемы(Отказ)
   КонецРаботы=ТекущаяДата();
   Ответ=Вопрос("Завершить работу системы?"+Символы.ПС+"(Вы работали "    
   +ИнтервалСтр(НачалоРаботы,КонецРаботы)+")",
   РежимДиалогаВопрос.ДаНет,30);
   Отказ=(Ответ=КодВозвратаДиалога.Нет);
КонецПроцедуры
//---------------------------------------------------------
// раздел основной программы:
НачалоРаботы=ТекущаяДата();



ошибко:
{МодульУправляемогоПриложения(18,2)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
   <<?>>КонецЕсли; (Проверка: Тонкий клиент)

____
это из-за того, что в тонком клиенте нет РегистраСведений - и что тогда делать?((
пропустить раздел про регистры?
а так в общем правильно?