|
Помогите с процедурой | ☑ | ||
---|---|---|---|---|
0
V1rus93
02.07.19
✎
19:08
|
Как из глобального модуля вызвать процедуру которая находится в форме документа? В Процедуре "ПриНачалеРаботыСистемы" хочу вызвать процедуру в которой находится запрос на проверку документа. Надо чтобы при запуске интерфейса программа проверяла существует ли документ через процедуру в форме документа
|
|||
1
MyNick
02.07.19
✎
19:18
|
Задача то как изначально звучит?
|
|||
2
Фрэнки
02.07.19
✎
19:22
|
а вообще, это процедура экспортная в модуле менеджера объекта. Там наваять все, что необходимо в контексте серверных вызовов.
В форме документа - не комильфо |
|||
3
V1rus93
02.07.19
✎
19:29
|
(1) Есть документ "ТабельСмены" (форма документа, форма списка). При запуске "ИнтерфейсаКассира" выводится "ТабельСмены" форма документа, чтобы кассир зарегистрировался в системе. В "ТабелеСмены" форме списка создается документ с реквизитим "Сотрудник" "Должность" "Оклад" "Склад" "Дата". Я сделал запрос и поставил запрет на дублирование по дате и складу в "ТабелеСмены". Если "ИнтерфейсКассира" запускается первый раз, то кассир просто регистрируется и работает. Вдруг что-то случается и например свет выключается. Снова включается система и вот надо чтобы система проверила если документ "ТабельСмены" уже сегодня был регистрирован подтянуть этот документ в "ИнтерфейсКассира" в заголовок
|
|||
4
V1rus93
02.07.19
✎
19:30
|
(2) Да я знаю, что лучше в модуле самого документа, но мне это не удобно. Поэтому и спрашиваю, как поступить в этом случае
|
|||
5
Фрэнки
02.07.19
✎
19:33
|
(4) Не. Не в модуле документа. В модуле менеджера. Это очень удобно.
Почему у тебя такое предубеждение к модулю менеджера? |
|||
6
Фрэнки
02.07.19
✎
19:34
|
(4) Ты же понимаешь, что воспользоваться процедурой из модуля формы получится не раньше, чем при создании этой формы на сервере?
|
|||
7
V1rus93
02.07.19
✎
19:38
|
(6) Я пока начинающий в 1с и ещё не знаю всех тонкостей. Был бы рад помощи. Вот код процедуры.
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТабельСмены.Дата, | ТабельСмены.Склад |ИЗ | Документ.ТабельСмены КАК ТабельСмены |ГДЕ | ТабельСмены.Дата МЕЖДУ &НачалоДня И &КонецДня | И ТабельСмены.Склад = &Склад"; Запрос.УстановитьПараметр("НачалоДня", НачалоДня(Дата)); Запрос.УстановитьПараметр("КонецДня", КонецДня(Дата)); //Запрос.УстановитьПараметр("Сотрудник", Сотрудник); Запрос.УстановитьПараметр("Склад", Склад); Результат = Запрос.Выполнить(); Если Не Результат.Пустой() Тогда Отказ = Истина; //ЭтаФорма.Модифицированность=Ложь; //ЭтаФорма.Закрыть(); ИначеЕсли Результат.Пустой() Тогда Документы.ТабельСмены.СоздатьДокумент() КонецЕсли; КонецПроцедуры |
|||
8
Фрэнки
02.07.19
✎
19:38
|
(3) угу. Именно сервисные процедуры и функции проверок с запросиками - это именно то, что должно быть именно в модуле менеджера, который доступен в контексте сам по себе и без вызова процедуры Новый() или ПолучитьФорму() Открыть() и т.д. и т.п.
|
|||
9
V1rus93
02.07.19
✎
19:39
|
(8) А как правильно её разместить в модуле менеджера? А то уже ругается на все переменные ((
|
|||
10
Фрэнки
02.07.19
✎
19:51
|
Все переменные извне надо параметрами инициализировать...
Возврат ДокументОбъект Там где стоит Отказ = Истина , там должен быть Возврат , который ПолучитьОбъект из ссылки выборки запроса. Но вообще... ПриНачалеРаботыСистемы по итогу должна на своем завершении в любом случае открыть форму ИнтерфейсаКассира И можно там же в той форме написать любой количество процедур, но сделать их контекстах Сервера и Клиента |
|||
11
V1rus93
02.07.19
✎
19:53
|
(10) Я понял ! Спасибо, буду пробовать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |