![]() |
![]() |
|
| ||
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) Я понял ! Спасибо, буду пробовать. |
|
Список тем форума |
Правила | Описание | Реклама на форуме | Волшебные решения | Поиск | Секции | Рейтинг | Книга знаний | Вики-миста (КЗ2) | Мобильная | Архив | Модераторы | Галерея | Регистрация | 18+ |