Имя: Пароль:
1C
1С v8
Как отказаться от записи
0 mr_smit
 
03.05.17
14:00
Здравстуйте, подскажите пожалуйста
Есть код
ДокОС=Документы.ОС_ВводИсторииПереоценки.СоздатьДокумент();
        основн = Справочники.ОсновныеСредства.НайтиПоРеквизиту("ИнвентарныйНомер",тИнвентарныйНомер);
        Если основн = спрОС.ПустаяСсылка() Тогда
        
Как после тогда отсеять документ, отказаться от его записи,а остальные которые подходят под условие записать
спасибо
1 PuhUfa
 
03.05.17
14:02
(0) А где у тебя тут вообще запись?
2 ptiz
 
03.05.17
14:03
п.1 Научиться ясно мыслить
п.2 Научиться грамотно писать
п.3 Четко сформулировать вопрос
3 Одинесю
 
03.05.17
14:05
Записывать в условии
4 mr_smit
 
03.05.17
14:05
ДокОС=Документы.ОС_ВводИсторииПереоценки.СоздатьДокумент();
        основн = Справочники.ОсновныеСредства.НайтиПоРеквизиту("ИнвентарныйНомер",тИнвентарныйНомер);
        Если основн = спрОС.ПустаяСсылка() Тогда
        ДокОС.Записать(;
        Сообщить(тИнвентарныйНомер);
            //Пишем в Excel результат
            Excel.Cells(Row, 19).Value= тИнвентарныйНомер;
            иначе
            если не основн.Наименование = Лев(тНФА,80) тогда
                Сообщить(тИнвентарныйНомер + " наименования не совпадают");
                Сообщить("наименование 1С:    <<" + основн.Наименование + тИнвентарныйНомер + ">>");
                Сообщить("наименование Excel: <<" + Лев(тНФА,80) + ">>");
                //Пишем в Excel результат
                Excel.Cells(Row, 19).Value = " 2 ";
                Excel.SaveAs(ПутьКФайлам);
                
                
            КонецЕсли;
        КонецЕсли;
        
        
        ДокОС.Учреждение =спрУчрж;
        ДокОС.ОС = основн;
ДокОС.Записать(РежимЗаписиДокумента.Запись);
5 mr_smit
 
03.05.17
14:07
После если ДокОс.Записать - не актуален, случайно попал, эксперементировал с отказами
6 Timon1405
 
03.05.17
14:08
//телепатирую
//цикл
Если НЕ основн = спрОС.ПустаяСсылка() Тогда
ПРОДОЛЖИТЬ;
Иначе
//ваш код по захвату мира
КонецЕсли
//конецЦикла
7 Рэйв
 
03.05.17
14:17
(4)Когда смотрю на такой непричесанный код - сразу представляю какой срач у человека в квартире. Грязные носки на кухонном столе, бычки по полу, паутина по углам и прочие прелести.
8 mr_smit
 
03.05.17
14:25
Рейв - Программист может быть, психолог неудачная попытка.
Судить на колокольнях легко, а помочь, куда уж там
9 Гипервизор
 
03.05.17
14:45
(8) Сложно помочь когда вопрос в стиле "когда ты по той что там смотри чтобы не того", а код - просто поток сознания
10 mr_smit
 
03.05.17
14:51
Понимаю, скажите что показать? чтобы понятно было
суть такова
записи сравниваются с номерами в базе. если номер есть, то нужно чтобы было создан документ(он создаётся), а если номер пустой, чтобы он отсеивался и не брался для записи
11 mr_smit
 
03.05.17
14:53
через попытку можно попробовать? или она не для этих целей?
12 catena
 
03.05.17
14:54
Если Условие() тогда
  Док.Записать();
Иначе
Док.НеЗаписывать();
КонецЕсли;
13 ELEA26
 
03.05.17
14:55
(10) ну если условие не выполняется - то и не записывай. Зачем его раньше времени записывать и думать как откатить?

П.С. посижу почитаю еще, может более понятная форма вопроса всплывет.
14 Одинесю
 
03.05.17
14:57
(12) Иначе не нужно ))
15 Timon1405
 
03.05.17
14:57
правила жизни от капитана очевидность.
правило №3:
просыпаясь утром сразу чувствуйте себя хорошо
16 ELEA26
 
03.05.17
14:58
(11)

ДокОС=Документы.ОС_ВводИсторииПереоценки.СоздатьДокумент();
        основн = Справочники.ОсновныеСредства.НайтиПоРеквизиту("ИнвентарныйНомер",тИнвентарныйНомер);
        Если основн = спрОС.ПустаяСсылка() Тогда
        //////////////ненадо////ДокОС.Записать(;
        Сообщить(тИнвентарныйНомер);
            //Пишем в Excel результат

            Excel.Cells(Row, 19).Value= тИнвентарныйНомер;
            иначе
            если не основн.Наименование = Лев(тНФА,80) тогда
                Сообщить(тИнвентарныйНомер + " наименования не совпадают");
                Сообщить("наименование 1С:    <<" + основн.Наименование + тИнвентарныйНомер + ">>");
                Сообщить("наименование Excel: <<" + Лев(тНФА,80) + ">>");
                //Пишем в Excel результат

                Excel.Cells(Row, 19).Value = " 2 ";
                Excel.SaveAs(ПутьКФайлам);
                
                
            КонецЕсли;
Иначе
        
        
        ДокОС.Учреждение =спрУчрж;
        ДокОС.ОС = основн;
ДокОС.Записать(РежимЗаписиДокумента.Запись);
        КонецЕсли;
17 ELEA26
 
03.05.17
15:02
(16) ой, поторопился :) Скопировал в 1С, отформатировал - и еще непонятней стало.
Нехватает "вышестоящего" цикла где ROW инкрементируется.
18 ELEA26
 
03.05.17
15:06
(0) Жавай так. Скажи:
1) что нужно сделать если ОснСредство найдено?
2) что нужно сделать если ОснСредство НЕ найдено?

Сейчас что-то вроде ведения лога в эксель и если ОС найдено - то заполняем, если не найдено - то не заполняем.
А в каком случае не надо записывать?
19 mr_smit
 
03.05.17
15:53
оснсредсво найдено, записать и наоборот.
20 mr_smit
 
03.05.17
15:55
Если основн = спрОС.ПустаяСсылка() Тогда
тогда не нужен этот документ
21 Slypower
 
03.05.17
16:00
(20)
Если основн = спрОС.ПустаяСсылка() Тогда
продолжить();
КонецЕсли;
22 mr_smit
 
03.05.17
16:30
спасибо