|
ошибка в процедуре ПриНачалеРаботыСистемы() | ☑ | ||
---|---|---|---|---|
0
dr_t_j
14.01.14
✎
13:32
|
Процедура ПриНачалеРаботыСистемы()
Сообщить("Начало работы"); ДатаПроба = Сертификаты.ДатаКонСерт; РазницаВДнях = (НачалоДня(ДатаПроба) - НачалоДня(ТекущаяДата())) / (60 * 60 * 24); Сообщить(РазницаВДнях); КонецПроцедуры выдает ошибку: {МодульУправляемогоПриложения(3,15)}: Переменная не определена (Сертификаты) ДатаПроба = <<?>>Сертификаты.ДатаКонСерт; (Проверка: Тонкий клиент) Необходимо при запуске 1с проверить сравнить элементы справочника по реквизиту дата с текущей датой и выдать оповещение на элементы с просроченной датой. Как лучше сделать? |
|||
1
H A D G E H O G s
14.01.14
✎
13:34
|
Лучше всего - принять на работу программиста.
|
|||
2
ДенисЧ
14.01.14
✎
13:34
|
НаСервере делай. В тонком клиенте менеджер справочников не работает.
|
|||
3
butterbean
14.01.14
✎
13:35
|
(0) вытащи для начала все нужные элементы запросом
|
|||
4
dr_t_j
14.01.14
✎
13:39
|
Если добавить директиву &НаСервере то ничего не выводит на клиенте. С запросом тоже не получается.
|
|||
5
alxxsssar
14.01.14
✎
13:39
|
а Сертификаты - это у тебя что?
|
|||
6
alxxsssar
14.01.14
✎
13:39
|
может написать Справочники.Сертификаты?
|
|||
7
alxxsssar
14.01.14
✎
13:41
|
и делать ссыль на процедуру на сервере
|
|||
8
dr_t_j
14.01.14
✎
13:41
|
&НаСервере
Функция ЗнчСпр() Возврат Сертификаты.ДатаКонСерт Конецфункции Процедура ПриНачалеРаботыСистемы() Сообщить("Начало работы"); ДатаПроба = ЗнчСпр(); РазницаВДнях = (НачалоДня(ДатаПроба) - НачалоДня(ТекущаяДата())) / (60 * 60 * 24); Сообщить(РазницаВДнях); КонецПроцедуры выдает ошибку {МодульУправляемогоПриложения(7,15)}: Процедура или функция с указанным именем не определена (ЗнчСпр) ДатаПроба = <<?>>ЗнчСпр(); (Проверка: Тонкий клиент) |
|||
9
dr_t_j
14.01.14
✎
13:42
|
Сертификаты - справочник.
|
|||
10
dr_t_j
14.01.14
✎
13:45
|
Все делается из модуля управляемого приложжения
|
|||
11
Fram
14.01.14
✎
13:50
|
подозрительно что не ругается на Сертификаты. глобальная переменная?
|
|||
12
dr_t_j
14.01.14
✎
13:51
|
нет не глобальная.
|
|||
13
Dethmont
14.01.14
✎
13:57
|
Модуль управляемого приложения компилируется исключительно на Клиенте
|
|||
14
Dethmont
14.01.14
✎
14:00
|
(0) Ответ на твою проблему дали в (1)
|
|||
15
dr_t_j
14.01.14
✎
14:01
|
А где тогда получить данные из справочника?
|
|||
16
Dethmont
14.01.14
✎
14:02
|
(15) На сервере
|
|||
17
alxxsssar
14.01.14
✎
14:04
|
Я еще не понял: у тебя в справочнике несколько сертификатов? тогда цикл надо вводить
|
|||
18
dr_t_j
14.01.14
✎
14:05
|
с циклом все понятно. С получением элемента справочника никак не получается :(
|
|||
19
hhhh
14.01.14
✎
14:07
|
(18) ну &НаСервере
Функция ЗнчСпр() загоните в общий модуль |
|||
20
alxxsssar
14.01.14
✎
14:08
|
Вынеси весь расчет в функцию на сервер и оттуда получай только результат в процедуру на клиенте
|
|||
21
dr_t_j
14.01.14
✎
14:17
|
Модуль управляемого приложения:
Процедура ПриНачалеРаботыСистемы() Сообщить("Начало работы"); Сообщить(Спр.ЗнчСпр()); КонецПроцедуры Общий модуль: &НаСервере Функция ЗнчСпр() Экспорт СпрСерт = Справочники.Сертификаты.ПолучитьСсылку(); ДатСпр = СпрСерт.ДатаКонСерт; Возврат ДатСпр Конецфункции {МодульУправляемогоПриложения(4)}: Метод объекта не обнаружен (ЗнчСпр) Сообщить(Спр.ЗнчСпр()); |
|||
22
dr_t_j
14.01.14
✎
14:17
|
выдает вот такую ошибку.
|
|||
23
Dethmont
14.01.14
✎
14:19
|
ИмяОбщегоМодуля.ЗнчСпр() - у ОМ должна быть галочка ВЫЗОВ сервера
|
|||
24
Infsams654
14.01.14
✎
14:28
|
(21) СпрСерт = Справочники.Сертификаты.ПолучитьСсылку();
ДатСпр = СпрСерт.ДатаКонСерт; что Вы этим хотите получить в результате? |
|||
25
dr_t_j
14.01.14
✎
14:34
|
Галочка стоит.
|
|||
26
dr_t_j
14.01.14
✎
14:35
|
Элемент справочника Сертификаты
|
|||
27
dr_t_j
14.01.14
✎
14:36
|
Причем как только не пытался получить этот элемент. все равно выскакивает ошибка.
|
|||
28
Infsams654
14.01.14
✎
14:40
|
(26) какой элемент справочника Сертификаты ? Читай ПолучитьСсылку в СП. Это совершенно из другой оперы, элементы справочника получают по-другому.
|
|||
29
Fish
14.01.14
✎
14:43
|
(27) А СП не пробовал читать?
|
|||
30
dr_t_j
14.01.14
✎
14:44
|
просто приведи рабочий пример
|
|||
31
dr_t_j
14.01.14
✎
14:46
|
СпрСерт = Справочники.Сертификаты.Выбрать();
ДатСпр = СпрСерт.ДатаКонСерт; |
|||
32
dr_t_j
14.01.14
✎
14:46
|
выдало ошибку:
{МодульУправляемогоПриложения(4)}: Метод объекта не обнаружен (ЗнчСпр) Сообщить(Спр.ЗнчСпр()); |
|||
33
Fish
14.01.14
✎
14:58
|
(31) Загляни всё-таки в СП и подумай немного.
|
|||
34
Fish
14.01.14
✎
14:59
|
+(33) Там, кстати, и примеры есть.
|
|||
35
evorle145
14.01.14
✎
15:01
|
(32), зачем в модуле управляемого приложения пишешь &НаСервере ?
|
|||
36
dr_t_j
14.01.14
✎
15:03
|
Потому что уже не знаю что и делать
|
|||
37
vicof
14.01.14
✎
15:03
|
(36) Читаем внимательно книжки от Радченко и Со. Профразработка само то.
|
|||
38
dr_t_j
14.01.14
✎
15:04
|
Игорь намекни как это сделать. А то уже что то совсем идей нету
|
|||
39
evorle145
14.01.14
✎
15:04
|
(36), но ведь (13) же вам сказал, что "Модуль управляемого приложения компилируется исключительно на Клиенте", а это значит что там не может быть &НаСервере...
|
|||
40
dr_t_j
14.01.14
✎
15:07
|
да вынес я уже все в общий модуль
|
|||
41
Fish
14.01.14
✎
15:07
|
(38) Намекаю: пересилить себя, всё-таки открыть любую книгу для разработчика или СП и подумать. Если понять написанное не удаётся, то см. пост (1). А методом тыка ты программировать не научишься.
|
|||
42
evorle145
14.01.14
✎
15:08
|
(40), Экспорт не забыл написать у свой функции?
|
|||
43
dr_t_j
14.01.14
✎
15:10
|
нет не забыл. стоят галки нужные.
|
|||
44
alxxsssar
14.01.14
✎
15:12
|
(43) и какой теперь текст?
|
|||
45
dr_t_j
14.01.14
✎
15:17
|
&НаСервере
Функция ЗнчСпр() Экспорт СпрСерт = Справочники.Сертификаты.Выбрать(); ДатСпр = СпрСерт.ДатаКонСерт; Возврат ДатСпр Конецфункции |
|||
46
zladenuw
14.01.14
✎
15:17
|
(0) я бы добавил обработку и при открытие ее делал то что тебе нужно. а не эти танцы с бубном. так как при создание обработки идет вызов сервера где ты можешь обработать все что нужно и открыть в форме ну или просто заполнить сообщение пользователю и вызвать метод сообщить
|
|||
47
zladenuw
14.01.14
✎
15:17
|
(45) мда....
|
|||
48
Fish
14.01.14
✎
15:19
|
(45) Ответь на вопрос: что возвращает метод Справочники.Сертификаты.Выбрать();?
|
|||
49
evorle145
14.01.14
✎
15:20
|
(45), в коде ошибка. В СП написано, что надо так делать?
Выборка = Номенклатура.Выбрать(,,Отбор, "Наименование Убыв"); Пока Выборка.Следующий() Цикл ... |
|||
50
alxxsssar
14.01.14
✎
15:21
|
(45) пля, как цикл в восьмерке сделать не знаем? кроме того что Выбрать() надо пока элемент следующий() юзать
|
|||
51
evorle145
14.01.14
✎
15:24
|
(50), да знает наверное, просто волнуется =)
|
|||
52
dr_t_j
14.01.14
✎
15:25
|
Даст ссылку на справочник. След. команда выберет элемент справочника. Следущий() признак наличия указатель на следующий элемент справочника.
|
|||
53
Fish
14.01.14
✎
15:26
|
(52) "Даст ссылку на справочник" - это ты сам придумал, или прочитал где?
|
|||
54
dr_t_j
14.01.14
✎
15:27
|
И вообще я новичок в 1с
|
|||
55
dr_t_j
14.01.14
✎
15:27
|
сам придумал:)
|
|||
56
Fish
14.01.14
✎
15:27
|
Процитирую:
СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>) Выбрать (Select) Синтаксис: Выбрать(<Родитель>, <Владелец>, <Отбор>, <Порядок>) ... ... Возвращаемое значение: Тип: СправочникВыборка. Описание: Формирует выборку элементов справочника по заданным условиям. Доступность: Сервер, толстый клиент, внешнее соединение. А дальше сам смотри в СП. |
|||
57
acsent
14.01.14
✎
15:28
|
Завязывай с 1с лучше
|
|||
58
Fish
14.01.14
✎
15:28
|
(54) Тогда стоит для начала почитать умные книжки.
|
|||
59
zladenuw
14.01.14
✎
15:29
|
делаешь запрос
ЗАпрос = новый Запрос("ВЫБРАТЬ Сертификаты.Ссылка ИЗ Справочник.Сертификаты КАК Сертификаты ГДЕ НАЧАЛОПЕРИОДА(Сертификаты.ДатаКонСерт,ДЕНЬ)<&ТекДата Запрос.установитьПараметр("ТекДата",НачалоДня(ТекущаяДата()); Выборка = Запрос.выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить("Просрочено - "+ Выборка.Ссылка); КонецЦикла; |
|||
60
evorle145
14.01.14
✎
15:29
|
(57), почему ему лучше завязывать с 1с? Обоснуй. Или это твое личное субъективное мнение? если так, то где ИМХО?
|
|||
61
dr_t_j
14.01.14
✎
15:30
|
спасибо сейчас попробую
|
|||
62
zladenuw
14.01.14
✎
15:36
|
(61) и не надо сообщение. можно этот запрос запихнуть в динамический список и если есть данные открываешь обработку пользователю. с заполнен дз. где есть список просроченных.
|
|||
63
dr_t_j
14.01.14
✎
15:39
|
Спасибо Кирилл
|
|||
64
rinatru
14.01.14
✎
15:49
|
эх.. .мне бы твои проблемы...
|
|||
65
dr_t_j
15.01.14
✎
12:46
|
&НаСервере
Процедура Сервозвр() Экспорт Выборка = Справочники.Спр.Выбрать(); Пока Выборка.Следующий() Цикл Справ = Выборка.ПолучитьОбъект(); Если ТекущаяДата() >= Справ.Дан Тогда Сообщить ("Сертификат " + Справ.Наименование + " просрочен"); КонецЕсли; КонецЦикла; КонецПроцедуры &НаКлиенте Процедура Команда1() Сервозвр(); КонецПроцедуры |
|||
66
dr_t_j
15.01.14
✎
12:47
|
как теперь заставить в модуле управляемого приложения работать?
|
|||
67
GROOVY
15.01.14
✎
12:53
|
(65) Объект получать не надо.
|
|||
68
dr_t_j
15.01.14
✎
12:55
|
не получается выдает ошибку
|
|||
69
GROOVY
15.01.14
✎
12:57
|
(68) Что не получается? Какую ошибку выдает?
|
|||
70
dr_t_j
15.01.14
✎
13:00
|
Процедура ПриНачалеРаботыСистемы()
Выборка = Справочники.Спр.Выбрать(); Пока Выборка.Следующий() Цикл Если ТекущаяДата() >= Выборка.Дан Тогда Сообщить ("Сертификат " + Выборка.Наименование + " просрочен"); КонецЕсли; КонецЦикла; КонецПроцедуры выдает ошибку: {МодульУправляемогоПриложения(3,11)}: Переменная не определена (Справочники) Выборка = <<?>>Справочники.Спр.Выбрать(); (Проверка: Тонкий клиент) {МодульУправляемогоПриложения(3,11)}: Переменная не определена (Справочники) Выборка = <<?>>Справочники.Спр.Выбрать(); (Проверка: Тонкий клиент) |
|||
71
GROOVY
15.01.14
✎
13:03
|
Тебе же сказали, менеджер справочников недоступен на клиенте. Перенеси все в общий модуль.
|
|||
72
dr_t_j
15.01.14
✎
13:07
|
все равно выскакивает ошибка
|
|||
73
Kupogun
15.01.14
✎
13:08
|
(72) НаСервере? какая?
|
|||
74
dr_t_j
15.01.14
✎
13:09
|
{ОбщийМодуль.ОбщийМодуль1.Модуль(2,11)}: Переменная не определена (Справочники)
Выборка = <<?>>Справочники.Спр.Выбрать(); (Проверка: Тонкий клиент) |
|||
75
dr_t_j
15.01.14
✎
13:10
|
стоят галки сервер клиент и вызов сервера на общем модуле
|
|||
76
dr_t_j
15.01.14
✎
13:11
|
Ура заработало!!!!!!!!!!!! убрал галку клиент!!!
|
|||
77
dr_t_j
15.01.14
✎
13:11
|
Процедура Сервозвр() Экспорт
Выборка = Справочники.Спр.Выбрать(); Пока Выборка.Следующий() Цикл Справ = Выборка.ПолучитьОбъект(); Если ТекущаяДата() >= Справ.Дан Тогда Сообщить ("Сертификат " + Справ.Наименование + " просрочен"); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
78
GROOVY
15.01.14
✎
13:14
|
Общий модуль. Имя общего модуля "ОбщийМодуль1". Установлены галки "Вызов сервера", "Сервер". Галка "Глобальный" НЕ установлена. Другие галки также не установлены.
Функция ПолучитьПросроченныеСертификаты(Дата) Экспорт Запрос = Новый Запрос("ВЫБРАТЬ Наименование ИЗ Справочник.Спр ГДЕ Дан < &Дата"); Запрос.Установитьпараметр("Дата", Дата); Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда Возврат Неопределено; КонецЕсли; Массив = Результат.Выгрузить().ВыгрузитьКолонку("Наименование"); Возврат Массив; Модуль управляемого приложения Процедура ПриНачалеРаботыСистемы() ПросроченныеСертификаты = ОбщийМодуль1.ПолучитьПросроченныеСертификаты(ТекущаяДата()); Если ПросроченныеСертификаты <> Неопределено Тогда Для каждого Элем ИЗ ПросроченныеСертификаты Цикл Сообщить(Элем); КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
79
dr_t_j
15.01.14
✎
13:26
|
крут
|
|||
80
dr_t_j
15.01.14
✎
13:26
|
спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |