Имя: Пароль:
1C
1С v8
Надо вставить данные в строку
,
0 sr_deadman
 
16.12.12
20:01
Я должен взять данные из констант из общего модуля и вставить в прграмный код как сделать

отсюда взять

---------------------------
Процедура Время(Час,Минута,Секунда) Экспорт
   Час = Час(Константы.НачалоРабочегоДня.Получить());
   Минута = Минута(Константы.НачалоРабочегоДня.Получить());
   Секунда = Секунда(Константы.НачалоРабочегоДня.Получить());
КонецПроцедуры

ОбщийМодульСервер.Время(Час,Минута,Секунда);
---------------------------
и вставить в

---------------------------
Процедура ПередНачаломРаботыСистемы(Отказ)
   Если ТекущаяДата()<Дата(Год,Месяц,День,Час,Минута,Секунда) ИЛИ ТекущаяДата()>Дата(Год,Месяц,День,Час,Минута,Секунда) Тогда
       Отказ=Истина;
   КонецЕсли;
   
КонецПроцедуры
--------------------------
1 Wobland
 
16.12.12
20:06
ты лучше исходную задачу обозначь
2 Wobland
 
16.12.12
20:06
и я никому не расскажу, что я увидел в ЛК
3 sr_deadman
 
16.12.12
20:07
Профессиональное программирование в 1С:Предприятии 8.х
www.Spec8.ru
Базовый курс
Домашнее задание №5. Блок 1.
Необходимо хранить время начала и окончания рабочего дня предприятия в константах.
Создайте справочник «Варианты обедов». Занесите в него предопределенные элементы
• Рыба;
• Мясо;
• Курица.
Создайте роль, которая будет содержать права на все объекты. Для роли отметьте
признак установки полных прав на новые объекты.
В списке пользователей создайте двух пользователей с полными правами: Администратор
и Менеджер.
Создайте справочник «Пользователи», в нем определите реквизит «Администратор»
булевского типа.
Создайте справочник «ОбедыПользователей», подчиненный «Пользователям».
Определите реквизиты:
• Дата;
• Вариант обеда (ссылка на соответствующий справочник).
Справочник «Пользователи» должен автоматически синхронизироваться со списком
пользователей. Для этого при старте приложения проверяйте есть ли текущий пользователь в
справочнике. Если нет, его нужно программно добавить.
Опираясь на эти данные, модифицируйте алгоритмы домашнего задания №4:
• Проверка при входе и выходе и диалог о запросе обеда не должны осуществляться
для пользователей с флагом «Администратор»;
• Время работы предприятия берется из констант;
• Варианты обеда выбираются из одноименного справочника, но выбирать нужно
элементы, не помеченные на удаление;
• Результат выбора пользователя записывайте в справочник
«ОбедыПользователей». При выборе нескольких вариантов выполняйте запись
нескольких элементов справочника;
• Вопрос о выборе обеда должен задаваться только в том случае, если ранее
пользователь не выбирал обед. Например, при первом входе в систему
пользователь указал вариант обеда, тогда при втором запуске в эту же дату вопрос
задавать не следует.
Работоспособность конфигурации в режиме обычного приложения поддерживать не
требуется.
4 sr_deadman
 
16.12.12
20:08
2 ая задача
5 Wobland
 
16.12.12
20:08
(3) ты думаешь, мне охота в там искать место про время входа?
6 sr_deadman
 
16.12.12
20:12
ну помоги пожалиуста целый день над этой задачей мучаюсь я пока обучаюсь 1с мне вот это задание дали заранее благодарен
7 Wobland
 
16.12.12
20:14
(6) задачу назови. как там время входа контролировать надо? у меня в соседнем окне работа открыта
8 sr_deadman
 
16.12.12
20:36
Время работы предприятия берется из констант;
9 sr_deadman
 
16.12.12
20:37
отсюда взять

---------------------------
Процедура Время(Час,Минута,Секунда) Экспорт
   Час = Час(Константы.НачалоРабочегоДня.Получить());
   Минута = Минута(Константы.НачалоРабочегоДня.Получить());
   Секунда = Секунда(Константы.НачалоРабочегоДня.Получить());
КонецПроцедуры

ОбщийМодульСервер.Время(Час,Минута,Секунда);
10 sr_deadman
 
16.12.12
20:37
и вставить в

---------------------------
Процедура ПередНачаломРаботыСистемы(Отказ)
   Если ТекущаяДата()<Дата(Год,Месяц,День,Час,Минута,Секунда) ИЛИ ТекущаяДата()>Дата(Год,Месяц,День,Час,Минута,Секунда) Тогда
       Отказ=Истина;
   КонецЕсли;
   
КонецПроцедуры
--------------------------
11 Ork
 
16.12.12
20:38
(9) В чем трудность? Как достать чч, мм, сс из серверного модуля?
12 sr_deadman
 
16.12.12
20:41
достать из констант и вставить в програмный код
13 Ork
 
16.12.12
20:44
Должно выглядеть примерно так :

Процедура ПередНачаломРаботыСистемы(Отказ)
   Перем Год, Месяц, День, Час, Минута, Секунда;
   //Год, Месяц, День берем из ТекущаяДата() или откуда там тебе нужно
   Год = Год(ТекущаяДата());
   Месяц = Месяц(ТекущаяДата());
   День = День(ТекущаяДата());
   //Остальное из констант
   ОбщийМодульСервер.Время(Час,Минута,Секунда);
   //Теперь у нас есть все компоненты эталонной даты
   //можем начинать проверку
   //можно вставить твой код
   Если ТекущаяДата()<Дата(Год,Месяц,День,Час,Минута,Секунда) ИЛИ ТекущаяДата()>Дата(Год,Месяц,День,Час,Минута,Секунда) Тогда
       Отказ=Истина;
   КонецЕсли;
   
КонецПроцедуры
14 Ork
 
16.12.12
20:47
+ (13) Для удобочитаемости лучше ввести еще одну переменную.
примерно так (после получения всех компонент)

ЭталоннаяДата = Дата(Год,Месяц,День,Час,Минута,Секунда);
//Проверка будет более наглядной
Если ТекущаяДата() < ЭталоннаяДата ИЛИ ТекущаяДата() > ЭталоннаяДата
Тогда
   Отказ=Истина;
КонецЕсли;
15 sr_deadman
 
16.12.12
20:50
просто так час минуту секунду объявлять нельзя это уже было это 4 - ое задание а это пятое надо взять из констант и вставить в програмный код
16 Ork
 
16.12.12
21:00
(15) Еще раз.
Брать нужно из серверного модуля или из констант?
17 sr_deadman
 
16.12.12
21:01
из констант
18 Ork
 
16.12.12
21:02
(16) Если из констант - перенеси текст из серверного мудуля в ПередНачаломРаботыСистемы и не делай людЯм моск.

Год = Год(ТекущаяДата());
Месяц = Месяц(ТекущаяДата());
День = День(ТекущаяДата());
Час = Час(Константы.НачалоРабочегоДня.Получить());
Минута = Минута(Константы.НачалоРабочегоДня.Получить());
Секунда = Секунда(Константы.НачалоРабочегоДня.Получить());

ЭталоннаяДата = Дата(Год,Месяц,День,Час,Минута,Секунда);

Усе.
19 sr_deadman
 
16.12.12
21:06
ок так сделаю спасибо
20 sr_deadman
 
16.12.12
21:10
а из сервера как
21 Ork
 
16.12.12
21:13
(20) Таки базар за управляемое приложение?
22 sr_deadman
 
16.12.12
21:16
Константа берется из общих модулей
23 sr_deadman
 
16.12.12
21:16
---------------------------
Процедура Время(Час,Минута,Секунда) Экспорт
   Час = Час(Константы.НачалоРабочегоДня.Получить());
   Минута = Минута(Константы.НачалоРабочегоДня.Получить());
   Секунда = Секунда(Константы.НачалоРабочегоДня.Получить());
КонецПроцедуры
24 Ork
 
16.12.12
21:17
+ (21) Тогда в том же модуле, где и ПередНачаломРаботыСистемы :

&НаСервере
Функция ПолучитьЭталонныйЧас()
   Возврат Час(Константы.НачалоРабочегоДня.Получить());
КонецуФункции
//тоже самое для получения минут, секунд

В ПередНачаломРаботыСистемы

Час = ПолучитьЭталонныйЧас();
Минута = ...
25 sr_deadman
 
16.12.12
21:17
ОбщийМодульСервер.Время(Час,Минута,Секунда);
26 Ork
 
16.12.12
21:19
(22) Константа не "берется из общих модулей". В общем модуле можно получить ее значение и вернуть куда нужно. Точно также значения констант можно получать и не из общих модулей.
27 sr_deadman
 
16.12.12
21:19
вроде теперь доходит
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс