|   |   | 
| 
 | Очень долго формируется отчет | ☑ | ||
|---|---|---|---|---|
| 0
    
        prilforreal 18.07.17✎ 14:17 | 
        Добрый день, прошу вашей помощи!
 Строю отчет в скд, в в конструкторе запроса, добавляю необходимые измерения из регистра, один реквизит из табличной части документа и ставлю условие - период, связи через левое соединение, отчет грузится невероятно долго, хотя к нему нужно еще одно измерение другого регистра прикрепить с условием отбора... вот текст запроса: ВЫБРАТЬ ДилЗаказТабличнаяЧасть1.Срок КАК Срок, Потолки.Код, Потолки.Заказчик, Потолки.Материал, Потолки.Площадь ИЗ РегистрНакопления.Потолки КАК Потолки ЛЕВОЕ СОЕДИНЕНИЕ Документ.ДилЗаказ.ТабличнаяЧасть1 КАК ДилЗаказТабличнаяЧасть1 ПО Потолки.Регистратор.Ссылка = ДилЗаказТабличнаяЧасть1.Срок ГДЕ ДилЗаказТабличнаяЧасть1.Ссылка.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода СГРУППИРОВАТЬ ПО ДилЗаказТабличнаяЧасть1.Срок, Потолки.Код, Потолки.Заказчик, Потолки.Материал, Потолки.Площадь | |||
| 1
    
        Джинн 18.07.17✎ 14:32 | 
        Странное какое-то соединение:
 ПО Потолки.Регистратор.Ссылка = ДилЗаказТабличнаяЧасть1.Срок | |||
| 2
    
        Ц_У 18.07.17✎ 14:32 | 
        ПО Потолки.Регистратор.Ссылка = ДилЗаказТабличнаяЧасть1.Срок     | |||
| 3
    
        mehfk 18.07.17✎ 14:35 | 
        (0) 
 Регистр - шляпа Документ - шляпа Запрос - шляпа | |||
| 4
    
        prilforreal 18.07.17✎ 14:40 | 
        (1) Потолки.Регистратор.ТабличнаяЧасть1.Срок = илЗаказТабличнаяЧасть1.Срок 
 Так вернее будет? | |||
| 5
    
        prilforreal 18.07.17✎ 14:41 | 
        (3) Шляпник, дай совет лучше)     | |||
| 6
    
        Любопытная 18.07.17✎ 14:43 | 
        какой-то ужас в (0)     | |||
| 7
    
        vicof 18.07.17✎ 14:43 | 
        (5) Позовите программиста     | |||
| 8
    
        Ц_У 18.07.17✎ 14:44 | 
        (4) если у тебя есть срок и регистратор нахрена соединять?     | |||
| 9
    
        vicof 18.07.17✎ 14:44 | 
        (3) +100500     | |||
| 10
    
        Любопытная 18.07.17✎ 14:44 | 
        (5) почему запрос к реальной таблице регистра? Почему таблица регистра слева, а ТЧ документа справа? Что вы вообще собрать хотите?     | |||
| 11
    
        catena 18.07.17✎ 14:49 | 
        (4)Да, сделай так. У тебя количество записей регистра умножится на количество строк в документе.     | |||
| 12
    
        prilforreal 18.07.17✎ 14:53 | 
        (10) Из таблицы регистра вытаскиваю почти все, из ТЧ док-а только одно поле-Срок, нужен отчет, без группировок, по колонкам- срок - код - материал - площадь - заказчик. Сперва это, после приделать регистратор состояния потолка, через него отбирать только готовые.     | |||
| 13
    
        Любопытная 18.07.17✎ 14:54 | 
        (12) у тебя выбирается вся таблица регистра без ограничения вообще. Уверен, что тебе это надо?     | |||
| 14
    
        prilforreal 18.07.17✎ 15:00 | 
        (12) Нет, мне нужно только 4 измерения, соединение начал делать по той причине, что сроки начали прописываться там, где даже нет записей о них, и в стремлении к соответствию данных попробовал соединить таблицы     | |||
| 15
    
        Любопытная 18.07.17✎ 15:02 | 
        а, т.е. ты даже не понимаешь о чем я говорю. Ну ок.
 Тогда точно (7) | |||
| 16
    
        Avalone2010 18.07.17✎ 15:04 | 
        (12)В вашем регистре добавьте реквизит - срок. Не придеться выполнять соединения.     | |||
| 17
    
        prilforreal 18.07.17✎ 15:10 | 
        (15) я же ответил, что вся таблица регистра мне не нужна, только данные по четырем измерениям, ограниченные во времени и критериями отбора. Все же программисты рождаются обученными и квалифицированными.     | |||
| 18
    
        Джинн 18.07.17✎ 15:13 | 
        (17) Не обученные и не квалифицированные учатся и повышают свою квалификацию. Тут (3) прав - архитектура ээ..., в общем в армию тоже не годится. Отсюда дальше лезут всяческие проблемы, с которыми Вы пытаетесь героически бороться. Нет рядом никого, кто бы хотя бы концептуально архитектуру решения набросал? Коллеги какие-нибудь?     | |||
| 19
    
        Avalone2010 18.07.17✎ 15:14 | 
        (0)Нужна проверка заполнения срока по регистру?Типа в документе срока нет а в регистре он вдруг появился?     | |||
| 20
    
        Любопытная 18.07.17✎ 15:16 | 
        (17) Вы не поняли о чем я говорю. У вас берется вообще вся таблица. Представьте себе регистр в виде большого шкафа. В шкафу на полках стоят некие папки с документами. Вам нужно выбрать некоторые документы. И вы для этого берете и весь шкаф переворачиваете. Зачем вы так делаете?     | |||
| 21
    
        troekurov1991 18.07.17✎ 15:18 | 
        (0) Бери стандартную обработку "Консоль запросов", идет вроде с ИТС и отлаживай в ней свой запрос. Вначале задай более жесткие условия чтобы запрос не завис и что-то хотя бы вывел, потом убирай лишние условия     | |||
| 22
    
        troekurov1991 18.07.17✎ 15:20 | 
        (7) (20) Нехорошо издеваться над ребенком     | |||
| 23
    
        Любопытная 18.07.17✎ 15:21 | 
        (22) я не издеваюсь, я пытаюсь объяснить. Вопрос в (0) - почему долго строится отчет, я на пальцах объясняю почему он долго строится.     | |||
| 24
    
        troekurov1991 18.07.17✎ 15:24 | 
        (23) Я сомневаюсь что у него настолько большая даже файловая база, чтобы были проблемы с производительностью из-за того что он телегу впереди лошади ставит. В его случае лошадь будет толкать телегу достаточно быстро если было бы наоборот.     | |||
| 25
    
        Любопытная 18.07.17✎ 15:27 | 
        (24) Во-первых, мы не знаем. Во-вторых, это не повод писать тупой код. Стремиться к хорошему нужно всегда.     | |||
| 26
    
        troekurov1991 18.07.17✎ 15:27 | 
        (0) Сколько в регистре накопления "Потолки" у Вас записей?     | |||
| 27
    
        troekurov1991 18.07.17✎ 15:29 | 
        (25) Тупой не тупой, главное что работает, это для новичка большое достижение. А искать узкие места в плане производительности должен архитектор, а не новичок.     | |||
| 28
    
        Любопытная 18.07.17✎ 15:30 | 
        (27) И вы считаете себя хорошим специалистом?     | |||
| 29
    
        troekurov1991 18.07.17✎ 15:33 | 
        (28) Нет я знаю немного больше новичка, но успешно решил в одиночку несколько больших проектов.     | |||
| 30
    
        troekurov1991 18.07.17✎ 15:34 | 
        (28) Заказчик считает меня хорошим специалистом))     | |||
| 31
    
        Любопытная 18.07.17✎ 15:34 | 
        (29) я прям представляю эти решения.     | |||
| 32
    
        piter3 18.07.17✎ 15:34 | 
        (30) может просто разницы не понимает     | |||
| 33
    
        Ц_У 18.07.17✎ 15:34 | 
        (29) написать внешнюю печатную форму - это не проект     | |||
| 34
    
        troekurov1991 18.07.17✎ 15:38 | 
        (33) 1) Перенес почти все данные из 1С 7.7 Комплексная в 1С:8.2 Комплексная автоматизация  
 2) "с нуля" разработал конфу, перенес данные из старой программы Delphi, и организовал обмен с 1С:ЗУП? Продолжать?)) | |||
| 35
    
        piter3 18.07.17✎ 15:39 | 
        конечно продолжай     | |||
| 36
    
        prilforreal 18.07.17✎ 15:40 | 
        По порядку, беру из регистра Потолки необходимые измерения- колонки которые будут выводиться в отчете, (Площадь, Материал, Заказчик, Код) т.к. реквизиты из табличной части документа регистратора я включить в запрос не могу, приходится записи подтягивать из реквизита табличной части документа (ДокументДилЗаказ.ТабличнаяЧасть1.Срок) (23) записей в регистре накопления потолки пока несколько тысяч, т.к. база молодая, но в день появляется около сотни записей. Далее устанавливаю связь через регистратор, коллега подсказал связь делать через Регистратор.Документ.Ссылка на Доккумент.ТабличнаяЧасть.Срок. Условие пока только на период.     | |||
| 37
    
        troekurov1991 18.07.17✎ 15:40 | 
        (35) Теперь Вы сэр)))     | |||
| 38
    
        piter3 18.07.17✎ 15:41 | 
        (37) тут пальцами ты машешь,мне это не нужно)     | |||
| 39
    
        troekurov1991 18.07.17✎ 15:41 | 
        (36) Как долго формируется отчет, больше 15 секунд?     | |||
| 40
    
        troekurov1991 18.07.17✎ 15:41 | 
        (38) Я так и знал))     | |||
| 41
    
        troekurov1991 18.07.17✎ 15:44 | 
        (33) У меня на прошлой работе была внешняя обработка в ней учитывалось рабочее время и считалась зарплата, вместо того чтобы изменять ЗУП менялась эта обработка, в ней было 15 тыс. строк кода, я бы назвал ее тоже проектом     | |||
| 42
    
        prilforreal 18.07.17✎ 15:46 | 
        (20) Мне и нужны все записи о потолках в периоде, позже будет отбор по состоянию потолка, но так как я пока не могу связать регистр с документом не берусь туда еще один регистр СостояниеПотолков привязывать     | |||
| 43
    
        prilforreal 18.07.17✎ 15:46 | 
        (39) больше 15 минут     | |||
| 44
    
        Любопытная 18.07.17✎ 15:47 | 
        Ой нет, у меня слов нет. ТС, тебе тут товарищ "Троекуров" пусть помогает, вы, похоже, нашли друг друга     | |||
| 45
    
        prilforreal 18.07.17✎ 15:51 | 
        (44) Любопытная, спасибо конечно, но может подскажете, чем лучше мне здесь виртуальная таблица и как ее использовать вместо реальной.     | |||
| 46
    
        vicof 18.07.17✎ 15:54 | 
        (45) Посмотри курс по запросам от @Groovy хотя бы. Чтобы основы основ понимать.     | |||
| 47
    
        youalex 18.07.17✎ 15:54 | 
        (43) 
 >ПО Потолки.Регистратор.Ссылка = ДилЗаказТабличнаяЧасть1.Срок 1) ".Ссылка" здесь не нужно, это лишнее соединение 2) у тебя во всех документах по одной строке? У тебя получается что все строки ТЧ одного документа - соединяются со всеми записями регистра по этому документу. Т.е. если в документе 100 строк (и записей сто) - то в результат по этому доку выведется 100*100 = 10 000 записей | |||
| 48
    
        prilforreal 18.07.17✎ 15:58 | 
        (45) Спасибо, обязательно посмотрю, вся проблема в том, что с связанными таблицами сталкиваюсь впервые... (43) то есть мне достаточно использовать  
 Потолки.Регистратор= ДилЗаказТабличнаяЧасть1.Срок? Нет, в документе то количество строк, сколько потолков менеджер к нему прикрепил. | |||
| 49
    
        troekurov1991 18.07.17✎ 15:58 | 
        (43)  >ПО Потолки.Регистратор.Ссылка = ДилЗаказТабличнаяЧасть1.Срок
 Ты дату или число (срок) сравниваешь с документом (регистратор)? | |||
| 50
    
        prilforreal 18.07.17✎ 16:01 | 
        (49) Дату.     | |||
| 51
    
        LuciferArh 18.07.17✎ 16:03 | 
        (50) А зачем?     | |||
| 52
    
        troekurov1991 18.07.17✎ 16:04 | 
        (50) Сравнивай одинаковые типы, а то ты дату с ссылкой на документ сравниваешь     | |||
| 53
    
        troekurov1991 18.07.17✎ 16:05 | 
        (50) Отчет тебе вообще правильную таблицу выдает?     | |||
| 54
    
        prilforreal 18.07.17✎ 16:05 | 
        (52) тогда так 
 ДилЗаказТабличнаяЧасть1.Срок=Регистратор.ТабличнаяЧасть1.Срок | |||
| 55
    
        prilforreal 18.07.17✎ 16:07 | 
        (53) Последний раз таблицу выдавал правильную, но происходило как заметил (47), число записей по одному документу дублировалось в количестве его строк     | |||
| 56
    
        vicof 18.07.17✎ 16:09 | 
        (54) мыши плакали и кололись     | |||
| 57
    
        prilforreal 18.07.17✎ 16:11 | 
        (56) Как правильно сделать соединение, я скоро уже сам мышью плачуще-колющейся стану...     | |||
| 58
    
        vicof 18.07.17✎ 16:14 | 
        (57) Правильно не соединения делать, а грамотно спроектировать структуру решения.     | |||
| 59
    
        prilforreal 18.07.17✎ 16:17 | 
        Может все на поверхности и мне нужно добавить не один лишь реквизит Срок, а вместе с табличной частью? Тогда и связь автоматически заполняется...
 ПО Потолки.Регистратор = ДилЗаказ.Ссылка | |||
| 60
    
        troekurov1991 18.07.17✎ 16:20 | 
        (59) ТАк пробуй че спрашиваешь!     | |||
| 61
    
        prilforreal 18.07.17✎ 16:28 | 
        Отчет начал формироваться, быстро и без дублей, всем большое спасибо за терпение!)     | |||
| 62
    
        troekurov1991 18.07.17✎ 16:39 | 
        (31) Любопытная скушала?))     | |||
| 63
    
        Любопытная 18.07.17✎ 23:14 | 
        (62) ты прикалываешься? Хотя о чем это я... Да, вы великие спецы, постараюсь держаться от вас подальше, чтобы не дай бог не навредить вашей репутации.     | |||
| 64
    
        Diman000 18.07.17✎ 23:35 | 
        (61) Главное понять почему Регистратор.Ссылка это ужасно.     | |||
| 65
    
        H A D G E H O G s 19.07.17✎ 00:42 | 
        РН Потолки
 РС Стены АВ Днище | |||
| 66
    
        Злопчинский 19.07.17✎ 05:04 | 
        Пусть автор почитает совсем небольшую книжку SQL для чайников Автор вроде Тейлор Иначе он нихрена не поймёт как и зачем таблицы соединяются | |||
| 67
    
        Diman000 19.07.17✎ 06:58 | 
        Тут еще "1С в SQL для чайников" нужен. Если есть такой.
 Для любой таблицы 1С ".Ссылка" это плохо и бессмысленно. Но Регистратор это часто много-много таблиц, поэтому в нем любые поля через точку это совсем беда бедная и потеря потерь потерь, если не типизировать. | |||
| 68
    
        prilforreal 19.07.17✎ 08:24 | 
        (66) Спасибо, прочту)     | |||
| 69
    
        troekurov1991 19.07.17✎ 08:56 | 
        (68) Да нафиг тебе эти книжки по SQL, это уж потом для общего развития. Для начала набери на ютубе: "1С запросы" и вдумчиво послушай там курс видеоуроков и в обработке "Консоль запросов.epf" поиграйся с запросами.     | |||
| 72
    
        prilforreal 19.07.17✎ 11:21 | 
        (69) Благодарю за материал, буду развиваться)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |