Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
27 ноя 2024, 16:05

Оповещение при пометке удаления

Автор Nosferatu112, 25 окт 2024, 12:08

0 Пользователей и 1 гость просматривают эту тему.

Nosferatu112

Всем доброго времени суток, может кто подскажет как можно реализовать такое добро.
У документа материалы есть связанный документ акт, у документа акт есть связанный документ заказ, у заказа есть Реализация и ПКО, нужно при пометке удаления 1го документа вывести диалог Да/нет "Вся цепочка документов будет помечена на удаление. Продолжить?". В случае если есть ПКО выводить "В цепочке присутствует ПКО, обратитесь в бухгалтерию"
Вопрос такой по хорошему код нужно прописать в МодульОбъекта.ПередЗаписью, но там нельзя вывести оповещение, а в форме списка и форме документа не отследить пометку удаления, это вообще решаемо?
Если ПометкаУдаления <> Ссылка.ПометкаУдаления Тогда


Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СвязанныеДокументы.Ссылка КАК Ссылка
|ИЗ
| КритерийОтбора.СвязанныеДокументы КАК СвязанныеДокументы
|ГДЕ
| СвязанныеДокументы.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", Ссылка);

РезультатЗапроса = Запрос.Выполнить();

ВыбАкт = РезультатЗапроса.Выбрать();

Пока ВыбАкт.Следующий() Цикл

Акт = ВыбАкт.Ссылка;


Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СвязанныеДокументы.Ссылка КАК Ссылка
|ИЗ
| КритерийОтбора.СвязанныеДокументы КАК СвязанныеДокументы
|ГДЕ
| СвязанныеДокументы.Ссылка = &Акт";

Запрос.УстановитьПараметр("Акт", Акт);

РезультатЗапроса = Запрос.Выполнить();

ВыбЗаказ = РезультатЗапроса.Выбрать();

Пока ВыбЗаказ.Следующий() Цикл

Заказ = ВыбЗаказ.Ссылка;


Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СвязанныеДокументы.Ссылка КАК Ссылка
|ИЗ
| КритерийОтбора.СвязанныеДокументы КАК СвязанныеДокументы
|ГДЕ
| СвязанныеДокументы.Ссылка = &Заказ";

Запрос.УстановитьПараметр("Заказ", Заказ);

РезультатЗапроса = Запрос.Выполнить();

ВыбРеалПКО = РезультатЗапроса.Выбрать();

Пока ВыбРеалПКО.Следующий() Цикл



КонецЦикла;
КонецЦикла;
КонецЦикла;


КонецЕсли;

Максим75

Nosferatu112, смотрите, а если в модуле объекта вызвать клиентскую процедуру модуля формы?

примерно так:
ДокОбъект = РеквизитФормыВЗначение("Объект");
ДокОбъект.ВывестиОповещениеПользователю();

где ВывестиОповещениеПользователю() - это клиентская процедура модуля формы объекта.

Nosferatu112

Максим75, В модуле объекта не видит такой процедуры или функции (РеквизитФормыВЗначение)

Максим75

Nosferatu112, да, ошибся.
вот такой вариант может быть:
1. Реализовать ПередЗаписью на форме с вопросом.
2. Создать свою кнопку по установке пометки удаления с формы списка и запретить помечать на удаление документ любым другим способом.

кнопкой удаляете, а это уже клиентская часть.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск