Вызов диалоговой формы

1. K1RSAN 07.06.17 09:55 Сейчас в теме
Изучаю 1С, в тестовой конфигурации изучаю различные возможности.
Ситуация такая: в фирме каждый день для доставки заказов формируется бригада и привязывается к машине. Бригада состоит из 1 водителя и 2 грузчиков. В обычной ситуации нет необходимости назначить грузчика водителем (например), потому надо провести проверку соответствия должности человека, заступившего в бригаду, и его должности в бригаде (простой отбор по реквизиту справочника в форме не подходит, потому что учитывается ситуация, что водителей нет и придется назначить человека с другой ролью на эту должность).

Идея такова: проверить всех работников на соответствие должности и роли в бригаде, если есть несоответствия - спросить пользователя, согласен ли он с такой ситуацией (в сообщении указывается кто не соответствует, его роль в бригаде, его должность в справочнике). Если пользователь согласен - документ проводится. Если не согласен - документ не проводится.

Изначально сделал подобную проверку в форме в качестве события формы ПередЗаписью (с некоторыми костылями), но задумался над тем, что:
1. если документ будет записан по какой-то причине уже записан - при проведении не будет этой проверки.
2. часто пользователь может сначала сохранить документ, потом провести, а при проведении он заново сохраняется в стандартном режиме - 2 раза будет выскакивать сообщение (надоедливо).

!!!С этой целью я задумался над тем, как реализовать вызов этого диалогового сообщения в модуле объекта в процедуре проведения.!!!

Конечно, есть запасной вариант:
1. оставить как есть, заменить кнопку проведения на собственную (натыкался на подобную тему) и сделать так, чтобы при проведении проверялся факт, что документ уже сохранен и тогда проверка не проводится при проведении документа
2. поставить тупо реквизит в форме типа "логический", например, "Назначение в бригаду без проверки должности". И тогда, если галка стоит - проверка не проводится, назначается, как угодно. Если галка не стоит - не выводится никакое сообщение, просто если не соответствует должность - не дает провести.

Но хотелось бы посмотреть именно с этой стороны (вызов диалога из модуля объекта)
По теме из базы знаний
Найденные решения
4. herfis 499 07.06.17 10:32 Сейчас в теме
Слава богу, что в тонком клиенте модуль объекта компилируется только на сервере и вызвать там диалог нет физической возможности.
1) пакетное перепроведение не должно задавать никаких вопросов
2) ПередЗаписью() - это правильное решение. Причем это должно быть ПередЗаписью() именно в форме. И там есть все возможности проверить, сохранен ли уже был документ, проведен ли и в каком режиме записывается сейчас.
alex-l19041; K1RSAN; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Boneman 298 07.06.17 10:22 Сейчас в теме
(1)
посмотреть именно с этой стороны (вызов диалога из модуля объекта)

ни в коем случае !!! Все интерактивные вещи делаться должны на клиенте в модуле формы.
Модуль объекта, для интимных, скрытых от пользователя вещей, так сказать, для низкоуровневой работы. Там сугубо должно отрабатывать, только то, что уже находится в реквизитах объекта.
2. pm74 199 07.06.17 10:06 Сейчас в теме
имхо вариант 2 вполне логичный. Если не хотите добавлять лишний реквизит, делайте проверку перед записью по условию Параметры.Ключ.Пустая тогда будет проверять только первый раз сорри невнимательно прочитал
K1RSAN; alex-l19041; +2 Ответить
4. herfis 499 07.06.17 10:32 Сейчас в теме
Слава богу, что в тонком клиенте модуль объекта компилируется только на сервере и вызвать там диалог нет физической возможности.
1) пакетное перепроведение не должно задавать никаких вопросов
2) ПередЗаписью() - это правильное решение. Причем это должно быть ПередЗаписью() именно в форме. И там есть все возможности проверить, сохранен ли уже был документ, проведен ли и в каком режиме записывается сейчас.
alex-l19041; K1RSAN; +2 Ответить
5. K1RSAN 07.06.17 11:00 Сейчас в теме
Спасибо большое за ответы. По поводу проверки сохранения и проведения поищу информацию
6. herfis 499 07.06.17 11:39 Сейчас в теме
Да все просто. Информация о том, проводится документ или просто сохраняется, присутствует прямо в параметрах обработчика ПередЗаписью().
Проверить, новый это документ или нет - Параметры.Ключ для УФ и Ссылка для ОФ.
Если документ уже проведен, у него будет установлено свойство "Проведен".
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот