Имя: Пароль:
1C
 
Удалить документ механически
,
0 НатГолубева777
 
09.12.20
15:28
Подскажите, пожалуйста, как сделать чтобы на моменте строки кода "ЭтотОбъект.Удалить();" не выдавало ошибку?

Вот код:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    //{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    РезервированиеТоваровСЯчеек.Заказ.Ссылка
    |ИЗ
    |    Документ.РезервированиеТоваровСЯчеек КАК РезервированиеТоваровСЯчеек
    |ГДЕ
    |    РезервированиеТоваровСЯчеек.Заказ.Ссылка = &Заказ";
    Запрос.УстановитьПараметр("Заказ", ДанныеЗаполнения.Ссылка);
    РезультатЗапроса = Запрос.Выполнить();
        Если РезультатЗапроса.Пустой() Тогда     

            Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
                // Заполнение шапки
                Комментарий = ДанныеЗаполнения.Комментарий;
                Контрагент = ДанныеЗаполнения.Контрагент;
                НомерЗаказа = ДанныеЗаполнения.Номер;
                Заказ = ДанныеЗаполнения.Ссылка;
                Для Каждого ТекСтрокаТовары Из ДанныеЗаполнения.Товары Цикл
                    НоваяСтрока = ТоварыПоЗаказу.Добавить();
                    НоваяСтрока.ЕдИзм = ТекСтрокаТовары.ЕдиницаИзмерения;
                    НоваяСтрока.Количество = ТекСтрокаТовары.Количество;
                    НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура;
                    НоваяСтрока.Скидка = ТекСтрокаТовары.ПроцентСкидкиНаценки;
                    НоваяСтрока.Сумма = ТекСтрокаТовары.Сумма;
                    НоваяСтрока.Характеристика = ТекСтрокаТовары.ХарактеристикаНоменклатуры;
                    НоваяСтрока.Цена = ТекСтрокаТовары.Цена;
        //            НоваяСтрока.Ячейка = ТекСтрокаТовары.Ячейка;
                КонецЦикла;
            КонецЕсли;
        Иначе    Предупреждение ("На основании этого заказа уже был создан документ *Резервирование товаров по ячейкам*!");
            
            ЭтотОбъект.Удалить();
        КонецЕсли;    
    //}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
1 Fragster
 
гуру
09.12.20
15:30
ВызватьИсключение
2 Злопчинский
 
09.12.20
15:30
(0) обернуть в исключение, в обработке исключения ошибку не выдавать. ПРОФИТ!
3 ДенисЧ
 
09.12.20
15:32
Ммм.... В обработке заполнения ЭтотОбъект.Удалить() ???
Это что, как Мюнхгаузен, только наоборот?
4 Fragster
 
гуру
09.12.20
15:33
5 Злопчинский
 
09.12.20
15:33
(3) не! вытащить себя - это проблематично, а вот утопиться - это нараз!
6 Fragster
 
гуру
09.12.20
15:33
но вообще название темы доставляет, да :)
7 Fragster
 
гуру
09.12.20
15:34
8 dmpl
 
09.12.20
15:38
(0) Во-первых, если документ создавать не надо - это делается через Отказ при создании документа. Во-вторых, такой запрет - это костыли. А если в первом документе не все зарезервировали по заказу? Ну не все пришло, например. Что, давать доступ на неоперативное проведение и править старый документ? А он проведется старой датой?
9 НатГолубева777
 
09.12.20
15:45
СПАСИБО...  вызвала исключение...
10 polosov
 
09.12.20
16:06
Вам смешно, а кто-то за такое деньги платит.
11 Гений 1С
 
гуру
09.12.20
16:16
обменданными.загрузка = истина? не
12 youalex
 
09.12.20
16:22
(11) не
13 Serg_1960
 
09.12.20
16:27
Что автор собирается удалять, если объект ещё не записан в базу?

Если Не ЭтотОбъект.ЭтоНовый() Тогда
   ЭтотОбъект.Удалить();
КонецЕсли:
14 trad
 
09.12.20
16:28
(9) можно еще так сделать
//ЭтотОбъект.Удалить();
15 Serg_1960
 
09.12.20
16:34
(14) Не корректно если обработчик был вызван через ЭтотОбъект.Заполнить()
PS: имхо, хотелки у автора странные.
16 Fragster
 
гуру
09.12.20
16:36
(15) нормальные хотелки, проблема с формулировкой. вон, даже в стандартах разработки есть, см. (4)
17 Serg_1960
 
09.12.20
16:39
(16) Я про саму попытку удаления, а не про вызов исключения.
18 Джинн
 
09.12.20
17:29
Механически - это поверхность жесткого диска наждачной бумагой снять.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.