|   |   | 
| 
 | Когда 1С научиться нормально писать. ↓ (Волшебник 20.02.2014 14:10) | ☑ | ||
|---|---|---|---|---|
| 0
    
        batmansoft 20.02.14✎ 12:58 | 
        Вот реально бест такой код:
 " ЗапросПоТоварам.Текст = "ВЫБРАТЬ | ЗапросПоОборудованию.Номенклатура, | ВЫРАЗИТЬ(ЗапросПоОборудованию.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар, | ЗапросПоОборудованию.Номенклатура." + ТекстКодАртикул + " КАК ТоварКод, | ЗапросПоОборудованию.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаХранения, | ЗапросПоОборудованию.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ЗапросПоОборудованию.Количество КАК КоличествоМест, | ЗапросПоОборудованию.Количество КАК Количество, | ЗапросПоОборудованию.Коэффициент, | ЗапросПоОборудованию.Цена, | ЗапросПоОборудованию.Сумма, | ЗапросПоОборудованию.СуммаНДС, | ЗапросПоОборудованию.СтавкаНДС, | ЗапросПоОборудованию.НомерСтроки, " | |||
| 1
    
        Chai Nic 20.02.14✎ 12:59 | 
        "реально бест" 
 5 баллов! | |||
| 2
    
        Wobland 20.02.14✎ 12:59 | 
        (0) а сам планируешь?     | |||
| 3
    
        batmansoft 20.02.14✎ 12:59 | 
        реально бесит     | |||
| 4
    
        Ymryn 20.02.14✎ 13:00 | 
        А чем именно он раздражает?     | |||
| 5
    
        jsmith82 20.02.14✎ 13:00 | 
        в чём бест?     | |||
| 6
    
        H A D G E H O G s 20.02.14✎ 13:00 | 
        (4) Динамическим текстом     | |||
| 7
    
        Chai Nic 20.02.14✎ 13:01 | 
        Бывает бест и похуже     | |||
| 8
    
        batmansoft 20.02.14✎ 13:01 | 
        Вот почему криворукие программеры из 1С не могут обойтись без такого:
 ." + ТекстКодАртикул + " Почему нельзя сделать нормальные запросы что бы их можно было открыть конструктором? | |||
| 9
    
        H A D G E H O G s 20.02.14✎ 13:01 | 
        Забей.
 Это наследие середины 2000-х. Открой для себя УТ11, вот там реально бестня. | |||
| 10
    
        1Сергей 20.02.14✎ 13:01 | 
        ещё как бест http://tsya.ru/     | |||
| 11
    
        Йохохо 20.02.14✎ 13:02 | 
        (0) это же печатная форма наверняка, не надо усложнять сверх бсп     | |||
| 12
    
        1Сергей 20.02.14✎ 13:02 | 
        (8) чтобы мозгами думали, а не тупо конструкторами пользовались     | |||
| 13
    
        H A D G E H O G s 20.02.14✎ 13:03 | 
        (12) Ооо, вот и тру программист нас посетил.     | |||
| 14
    
        batmansoft 20.02.14✎ 13:04 | 
        (12) Тогда нафига они эти конструкторы придумали, если ими нельзя пользоваться?     | |||
| 15
    
        skunk 20.02.14✎ 13:04 | 
        (8)расскажи мне как получить без этого ссылки всех документов имеющихся в базе за определенный период     | |||
| 16
    
        1Сергей 20.02.14✎ 13:05 | 
        (13) Я? не. я просто покурить вышел...
 (14) для новичков | |||
| 17
    
        batmansoft 20.02.14✎ 13:06 | 
        (15) В данном случае никак.
 А в случае 0 реально можно было без этого бойтись. Например так: ЗапросПоТоварам.Текст = "ВЫБРАТЬ | ЗапросПоОборудованию.Номенклатура, | ВЫРАЗИТЬ(ЗапросПоОборудованию.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар, | ЗапросПоОборудованию.Номенклатура.Код КАК ТоварКод, | ЗапросПоОборудованию.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаХранения, | ЗапросПоОборудованию.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ЗапросПоОборудованию.Количество КАК КоличествоМест, | ЗапросПоОборудованию.Количество КАК Количество, | ЗапросПоОборудованию.Коэффициент, | ЗапросПоОборудованию.Цена, | ЗапросПоОборудованию.Сумма, | ЗапросПоОборудованию.СуммаНДС, | ЗапросПоОборудованию.СтавкаНДС, | ЗапросПоОборудованию.НомерСтроки, | 1 КАК ID |ИЗ ... если что то тогда Запрос.Текст = СтрЗаменить(Запрос.Текст,"Код","Артикул") КонецЕсли | |||
| 18
    
        skunk 20.02.14✎ 13:07 | 
        (17)за такое я бы вообще на месте сразу убивал     | |||
| 19
    
        Zero on a dice 20.02.14✎ 13:09 | 
        (14) про конструктор движений нам расскажешь?
 как криворукие проги туда свою обработку втыкают и нельзя конструктором открыть) (17) пряморукий код)) | |||
| 20
    
        Ymryn 20.02.14✎ 13:09 | 
        Динамический текст запроса - очень удобно. То что нельзя его открыть конструктором - да пофиг, за тот функционал что позволяет такой прием, я готов заплатить такую маленькую цену. Все равно запрос при этом читается не сильно сложнее (а данный запрос - вообще элементарно читается).     | |||
| 21
    
        Karavanych 20.02.14✎ 13:10 | 
        Дак а че такого в (0) ?
 Нормально написано, иногда просто запрос должен работать либо по коду либо по артикулу. в (17) Ужас...а если там еще появится поле "код", а если потребуется доработать запрос через пару месяцев ? Это же ад поддержки будет, а (0) все ясно сразу, не подразумевается никаких двойных трактовок, просто не открывается в конструкторе, подумаешь - скопируй в консоль запросов, чуть изменить и открой. | |||
| 22
    
        skunk 20.02.14✎ 13:12 | 
        (21)да пофих про поле код ... а если там завтра потребуется выбрать реквизиты содержащие три символа "код", к примеру - "кодировка"     | |||
| 23
    
        Zero on a dice 20.02.14✎ 13:12 | 
        (20) он имеет ввиду способ вроде
 "Выбрать &ТекстВставки" с последующим СтрЗаменить(), но, очевидно, пользоваться этим способом сам не умеет) | |||
| 24
    
        batmansoft 20.02.14✎ 13:12 | 
        (16) "(14) для новичков" - не для новичков, а для удобства.     | |||
| 25
    
        skunk 20.02.14✎ 13:13 | 
        или как в нашей конфе "КодКПВЭД", "КодСмарта" и кучу других кодов     | |||
| 26
    
        kosts 20.02.14✎ 13:13 | 
        (20) Как быть с динамическими запросами из 5000 строк, да еще размазанных по разным запросам с помощью менеджера временных таблиц... И еще с таблицами в параметрах...
 Конструктор, хоть как-то позволил бы это обозреть... | |||
| 27
    
        batmansoft 20.02.14✎ 13:13 | 
        (20) Такой динамический запрос адский трудоёмко поддерживать. Вот попробуй без конструктора вставить туда хотя бы еще одно поле? Затрахаешься везде вставлять куд анадо     | |||
| 28
    
        skunk 20.02.14✎ 13:14 | 
        (23)открой ты такой запрос в конструкторе)))     | |||
| 29
    
        Karavanych 20.02.14✎ 13:15 | 
        (27) Скопируй текст в обработку, убери эту вставку динамическую и открой. Ну потратишь 5 минут лишних.     | |||
| 30
    
        batmansoft 20.02.14✎ 13:15 | 
        (23) Кстати, да, правильно, именно &ТексВставки надо делать     | |||
| 31
    
        Ymryn 20.02.14✎ 13:15 | 
        (26) личном не легче читать запрос без конструктора. Если отступы соблюдены и все сделано без обилия вложенных запросов, то читается весьма легко. 
 (27) Одно поле в этот запрос вставляется одной строкой и тратит 30 секунд времени максимум. В чем проблема не понимаю. | |||
| 32
    
        kosts 20.02.14✎ 13:16 | 
        (28) Открывается, но слетают группировки, если в группировках такое поле есть...     | |||
| 33
    
        Lama12 20.02.14✎ 13:17 | 
        (0)Забей. Посмотри на зарплатные "многоходовые" запросы, и выдохни.
 Отладчик в руки. ставишь точку останова перед Выполнить, и смотришь текст запроса итоговый. Его можно скопировать и вставить в конструктор для отладки, если тебе так удобнее. В приведенном примере и так все читается просто. | |||
| 34
    
        Ymryn 20.02.14✎ 13:17 | 
        (31) + как бы запросы успешно пишутся и редактируются без конструктора. И порой заметно быстрее делаются именно без конструктора, если ты структуру базы уже знаешь и написание основных объектов помнишь на зубок.     | |||
| 35
    
        Ymryn 20.02.14✎ 13:19 | 
        (31) *лично мне
 Приношу извинения. | |||
| 36
    
        kosts 20.02.14✎ 13:19 | 
        (34) Одно другому не мешает, но я за то, что бы был выбор...     | |||
| 37
    
        Zero on a dice 20.02.14✎ 13:21 | 
        (34) добавлять в объединения вручную менее удобно - факт     | |||
