1. 1C / Говнокод #7334

    −132

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    Запрос = Новый Запрос;
       Запрос.УстановитьПараметр("ин_Кодификатор",Кодификатор);
       Запрос.Текст =  "ВЫБРАТЬ
       | СтатьиДвиженияДенежныхСредств.Ссылка
       |ИЗ
       | Справочник.СтатьиДвиженияДенежныхСредств КАК СтатьиДвиженияДенежныхСредств
       |ГДЕ
       | СтатьиДвиженияДенежныхСредств.ин_Кодификатор = &ин_Кодификатор
       |";
       
       Выборка = Запрос.Выполнить().Выбрать();
       Если Выборка.Следующий() Тогда   
        Если  Выборка.Ссылка.Наименование <> Наименование Тогда
         СтатьяДДСОбъект = Выборка.Ссылка.ПолучитьОбъект();      
         СтатьяДДСОбъект.Наименование = Наименование;
         СтатьяДДСОбъект.Записать(); 
        КонецЕсли;
        Если  Выборка.Ссылка.ин_Кодификатор <> Кодификатор Тогда
         СтатьяДДСОбъект = Выборка.Ссылка.ПолучитьОбъект();         
         СтатьяДДСОбъект.ин_Кодификатор = Кодификатор;
         СтатьяДДСОбъект.Записать(); 
        КонецЕсли;

    Отбор в запросе ин_Кодификатор = &ин_Кодификатор.
    Потом идет проверка Выборка.Ссылка.ин_Кодификатор <> Кодификатор

    Запостил: s-in-m, 25 Июля 2011

    Комментарии (9) RSS

    • Сейчас сижу, обмазываюсь 1С. Такое чувство, что опять стал школьником, сижу на уроке информатики. А %TeacherName% объясняет нам про циклы в АЯ.
      Ответить
    • Получать наименование через точку, а не в запросе, это жесть жестокая. Кодера распять.
      Ну и "Выборка.Ссылка.ин_Кодификатор <> Кодификатор" кагбэ намекает..
      Ответить
    • показать все, что скрыто1С, что символизирует "Одному говнокоду - один пиписюнчик".
      Между прочим, золотая формула.
      Ответить
    • Вы, должно быть, не в курсе, что при исполнении метода СтатьяДДСОбъект.Записать() может выполниться тонна кода (в том числе и изменить ин_Кодификатор)? После этого такие невинные проверки не будут казаться чем-то особенным.
      Ответить
      • Я уж не говорю о том, что за время выполнения обработки другой пользователь может поменять by_Кодификатор. То же самое и относительно .Наименование. Его тоже могут поменять, пока работает обработка... Эх, вот отсюда баги и лезут - нет у программистов многозадаченого мышления...
        Ответить
        • Транзакции и управляемые блокировки на этот случай еще никто не отменял
          Ответить
    • Все отборы можно было в запросе сделать (я про наименование), ну а кодификатор - доставляет, да. :)
      Ответить
    • А как вам запись после каждой проверки?
      Ответить

    Добавить комментарий