Вход | Регистрация
 

Помогите с процедурой

Помогите с процедурой
Я
   V1rus93
 
02.07.19 - 19:08
Как из глобального модуля вызвать процедуру которая находится в форме документа? В Процедуре "ПриНачалеРаботыСистемы" хочу вызвать процедуру в которой находится запрос на проверку документа. Надо чтобы при запуске интерфейса программа проверяла существует ли документ через процедуру в форме документа
 
 
   MyNick
 
1 - 02.07.19 - 19:18
Задача то как изначально звучит?
   Фрэнки
 
2 - 02.07.19 - 19:22
а вообще, это процедура экспортная в модуле менеджера объекта. Там наваять все, что необходимо в контексте серверных вызовов.

В форме документа - не комильфо
   V1rus93
 
3 - 02.07.19 - 19:29
(1) Есть документ "ТабельСмены" (форма документа, форма списка). При запуске "ИнтерфейсаКассира" выводится "ТабельСмены" форма документа, чтобы кассир зарегистрировался в системе. В "ТабелеСмены" форме списка создается документ с реквизитим "Сотрудник" "Должность" "Оклад" "Склад" "Дата". Я сделал запрос и поставил запрет на дублирование по дате и складу в "ТабелеСмены". Если "ИнтерфейсКассира" запускается первый раз, то кассир просто регистрируется и работает. Вдруг что-то случается и например свет выключается. Снова включается система и вот надо чтобы система проверила если документ "ТабельСмены" уже сегодня был регистрирован подтянуть этот документ в "ИнтерфейсКассира" в заголовок
   V1rus93
 
4 - 02.07.19 - 19:30
(2) Да я знаю, что лучше в модуле самого документа, но мне это не удобно. Поэтому и спрашиваю, как поступить в этом случае
   Фрэнки
 
5 - 02.07.19 - 19:33
(4) Не. Не в модуле документа. В модуле менеджера. Это очень удобно.
Почему у тебя такое предубеждение к модулю менеджера?
   Фрэнки
 
6 - 02.07.19 - 19:34
(4) Ты же понимаешь, что воспользоваться процедурой из модуля формы получится не раньше, чем при создании этой формы на сервере?
   V1rus93
 
7 - 02.07.19 - 19:38
(6) Я пока начинающий в 1с и ещё не знаю всех тонкостей. Был бы рад помощи. Вот код процедуры.

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Экспорт    
    Запрос = Новый Запрос;
    Запрос.Текст =     
    "ВЫБРАТЬ
    |    ТабельСмены.Дата,
    |    ТабельСмены.Склад
    |ИЗ
    |    Документ.ТабельСмены КАК ТабельСмены
    |ГДЕ
    |    ТабельСмены.Дата МЕЖДУ &НачалоДня И &КонецДня
    |    И ТабельСмены.Склад = &Склад";
    Запрос.УстановитьПараметр("НачалоДня", НачалоДня(Дата));
    Запрос.УстановитьПараметр("КонецДня", КонецДня(Дата));       
    //Запрос.УстановитьПараметр("Сотрудник", Сотрудник); 

    Запрос.УстановитьПараметр("Склад", Склад);
    Результат = Запрос.Выполнить();        
    
    Если Не Результат.Пустой() Тогда
        Отказ = Истина;
        //ЭтаФорма.Модифицированность=Ложь;

        //ЭтаФорма.Закрыть();

    ИначеЕсли Результат.Пустой() Тогда
        Документы.ТабельСмены.СоздатьДокумент()
    КонецЕсли;

КонецПроцедуры
   Фрэнки
 
8 - 02.07.19 - 19:38
(3) угу. Именно сервисные процедуры и функции проверок с запросиками - это именно то, что должно быть именно в модуле менеджера, который доступен в контексте сам по себе и без вызова процедуры Новый() или ПолучитьФорму() Открыть() и т.д. и т.п.
   V1rus93
 
9 - 02.07.19 - 19:39
(8) А как правильно её разместить в модуле менеджера? А то уже ругается на все переменные ((
   Фрэнки
 
10 - 02.07.19 - 19:51
Все переменные извне надо параметрами инициализировать...

Возврат ДокументОбъект

Там где стоит Отказ = Истина , там должен быть Возврат , который ПолучитьОбъект из ссылки выборки запроса.

Но вообще... ПриНачалеРаботыСистемы по итогу должна на своем завершении в любом случае открыть форму ИнтерфейсаКассира

И можно там же в той форме написать любой количество процедур, но сделать их контекстах Сервера и Клиента
   V1rus93
 
11 - 02.07.19 - 19:53
(10) Я понял ! Спасибо, буду пробовать.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.