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

    −117

    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
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    Если Номенклатура1 <> Номенклатура2 Тогда
    Запрос=Новый Запрос("ВЫБРАТЬ
    |РаспределениеМатериаловПоМенеджерам.ЗаявкаНаМатериалы,
    |РаспределениеМатериаловПоМенеджерам.Материал
    |ИЗ
    |РегистрСведений.РаспределениеМатериаловПоМенеджерам КАК РаспределениеМатериаловПоМенеджерам
    |ГДЕ
    |РаспределениеМатериаловПоМенеджерам.Материал = &Материал");
    Запрос.УстановитьПараметр("Материал",Номенклатура1);
    Выборка=Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    МЗСтарой=РегистрыСведений.РаспределениеМатериаловПоМенеджерам.СоздатьМенеджерЗаписи();
    МЗСтарой.ЗаявкаНаМатериалы=Выборка.ЗаявкаНаМатериалы;
    МЗСтарой.Материал=Номенклатура2;
    МЗСтарой.Прочитать();
    МЗНовой=РегистрыСведений.РаспределениеМатериаловПоМенеджерам.СоздатьМенеджерЗаписи();
    МЗНовой.ЗаявкаНаМатериалы=Выборка.ЗаявкаНаМатериалы;
    МЗНовой.Материал=Выборка.Материал;
    МЗНовой.Прочитать();
    Если МЗСтарой.Выбран() тогда
    МЗНовой.Удалить();
    Иначе
    МЗНовой.Материал=Номенклатура2;
    МЗНовой.Записать(Истина);
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;

    Вот такой код сделан был франчем, который потребовал за это еще и 3 часа оплаты)))) Одно только непонятно почему при обращении к регистру нельзя было использовать отбор это же гораздо проще и быстрее и кода меньше

    Запостил: dart, 14 Июня 2012

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

    • "|" - один из немногих символов языка 1с, который раздражает своей неуместностью.

      > и кода меньше
      Сложно объяснить, что он делал три часа, например.
      Ответить
      • "нормальный
        |перевод
        |строки
        |ящетаю"

        к томуже платформа сама форматирует это, так что набирать самому | не приходится
        Ответить
      • Не нарвиться перевод строк пиши в одну строку ))
        Ответить
    • От одного вида 1С-ного SQL в дрожь бросает.
      Ответить
      • Не промтовый вариант выбивался бы сильно из общей стилистики и переключать раскладку потребно. Немного раздражают/удивляют эти капсовые "ЛЕВОЕ СРЕДНЕЕ РЕЗЬБОВОЕ СОЕДИНЕНИЕ", но так - тот же sql, вид в профиль.
        Ответить
        • http://habrahabr.ru/users/eth0/

          Константин Игоревич Костин 25.06.1986, Можайское Шоссе, д. 30, кв. 65
          Ответить
          • О мой бх! Да быть того не может. Теперь поищи по инторнетам этот ник. Авось, найдёшь ещё чего полезного.
            Ответить
            • показать все, что скрыто> кококо

              Состоит в: ..., КодоБред
              Ответить
              • 1. Всем похуй.
                2. Нормальным людям скрываться нечего. Это ты анонимное гумно с залупой за щекой. Представь что будет если узнают твоя мама/однокласники в школе, на какую херню ты потратил свои каникулы.
                3. Гумно пойди на улицу погуляй с друзьями, в речке покупайся, фруктов покушай, или там на велике покатайся.
                4. Тут ты не нужен.
                Ответить
              • [В страхе убежал перерегистрировать ник на wlan0]
                Ответить
      • Всегда считал, что SQL - язык, придуманный для домохозяек :) Однако, встречаются долбоебы, возомнившие себя SQL-программистами :-D
        Ответить
        • Придуман-то для домохозяек, а превратился в эзотерический пиздец с кучей нюансов.
          Ответить
          • fix: В кучу разных эзотерических пиздецов, несовместимых друг с другом, с кучей нюансов.
            Ответить
        • > Всегда считал, что SQL - язык, придуманный для домохозяек :)
          Возможно, вот только сеньоры и тим лиды не могут пройти собеседование на Junior MS SQL developer...
          > Однако, встречаются долбоебы, возомнившие себя SQL-программистами :-D
          ИМХО, понятие SQL-программист бывает только в совковых конторах.
          А если у анона ФГМ, и он не знает как перевести DBdev, то это печально.
          Ответить
          • Твоё зашкаливающее ЧСВ не даёт тебе понять свой долбоебизм :)
            > DBDev
            Это что-то наподобие HTML-программиста :-D
            Ответить
            • >DataBase Developer
              >что-то наподобие HTML-программиста
              Бгг. Какой феерический уебок сегодня зашел на концерт.
              Что еще спизданешь, дружок?!
              Вот этот конкретный аноним - это что-то наподобие пидараса.
              Ответить
              • Это всё тот же.
                http://tinyurl.com/cey9cs2
                Хотя в то, что защитился, верится слабо, еще недавно хныкал о несданных задачах по терверу второго-третьего курса.
                Ответить
                • Съеби, недотролль, со своими питушыными "деанонами" и всякими там Орловыми на хуй.
                  Ответить
                  • Не нажимается
                    Ответить
                    • Обнови браузер
                      Ответить
                      • неправильно. надо вставить ссылку в адресную строку и нажать ентер. а потом почистить куку браузером.
                        Ответить
    • тут начиная с прохода по выборке вобще половина не нужна

      Здесь набор с отбором по материалу нельзя делать, иначе может конфликт уникальности если уже есть запись: Номенклатура2 с Заявкой. Т.е. набором не стоит. Можно менеджером по 1-й записи.

      И нахе все эти проверки на существование, ведь он и так записывает с заменой (если измерения совпадают). Я так поня 2 измерения в регистре Материал и Заявка.


      Если Номенклатура1 <> Номенклатура2 Тогда
      Запрос=Новый Запрос("ВЫБРАТЬ
      |РаспределениеМатериаловПоМенеджерам.Зая вкаНаМатериалы,
      |РаспределениеМатериаловПоМенеджерам.Мат ериал
      |ИЗ
      |РегистрСведений.РаспределениеМатериалов ПоМенеджерам КАК РаспределениеМатериаловПоМенеджерам
      |ГДЕ
      |РаспределениеМатериаловПоМенеджерам.Мат ериал = &Материал");
      Запрос.УстановитьПараметр("Материал",Ном енклатура1);
      Выборка=Запрос.Выполнить().Выбрать();
      Пока Выборка.Следующий() Цикл
      МЗНовой = РегистрыСведений.РаспределениеМатериалов ПоМенеджерам.СоздатьМенеджерЗаписи();
      МЗНовой.ЗаявкаНаМатериалы=Выборка.Заявка НаМатериалы;
      МЗНовой.Материал=Выборка.Номенклатура2;
      МЗНовой.Записать(Истина); // пох если дубли, записываем с заменой
      КонецЦикла;
      КонецЕсли;


      кароч кодер хуёво разбирается в механизмах регистров сведений и тупит
      Ответить
    • показать все, что скрытоКакой багор )))
      Ответить
    • показать все, что скрытоКакой багор у Тараски-Валерки )))
      Ответить
    • ))))
      Ответить
    • Отбор к регистру выльется все равно в SQL запрос и быстрее точно не будет. Кода меньше, да. Но говнокодом назвать нельзя.
      Ответить

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