| 38
    
        IamNotAlexy 20.02.14✎ 13:22 | 
        (0) ждите 8.3.5
 там будет объектная модель запроса с возможность. нормально программно его собирать.. | |||
| 39
    
        Ymryn 20.02.14✎ 13:24 | 
        (37) не полностью соглашусь. Зависит от объединения. Если в других блоках должно быть null, то согласен. Если же должен быть осмысленный подбор, то руками может оказаться и быстрее.     | |||
| 40
    
        H A D G E H O G s 20.02.14✎ 13:25 | 
        ППЦ
 ВЫБОР КОГДА &НуженАртикул Тогда Номенклатура.Артикул КОГДА &НуженСмарт Тогда Номенклатура.Смарт ИНАЧЕ Номенлатура.Код КОНЕЦ | |||
| 41
    
        batmansoft 20.02.14✎ 13:26 | 
        (40) О! Хороший код!     | |||
| 42
    
        kosts 20.02.14✎ 13:27 | 
        (40) Я бы выбрал Заменить()     | |||
| 43
    
        H A D G E H O G s 20.02.14✎ 13:28 | 
        (42) Заменить() катит только для универсальных модулей, используемых в разных конфигурациях, в которых по разному именуются таблицы данных.     | |||
| 44
    
        Ymryn 20.02.14✎ 13:28 | 
        (40) значительно увеличить объем кода, чтобы оно открывалось конструктором?  А оно того стоит? Или у нас стали за количество строчек платить?     | |||
| 45
    
        H A D G E H O G s 20.02.14✎ 13:30 | 
        Если Метаданные.Имя="УТ" Тогда
 Запрос.Текст=стрЗаменить(Запрос.Текст,"ПартииТоваровНаСкладахБухгалтерскийУчет","ПартииТоваровНаСкладах"); | |||
| 46
    
        H A D G E H O G s 20.02.14✎ 13:30 | 
        (44) Полазишь по модулю НДФЛ в ЗУПе - поймешь.     | |||
| 47
    
        Ymryn 20.02.14✎ 13:31 | 
        (46) не напоминай. Лазил. Многое понял. Спорить не буду. Ты абсолютно прав.     | |||
| 48
    
        13_Mult 20.02.14✎ 13:32 | 
        (0) Скажите спасибо что в одну строчку не написали, а запрос норм и не надо на это нагонять. ))     | |||
| 49
    
        batmansoft 20.02.14✎ 13:32 | 
        (44) Конечно, стоит. Вот надо новое поле добавить, констуртором ты за две секунды добавишь. А сколько будешь добавлять новое поле и материться, если текст запроса сделан через кучу Если тогда КонецЕсли?     | |||
| 50
    
        Ymryn 20.02.14✎ 13:35 | 
        (49) я уже писал, что новое поле добавляется в запрос как предложен в (0) за 30 секунд максимум. При желании вполне укладываешься за 5 - 10, в зависимости от сложности вложенности. Можно поспорить на тему 2х секунд через конструктор, но в любом случае даже при этих цифрах, я не считаю, что это такая бешенная потеря времени.     | |||
| 51
    
        H A D G E H O G s 20.02.14✎ 13:36 | 
        (49) Конструктор еще и проверит твои писанины.
 Но трушные программеры пишут отруки. | |||
| 52
    
        Chai Nic 20.02.14✎ 13:36 | 
        (49) Я в своих нетленках вообще тексты запросов в макетах храню, а не в коде. Удобно.)     | |||
| 53
    
        Ymryn 20.02.14✎ 13:38 | 
        (51) вот кстати, единственная причина, по которой мне действительно печально, что конструктор становится недоступным. Проверять запрос становится сложнее и можно пропустить опечатку. Факт.     | |||
| 54
    
        Zero on a dice 20.02.14✎ 13:38 | 
        (49) если пересилить свое гипертрофированное чуство одинэсово-програмистской несправедливости и "а вот до меня прог работал..", ничего сложного в этом нет, и все делается быстро.
 а если еще и интернет при этом выключить | |||
| 55
    
        Хуан 20.02.14✎ 13:39 | 
        (10) +1     | |||
| 56
    
        Ymryn 20.02.14✎ 13:39 | 
        Правда пример тут какой-то не очень. Ведь вполне же можно было найти запрос, текст которого собирается из частей по условию в цикле. Вот это действительно мини-шедевры в плане отладки и модификации.     | |||
| 57
    
        H A D G E H O G s 20.02.14✎ 13:45 | 
        (52) Расскажи!     | |||
| 58
    
        H A D G E H O G s 20.02.14✎ 13:45 | 
        (56) Бывает и такое.     | |||
| 59
    
        ИС-2 20.02.14✎ 13:49 | 
        (8) а вы знайте как работает оптимизатор запросов при транслировании из 1C в СУБД? Думаю нет. 
 И я тоже. Но читал, чтобы запрос преобразовался как можно лучше не должны быть всяких Выбор когда, НачалоПериода и т.д. Поэтому и 1C ники составляют запрос димамически | |||
| 60
    
        ИС-2 20.02.14✎ 13:50 | 
        вот пример. Отчет Задолженность по интервалам. В УТ 10.2 запрос статичный через реальную таблицу, а вот в УПП текст формируется динамически     | |||
| 61
    
        skunk 20.02.14✎ 13:50 | 
        (59)лажа ... нормально запросы отрабатывают и по выбору     | |||
| 62
    
        Zero on a dice 20.02.14✎ 13:51 | 
        (60) да ну, слишком глубоко в дебри, проще написать " + ?(ы=0, 1,2) + " чем конструкцию Выбор-Когда и слать туда лишний параметр     | |||
| 63
    
        Господин ПЖ 20.02.14✎ 13:52 | 
        тупая ветка... все фигня кроме запросов зупа     | |||
| 64
    
        Chai Nic 20.02.14✎ 13:52 | 
        (52) А чего тут рассказывать, создаешь в своем объекте текстовый макет, называешь его как-то, например "ТекстЗапросаПоДокументам", а в коде пишешь Запрос.Текст=ПолучитьМакет("ТекстЗапросаПоДокументам").ПолучитьТекст(), и всё красиво.. котлеты отдельно, мухи отдельно.     | |||
| 65
    
        Господин ПЖ 20.02.14✎ 13:53 | 
        (63) + еще когда результат из одного в другой через менеджер времянок перекладывается...     | |||
| 66
    
        batmansoft 20.02.14✎ 13:53 | 
        (59) Дык тогда можно изменять запрос через СтрЗаменить. А заменяемый текст обзывать какими нибудь парметрами, начинающимися на &     | |||
| 67
    
        kosts 20.02.14✎ 13:57 | 
        (64) А чем не устраивает?
 
 | |||
| 68
    
        H A D G E H O G s 20.02.14✎ 13:58 | 
        (59) Он будет нормально транслирован.     | |||
| 69
    
        H A D G E H O G s 20.02.14✎ 13:59 | 
        (64) Зачем?     | |||
| 70
    
        Zero on a dice 20.02.14✎ 14:00 | 
        (66) проблема в том, что, действительно, сложный запрос ты конструктором отлаживать не станешь, а если тебе нужно его модифицировать, то, поняв его - не составит сложности дописать нужное. проблема надуманна. ну или я не стану, меня напрягает мышью возюкать и перещелкивать постоянно.
 в СтрЗаменить есть конкретный недостаток по сравнению со сложением строк - нечитабельность (67) в макете можно хранить запрос без | и "", и отлаживать его в консоли чуть проще | |||
| 71
    
        Серго62 20.02.14✎ 14:01 | 
        (64) В чем кайф?     | |||
| 72
    
        Advan 20.02.14✎ 14:04 | 
        в (17)Уже неправильный выход получиться - так как заменит ТоварКод на товарАртикул(поле будет неправильно).
 Я обычно смотрю отладчиком, копирую запрос - и в консоль - не удобно конечно - но что делать. Вот бы инструмент для работы с такими вставками. | |||
| 73
    
        Chai Nic 20.02.14✎ 14:04 | 
        (69) Никаких заморочек при переносе из консоли запросов и обратно по сравнению с встраиванием его в код (экранирование кавычек, вертикальная черта в каждой строке).     | |||
| 74
    
        batmansoft 20.02.14✎ 14:04 | 
        (64) А как ты правишь такие запросы, без конструктора?     | |||
| 75
    
        Advan 20.02.14✎ 14:04 | 
        в (40)Правильный ответ - правда не всегда так можно сделать :(     | |||
| 76
    
        Chai Nic 20.02.14✎ 14:05 | 
        (74) Через консоль запросов, разумеется     | |||
| 77
    
        el7cartel 20.02.14✎ 14:10 | 
        (74) ну так отладчиком прогони и увидешь хороший текст запроса, его и копирнешь в консоль!     | |||
| 78
    
        DS 20.02.14✎ 14:27 | 
        (75) "Оно ж конечно потому шо шож" (с)
 в (40) лишний текст загромождает восприятие запроса. | |||
| 79
    
        vmv 20.02.14✎ 15:59 | 
        большинство типовых запросов УПП написано в стиле а ля
 | ЗапросПоОборудованию.Номенклатура." + ТекстКодАртикул + " КАК ТоварКод, многие трехэтажные и в конструкторе хрен протестишь как решение этой проблемы разрабам надо больше юзать параметры запросов, ну и любителям текстовых вставок в запросы ломать руки конеш | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |