|   |   | 
| 
 | Помогите с процедурой | ☑ | ||
|---|---|---|---|---|
| 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) Я понял ! Спасибо, буду пробовать.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |