|
ПередУдалением или ПослеУдаления Регистр сведений |
☑ |
0
shira84
20.11.13
✎
15:48
|
Непериодические независимые регистры сведений "Тарифы" и "СоставТарифа". При удалении первого необходимо найти и удалить записи из второго за тотже период. Обработчик ПередУдалением? Вызывает диалог да/нет и не факт, что пользователь не ответит нет. ПослеУдаления? Запись уже удалена и период неоткуда вытащить. Как еще?
|
|
1
shira84
20.11.13
✎
15:49
|
Периодические. Извиняюсь
|
|
2
shira84
20.11.13
✎
15:50
|
Как-то можно заткнуть Диалог вопроса?
|
|
3
Ненавижу 1С
гуру
20.11.13
✎
15:51
|
мое имхо: состав тарифа должен быть таб. частью справочника тарифы, на который ссылается РС
|
|
4
shira84
20.11.13
✎
15:54
|
Тариф не справочник, он РС. В нем уже хранятся значения этих самых тарифов.
|
|
5
shira84
20.11.13
✎
15:58
|
А точно в обработчике ПослеУдаления запись уже удалена? Прогонял в отладчике Элемент.ТекущиеДанные.Период он уже не видит удаляемую строку, но в предприятиии она все еще виднеется до конца процедуры.
|
|
6
hhhh
20.11.13
✎
16:01
|
(5) используйте не события формы, а события регистра
|
|
7
shira84
20.11.13
✎
16:12
|
Процедура СписокИсторияПередУдалением(Элемент, Отказ)
Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Вопрос("Удалить тариф и все его составляющие?", Режим, 0);
Если Ответ = КодВозвратаДиалога.Нет Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
НаборСостав = РегистрыСведений.АЮ_СоставляющиеТарифа.СоздатьНаборЗаписей();
НаборСостав.Отбор.Период.Установить(Элемент.ТекущиеДанные.Период);
НаборСостав.Отбор.Тариф.Установить(Ссылка);
НаборСостав.Очистить();
НаборСостав.Записать(Истина);
НаборТариф = РегистрыСведений.Тарифы.СоздатьНаборЗаписей();
НаборТариф.Отбор.Период.Установить(Элемент.ТекущиеДанные.Период);
НаборТариф.Отбор.Тариф.Установить(Ссылка);
НаборТариф.Очистить();
НаборТариф.Записать(Истина);
Отказ = Истина;
КонецПроцедуры
Всем спасибо. Вот так вот заткнул стандартный диалог.
|
|
8
shira84
20.11.13
✎
16:14
|
Т.е перед удалением задал вопрос и удалил программно оба регистра, отклоняя стандартную обработку удаления. не ахти конечно, но хоть так.
|
|
9
Ненавижу 1С
гуру
20.11.13
✎
16:41
|
Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Вопрос("Удалить тариф и все его составляющие?", Режим, 0);
Если Ответ = КодВозвратаДиалога.Нет Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
что будет когда нажмут Esc?
|
|
10
Defender aka LINN
20.11.13
✎
16:51
|
(9) Будет сюрприз :)
|
|