|   |   | 
| 
 | Разница в применении Продолжить | ☑ | ||
|---|---|---|---|---|
| 0
    
        NIGHTHUNTER 09.01.22✎ 09:00 | 
        Есть ли разница в применении оператора продолжить в варианте 1 и варианте 2 ?
 Спрашиваю так как, есть мнение. что разница принципиальна. Я же не вижу ее. Вариант 1 Пока Выборка.Следующий() Цикл Если Выборка.Количество > Выборка.КоличествоОстаток Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не хватает товара " + Выборка.НоменклатураПредставление + " в количестве " + (Выборка.Количество - Выборка.КоличествоОстаток); Сообщение.Сообщить(); Отказ = Истина; КонецЕсли; Если Отказ Тогда Продолжить; КонецЕсли; Движение = Движения.ОстаткиНоменклатуры.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Склад = Склад; Движение.Номенклатура = Выборка.Номенклатура; Движение.Количество = Выборка.Количество; КонецЦикла; Вариант 2 Пока Выборка.Следующий() Цикл Если Выборка.Количество > Выборка.КоличествоОстаток Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не хватает товара " + Выборка.НоменклатураПредставление + " в количестве " + (Выборка.Количество - Выборка.КоличествоОстаток); Сообщение.Сообщить(); Отказ = Истина; Продолжить; КонецЕсли; Движение = Движения.ОстаткиНоменклатуры.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Склад = Склад; Движение.Номенклатура = Выборка.Номенклатура; Движение.Количество = Выборка.Количество; КонецЦикла; | |||
| 1
    
        Мимохожий Однако 09.01.22✎ 09:04 | 
        (0) "есть мнение". Чьё мнение?
 В чём цель кода? | |||
| 2
    
        SleepyHead гуру 09.01.22✎ 09:09 | 
        (0) Здесь напрашивается цитата про очень тонкий лед из большого куша, только про троллинг.     | |||
| 3
    
        NIGHTHUNTER 09.01.22✎ 09:14 | 
        (1) Это код из расходной накладной. Старая методика проведения. Цель кода, провестись.
 Я вроде бы, кажется понял разницу. Вариант 1 верный. Так как, там заложен смысл того, что при возведении отказ в истина, не будут формироваться движения. В варианте 2 же. Движения будут формироваться. И из за не там расположенного оператора Продолжить, это будет бессмысленно ! | |||
| 4
    
        aka MIK 09.01.22✎ 09:21 | 
        Разница в том что в первом варианты будет инфа обо всех товарах без остатка, а во втором - только о первом     | |||
| 5
    
        Aleksey 09.01.22✎ 09:35 | 
        (3) Почему бессмысленно? Движение будет по тем позициям которых достаточно для списания
 (4) а не наоборот? В первом варианте как только нарвется на недостачу, то все последующие позиции будут без движения. По сути в первом варианте продолжить равносильно прервать | |||
| 6
    
        Мимохожий Однако 09.01.22✎ 09:48 | 
        (5) Если Отказ=Истина, то движения не будут записаны. Во втором варианте будут формироваться движения, но на финише будет Отказ. И движения не сохранятся. В первом варианте движения вообще не будут формироваться при первом же отказе.
 Я бы сделал 3 вариант. Сначала проверка, а потом запись движений при успехе. | |||
| 7
    
        aka MIK 09.01.22✎ 10:06 | 
        (5) ну да, наоборот     | |||
| 8
    
        Aleksey 09.01.22✎ 10:10 | 
        (5) "Если Отказ=Истина, то движения не будут записаны" - нам отсюда не видно, может будет, может не будет.
 И насчет вариантов, зависит от того что нужно в конечном итоги. У меня в самописке он пишет движения всегда, просто при недостачи делается запись в РС "Недостачи при проведении". Но в моем случае база не для интерактивной работы, а сводная, и если прилетел проведенный документ он должен провести, а с минусами потом на выходных разбираться будем. | |||
| 9
    
        NIGHTHUNTER 09.01.22✎ 14:00 | 
        (5) Так если уже, отказ истина. Зачем эти движения? Документ же уже не проведется. По этому и бессмысленно. 
 Я не знаю тонкости внутренней работы СУБД. Но вроде как этого не нужно делать. Документ и так не проведется. По этому считается что правда за первым вариантом. Вот я и задал вопрос, что бы точнее разобрать его. | |||
| 10
    
        Волшебник модератор 09.01.22✎ 14:06 | 
        Если Отказ Тогда
 Прервать; КонецЕсли; | |||
| 11
    
        RomanYS 09.01.22✎ 14:08 | 
        (10) тогда не узнаешь обо всех ошибках. Только о первой     | |||
| 12
    
        Casey1984 09.01.22✎ 14:28 | 
        Если отказ, то зачем продолжать вообще?     | |||
| 13
    
        RomanYS 09.01.22✎ 14:32 | 
        (12) чтобы узнать все позиции, по которым нехватка остатков.     | |||
| 14
    
        Sserj 09.01.22✎ 14:39 | 
        На самом деле все что тут написали - мелочь.
 А разница КОЛОСАЛЬНАЯ :) Тут как в детской задачке: Пете дали 5 яблок, два он съел. Сколько яблок осталось у Пети. А ответа правильного тут нет - не определено сколько было у Пети яблок изначально. Так вот и в этом примере, НЕИЗВЕСТНО состояние Отказа на момент начала цикла. А так же что будет с этим Отказом после цикла. | |||
| 15
    
        Сергиус 09.01.22✎ 14:39 | 
        (0)Разница видится только в том, что для 1-го случая проверка на Отказ происходит всегда при проходе цикла, а во 2-м только когда Кол-во из документа больше остатка.     | |||
| 16
    
        Сергиус 09.01.22✎ 14:41 | 
        +(15) а как правильно заметили в (14) Отказ может быть выставлен в Истина и до цикла.     | |||
| 17
    
        Casey1984 09.01.22✎ 14:43 | 
        (0) Весь код надо.     | |||
| 18
    
        NIGHTHUNTER 10.01.22✎ 03:50 | 
        (11) Это верно!!! По этому Продолжить!     | |||
| 19
    
        NIGHTHUNTER 10.01.22✎ 03:51 | 
        (17) Да выше там запрос, и его выполнение. Вот, выборка - выполненный запрос и идет .     | |||
| 20
    
        NIGHTHUNTER 10.01.22✎ 03:55 | 
        (15) Да, около того. И что во втором, будут делаться движения, количество которых не вызывает нехватку.
 И проблема в том, что раз, сработал отказ, то не нужно делать уже движения. Это оптимальное выполнение. А лепить движения, когда они нужны неправильно же. Если их 900 ? | |||
| 21
    
        NIGHTHUNTER 10.01.22✎ 03:57 | 
        (20) Правлю. -
 А лепить движения, когда они нужны неправильно же. => А лепить движения, когда они НЕ нужны неправильно же. | |||
| 22
    
        Ненавижу 1С гуру 10.01.22✎ 06:23 | 
        Во втором случае пропускаем создание движений только у проблемных движений. В первом у всех, после первого проблемного. 
 Кроме того отказ мог быть установлен и до цикла | |||
| 23
    
        Волшебник модератор 10.01.22✎ 07:18 | 
        Интересно, а в запросе, который возвращает "Выборка", есть "ДЛЯ ИЗМЕНЕНИЯ"?     | |||
| 24
    
        Ryzeman 10.01.22✎ 07:32 | 
        (2) Не думаю, слишком тонко и разнообразно, интеллектуальные затраты на придумывание такого какими-то немыслимыми были бы)     | |||
| 25
    
        Ryzeman 10.01.22✎ 07:39 | 
        (0) что это вообще? Обработка проведения какого-то документа? У тебя в случае отказа дальше движения отменяются или чересстрочно должны записываться?     | |||
| 26
    
        Мимохожий Однако 10.01.22✎ 07:42 | 
        (25) ОФФ: Если ответить на твой вопрос, то ветка будет слишком короткой )     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |