Изучаю 1С, в тестовой конфигурации изучаю различные возможности.
Ситуация такая: в фирме каждый день для доставки заказов формируется бригада и привязывается к машине. Бригада состоит из 1 водителя и 2 грузчиков. В обычной ситуации нет необходимости назначить грузчика водителем (например), потому надо провести проверку соответствия должности человека, заступившего в бригаду, и его должности в бригаде (простой отбор по реквизиту справочника в форме не подходит, потому что учитывается ситуация, что водителей нет и придется назначить человека с другой ролью на эту должность).
Идея такова: проверить всех работников на соответствие должности и роли в бригаде, если есть несоответствия - спросить пользователя, согласен ли он с такой ситуацией (в сообщении указывается кто не соответствует, его роль в бригаде, его должность в справочнике). Если пользователь согласен - документ проводится. Если не согласен - документ не проводится.
Изначально сделал подобную проверку в форме в качестве события формы ПередЗаписью (с некоторыми костылями), но задумался над тем, что:
1. если документ будет записан по какой-то причине уже записан - при проведении не будет этой проверки.
2. часто пользователь может сначала сохранить документ, потом провести, а при проведении он заново сохраняется в стандартном режиме - 2 раза будет выскакивать сообщение (надоедливо).
!!!С этой целью я задумался над тем, как реализовать вызов этого диалогового сообщения в модуле объекта в процедуре проведения.!!!
Конечно, есть запасной вариант:
1. оставить как есть, заменить кнопку проведения на собственную (натыкался на подобную тему) и сделать так, чтобы при проведении проверялся факт, что документ уже сохранен и тогда проверка не проводится при проведении документа
2. поставить тупо реквизит в форме типа "логический", например, "Назначение в бригаду без проверки должности". И тогда, если галка стоит - проверка не проводится, назначается, как угодно. Если галка не стоит - не выводится никакое сообщение, просто если не соответствует должность - не дает провести.
Но хотелось бы посмотреть именно с этой стороны (вызов диалога из модуля объекта)
Ситуация такая: в фирме каждый день для доставки заказов формируется бригада и привязывается к машине. Бригада состоит из 1 водителя и 2 грузчиков. В обычной ситуации нет необходимости назначить грузчика водителем (например), потому надо провести проверку соответствия должности человека, заступившего в бригаду, и его должности в бригаде (простой отбор по реквизиту справочника в форме не подходит, потому что учитывается ситуация, что водителей нет и придется назначить человека с другой ролью на эту должность).
Идея такова: проверить всех работников на соответствие должности и роли в бригаде, если есть несоответствия - спросить пользователя, согласен ли он с такой ситуацией (в сообщении указывается кто не соответствует, его роль в бригаде, его должность в справочнике). Если пользователь согласен - документ проводится. Если не согласен - документ не проводится.
Изначально сделал подобную проверку в форме в качестве события формы ПередЗаписью (с некоторыми костылями), но задумался над тем, что:
1. если документ будет записан по какой-то причине уже записан - при проведении не будет этой проверки.
2. часто пользователь может сначала сохранить документ, потом провести, а при проведении он заново сохраняется в стандартном режиме - 2 раза будет выскакивать сообщение (надоедливо).
!!!С этой целью я задумался над тем, как реализовать вызов этого диалогового сообщения в модуле объекта в процедуре проведения.!!!
Конечно, есть запасной вариант:
1. оставить как есть, заменить кнопку проведения на собственную (натыкался на подобную тему) и сделать так, чтобы при проведении проверялся факт, что документ уже сохранен и тогда проверка не проводится при проведении документа
2. поставить тупо реквизит в форме типа "логический", например, "Назначение в бригаду без проверки должности". И тогда, если галка стоит - проверка не проводится, назначается, как угодно. Если галка не стоит - не выводится никакое сообщение, просто если не соответствует должность - не дает провести.
Но хотелось бы посмотреть именно с этой стороны (вызов диалога из модуля объекта)
По теме из базы знаний
- Модули платформы 1С: Предприятие 8.2
- Некоторые ошибки и «проблемные» особенности реализации встроенного языка платформы 1С:Предприятие 7.7
- Расширения конфигурации. Нюансы поведения
- Вызов n-го количества немодальных окон из одной процедуры и передача параметров в процедуру печати
- Интеграции с маркетплейсами из одного окна: Озон, ВБ, Яндекс, Сбер, Али, ЛаМода для 1С:УНФ, УТ, КА, ERP
Найденные решения
Слава богу, что в тонком клиенте модуль объекта компилируется только на сервере и вызвать там диалог нет физической возможности.
1) пакетное перепроведение не должно задавать никаких вопросов
2) ПередЗаписью() - это правильное решение. Причем это должно быть ПередЗаписью() именно в форме. И там есть все возможности проверить, сохранен ли уже был документ, проведен ли и в каком режиме записывается сейчас.
1) пакетное перепроведение не должно задавать никаких вопросов
2) ПередЗаписью() - это правильное решение. Причем это должно быть ПередЗаписью() именно в форме. И там есть все возможности проверить, сохранен ли уже был документ, проведен ли и в каком режиме записывается сейчас.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
ни в коем случае !!! Все интерактивные вещи делаться должны на клиенте в модуле формы.
Модуль объекта, для интимных, скрытых от пользователя вещей, так сказать, для низкоуровневой работы. Там сугубо должно отрабатывать, только то, что уже находится в реквизитах объекта.
посмотреть именно с этой стороны (вызов диалога из модуля объекта)
ни в коем случае !!! Все интерактивные вещи делаться должны на клиенте в модуле формы.
Модуль объекта, для интимных, скрытых от пользователя вещей, так сказать, для низкоуровневой работы. Там сугубо должно отрабатывать, только то, что уже находится в реквизитах объекта.
имхо вариант 2 вполне логичный. Если не хотите добавлять лишний реквизит, делайте проверку перед записью по условию Параметры.Ключ.Пустая тогда будет проверять только первый раз сорри невнимательно прочитал
Слава богу, что в тонком клиенте модуль объекта компилируется только на сервере и вызвать там диалог нет физической возможности.
1) пакетное перепроведение не должно задавать никаких вопросов
2) ПередЗаписью() - это правильное решение. Причем это должно быть ПередЗаписью() именно в форме. И там есть все возможности проверить, сохранен ли уже был документ, проведен ли и в каком режиме записывается сейчас.
1) пакетное перепроведение не должно задавать никаких вопросов
2) ПередЗаписью() - это правильное решение. Причем это должно быть ПередЗаписью() именно в форме. И там есть все возможности проверить, сохранен ли уже был документ, проведен ли и в каком режиме записывается сейчас.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот