Имя: Пароль:
1C
1С v8
Поведение MS SQL server при длительных запросах.
0 Lama12
 
18.09.13
10:21
Есть большой запрос. В нем несколько вложенных полностью повторяющих друг друга (да, можно вытащить во временные таблицы, но это пока отложим).
Допустим во время выполнения первого вложенного запроса в базе одни данные, во время другого - другие.
Вопрос - что будет в результатах запроса (насколько помню 1С использует грязное чтение)?  Будет ли сервер пытаться актуализировать результаты первого вложенного запроса после изменения данных в базе или это мой бред?
1 Odavid
 
18.09.13
10:23
(0)>>насколько помню 1С использует грязное чтение
что есть по-вашему "грядное стение от 1С"??
2 Odavid
 
18.09.13
10:23
*грязное
3 ДенисЧ
 
18.09.13
10:25
(1) Хватит уже клоуничать. Если ты не знаешь этого, не надо показывать свою тупость. Ты её и так показал.
(0) Тут уже на усмотрение сервера. По моим наблюдениям, одинаковые запросы с одинаковыми параметрами выполняются один раз
4 Odavid
 
18.09.13
10:25
(0) запрос выполняется в транзакции, поэтому запрашиваемые таблицы блокируются на время транзакции, и если в запросе получают из одних таблиц данные - они не меняются во время запроса.
6 ДенисЧ
 
18.09.13
10:25
(4) Садись, два. И не вылезай больше, пока матчасть не выучишь.
8 Odavid
 
18.09.13
10:28
(0) и так - что, по-вашему, есть "грязное чтение"?
На клоунов от 1С реагируйте отдельно.
9 Ёпрст
 
18.09.13
10:28
(4)
>>>запрос выполняется в транзакции, поэтому запрашиваемые таблицы блокируются на время транзакции,

Почем нынче грибочки то у вас там ?
11 ДенисЧ
 
18.09.13
10:28
(9) Это не грибы давно уже....
12 Maxus43
 
модератор
18.09.13
10:29
тютютю, не скатывайтесь в срачь товарищи
13 Lama12
 
18.09.13
10:32
(8) Грязное чтение. Идет запись данных в базу в транзакции. Транзакция еще не закрыта. Но запросами эти данные уже читаются.
Проверял. Именно так и работает.
14 vvf1973
 
18.09.13
10:33
(12) как же без этого...мартышки в клетке...банка пауков...дамский коллектив....они просто бледнеют перед страстями уютного коллективчика 1с-ников :-)
15 Lama12
 
18.09.13
10:35
(4) Не верю.
16 Sammo
 
18.09.13
10:41
Сильно зависит от получившегося плана запроса. Вполне возможно, что будет чтение данных 1 раз.
17 Sammo
 
18.09.13
10:42
(9) А если поставить "Для изменения" в запросе?
18 Lama12
 
18.09.13
10:45
(16) Мда... что-то подобное подозревал.
Просто запрос на Postgre выполняется 20 минут, а на тех же данных в MS SQL server уже больше часа...
Буду переписывать на временные таблицы.
19 MKZM
 
18.09.13
10:49
(13) Странно.
20 Ёпрст
 
18.09.13
10:50
(17) об этом в (0) ни слова.
21 Lama12
 
18.09.13
10:51
(20) Да, для изменения не использую.
Там запрос не в проведении документа. Скорость работы не сильно важна.
22 MKZM
 
18.09.13
10:53
(21) Вообще, хотя я могу ошибаться, у мс скл по умолчанию рид коммитед, получается 1с сознательно снижает уровень изоляции?
23 Lama12
 
18.09.13
11:00
(22) Спорить не буду. Но в (13) проверял.
24 Lama12
 
18.09.13
11:00
23+ Правда давно :)
25 Odavid
 
18.09.13
11:02
(17) "для изменения" не поможет.
26 Odavid
 
18.09.13
11:02
(22) нет. дело в другом
27 Odavid
 
18.09.13
11:03
(18)>>Просто запрос на Postgre выполняется 20 минут, а на тех же данных в MS SQL server уже больше часа...
блокировки?
28 Lama12
 
18.09.13
11:03
Ну если хотите могу и запрос выложить :)
Но это для любителей поковыряться в портянках :-D
29 МихаилМ
 
18.09.13
11:06
(28)
давайте запрос, и флаги трассировки ms sql server
30 Lama12
 
18.09.13
11:06

ВЫБРАТЬ
    ВложенныйЗапрос.ДоговорКонтрагента,
    ВложенныйЗапрос.Контрагент,
    ВложенныйЗапрос.Номер,
    ВложенныйЗапрос.Дата,
    ВложенныйЗапрос.ТемаДоговора,
    ВложенныйЗапрос.СрокДействия,
    ВложенныйЗапрос.ТипДоговора,
    ВложенныйЗапрос.ОтветственныйЗаДоговор,
    ВложенныйЗапрос.ПродуктовоеНаправление,
    ВложенныйЗапрос.Проект,
    ВложенныйЗапрос.СтатусПроекта,
    ВложенныйЗапрос.СтадияПроекта,
    ВложенныйЗапрос.ПортфельПроектов,
    ВложенныйЗапрос.ДатаНачалаВыполненияПроекта,
    ВложенныйЗапрос.МенеджерПроекта,
    ВложенныйЗапрос.ЭкономистПроекта,
    ВложенныйЗапрос.ББ_ПО_ДОП,
    ВложенныйЗапрос.КонечныйПользователь,
    ВложенныйЗапрос.ДоговорнаяДатаЗ,
    ВложенныйЗапрос.НомерПроекта,
    СУММА(ВложенныйЗапрос.ДляФильтра) КАК ДляФильтра,
    ВложенныйЗапрос.Наименование КАК Наименование,
    ВложенныйЗапрос.ОсновнойДоговор
ИЗ
    (ВЫБРАТЬ РАЗЛИЧНЫЕ
        ДоговорыКонтрагентов.Ссылка КАК ДоговорКонтрагента,
        ДоговорыКонтрагентов.Владелец КАК Контрагент,
        ДоговорыКонтрагентов.Номер КАК Номер,
        ДоговорыКонтрагентов.Дата КАК Дата,
        ЕСТЬNULL(ВЫРАЗИТЬ(ЗначенияСвойствОбъектов_Тема.Значение КАК СТРОКА(500)), ВЫРАЗИТЬ("" КАК СТРОКА(500))) КАК ТемаДоговора,
        ДоговорыКонтрагентов.СрокДействия КАК СрокДействия,
        ЕСТЬNULL(ЗначенияСвойствОбъектов_ТипДоговора.Значение, ЗНАЧЕНИЕ(Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка)) КАК ТипДоговора,
        ЕСТЬNULL(ЗначенияСвойствОбъектов_ОтветственныйЗаДоговор.Значение, ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)) КАК ОтветственныйЗаДоговор,
        ЕСТЬNULL(ЗначенияСвойствОбъектов_ПродуктовоеНаправление.Значение, ЗНАЧЕНИЕ(Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка)) КАК ПродуктовоеНаправление,
        ЕСТЬNULL(ИнформацияПоПроектам.Ссылка, ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка)) КАК Проект,
        ЕСТЬNULL(ИнформацияПоПроектам.СтатусПроекта, ЗНАЧЕНИЕ(Перечисление.упоСостояниеСтатусаПроекта.ПустаяСсылка)) КАК СтатусПроекта,
        ЕСТЬNULL(ЗначенияСвойствОбъектов_СтадияПроекта.Значение, ЗНАЧЕНИЕ(Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка)) КАК СтадияПроекта,
        ЕСТЬNULL(ИнформацияПоПроектам.ПортфельПроектов, ЗНАЧЕНИЕ(Справочник.упоПортфелиПроектов.ПустаяСсылка)) КАК ПортфельПроектов,
        ЕСТЬNULL(ИнформацияПоПроектам.ПрограммаПроектов, ЗНАЧЕНИЕ(Справочник.упоПрограммыПроектов.ПустаяСсылка)) КАК ПрограммаПроекта,
        ЕСТЬNULL(ИнформацияПоПроектам.ДатаНачала, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаНачалаВыполненияПроекта,
        ЕСТЬNULL(ИнформацияПоПроектам.МенеджерПроекта, ЗНАЧЕНИЕ(Справочник.упоСотрудники.ПустаяСсылка)) КАК МенеджерПроекта,
        ЕСТЬNULL(ИнформацияПоПроектам.ЭкономистПроекта, ЗНАЧЕНИЕ(Справочник.упоСотрудники.ПустаяСсылка)) КАК ЭкономистПроекта,
        ЕСТЬNULL(ЗначенияСвойствОбъектов_ББ_ПО_ДОП.Значение, ЗНАЧЕНИЕ(Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка)) КАК ББ_ПО_ДОП,
        ЕСТЬNULL(ЗначенияСвойствОбъектов_КонечныйПользователь.Значение, ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)) КАК КонечныйПользователь,
        ЕСТЬNULL(ЗначенияСвойствОбъектов_ДатаЗ.Значение, ДАТАВРЕМЯ(1, 1, 1)) КАК ДоговорнаяДатаЗ,
        ЕСТЬNULL(ИнформацияПоПроектам.Наименование, ВЫРАЗИТЬ("" КАК СТРОКА(150))) КАК НомерПроекта,
        1 КАК ДляФильтра,
        ЕСТЬNULL(КоличествоРазныхПроектовУДоговора.Ссылка, 0) КАК КоличествоРазныхДоговоров,
        ДоговорыКонтрагентов.Наименование КАК Наименование,
        ЕСТЬNULL(ОсновнойДоговор.ОсновнойДоговорКонтрагента, ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)) КАК ОсновнойДоговор
    ИЗ
        Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов_Тема
            ПО (ДоговорыКонтрагентов.Ссылка = (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов_Тема.Объект КАК Справочник.ДоговорыКонтрагентов)))
                И (НЕ ДоговорыКонтрагентов.ПометкаУдаления)
                И (ЗначенияСвойствОбъектов_Тема.Свойство = &ТемаДоговораСвойство)
                И (ВЫБОР
                    КОГДА НЕ &Режим
                        ТОГДА ДоговорыКонтрагентов.Ссылка = &Договор
                    ИНАЧЕ ИСТИНА
                КОНЕЦ)
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов_ТипДоговора
            ПО (ЗначенияСвойствОбъектов_ТипДоговора.Свойство = &СвойствоТипДоговора)
                И (ДоговорыКонтрагентов.Ссылка = (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов_ТипДоговора.Объект КАК Справочник.ДоговорыКонтрагентов)))
                И (НЕ ДоговорыКонтрагентов.ПометкаУдаления)
                И (ВЫБОР
                    КОГДА НЕ &Режим
                        ТОГДА ДоговорыКонтрагентов.Ссылка = &Договор
                    ИНАЧЕ ИСТИНА
                КОНЕЦ)
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов_ОтветственныйЗаДоговор
            ПО (ДоговорыКонтрагентов.Ссылка = (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов_ОтветственныйЗаДоговор.Объект КАК Справочник.ДоговорыКонтрагентов)))
                И (ЗначенияСвойствОбъектов_ОтветственныйЗаДоговор.Свойство = &СвойствоответственныйЗаДоговор)
                И (НЕ ДоговорыКонтрагентов.ПометкаУдаления)
                И (ВЫБОР
                    КОГДА НЕ &Режим
                        ТОГДА ДоговорыКонтрагентов.Ссылка = &Договор
                    ИНАЧЕ ИСТИНА
                КОНЕЦ)
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов_ПродуктовоеНаправление
            ПО (ДоговорыКонтрагентов.Ссылка = (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов_ПродуктовоеНаправление.Объект КАК Справочник.ДоговорыКонтрагентов)))
                И (ЗначенияСвойствОбъектов_ПродуктовоеНаправление.Свойство = &СвойствоПродуктовоеНаправление)
                И (НЕ ДоговорыКонтрагентов.ПометкаУдаления)
                И (ВЫБОР
                    КОГДА НЕ &Режим
                        ТОГДА ДоговорыКонтрагентов.Ссылка = &Договор
                    ИНАЧЕ ИСТИНА
                КОНЕЦ)
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов_ББ_ПО_ДОП
                ПО (ЗначенияСвойствОбъектов_ББ_ПО_ДОП.Свойство = &СвойствоЗаказаББ)
                    И (ЗаказПокупателя.Ссылка = (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов_ББ_ПО_ДОП.Объект КАК Документ.ЗаказПокупателя)))
                    И (ЗаказПокупателя.Дата <= &Дата)
                    И (ЗаказПокупателя.Проведен)
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов_КонечныйПользователь
                ПО (ЗаказПокупателя.Ссылка = (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов_КонечныйПользователь.Объект КАК Документ.ЗаказПокупателя)))
                    И (ЗначенияСвойствОбъектов_КонечныйПользователь.Свойство = &СвойствоКонечныйПользователь)
                    И (ЗаказПокупателя.Проведен)
                    И (ЗаказПокупателя.Дата <= &Дата)
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                    Проекты.Ссылка КАК Ссылка,
                    Проекты.ДатаНачала КАК ДатаНачала,
                    Проекты.ПрограммаПроектов КАК ПрограммаПроектов,
                    Проекты.ПортфельПроектов КАК ПортфельПроектов,
                    упоСтатусыПроектовСрезПоследних.СтатусПроекта КАК СтатусПроекта,
                    ЗначенияСвойствОбъектов_МенеджерПроекта.Значение КАК МенеджерПроекта,
                    ЗначенияСвойствОбъектов_ЭП.Значение КАК ЭкономистПроекта,
                    Проекты.Наименование КАК Наименование
                ИЗ
                    (ВЫБРАТЬ
                        МАКСИМУМ(Проекты.Ссылка) КАК Ссылка
                    ИЗ
                        Документ.ЗаказПокупателя КАК ЗаказПокупателя
                            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Проекты КАК Проекты
                            ПО (Проекты.Родитель = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка))
                                И (ЗаказПокупателя.Проект = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка)
                                И (ЗаказПокупателя.Проведен)
                                И (ЗаказПокупателя.Дата <= &Дата)
                                И (НЕ ЗаказПокупателя.Проект = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка))
                                И (НЕ Проекты.ПометкаУдаления)
                    
                    СГРУППИРОВАТЬ ПО
                        ЗаказПокупателя.ДоговорКонтрагента) КАК ВложенныйЗапрос
                        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Проекты КАК Проекты
                            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.упоСтатусыПроектов.СрезПоследних(&Дата, ) КАК упоСтатусыПроектовСрезПоследних
                            ПО (упоСтатусыПроектовСрезПоследних.Проект = Проекты.Ссылка)
                                И (НЕ Проекты.ПометкаУдаления)
                            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов_МенеджерПроекта
                            ПО (ЗначенияСвойствОбъектов_МенеджерПроекта.Свойство = &СвойствоМП)
                                И (Проекты.Ссылка = (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов_МенеджерПроекта.Объект КАК Справочник.Проекты)))
                                И (НЕ Проекты.ПометкаУдаления)
                            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов_ЭП
                            ПО (Проекты.Ссылка = (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов_ЭП.Объект КАК Справочник.Проекты)))
                                И (ЗначенияСвойствОбъектов_ЭП.Свойство = &СвойствоПроектаЭП)
                                И (НЕ Проекты.ПометкаУдаления)
                        ПО ВложенныйЗапрос.Ссылка = Проекты.Ссылка
                            И (НЕ Проекты.ПометкаУдаления)
                ГДЕ
                    Проекты.Родитель = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка)
                    И НЕ Проекты.ПометкаУдаления
                    И НЕ Проекты.Ссылка ЕСТЬ NULL ) КАК ИнформацияПоПроектам
                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов_ДатаЗ
                    ПО (ИнформацияПоПроектам.Ссылка = (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов_ДатаЗ.Объект КАК Справочник.Проекты)))
                        И (ЗначенияСвойствОбъектов_ДатаЗ.Свойство = &СвойствоДатаЗ)
                ПО (ЗаказПокупателя.Дата <= &Дата)
                    И (ЗаказПокупателя.Проведен)
                    И (ЗаказПокупателя.Проект = ИнформацияПоПроектам.Ссылка
                        ИЛИ ЗаказПокупателя.Проект.Родитель = ИнформацияПоПроектам.Ссылка
                        ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель = ИнформацияПоПроектам.Ссылка
                        ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель = ИнформацияПоПроектам.Ссылка
                        ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель = ИнформацияПоПроектам.Ссылка
                        ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель = ИнформацияПоПроектам.Ссылка
                        ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = ИнформацияПоПроектам.Ссылка
                        ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = ИнформацияПоПроектам.Ссылка)
                    И (НЕ ЗаказПокупателя.Проект = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка))
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                    МАКСИМУМ(ЗаказПокупателя.Ссылка) КАК ЗаказПокупателяСсылка
                ИЗ
                    Документ.ЗаказПокупателя КАК ЗаказПокупателя
                ГДЕ
                    ЗаказПокупателя.Проведен
                    И НЕ ЗаказПокупателя.Проект.ПометкаУдаления
                    И НЕ ЗаказПокупателя.Проект = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка)
                    И НЕ ЗаказПокупателя.ДоговорКонтрагента.ПометкаУдаления
                
                СГРУППИРОВАТЬ ПО
                    ЗаказПокупателя.ДоговорКонтрагента) КАК ЗаказыПокупателейОдинДоговор
                ПО ЗаказПокупателя.Ссылка = ЗаказыПокупателейОдинДоговор.ЗаказПокупателяСсылка
            ПО ДоговорыКонтрагентов.Ссылка = ЗаказПокупателя.ДоговорКонтрагента
                И (ЗаказПокупателя.Проведен)
                И (ЗаказПокупателя.Дата <= &Дата)
                И (НЕ ЗаказПокупателя.Проект = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка))
                И (НЕ ДоговорыКонтрагентов.ПометкаУдаления)
                И (ВЫБОР
                    КОГДА НЕ &Режим
                        ТОГДА ДоговорыКонтрагентов.Ссылка = &Договор
                    ИНАЧЕ ИСТИНА
                КОНЕЦ)
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов_СтадияПроекта
            ПО (ДоговорыКонтрагентов.Ссылка = (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов_СтадияПроекта.Объект КАК Справочник.ДоговорыКонтрагентов)))
                И (ЗначенияСвойствОбъектов_СтадияПроекта.Свойство = &СвойствоСтадииПроекта)
                И (НЕ ДоговорыКонтрагентов.ПометкаУдаления)
                И (ВЫБОР
                    КОГДА НЕ &Режим
                        ТОГДА ДоговорыКонтрагентов.Ссылка = &Договор
                    ИНАЧЕ ИСТИНА
                КОНЕЦ)
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                ЗаказПокупателя.ДоговорКонтрагента КАК ДоговорКонтрагента,
                КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Проекты.Ссылка) КАК Ссылка
            ИЗ
                Документ.ЗаказПокупателя КАК ЗаказПокупателя
                    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Проекты КАК Проекты
                    ПО (Проекты.Родитель = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка))
                        И (ЗаказПокупателя.Проект = Проекты.Ссылка
                            ИЛИ ЗаказПокупателя.Проект.Родитель = Проекты.Ссылка
                            ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель = Проекты.Ссылка
                            ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель = Проекты.Ссылка
                            ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка
                            ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка
                            ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка
                            ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка
                            ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка)
                        И (НЕ Проекты.ПометкаУдаления)
                        И (ЗаказПокупателя.Проведен)
            
            СГРУППИРОВАТЬ ПО
                ЗаказПокупателя.ДоговорКонтрагента) КАК КоличествоРазныхПроектовУДоговора
            ПО ДоговорыКонтрагентов.Ссылка = КоличествоРазныхПроектовУДоговора.ДоговорКонтрагента
                И (НЕ ДоговорыКонтрагентов.ПометкаУдаления)
                И (ВЫБОР
                    КОГДА НЕ &Режим
                        ТОГДА ДоговорыКонтрагентов.Ссылка = &Договор
                    ИНАЧЕ ИСТИНА
                КОНЕЦ)
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
                ВЫРАЗИТЬ(КатегорииОбъектов.Объект КАК Справочник.ДоговорыКонтрагентов) КАК Договор
            ИЗ
                РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
            ГДЕ
                КатегорииОбъектов.Категория В(&Категории)
                И НЕ ВЫРАЗИТЬ(КатегорииОбъектов.Объект КАК Справочник.ДоговорыКонтрагентов).ПометкаУдаления
                И ВЫБОР
                        КОГДА НЕ &Режим
                            ТОГДА (ВЫРАЗИТЬ(КатегорииОбъектов.Объект КАК Справочник.ДоговорыКонтрагентов)) = &Договор
                        ИНАЧЕ ИСТИНА
                    КОНЕЦ
            
            СГРУППИРОВАТЬ ПО
                ВЫРАЗИТЬ(КатегорииОбъектов.Объект КАК Справочник.ДоговорыКонтрагентов)) КАК КатегорииДоговоров
            ПО ДоговорыКонтрагентов.Ссылка = КатегорииДоговоров.Договор
                И (НЕ ДоговорыКонтрагентов.ПометкаУдаления)
                И (ВЫБОР
                    КОГДА НЕ &Режим
                        ТОГДА ДоговорыКонтрагентов.Ссылка = &Договор
                    ИНАЧЕ ИСТИНА
                КОНЕЦ)
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                ВЫРАЗИТЬ(КатегорииОбъектов.Объект КАК Справочник.ДоговорыКонтрагентов) КАК Объект,
                ВЫБОР
                    КОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПокупателя.ДоговорКонтрагента) = 1
                        ТОГДА МАКСИМУМ(ЗаказПокупателя.ДоговорКонтрагента)
                    ИНАЧЕ ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
                КОНЕЦ КАК ОсновнойДоговорКонтрагента
            ИЗ
                РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
                    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
                        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
                        ПО ЗаказПоставщику.ДокументОснование = ЗаказПокупателя.Ссылка
                            И (ЗаказПокупателя.Проведен)
                    ПО ((ВЫРАЗИТЬ(КатегорииОбъектов.Объект КАК Справочник.ДоговорыКонтрагентов)) = ЗаказПоставщику.ДоговорКонтрагента)
                        И (НЕ ВЫРАЗИТЬ(КатегорииОбъектов.Объект КАК Справочник.ДоговорыКонтрагентов).ПометкаУдаления)
                        И (ЗаказПоставщику.Проведен)
                        И (КатегорииОбъектов.Категория В (&Категории))
            
            СГРУППИРОВАТЬ ПО
                ВЫРАЗИТЬ(КатегорииОбъектов.Объект КАК Справочник.ДоговорыКонтрагентов)) КАК ОсновнойДоговор
            ПО ДоговорыКонтрагентов.Ссылка = ОсновнойДоговор.Объект
    ГДЕ
        НЕ ДоговорыКонтрагентов.ПометкаУдаления
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        РТС_КарточкаДоговоров.ДоговорКонтрагента,
        РТС_КарточкаДоговоров.Контрагент,
        РТС_КарточкаДоговоров.Номер,
        РТС_КарточкаДоговоров.Дата,
        ВЫРАЗИТЬ(РТС_КарточкаДоговоров.ТемаДоговора КАК СТРОКА(500)),
        РТС_КарточкаДоговоров.СрокДействия,
        РТС_КарточкаДоговоров.ТипДоговора,
        РТС_КарточкаДоговоров.ОтветственныйЗаДоговор,
        РТС_КарточкаДоговоров.ПродуктовоеНаправление,
        РТС_КарточкаДоговоров.Проект,
        РТС_КарточкаДоговоров.СтатусПроекта,
        РТС_КарточкаДоговоров.СтадияПроекта,
        РТС_КарточкаДоговоров.ПортфельПроектов,
        РТС_КарточкаДоговоров.ПрограммаПроекта,
        РТС_КарточкаДоговоров.ДатаНачалаВыполненияПроекта,
        РТС_КарточкаДоговоров.МенеджерПроекта,
        РТС_КарточкаДоговоров.ЭкономистПроекта,
        РТС_КарточкаДоговоров.ББ_ПО_ДОП,
        РТС_КарточкаДоговоров.КонечныйПользователь,
        РТС_КарточкаДоговоров.ДоговорнаяДатаЗ,
        РТС_КарточкаДоговоров.НомерПроекта,
        -1,
        ЕСТЬNULL(ВложенныйЗапрос.Проект, 0),
        РТС_КарточкаДоговоров.Наименование,
        РТС_КарточкаДоговоров.ОсновнойДоговор
    ИЗ
        Справочник.РТС_КарточкаДоговоров КАК РТС_КарточкаДоговоров
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                РТС_КарточкаДоговоровПроектыДоговора.Ссылка КАК Ссылка,
                КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РТС_КарточкаДоговоровПроектыДоговора.Проект) КАК Проект
            ИЗ
                Справочник.РТС_КарточкаДоговоров.ПроектыДоговора КАК РТС_КарточкаДоговоровПроектыДоговора
            
            СГРУППИРОВАТЬ ПО
                РТС_КарточкаДоговоровПроектыДоговора.Ссылка) КАК ВложенныйЗапрос
            ПО РТС_КарточкаДоговоров.Ссылка = ВложенныйЗапрос.Ссылка
    ГДЕ
        &Режим) КАК ВложенныйЗапрос

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.ТипДоговора,
    ВложенныйЗапрос.ПортфельПроектов,
    ВложенныйЗапрос.ДатаНачалаВыполненияПроекта,
    ВложенныйЗапрос.МенеджерПроекта,
    ВложенныйЗапрос.ЭкономистПроекта,
    ВложенныйЗапрос.ББ_ПО_ДОП,
    ВложенныйЗапрос.КонечныйПользователь,
    ВложенныйЗапрос.ДоговорнаяДатаЗ,
    ВложенныйЗапрос.НомерПроекта,
    ВложенныйЗапрос.ДоговорКонтрагента,
    ВложенныйЗапрос.Контрагент,
    ВложенныйЗапрос.Проект,
    ВложенныйЗапрос.СтатусПроекта,
    ВложенныйЗапрос.ПродуктовоеНаправление,
    ВложенныйЗапрос.ОтветственныйЗаДоговор,
    ВложенныйЗапрос.СтадияПроекта,
    ВложенныйЗапрос.ТемаДоговора,
    ВложенныйЗапрос.Дата,
    ВложенныйЗапрос.Номер,
    ВложенныйЗапрос.СрокДействия,
    ВложенныйЗапрос.Наименование,
    ВложенныйЗапрос.ОсновнойДоговор

ИМЕЮЩИЕ
    СУММА(ВложенныйЗапрос.ДляФильтра) > 0
31 Lama12
 
18.09.13
11:07
(29) С трассировкой в SQL сложно. Точнее, до нее буду опускаться если и временные таблицы не помогут.
32 KeyKB
 
18.09.13
11:08
Вообщем два одинаковых вложенных запроса будут выполняться много раз, и данные могут отличаться. Что бы этого избежать, надо использовать "управляемые блокировки", но соответственно никто не сможет с этими таблицами работать
33 KeyKB
 
18.09.13
11:09
Гыыыыыы

                                И (ЗаказПокупателя.Проект = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = Проекты.Ссылка)
34 KeyKB
 
18.09.13
11:09
Думай как оптимизировать запрос
Тут оптимизации непочатый край
35 Lama12
 
18.09.13
11:11
(33) А как еще связать по вхождению?  По условию "Входит" связь не делается :)
36 Odavid
 
18.09.13
11:11
(13)>>Грязное чтение. Идет запись данных в базу в транзакции. Транзакция еще не закрыта. Но запросами эти данные уже читаются.
это как раз особенности 3хзвеной архитектуры.
Это не "грязное" чтение, а запрос на чтение данных опережает завершение транзакции на SQL-сервере, т.к. 1с пользует NOLOCK, игнорирующее все блокировки напрочь.
По идее, НачатьТранзакцию в отчете должно согласовываться с 1совым же перепроведением докумнета (движения по которому тоже в транзакции) на уровне 1С-сервера еще, но насколько надежно это работает..
Т.е., получается, ПОЧТИ работает, но далеко не всегда...
37 KeyKB
 
18.09.13
11:12
ЗаказПокупателя.Проект В ИЕРАРХИИ(Проекты.Ссылка)
38 Lama12
 
18.09.13
11:13
(37) В Иерархии в условиях связи использовать нельзя.
39 KeyKB
 
18.09.13
11:14
только этим действием процентов 5 скорости выйграешь.
Вообще обращение через точку в запросе очень тяжелое.
40 KeyKB
 
18.09.13
11:14
Можно
41 Lama12
 
18.09.13
11:15
(39) Знаю :(
А что делать?
Ладно, попробую сейчас по максимуму использовать физические таблицы.
(40) Может что-то изменилось с 8.1, но если так, то это здорово.
42 KeyKB
 
18.09.13
11:16
Укажи связь, как произвольное выражение и напиши

ЗаказПокупателя.Проект В ИЕРАРХИИ(Проекты.Ссылка)

Возвращаемое значение булево, для связи хватит - должно работать.
43 MKZM
 
18.09.13
11:17
(36) Не понял. "это как раз особенности 3хзвеной архитектуры". В середине 90 было модно писать трехзвенки. И сам грешен был, но такой особенности не замечал.
44 ASU_Diamond
 
18.09.13
11:18
(36) в иерархии?
45 Lama12
 
18.09.13
11:19
(42) Не дает. http://imagebin.org/271244
46 МуМу
 
18.09.13
11:20
(0) Вопрос слишком общий, в чем проблема то?
47 Lama12
 
18.09.13
11:21
(46) В (18) :)
48 KeyKB
 
18.09.13
11:23
Тока хотел написать попробуй "В"
49 Odavid
 
18.09.13
11:24
Здесь не совсем чистое "грязное" чтение.
Со стороны 1С-сервера есть иммитация блокировки таблиц (НачатьТранзакцию), и он же и должен в первую очередь ослеживать пересечения обращений к данным.
Т.е. никакого "грязного" чтения для ИБ на строне 1С-сервера нет.
А получается - даже если поставить в транзакции запись (причем только перепроведение документа дает такой эффект) на документ и транзакцию на чтение данных в отчет - это не даст 100% гарантии блокировок.
Потому как со ст ороны SQL - да, чистое "грязное" чтение без учета наложенных блокировок.
Поэтому и есть очередная шизофрения 1С:
- обращение в техподдержку дает ответ "используйте транзакцию" - и они правы, если смотреть со стороны 1Сс-сервера (а все оветы 1С затрагивают всегда и исключительно положение на 1Сс-сервере). Транзакция должна работать.
- однако, на SQL в силу непонятной реализации этих "транзакций" на 1С-сервере, происходит именно СПЕЦИАЛЬНО указанное "грязное" чтение.
Откуда и расхождения.
Т.е. они или могут быть, или могут не быть - при прочих равных.
50 KeyKB
 
18.09.13
11:24
Теперь всё, что у тебя делается несколько раз, загоняй во временные  таблицы.
51 МихаилМ
 
18.09.13
11:26
конечно нужно проверять,
но такой запрос сама 1с может разбить на части.
т.к. нарушена куча правил написания запросов сам оптимизатор плана может понизить уровень изоляции тк для запроса, который выполняется час держать час блокировки не гуд.

вест текст не осилил, но если в объединениях используются одинаковые таблицы и используется скл >=2008 этот запрос должен работать вечно если не отключен параллелизм.
52 Odavid
 
18.09.13
11:26
(3), (9) Кому из студентов что не ясно??
53 MKZM
 
18.09.13
11:26
(49) А теперь по-русски и с интонацией. Ничего не понял.
54 МихаилМ
 
18.09.13
11:27
(31)
я просил не флаги трассировки, а не листинги.
55 Odavid
 
18.09.13
11:28
(51) данный вопрос не стоит выеденного яйца.
Запрос разбить на части и все вложенные - загнать во временные таблицы.
Где возможно - использовать виртуальные.
Но по блокировкам это никакого отношения не имеет, разве что - будет другой запрос, будет другой и лпан выполнения этого запроса на SQL.
Но таблицы, блокировки и данные останутся прежними.
56 Odavid
 
18.09.13
11:29
(53) что непонятно??
по пунктам.
57 Odavid
 
18.09.13
11:30
(51)Ююэтот запрос должен работать вечно
это почему еще?!
58 МихаилМ
 
18.09.13
11:34
(57)
из-за взаимоблокировок.
в скл 2000,2005

выдавалась ошибка "intra query parallelism"

в скл 2008 запрос выполняется бесконечно долго.
59 MKZM
 
18.09.13
11:35
(56) Слова знакомые. Смысл не улавливаю. Напиши проще. 1с читает то то и то то, вредительски меняет так-то и выдает что-то еще.
60 Odavid
 
18.09.13
11:39
(59) скажи, где непонятно.
В какой строчке.
61 Odavid
 
18.09.13
11:39
там все подробно и разжеванно написано ))
62 Odavid
 
18.09.13
11:40
(58)>>из-за взаимоблокировок.
если вы про деадлоки, то это не совсем "взаимоблокировки".
Речь об этом?
63 Дык ё
 
18.09.13
11:57
(62) > если вы про деадлоки, то это не совсем "взаимоблокировки".

ржу в голос :D
64 Ёпрст
 
18.09.13
11:57
(63) не спугни, я еще не всё узнал про трехзвенку..
65 Ёпрст
 
18.09.13
11:58
ЗЫ: можно сообщение в (30) не скрывать ? А то текст запроса "перекосило" - ничего не видать там теперь.
66 МихаилМ
 
18.09.13
12:10
(62)
в скл 2000,2005 - deadlocks

в скл версии > 2005  - скорее всего нет. возможно зависит от уровня совместимости.
67 Salimbek
 
18.09.13
12:12
68 Ёпрст
 
18.09.13
12:21
(67) ага, так видно.. что вот это
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Проекты КАК Проекты
                            ПО (Проекты.Родитель = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка))
                                И (ЗаказПокупателя.Проект = Проекты.Ссылка
                                    ИЛИ ЗаказПокупателя.Проект.Родитель = Проекты.Ссылка

полный пэ...
69 mistеr
 
18.09.13
12:29
А я вот (13) не верю. Пруф можно?
70 Salimbek
 
18.09.13
12:47
(68) Да там много... "пердимоноклей", я, честно говоря, даже вдумываться не стал.
Но, для любителей пооптимизировать код, вот запросец, работает 10 минут: http://pastebin.com/2EYuA5ue
71 Salimbek
 
18.09.13
12:48
+(70) Там Понедельник-Воскресенье ресурсы, остальное Измерения. В базе всего 800к записей.
72 Lama12
 
18.09.13
12:48
(68) Связь по справочнику Проекты. Но только по условию вхождения элементов в группы.
73 fisher
 
18.09.13
13:12
(0) Грязное чтение (read uncommited) используется только вне транзакций. В транзакциях - в зависимости от типа транзакции (автоматическая/управляемая).
В управляемых - read commited.
Да, этот уровень не гарантирует актуальность прочитанных данных. Если это критично, то это должны гарантировать правильно наложенные управляемые блокировки.
Повторяемость чтения гарантируется в транзакциях с автоматическими блокировками.
74 Odavid
 
18.09.13
13:22
(63) а что вы еще можете? компенсируете невежество ржанием.
75 Odavid
 
18.09.13
13:24
(73)>>Повторяемость чтения гарантируется в транзакциях с автоматическими блокировками.
не гарантируется. Т.к. здесь важна не "повторяемость чтения", а порядок чтения одним пользователем данных и перезаписи этих же данных совсем другого процесса и пользователя.
76 Odavid
 
18.09.13
13:28
(73)>>В транзакциях - в зависимости от типа транзакции (автоматическая/управляемая).
что за "управляемая транзакция" в 1С??
Если далее по тексту "...Если это критично, то это должны гарантировать правильно наложенные управляемые блокировки."
77 Maxus43
 
18.09.13
13:29
(74) От вас тоже только голословные утверждения, без каких-то примеров или фактов. Ничем не лучше
78 fisher
 
18.09.13
13:31
(75) Нифига не понял.
(76) Имелась в виду транзакция с режимом управляемых блокировок.
79 Odavid
 
18.09.13
13:32
Транзакция - в 1С одна, и вид у неё один. А вот режимов управления блокировками - два.
Причем если переключать режим в транзакции с "автоматического" на "управляемый" - прокатывает, наоборот, с "управляемого" на "автоматический" - вызывается исключение (сиречь ошибка).
И управляемые блокировки - мало того, что нужно полностью переписать всю конфу (все проведения, чтения и т.д. из базы) с учетом управляемых блокировок, так еще это нужно сделать так, чтобы таким образом наложенные блокировки не привели к существенно большим тормозам или вообще к деадлокам.
80 Odavid
 
18.09.13
13:33
(78) 2) ну тогда да, что я и расписал в ( 79) ))
1) вы тоже не разделяете 1С-архитектуру на три разных малосвязанных звена? ))
81 fisher
 
18.09.13
13:33
(79) Писательский талант проснулся?
82 Odavid
 
18.09.13
13:34
(77) кому надо - давно уже прочитали и примеры, и факты. И не спорят.
А кому невежество милее - постят всякую ахинею под лозунгом "1С - это круто!" )))
83 Odavid
 
18.09.13
13:35
(81) о чем вы?
84 Odavid
 
18.09.13
13:35
Про 1С - тут другой талант работает.
85 fisher
 
18.09.13
13:37
(83) Я попытался ответить ТС на его вопросы. Что хотел ты - я не понял. Выговориться, наверное.
86 Odavid
 
18.09.13
13:40
(85) восьмерошный так называемый "сервер" работает криво и практически без связи по управлению данными с SQL-сервером (по тем же блокировкам, неустановка хинтов и т.д.)
87 Odavid
 
18.09.13
13:41
Так понятно?
Хотя сейчас набегут "1С - это круто!" расстаскивать это мое сообщение на цитаты )))
Так как более емкое и "сложное" ими не осилилось ))
88 fisher
 
18.09.13
13:42
(86) Спасибо. Бесценная информация.
89 Odavid
 
18.09.13
13:46
(88) пожалуйста.
Только непонятно, зачем было писать "Что хотел ты - я не понял." ))
Раз и так согласен.
90 fisher
 
18.09.13
13:52
Понимание - это дар.
92 MM
 
18.09.13
13:54
(86) и все пользователи и покупатели 1С это терпят и платят? :-О Или кто-нибудь подал в суд на разработчиков и у него есть факты достаточные, чтобы обосновать злой умысел или упущенную выгоду?
А хинты так, вообще, без необходимости ставить не рекомендуется.
93 КонецЦикла
 
18.09.13
13:55
(69) http://technet.microsoft.com/en-us/library/ms187373.aspx
http://technet.microsoft.com/en-us/library/ms173763.aspx

Если лень читать, то вот перевод

"Указывает, что заявления может прочитать строки , которые были изменены другими транзакциями , но еще не были зафиксированы ."
94 MKZM
 
18.09.13
13:56
У Марка твена есть повесть путешествие в европу, так там был один персонаж, как звать забыл, но как-то по-американски, так вот, он считал, что может убедить любого и действительно, он подходил к любому, брался за пуговицу сюртука собеседника и начинал чтьо-то бубнить совершенно непонятное, собеседник, ничего не понимая и чувствуя неприятный запах изо рта, быстренько соглашается и уходит.
95 Odavid
 
18.09.13
13:57
(92)>>и все пользователи и покупатели 1С это терпят и платят?
да.
а куда деваться? Игла она и есть игла.
>>А хинты так, вообще, без необходимости ставить не рекомендуется
ну вот 1С и пошла по пути" а зачем?!", почему и меем в результате все то, что описано здесь, и плюс еще масса "удовольствий" при работе в 1С.
96 Odavid
 
18.09.13
13:58
(91)>. когда ж тебя забанят уже?
будь моя воля, я бы банил всех неофитов. Чтобы темы не изгаживали своим "1С - это круто!!!"
Как сказал - получил бан.
97 Spieluhr
 
18.09.13
13:58
(94) +100500
98 Odavid
 
18.09.13
13:59
(93) и что?
все уже расписали. А я еще и разжевал.
103 Cyberhawk
 
18.09.13
14:06
Odavid, поделитесь, пож-та, источником ваших знаний про транзакции, блокировки и все такое (Я не в теме, за что тут на вас ополчаются, спрашиваю искренне) - аль статейки или книжки, или дока и пофигуратор
104 Odavid
 
18.09.13
14:08
(103)>>аль статейки или книжки, или дока и пофигуратор
вы сколько 1С занимаетесь, чтобы спрашивать про "книжки, где все написано про 1С"? ))
А все остальное - опыт, форумы, MSDN, снова форумы, и опять опыт...
105 MM
 
18.09.13
14:09
(103) я тоже хотел бы узнать это "тайное знание", но нам его не покажут. )
106 Odavid
 
18.09.13
14:11
(103)вот, например, СофтПоинт пишет тоже самое - вы верите Софтпойнту? Это не книжка от 1С, скорей - просто сообщение кого-то из Софтпойнта. близкое к разговору за пивком ))
Ну, или общению на форуме.
http://www.softpoint.ru/article_prn_id92.htm
107 Odavid
 
18.09.13
14:11
(105) когда научитесь думать сами - все само окроется )))
108 MM
 
18.09.13
14:16
(106) так это всем известно и относится только к отчётам, т.е. запросам вне транзакции. Если нужны точные данные, то добро пожаловать на уровень изоляции READ COMMITED или выше.
109 Salimbek
 
18.09.13
14:26
(106) А в чем проблема то? Если документы перепроводятся, то значит могут измениться данные (а иначе зачем перепроводить). Так что отчет построенный на таких данных является неактуальным и его все равно надо будет переформировывать когда проводильщики уйдут из отчетного периода.
110 Cyberhawk
 
18.09.13
14:29
(104) ну как... просто иногда встречается что-то годное (статейка, ресурс целый аль даже книжка), разве не согласны? Например, годик-два назад наткнулся на "книжку" насфа про обмен затратами в УПП - хорошо вправило мозги. Потому и подумал, что может и по данной теме есть что-нибудь типа "все и сразу для чайников".
А так - да, сообщение на партнерском форуме или коммент к статейке на ИС своею ценностью порой доставляют.
111 Odavid
 
18.09.13
14:30
(108) >.Если нужны точные данные, то добро пожаловать на уровень изоляции
читатйте внимательно, это относится ко всему. И к отчетам, и записи.
112 Odavid
 
18.09.13
14:31
(109) >>Если документы перепроводятся, то значит могут измениться данные (а иначе зачем перепроводить)
- проблема в том, что пользователь получает в отчете ЧАСТИЧНО проведенные данные.
113 Odavid
 
18.09.13
14:33
(110)>>годик-два назад наткнулся на "книжку" насфа про обмен затратами в УПП
ну тогда вам в клуб поклонников Фарита ))
>>хорошо вправило мозги
ну да, это и есть метода обучения 1С - не рассказывать, но думали чтоб именно так, как сказали.
114 Odavid
 
18.09.13
14:35
(110)>>что может и по данной теме есть что-нибудь типа "все и сразу для чайников".
сейчас даже сообщения о том, что скрывают "правду" о сокрытии подноготной в 1С - стирают на форумах ))
115 MM
 
18.09.13
14:38
(111) запись всегда происходит в транзакции, и в http://www.softpoint.ru/article_prn_id92.htm ничего про искажение записываемых данных нет, только про безответственное чтение.
(112) это должен учитывать разработчик отчёта. В 8.3 используют SNAPSHOT ISOLATION значит будут прибирать за конфигураторщиками.
116 Cyberhawk
 
18.09.13
14:39
(113) Да какой там клуб - просто прочел, потыкал, въехал. Быстро и легко, так сказать. Нужно будет поглубже въехать - будет уже точка опоры, откуда отталкиваться. Мозги никто не отменял :)
(114) Ужас какой...
117 Odavid
 
18.09.13
14:39
(115) >>ничего про искажение записываемых данных нет
Об этом незашоренные одноэсники говорят а ж с 2005 года - как только 1С8 попала в "боевые" условия.
Т.е. работать стали на ней, а не книжки читать ))
118 MM
 
18.09.13
14:42
(117) что говорят? Про применение UNCOMITTED READ для безответственного чтения, это есть в документации.
119 MKZM
 
18.09.13
14:44
(106) Попробовал сделать как там указано - полная херня. Все выводится как и ожидалось, а именно правильно.
120 MKZM
 
18.09.13
14:46
(117) А вы батенька фантазер!
121 Odavid
 
18.09.13
14:47
(115)>>В 8.3 используют SNAPSHOT ISOLATION
- не в этом ли корень новых тормозов в 8.3, с которыми столкнулись последователи лозунга "а че, новый релиз же финальный!"
>>значит будут прибирать за конфигураторщиками
а причем тут конфигураторщики?! в 1С нет вообще никаких возможностей влиять на SQL.
И я склоняюсь к мысли - потому что сама 1С так и не смогла разобраться с СУБД, на которой "паразитирует" практически )))
122 Odavid
 
18.09.13
14:48
(120) куда мне до вас!
123 Odavid
 
18.09.13
14:49
(118)>.Про применение UNCOMITTED READ для безответственного чтения, это есть в документации
в документации также есть, что 1С не отвечает за выборку данных при одновременном чтении-записи разными процессаами/пользователями??
124 Odavid
 
18.09.13
14:51
(119)>>Попробовал сделать как там указано - полная херня
там просто некий отвлеченный "форумный" пример. Или 1С-сервер "модифицировали"??
Если вы считаете, что проблема, существующая годами, "надуманна" - то ваше право.
Еще можете как-нибудь грязно выругаться, чтобы не выходить из образа одноэсника совсем ))
125 MM
 
18.09.13
14:54
(121) в данном случае это тормоза SQL. Конфигураторщики - это те кто пишут ответственные отчёты забывая про NOLOCK.
(123) если это не указал автор отчёта, перекрыв поведение по умолчанию, оптимизирующее производительность.
(124) если задокументировано, то это не баг, а фича. А мы ждём от вас, именно, архитектурные баги, которые нельзя исправить в следующем релизе.
126 MKZM
 
18.09.13
14:59
(124) Зачем выругаться. Я просто взял документ, распровел его. Сделал отчет - ни каких признаков проведения. Стал проводить документ в отладке и после каждого шага формировал отчет. Пока отладчик не вышел из процедуры никаких признаков проведения не было. В отладчике же было видно как постепенно проводится документ. Как только случился коммит, в отчете появились данные.
127 Odavid
 
18.09.13
15:02
(125)>>в данном случае это тормоза SQL.
ну да, одноэсникам всегда было проще все свалить "на сторону", чем правильно написать платформу/конфу/методику... ))
>>если задокументировано, то это не баг, а фича
так что задокументировано, по-вашему?
>>которые нельзя исправить в следующем релизе.
да-да, одноэсники только и спасаются от полного выхода из строя мантрой "но вот в новом релизе все будет поправлено!" )))
128 Odavid
 
18.09.13
15:03
+ уже 15 лет как это официальное "лекарство" от1С в таких случаях ))
129 Odavid
 
18.09.13
15:04
(126)>>Я просто взял документ, распровел его. Сделал отчет - ни каких признаков проведения.
- нужно ОДНОВРЕМЕННО и записывать, и читать.
Сумеете повторить - получите "дулю" от 1С ))
130 Odavid
 
18.09.13
15:05
(126)>>Как только случился коммит, в отчете появились данные
вся суть - в разрыве механизма "блокировок" в 1С и механизма блокировок данных в SQL.
131 Odavid
 
18.09.13
15:07
>>Как только случился коммит, в отчете появились данные.
NOLOCK не сработал?? ))
132 MKZM
 
18.09.13
15:10
(129) ОДНОВРЕМЕННО и записывать, и читать
Это невозможно чисто физически.
Так как мне получить этот феномен?
133 MM
 
18.09.13
15:10
(126) а запись в один регистр в середине проведения была (пусть это грех)? По-идее после записи, вы увидите результат записи этого регистра, но незаписаные регистры, естественно, в отчёте будут отсутствовать.
(127) Что-то мне подсказывает, что отчёт который будет висеть пока не проведут все документы тоже пользователей не порадует. Предложите альтернативу, если снапшоты недоступны в СУБД.
(125) Напиши сам правильно и одолей их в честной конкуренции. )
Задокументировано чтение вне транзакции.
Про новый релиз я говорю о серьёзных архитектурных ошибках.
134 MKZM
 
18.09.13
15:11
(131) Так так и должно быть на уровне подтвержденного чтения. Что тут не так?
135 MKZM
 
18.09.13
15:13
(133) Вы попробуйте. Я своими глазами убедился, что он фантазирует.
136 MM
 
18.09.13
15:15
(135) софт-пойнт бы не стал фантазировать. А клоун, конечно, всех смешит.
137 МуМу
 
18.09.13
15:19
Удивительно , когда пытаются кого то учить не потратив и часа на собственное обучение. Комментировать даже некоторые опусы не хочется.
Итак, понимаю проблема в (18). Тогда первый причем тут блокировки? Точнее они могут влиять но это легко проверить. Запустите на тестовой среде одним сеансом. Уверен на 99 процентов что время будет таким же. после этого последует вывод что дело не в блокировках.(теоретически это возможно например при отключенной эсколации но деградация не будет в разы, так что это не тот случай)
Не хочу вдаваться в дедуктивный(на самом деле индуктивный) анализ но смысл в том что при прочих равных условиях время отличается за счет времени выполнения запроса на уровне СУБД. (профайлером легко проверить).Структура в Постгри МССКЛ практически одинакова.  Отличие в разы времени выполнения запроса говорит о том что либо план запроса отличается либо структура запроса отличаются. Для начала исключаем первое с помощью сравнения запросов на уровне СУБД(снимем две трассы и сравним).  План запросов может отличаться по различным условиям. Например если статистика не пересчитывалась давно.  В целом надоело мне расписывать все детально - для начала персчитайте статистику(заодно и индексы) на MSSQL. Дальше посмотрим.
138 МуМу
 
18.09.13
15:22
(136). Пока писал сообщение, уже написали про софт-пойнт. А он то здесь причем?
139 MM
 
18.09.13
15:23
В (106) ссылка на статью.
140 Sorm
 
18.09.13
15:23
(0) Уровень изоляции транзакции в процедура(рах) какой?
141 МуМу
 
18.09.13
15:27
(106) А, развеселил пост:)
Odavid , многие статьи в SoftPoint писал я лично. Писал исходя из знаний MSDN но в первую очередь из проводимых экспериментов. То есть на любое мое утверждение у меня всегда найдется эксперимент который его подтвердит. У вас же какая то болтология. Хотите что бы ваши утверждения выглядели убедительно - подтверждайте их примерами.  Иначе, это из серии - "дурак - сам дурак".:)
142 Sorm
 
18.09.13
15:28
(137)++. Просто индексы пускай отребилдит. Можно ещё посмотреть необходимые отсутствующие индексы для базы данных.
143 МуМу
 
18.09.13
15:32
(142) Насчет на достающего индекса это следующий шаг. Справедливо будет в том случае если в постгри в каком то случае индекс важный добавляется а в mssql нет. Но это вряд ли. Структуры очень похожи. Скорее всего план отличается по другой причине. Я ставлю 90 % на неактуальную статистику.По крайней мере это проверить проще всего.  Но к слову , для чистоты эксперимента пересчитывать статистику нужно полностью с fullscan.(это важно)
144 MKZM
 
18.09.13
15:34
(143) Верно. Прежде статистика, а потом можно и дальше смотреть.
145 МуМу
 
18.09.13
15:35
Odavid, интересно под каким ником вы общаетесь в sql.ru ? Но я думаю вы там вообще необщаетесь потому как забанены. На  форуме sql.ru общественность злее. Там на ваши опусы сразу же попросили привести факты в виде tsql скриптов. То есть истина спора рождается в четком примере кода.
146 Salimbek
 
18.09.13
16:24
(145) А сможешь прокомментировать (70)-(71)?
147 Ёпрст
 
18.09.13
16:42
(146)
а так ?



       |ВЫБРАТЬ
        |       ПотребностьПроизводстваСрезПоследних.Продукция,
        |       ПотребностьПроизводстваСрезПоследних.Ингредиент КАК Номенклатура,
        |       ПотребностьПроизводстваСрезПоследних.Характеристика КАК Характеристика,
        |       ПотребностьПроизводстваСрезПоследних.Аналог КАК Аналог,
        |       0 КАК Понедельник,
        |       0 КАК Вторник,
        |       0 КАК Среда,
        |       0 КАК Четверг,
        |       0 КАК Пятница,
        |       0 КАК Суббота,
        |       0 КАК Воскресенье
        |ИЗ
        |       РегистрСведений.ПотребностьПроизводстваПоЗаказам.СрезПоследних(
        |               &дата,
        |              
        |                  Склад = &Склад И Магазин = &СЕ) КАК ПотребностьПроизводстваСрезПоследних

Где
ПотребностьПроизводстваСрезПоследних.Понедельник + ПотребностьПроизводстваСрезПоследних.Вторник +
ПотребностьПроизводстваСрезПоследних.Среда +
ПотребностьПроизводстваСрезПоследних.Четверг +
ПотребностьПроизводстваСрезПоследних.Пятница +
ПотребностьПроизводстваСрезПоследних.Суббота +
ПотребностьПроизводстваСрезПоследних.Воскресенье <> 0
148 Рыжий Лис
 
18.09.13
16:50
(146) Так разные будут результаты. Если последняя запись с 0-ми то с ГДЕ запрос ее вообще не покажет, а с параметром в виртуальной покажет предыдущую.
149 Рыжий Лис
 
18.09.13
16:52
(148) к (147)
150 Ёпрст
 
18.09.13
16:57
(148) ?
151 Ёпрст
 
18.09.13
16:57
хотя, да..
152 Ёпрст
 
18.09.13
16:58
ну так, хоть скорость выполнения проверить.
153 Рыжий Лис
 
18.09.13
17:03
(145) Вызывает вопрос наполнение данными этого регистра. Для чего нужно хранить 0 потребность по всем дням? С точки зрения бизнес-логики это же нет потребности в этой номенклатуре!
Если же перестроить подход невозможно, то что бы ускорить работу этого запроса нужно добавить еще один ресурс ЕстьПотребность и записывать в него Истину при ненулевом значении этих ресурсов. Желательно проиндексировать этот ресурс и в запросе уже использовать простое условие.
154 Salimbek
 
18.09.13
20:51
(152) Скорость выполнения, почему-то остается все так же печальной. А вот если вообще убрать сравнение Суммы с нулем, то выполняется за 4 секунды.
(148) Хм, об этом я тоже не подумал... печаль...
(153) Однако "Промышленное решение", 1С-совместимо и все такое, к тому же на поддержке (пока еще), так что сильно во внутрь не лезем, но уже сильно хочется
155 МуМу
 
18.09.13
21:14
(154) Я в синтаксисе 1С запросов уже немного плаваю, от 1С-а уже отошел,да и вообще от программирования.(срез последних, это группировка по датам в контексте недели?) По TSQL еще подсказал бы. Но в данном случае можно и так сказать в чем дело. При таких объемах путем скана и агрегации по всей таблице запрос обрабатывался бы за 10-20 секунд максимум. Вывод отсюда однозначный - тащится на уровне TSQL вся выборка а потом агрегируется по записи. Значит нужно привести запрос к виду при котором на TSQL делалась основная агрегация. Возможно для этого нужно изменение в структуре. На TSQL подобный запрос пишется не сложно. В 1С ,сходу не скажу.
(148) Объясните суть запроса? Что нужно в конце концов?(только догадываюсь о назначении функции СрезПоследних )
156 МуМу
 
18.09.13
21:16
(155) Завтра спрошу у наших одинэсников, вопрос скорее всего плевый.
157 Salimbek
 
18.09.13
21:25
(155) Еслиб я знал что в головах у некоторых разработчиков.
В общем, это код из обработки проведения документа ПериодическийЗаказВПроизводство. Полный код тут: http://pastebin.com/ABwsREDu
Тормозит больше всего второй запрос.

Я переделал на срез и подсчет суммы, которую укладывал во временную таблицу, а потом на эту временную накладывал условие, что сумма <>0, но в свете (148) это решение некорректно.

З.Ы. Попробовал сформировать Срез с условием только "Понедельник<>0" отработало все за 10 секунд. Может так и придется. объединить 7 запросов с простейшим условием в каждом случае...
158 rbserg
 
18.09.13
21:26
(18)  >> Буду переписывать на временные таблицы.
ну хорошо хоть не слона переписывать. )
159 Salimbek
 
19.09.13
09:09
+(157) Провел еще немного тестов
1. Только Понедельник<>0 - время проведения документа 10 сек.
2. Понедельник+Вторник<>0 - 13 сек.
3. Понедельник+Вторник+Среда<>0 - 22 сек.
4. Понедельник+Вторник+Среда+Четверг<>0 - 35 сек.
5. Понедельник+Вторник+Среда+Четверг+Пятница<>0 - 59 сек.
6. Понедельник+Вторник+Среда+Четверг+Пятница+Суббота<>0 - 89 сек.
7. За все дни - 130 сек.

Все тесты проводились на лок. компе Core i7-3770 32гБ ОЗУ
160 Рыжий Лис
 
19.09.13
09:58
Если судить по коду в (157), то налицо неверно выбран объект для хранения информации, это должен быть оборотный регистр накопления. Но можно оптимизировать и эти запросы. В настоящий момент в регистр каждый раз повторно попадают записи если хотя бы раз по ним был не 0 значение, т.е. со временем количество записей будет все больше и больше. На самом деле же нужно только один раз после отказа от производства этой номенклатуры сделать 0 запись.
Для этого можно использовать перенос условия из параметров виртуальной таблицы в ГДЕ как в (147). Даже если это не ускорит запрос, после перепроведения всех этих документов можно уменьшить количество записей в регистре. А можно убрать условие вообще, это не повлияет на правильность работы приведенного алгоритма, но увеличит количество нулевых записей в регистре.
161 Salimbek
 
19.09.13
11:07
Короче переделал (157) так: http://pastebin.com/QE6StT5C
162 Odavid
 
23.09.13
10:40
(143) пока болтология только у вас.
С умными словами и туманной отсылкой "а я писал статьи на софтпойнт" ))
Все в русле типичного одноэсника ))
>>То есть на любое мое утверждение у меня всегда найдется эксперимент который его подтвердит
- наверняка. И, что важно - совершенно не будет противоречить общеодноэсовым представлениям.
Даже если эти представления "мутировали" со временем в противоположную сторону.
Так причем тут индексы, если речь идет о неправильно полученных данных?
>>На  форуме sql.ru
вот не надо про скл.ру. Подозреваю, как раз именно вас и забанили там за отстаивание "логики" 1С вопреки здравому смыслу.
163 Ёпрст
 
23.09.13
10:41
(162) пиши еще!
164 Ёпрст
 
23.09.13
10:41
Желательно, в пятницу
165 Odavid
 
23.09.13
10:45
(141)>>То есть на любое мое утверждение у меня всегда найдется эксперимент который его подтвердит.
- есть давняя проблема - "несовпадение" блокировок в 1С и в SQL.
Прокомментируйте - с кодом и прочим.
>>Комментировать даже некоторые опусы не хочется.
Да вы и свои не комментируете. Привязались к долгому выполнению, "Тогда первый причем тут блокировки? " - и все, вопрос для вас решен.
Хотя про блокировки - совсем у другом ракурсе проблема.
166 Odavid
 
23.09.13
10:47
(155)>>Я в синтаксисе 1С запросов уже немного плаваю
ну расскажите тогда, как в 1С реализован обмен с SQL, раз в "запросах 1С плаваете". С примерами и кодом. Чтоб однозначно подтвердить свои высказывания.
И какая непосредсвенная связь 1С-запросов и плана в SQL? Тоже ответьте, с примерами и кодом.
167 Sammo
 
23.09.13
11:30
(162) Насколько я помню, герр МуМу и есть софтпоинт, на статью которого Вы и ссылаетесь :)
168 Odavid
 
23.09.13
11:41
(167) там не статья, а лишь информационное сообщение, достойное форума.
О чем я и написал сразу.
"Статьей" это назвали позже ))
>>герр МуМу и есть софтпоинт
так даже и по данной "статье" (авторство которой так и осталось непонятно) - не смогли повторить пример.
Все остальное там - верно. Т.е. не противоречит накопленным знаниям по данной теме.
169 Odavid
 
23.09.13
11:44
(167) куча одноэсников путает 1С-сервер с SQL. Аналогично - куча "скюэльников" не понимает, как такое возможно - SQL делает одно, а нечто на нем "надстроенное" и "типа использующее" - другое, без плотной увязки с SQL.
170 Odavid
 
23.09.13
11:50
(143) кстати, ни разу не видел вас ни в одной теме, где "это SQL виноват!!!"
И где как раз мне и приходилось "защищать цвета" SQL, указывая на разделение 1С-сервера и SQL и автономность клиента-базы от последнего.
Видимо, вы с примерами и кодом доказали, что в 99% ТОРМОЗОВ виноват все-таки SQL??
171 Odavid
 
23.09.13
11:51
+ 170 в темах 1С и при 1С-тормозах, естесственно.
172 Ёпрст
 
23.09.13
11:55
Тааак.. а что там с трехзвенкой еще, не просвятите ?
173 Odavid
 
23.09.13
11:55
(172) ну так это и есть трехзвенка в понимании 1С. Уже все разжевал, осталось в рот положить, видимо ))
174 Fragster
 
модератор
23.09.13
11:56
(172) трехзвенка не нужна, даешь 6ку в массы!
175 Ёпрст
 
23.09.13
11:57
(173) не-не, ничего не понятно еще, в каком месте разжевано ?
Повторите.
176 Odavid
 
23.09.13
11:58
(172) наигрубейшая ошибка 7-ков - путать SQL-ИБ 7.7 и SQL-ИБ 8-ки.
Хотя и в том, и в другом случае - до конца так ничего и не доведено.
Почему я и писал - 1С забросит и 8.х с УФ, и все остальное.
Не может она бежать нра длинные дистанции долго, все норовит срезать да передохнуть ))
177 Odavid
 
23.09.13
11:58
(175) 170 читайте
178 Odavid
 
23.09.13
11:59
(174) почему не 7-ку в массы? Относительно 8-ки - какая разница? ))
179 Sammo
 
23.09.13
12:00
(170) Хм. Если из-за кривой статистики (или кривого запроса) 1с формирует некрасивый план запроса, который зависает - это проблема скуля или рук (1с)? Насколько я понимаю, в 143 речь идет именно про подобные ситуации.
180 Лефмихалыч
 
23.09.13
12:03
(175) от этого персонажа получить внятный ответ или какие-либо обоснования его пустых слов не возможно. Все, что он может - дать ссылку на свой пост, который ни к чему не относится, или дать ссылку на какой-нить совершенно не имеющий отношения к теме внешний ресурс. Проверено.
181 Odavid
 
23.09.13
12:05
(180) ну так ждем от вас ссылок (кроме агиток 1С) на внятное описание - что происходит в платформе 1С ))
Как она с SQL работает, когда-чего там блокируется и происходит, как план запроса формируется...
Я же не против, я только - "за"...
182 Odavid
 
23.09.13
12:09
(179)>> Если из-за кривой статистики (или кривого запроса) 1с формирует некрасивый план запроса, который зависает
сразу три ошибки:
- 1С никак не связана со статистикой распределения значений и по индексам SQL.
- 1С не формирует никакой план запроса
- кривой запрос 1С НЕ РАВЕН кривой запрос в SQL, и запрос не зависает в SQL
183 Лефмихалыч
 
23.09.13
12:11
(181) это ты сейчас возложил на меня бремя доказательства чужих слов или чёй-то было?
184 Odavid
 
23.09.13
12:11
(179)>> Насколько я понимаю
нет, не понимаете.
Там речь идет про проведение регламентных операций на больших базах.
И ваш "гуру" тоже об этом и вокруг этого пишет.
Обсуждение жде первой страницы - совсем о другом и глубже.
185 Odavid
 
23.09.13
12:12
(183) озвучьте свое видение сиих процессов или дайте нормальную ссылку - только и всего ))
186 Odavid
 
23.09.13
12:13
(183) так что происходит в платформе 1С?
Давайте свою версию.
187 Лефмихалыч
 
23.09.13
12:14
(186) там происходит так: "зюк-зюк-зюк", а потом "ПЫЫЫЫЩ!!!!"
а вообще я про платформу и SQL ни слова не сказал, не мне и доказывать твое пустозвонство
188 Maxus43
 
23.09.13
12:16
шоу продолжается! попкорн готов, как раз обед
189 Odavid
 
23.09.13
12:18
(187) докажите свое "непустозвонство".
Хотя б в рамках "или какие-либо обоснования <своих> пустых слов" - раз для вас это так ничтожно ))
Как докажите - любым способом, - будет и у вас "непустозвонство".
А пока - раз "а вообще я про платформу и SQL ни слова не сказал", - то и остальные посты "вроде как ответы" мне - к чему? Привязаться к моим словам? ))
191 ДенисЧ
 
23.09.13
12:21
Блин... Я больше не могу жрать попкорн....
Когда эе это прекратится....
192 Sammo
 
23.09.13
12:26
(182) 1. Управляя индексами в 1с можно управлять индексами в скуле.
2. 1с в прямую не упраляет планом запроса в скуле. Однако делая запрос в 1с можно регулировать то - как будет исполняться запрос в скуле. Например - использование временных таблиц в некоторых случаях позволяет получать более эффективные с точки зрения скуля, запросы.
193 MKZM
 
23.09.13
12:26
(189) Я понял. Ты считаешь, что пост на клиенте не соответствует коммит на сервере? Ну ты дебил или вообще ничего не знаешь о трехзвенке. Нет, естественно, если специально так написать, то так и будет работать, только кому это надо?
194 Odavid
 
23.09.13
12:32
(192)>>Управляя индексами в 1с можно управлять индексами в скуле.
- нет.
Вы будете управлять всего лишь индексами 1С в SQL. А не самими индексами SQL (коастерными в данном случае).
>>Однако делая запрос в 1с можно регулировать то - как будет исполняться запрос в скуле...использование временных таблиц
- нет, нельзя. Точнее, результат непредсказуем - 1С практически никак не пользует механизмы гибкой "поднастройки" запросов в SQL. Или вы должны признать, что "хаотическое" выполнение запросов в SQL - и есть цель и эффективность работы 1С на базе SQL.
195 Odavid
 
23.09.13
12:33
*кластерными индексами
196 Odavid
 
23.09.13
12:35
(192)>> использование временных таблиц в некоторых случаях позволяет получать более эффективные
- всего лишь потому, что эти выборки - существенно сужают получаемые данные.
Непосредственно на "эффективности" самих запросов SQL это не сказывается никак.
197 Maxus43
 
23.09.13
12:36
>>"хаотическое" выполнение запросов в SQL
да какое нахрен хаотичное? Выполняется одинаково один и тот же запрос, изменяя его в 1с мы естественно влияем на его отработку в скуле, и "хинты" использовать надо прежде всего на уровне написания запроса в 1с,
типа IN поменять на EXIST, зная как преобразует запросы сервер 1с
198 Odavid
 
23.09.13
12:36
(193)>> что пост на клиенте не соответствует коммит на сервере?
если скажу -"примерно" - начнутся придирки "а вот тут не так!!"
Если скажу "нет, не согласен" - будет противоречие с возникающими проблемами.
Что установлено опытным путем - так это дисбаланс по времени и "разногласия" по блокировкам между 1С-сервером и SQL.
199 Лефмихалыч
 
23.09.13
12:37
(194) прохвессор, а чем отличаются "индексы 1С в SQL" от "самих индексов SQL", пролей свет пожалуйста
200 viktor_vv
 
23.09.13
12:37
(194) Ну опять по новой

"лишь индексами 1С в SQL" и "А не самими индексами SQL"

ну откуда взялись эти мифические индексы 1С в SQL, и почему они каким-то таинственным образом отличаются от собственно "Индексов SQL".
201 viktor_vv
 
23.09.13
12:38
(199) А это у него идея фикс, он в каждой теме начинает про них, псоле каких грибов они ему мерещаться, непонятно.
202 Odavid
 
23.09.13
12:39
(193)>>или вообще ничего не знаешь о трехзвенке
опуская опусы, за на порядок меньшие из которых меня, например, банят - что вы понимаете под "3хзвенкой"? Не словами агиток только, пожалуйста.
Если бы мне нужны были агитки - они всегда есть на сайте 1С.
203 Maxus43
 
23.09.13
12:40
(202) http://ru.wikipedia.org/wiki/Трёхуровневая_архитектура
204 Odavid
 
23.09.13
12:41
(197)>> Выполняется одинаково один и тот же запрос
это если запрос будет слово в слово идентичен. Если по смыслу - все будет разное.
>> и "хинты" использовать надо прежде всего на уровне написания запроса в 1с
как вы себе это представляете??
>> зная как преобразует запросы сервер 1с
и кто знает, как? Кто-то уже составил схему всевозможных вариантов и вытащил алгоритм "наружу" из 1С-сервера?
205 Odavid
 
23.09.13
12:42
(203) какое отношение это имеет к 1С?
Если бы оно работало так же - вы бы имели право давать ссылку на "подобное".
Я же спрашиваю - а как в 1С это все реализовано?
206 MKZM
 
23.09.13
12:43
(198) Еще раз. Соответствует или нет. Другими словами возврат из процендуры post() происходит после прихода подтверждения коммита от сервера или там сплошной асинхрон и разные потоки?
207 Maxus43
 
23.09.13
12:44
(204) >>и кто знает, как?
Опыт знает, курение профайлера знает. Писать быдлозапросы не принимая в расчет особенности транслирования - это неправильно. Не знаешь как правильно - погляди в профайлере
208 Maxus43
 
23.09.13
12:45
(205) Прямое отношение имеет, это архитектура
209 Лефмихалыч
 
23.09.13
12:46
(205) а что конкретно работает не так в 1С?
210 MKZM
 
23.09.13
12:47
(202) 3х звенка
Клиент Звено Субд
211 Odavid
 
23.09.13
12:48
199) да хотя бы тем, - упрощу даже, чтобы понятней было  господам студентам, - что SQL ни о каких "индексах" 1С не знает.
212 Odavid
 
23.09.13
12:49
(210) и как соединено все это в 1С?
Как влияет звено на клиента, а как - СУБД?
213 Odavid
 
23.09.13
12:49
(208)>>это архитектура
- это архитектура трезвых разработчиков. Что же мы имеем вместо этого в 1С??
214 MKZM
 
23.09.13
12:50
(211) А ты хоть раз, хоть неудачно, писал трехзвенку? Если да, опубликуй реализацию процедуры пост() на клиенте. И ее реализацию на звене.
215 MM
 
23.09.13
12:51
(204) а как обеспечить чтобы подсказки работали во всех СУБД?
(207) или в технологическом журнале
(211) SQL дают команду CREATE INDEX, но он об этом так и не узнает :)
(212) выполняет большую часть работы
216 Лефмихалыч
 
23.09.13
12:52
(213) а что мы имеем вместо этого в 1С?
217 MKZM
 
23.09.13
12:52
(212) Клиент о субд и не знает даже. Но, милок, звено то знает.
218 Лефмихалыч
 
23.09.13
12:53
(211) я вот тоже ни чего ни о каких индексах 1С не знаю. Что это за индексы и чем они отличаются от того, что получается, когда сервер приложений командует CREATE INDEX?
219 viktor_vv
 
23.09.13
12:54
(211) Чтобы ты опять не засирал эфир своими альтернативными индексами, лучше дам ссылку на ветку, где ты развернуто знакомишь со свойей теорией.

v8: Оправдан ли переход на ORACLE?
220 MKZM
 
23.09.13
12:54
(211) Где ты тут студентов увидел? Базар фильтруй.
221 MM
 
23.09.13
12:58
(218) но правила 1С по созданию индексов творчество всё же ограничивают. Был случай, когда нужна была извращённая (сильное желание клиента) сортировка документов в журнале по номеру в пределах каждого дня, так это дело пришлось переписать на ТЗ, несмотря на солидное количество документов в базе, ТЗ работало в разы быстрее.
222 viktor_vv
 
23.09.13
13:02
Из обсуждения в (219), я так понял, его сильно зацепила постобработка результатов запроса со скуля сервером 1С и на основании этого он развил целую теорию альтернативных индексов 1С, ну и попутно теорию заговора этой сатанинской 1С потив всех и вся.
223 Лефмихалыч
 
23.09.13
13:02
(221) в 99.9% случаев в этом ограничении есть великое благо, ибо только оно отгораживает, жаждущих практических испытаний своих теорий о перпетуум мобиле, оголтелых отморозков от СУБД
224 Odavid
 
23.09.13
13:02
(199)>>а чем отличаются "индексы 1С в SQL" от "самих индексов SQL"
- хорошо.
Как SQL пользует "индексы 1С" составного типа??
225 Лефмихалыч
 
23.09.13
13:04
(224) не понял вопроса и не понял, почему вместо ответа на прямой вопрос, я получил еще один вопрос
226 MKZM
 
23.09.13
13:05
(224) Чувак, ответь на вопросы. Хоть ты и давид, но отвечай, а не спрашивай в ответ.
227 Odavid
 
23.09.13
13:06
(217)>>Клиент о субд и не знает даже. Но, милок, звено то знает.
- вот вам ваш "милок" и ответил в другом посте -
>>его сильно зацепила постобработка результатов запроса со скуля сервером 1С
- сравните и спорьте.
А то ордин не понимает одного, другой - другого, но оба не понимают что-то третье, и кидаются в бой.
228 Odavid
 
23.09.13
13:07
(225) вы тоже на мой прямой вопрос "а как оно все работает в 1С?" ничего не ответили.
Так что я его давно задаю, а вы - только еще начали.
229 Лефмихалыч
 
23.09.13
13:08
(227) ты забыл ссылку про абап какой-нить. Так аргумент показался бы гораздо весомей
230 Лефмихалыч
 
23.09.13
13:09
(228) не надо вот это вот с больной головы на здоровую. исчерпывающий ответ на этот вопрос я изо всех сил дал в (187)
231 Odavid
 
23.09.13
13:18
(218)>>я вот тоже ни чего ни о каких индексах 1С не знаю
- понятно, что вы не знаете. И SQL ничего не знает об индексе 1С для реквизитов справочника наподобие:
"Владелец + Родитель + ЭтоГруппа + Код + Ссылка"
232 Odavid
 
23.09.13
13:20
(230)>>исчерпывающий ответ на этот вопрос я изо всех сил дал в ( 187)
- так я и не спорю. 1С примерно также отвечает ))
Ваш пост 187:
"там происходит так: "зюк-зюк-зюк", а потом "ПЫЫЫЫЩ!!!!"
а вообще я про платформу и SQL ни слова не сказал, не мне и доказывать твое пустозвонство"
233 Odavid
 
23.09.13
13:22
(229) причем тут АБАП? Вы и из АБАП не смогли понять, что там никаких "клиентов-серверов" специально в коде указывать не надо.
234 Лефмихалыч
 
23.09.13
13:22
(231) продолжай, мне кажется ты хочешь сейчас какой-то смысл в виду поиметь. Нужно больше подлежащих и меньше намеков
235 Odavid
 
23.09.13
13:25
(234) вот и спрашиваю - как SQL этот индекс пользует? Все уже разжевал ))
236 Odavid
 
23.09.13
13:27
Всем, кто тут еще "попкорном запасся" - для начала бы определились, что такое:
- 3хзвенная архитектура
- 3хзвенная архитектура 1С
- объекты в ООП
- "объекты" в 1С
- тонкий клиент
- тонкий клиент в 1С
- запросы в SQL
- запросы в 1С
- обработка данных на сервере 1С
- обработка данных в СУБД
и т.д.
Это также к вопросу "один знает одно, другой - второе, и оба не знают третьего".
237 MKZM
 
23.09.13
13:37
(228) Работает как во всех стандартных 3 зв. Ничего нового они выдумать не могут. Все выдумано уже до них. А у вас какие-то другие сведения? Если да, то конкретно.
238 MKZM
 
23.09.13
13:40
(236) А что такое объект в ООП? Давайте начнем с вас.
239 viktor_vv
 
23.09.13
13:44
(231) Че ж это SQL о нем не знает ? Все он прекрасно знает, так этот индекс присутствует в самом скуле, так как при создании справочника и соотвественно создании таблиц в скуле там и индекс создатся, оптимизатор прекрасно о нем знает, и при составлении плана запроса будет его использовать, если он подходит.
240 viktor_vv
 
23.09.13
13:46
(235) Ты ж если запрос пишешь на T-SQL не указываешь в явном виде какой индекс использовать, оптимизатор сам подберет подходящий из имеющихся.
Только про хинты не надо рассказывать.
241 Odavid
 
23.09.13
13:46
+ 236:
Также подумайте, почему НЕ СУЩЕСТВУЕТ полной конвертации запросов 1С в T-SQL без выполнения 1С-запросов.
242 viktor_vv
 
23.09.13
13:48
(241) Давай сначала свой вариант.
243 Odavid
 
23.09.13
13:49
(328) да вы с себя начните.
Не знаю, как все остальное - но 1С подавляющее большинство знает слабо.
А, обычно, и во всех областях также. 1С - это лакмус для "дорогих россиян", начиная с версии 8.0.
Я бы ввел изучение 1С его как подготовительный курс при поступлении в институты, чтобы оценить не знание 1С, а вообще - способности, усидчивость, грамотность, восприимчивость знаний, желания и прочие навыки абитуриентов, необходимые для обучения.
244 Odavid
 
23.09.13
13:50
(239) как SQL использует "объекты" в индексах, если у него никаких объектов нет?
Ваш вариант.
245 viktor_vv
 
23.09.13
13:53
(244) Какие объекты он должен использовать в индексах.
Если ты про обращение в запросах через две точки, то происходит неявное разыменование полей с соответвующими левыми соединенями.
246 MM
 
23.09.13
13:53
Odavid ответьте на (242) и без вопросительных знаков
247 Odavid
 
23.09.13
13:55
(242) вы, и все остальные, пытаетесь не найти ответ, а показать некие свои "знания", мешая в кучу все, что есть - вики, лекции, отрывочные знания, агитки 1С и прочее.
Не понимая, что 1С так написали свою "надслойку" над СУБД, что логика 1С запросов и запросов СУБД - совершенно непохожа. Тем более, как его еще воспримет план запросов.
И без прямой конвертации 1С запроса/открытия исходников никто до сих пор так и не знает, как же на самом деле эта "прослойка" работает.
248 Odavid
 
23.09.13
13:55
(246) я уже ответил, все остальное - попытки меня запутать путем накидывания неких терминов, которые вы и сами не понимаете.
249 Odavid
 
23.09.13
13:56
+ 248 а такие попытки не могут быть достойны обсуждения или реагирования, уж извините ))
250 viktor_vv
 
23.09.13
14:03
(248) Может по другому сказать.
Может "все остально" это попытка показать тебе , где ты заблуждаешься.
Но ты ведь почему-то решил, что единственный обладаешь тайным знанием, недоступным всем остальным.
И решил поиграть в мессию, пришедшим на этот свет, дабы освободить заблудшие умы и души бедных одинэсников от той ереси, которую им внушила это исчадие ада 1С :).

К врачу не пробовал обратится.
251 Sammo
 
23.09.13
14:04
(211) 1. В профессиональной разработке описаны - какие индексы создаются автоматически. И какие из них кластерные.
2. Если я реквизиту в справочнике поставлю - индексировать, то в скуле будет сформирован индекс по данному полю.
252 Odavid
 
23.09.13
14:05
(245) вот именно, что никаких. Потому что никаких объектов там нет.
А в 1С - уже есть. Вы называете "индексами" обычные ключи в таблице (которые есть у любой таблицы), и SQL только находит эти ключи, а объекты и все связанное с этими "ключами-объектами" уже запрашивает 1С-сервер. И он же и обрабатывает эту "дополнительно" запрошенную информацию.
А вы хотите подменить индексы СУБД, с которыми она работает, получая записи таблиц, на "индексы 1С", которые собираются по всей базе, и сами "помогают" собирать информацию по "объектам", на которые ссылаются.
1С делает "индекс". Для SQL - это некий набор-ключ определенного вида, который он и возвращает как "набор символов".
А для 1С и всех "за ним" (и вас тоже) - это уже объект. Который и обрабатывается как "объект" в рамках 1С, а не как набор символов.
А вам уже выдается результат ПОСЛЕ обработки этих "объектов".
253 Maxus43
 
23.09.13
14:05
>>И без прямой конвертации 1С запроса/открытия исходников никто до сих пор так и не знает, как же на самом деле эта "прослойка" работает.
Утомил уже, в профайлере смотри что приходит на скуль из 1с. Приходит всегда одно и тоже а не рандомные запросы с потолка, для этого не надо знать начинку внутренностей 1с. Посмотрел в профайлере - понял как транслирует, всё остальное с этим запросом от 1с уже не зависит, его выполняет скуль
255 Enders
 
23.09.13
14:11
- 1С работает не так!!!
- А как надо?
- А как работает?)
Вот и весь диалог с  Odavid.
256 Maxus43
 
23.09.13
14:12
(255) +100 :)
257 viktor_vv
 
23.09.13
14:12
(252) Ну правильно. Так в чем проблема.

Объектная модель представления данных в 1С при трансляции запроса в запрос к СУБД преоразуется в реляционную модель представления данных (теже обращения в запросе через две точки транслкак в дополнителные неявные левые соединения) , при получении данных с СУБД 1С полученный результат преобразует к объектной моделе представления данных.

В чем проблема ?
Что у тебя в этой цепочке вызывает такой батхерт ?
258 Лефмихалыч
 
23.09.13
14:15
(255) ну от чего же весь? Одавид многогранен, как стакан. Он еще может аргументировать абапом и рукомашеством
259 Enders
 
23.09.13
14:17
(258) Просто после явных доказательств с противоположной стороны, и доказательств из вакуума от Odavid'a -  всё возвращается обратно к этому диалогу)
260 Odavid
 
23.09.13
14:19
(251)>>И какие из них кластерные.
правильно.
Но это только одно поле. И SQL не знает, что на самом деле означает данный "индекс" (а он обычно является ключом-ссылкой в 1С).
>> Если я реквизиту в справочнике поставлю - индексировать
так какое отношение некластерные индексы имеют к уникальному кластерному индексу?
261 Odavid
 
23.09.13
14:23
(257)>>В чем проблема
проблема в том, что этой - основной! - обработкой и  занимается 1С-сервер. Что как раз вызывает "батхерт" у всех вас, не понимающих "3хзвенную архитектуру 1С" ))
А SQL только дает кучу таблиц по запрошенным объектам - над которой потом "корпит" 1С-сервер.
Вот откуда "не использует индексы SQL" - они 1С вообще не нужны, т.к. он получает кучу "сырых" таблиц, которые потом еще и "перетирает" в меру возможности.
Часто эта "возможность" не покрывает "искомое". И тогда - часы обработки либо ошибка с вылетом.
262 MM
 
23.09.13
14:24
(253) от версии к версии это дело может меняться, как и структура базы, что обосновывает запрет на стороннее вмешательство.
(248) ты ни разу не ответил на вопросы
263 Odavid
 
23.09.13
14:26
(257)>>при получении данных
>> с СУБД 1С полученный результат преобразует к объектной моделе представления данных.
- вот и разберитесь, где основная обработка в этих двух этапах.
А то натягиваением "логики SQL на 1С" народ занимается уже с выхода 8-ки, а воз и ныне там - снова и снова грабли с SQL и 1С, и все новые и новые лица.
264 viktor_vv
 
23.09.13
14:26
(261) У меня есть некоторые сомнения насчет того, что кучу сырых таблиц и насчет того, что 1С сервер сильно корпит над ними. Ну очень сильные сомнения.
265 Odavid
 
23.09.13
14:27
(253)>>Посмотрел в профайлере - понял как транслирует,
вы сколько запросов посмотрели? 1? 10? сто? в студию - логику преобразования.
А лекции свои студенческие мне постоянно совать из года в год по сто раз одни и те же - увольте ))
266 МихаилМ
 
23.09.13
14:27
(261)
пожалуйта, хоть както аргуметируйте свои мысли.
Например "я изучил трассы взаимодействия 1с и скл и пришёл у выводу"

или

я "выяснил работу 1с под отладчиком"

или еще как-то.

НО аргументированнно.
267 Odavid
 
23.09.13
14:28
(264) а у меня нет.
В этом и разница.
Вам наплевать, на самом деле, как там все работает - у вас есть "лекции", которые "все объясняют".
А я работаю каждый день с этим "объясненным".
268 MKZM
 
23.09.13
14:29
(261) он получает кучу "сырых" таблиц

Охринеть. Вы не могли бы показать исходники (кусочек работы с сервером) вашей любой программы не 1с. Складывается впечатление, что ни одной у вас нет и вы даже не представляете как это все работает.
269 Odavid
 
23.09.13
14:29
(266) >>НО аргументированнно.
тут уже аргументировали - как запросы преобразуются из 1С в SQL?
А то я пропустил.
270 viktor_vv
 
23.09.13
14:30
(263) Ставлю на то, что основная обработка происходит на стороне SQL сервера.
За исключением специфических конструкций языка запросо 1С, типа Итоги ПО, пострение иерархии по справочнику, которые обрабатываются на стороне сервера 1С. И то распределние времени между ними неочевидное.
271 MKZM
 
23.09.13
14:30
(270) Все что не стандартный скл, то 1с :)
272 Odavid
 
23.09.13
14:31
(268)>>Вы не могли бы показать исходники (кусочек работы с сервером) вашей любой программы не 1с.
степень проработанности других "программ" не идет в сравнение с 1С.
Я про любые коммерческие API или языки по работе с БД.
273 Odavid
 
23.09.13
14:32
(270)>>Ставлю на то, что основная обработка происходит на стороне SQL сервера.
увы, это не так.
Иначе бы давно забыли про "1С опять тормозит!!!!" - просто бы подкрутили SQL или запросик поменяли на более "мелкий с частями".
275 MKZM
 
23.09.13
14:33
(272) языки по работе с БД.
Не могли бы подсказать языки работы с БД. А то я забыл.
276 Sammo
 
23.09.13
14:33
(261) Вот когда тебе скуль вместо отбора по индексу в табличке с ярдом записей полезет в тэйблскан, вот тогда поговорим про "кучу сырых таблиц" и про "не использует индексы SQL"
277 Maxus43
 
23.09.13
14:35
(265) я смотрю когда есть сомнения что работает криво/долго
278 viktor_vv
 
23.09.13
14:46
(271) Ну да, но он-то напирает на то, что и простая типизация результатов запросов занимает много времени.
279 viktor_vv
 
23.09.13
14:48
(276) Кстати в ветке из (219) он и такую мысль высказвал, что сервер 1С тянет на себя всю таблицу из СУБД и потом из нее уже что-то там требумое для себя берет по этим самым мифическим индексам 1С.
281 MKZM
 
23.09.13
14:49
(279) Это вообще пипец.
282 Enders
 
23.09.13
14:51
(279) Это он типа сказал что 1с использует СКЛ только как хранилище?)
283 Ёпрст
 
23.09.13
14:57
Не топите ветку, мы следим за событиями.
Может, еще какое открытие будет, окромя
индексы в 1с
и вы ничего не понимаете в трехзвенке!
284 viktor_vv
 
23.09.13
15:02
(281) Дабы меня не обвинили в том, что я че-то придумываю
из (219)

   Odavid
233 - 21.08.13 - 10:32    (230) "не нужную часть данных", а кучу всего нужного и ненужного оптом - SQL дает запрошенные таблицы с данными целиком. И потом разбирает "у себя", отсеивая ненужное, используя "свои" индексы, которые 1С понаделала.
285 viktor_vv
 
23.09.13
15:04
(283) Где-то еще ветка была с откровениями про ООП :).
286 Лефмихалыч
 
23.09.13
15:05
У поциента параноидальный бред, так же известный, как "власти скрывают" с той только разницей, что скрывают не власти, а какие-то "агитки"
287 Spieluhr
 
23.09.13
15:06
(286) + поциент походу еще и безработный
288 Maxus43
 
23.09.13
15:10
Это провокатор из фирмы 1с, наверняка. хочет вызнать как работает платформа :)
289 MKZM
 
23.09.13
15:12
(288) Точно. Поздно, ему все рассказали. Скоро выйдет новая версия.
290 Odavid
 
23.09.13
16:21
а кто понимает?
ну, кто понимает в трехзвенке? ))
291 Maxus43
 
23.09.13
16:26
(290) Что значит кто понимает в трёхзвенке? Вы понимаете вобще что спрашиваете? Трёхзвенка - это архитектура, Концепция построения системы, это Идея без конкретных алгоритмов, это Теория
292 Odavid
 
23.09.13
16:28
Вот еще вопрос на засыпку - почему 1С не "догадалась" использовать изначально Firebird??
Казалось, бери и пользуй бесплатное. Тоже PL-SQL
Ан нет.
А там разве что полнотекстовых индексов нет. Видимо, это для 1С самое важное.
293 Odavid
 
23.09.13
16:31
(291)>>это Идея без конкретных алгоритмов, это Теория
вот и давайте, соберитесь, сопоставьте теорию и реализацию в 1С.
Т.е. ТЕОРИЮ 3хзвенки ПО 1С.
А не теорию по институту.
И объясните, почему "вдруг" происходит несинхронная обработка (что обсуждали на первой странице), почему никогда не было или куда пропал контроль записей в 1С и т.д.
Архитектура же.
3хзвенная.
Книжки все почитали?
294 Maxus43
 
23.09.13
16:33
да толку то, см. (255)
295 Odavid
 
23.09.13
16:36
+ и почему нельзя писать прямые запросы - АРХИТЕКТУРА же, а не "1С погулять вышла", так где эта "архитектура", чтобы ей воспользоваться??
296 Odavid
 
23.09.13
16:39
(294)так да, "- А как работает?)" - только эти вопросы и слышу.
- что такое 3хзвенка
- что такое ООП
- что таоке объект
...
хотя изначально ни одно из этих определений к 1С никаким боком не прислоняется.
297 Odavid
 
23.09.13
16:41
(294) толку в том, что никто из вас не понимает, что происходит на самом деле.
Агитки прочитали - и все.
А когда проблемы возникают - "но вот тут же написано.." и пошли цитаты из Вики, учебников, агиток....
А подумать, что 1С думала одно, реализовала другое, а описала - третье в доках и агитках, - никто из вас такого и предположить не может.
Как же, коммерческий продукт - и такого качества.....
298 Maxus43
 
23.09.13
16:45
(297) А ты знаешь как работет внутри 1с? Нет же, и зачем нас спрашиваешь как работает? И мы не знаем. Но мы не кричим что 1с гавно и неправильно работает, а делаем свою работу, и получается, в отличии от вас видимо.
Проблемы возникают - надо решать, а не требовать непонятно у кого - переписать платформу и тупые вопросы типа "почему 1С не "догадалась" использовать изначально Firebird"
299 Spieluhr
 
23.09.13
16:47
(297) вам нужно на РЕН-ТВ какую-нить передачу вести про то, что 1С что-то скрывает от людей ...
300 Odavid
 
23.09.13
16:48
(298)>>А ты знаешь как работет внутри 1с?
я, по-крайней мере, догадываюсь.
А вы даже догадыватьтся не хотите )))
301 Odavid
 
23.09.13
16:49
(299)>> что 1С что-то скрывает от людей
1С всегда скрывала и скрывает правду о самой себе (сиречь своих продуктах).
Это давно известно, и сенсацией не станет ))
Это как гром только для вас )))
302 Odavid
 
23.09.13
16:50
(298)>>а делаем свою работу
бабло рубите?
303 Odavid
 
23.09.13
16:51
>>Проблемы возникают - надо решать
я уже умаялся перечислять проблемы-вопросы.
А воз и ныне там - но для себя я выводы уже сделал давно.
А одноэсники как хотят.
Работать - не бабло рубить ))
304 Maxus43
 
23.09.13
16:52
>>я, по-крайней мере, догадываюсь.

Дай угадаю, "Не правильно"?))))
305 viktor_vv
 
23.09.13
16:56
(297) Давай так, для прояснения вопроса с использованием индексов.
Простой пример с запросом 1С и последовательность обработки данных в соотвествии с вашей теорией.
Итак. Есть сервер приложений 1С, есть сервер СУБД. Для натуральности представления обмена даными между ними, они  находятся на физически разных серверах, соединены между собой по сети.
Для исключения спекуляций на тему долгой типизации результата запроса, у нас результатом запроса будет таблица с одной колонкой примитивного типа Строка.

Вот запрос.

Выбрать
  СпрНоменклатура.Наименование КАК Наименование
ИЗ
   Справочник.Номенклатура КАК СпрНоменклатура
ГДЕ
   СпрНоменклатура.Ссылка = &ПараметрСсылка

В соотвествии с вашей теорией использования индексов в 1С будет следующая последовательность действий.
Вначале сервер приложений 1С получит с сервера СУБД по сети всю таблицу справочника номенклатура, со всеми 50 000 записей и всеми 40-ка полями. Далее свои индексы 1С сервер приложений 1С из этой полученной таблицы получит записи удовлетворяющие условию

ГДЕ
   СпрНоменклатура.Ссылка = &ПараметрСсылка

и вернет клиенту уже конечный результат.

Просьба ответить односложно Да или Нет.

Без всяких философских рассуждений.
306 Ёпрст
 
23.09.13
16:57
Тааак.. продолжайте наблюдение.
307 viktor_vv
 
23.09.13
16:58
(305)* Исправление

Далее *Используя свои индексы 1С сервер приложений 1С из этой полученной таблицы получит записи удовлетворяющие условию
308 Ёпрст
 
23.09.13
16:59
(305) Не, ты не в теме, ты не знаешь, что происходит на самом деле, прочитал агитку и лезешь тут со сложными вопросами да и нет, ответ на (305) будет таким:

- Неужели ?
309 Ёпрст
 
23.09.13
17:01
Модеры, подымите ветку из небытия!
Пусть плавает в топе.
310 Maxus43
 
23.09.13
17:02
Odavid, кто тебя обидел? Нуралиев лично? Компания 1с? Другой 1сник, который умееит работать, но не читал про индексы СУБД SQL, трёхзвенки и прочее - забрал твою работу?
311 Odavid
 
23.09.13
17:06
(310)>>который умееит работать, но не читал про индексы СУБД SQL, трёхзвенки и прочее - забрал твою работу?

это фантастика!
Тем более, в мск.
Тем более, среди нынешнего поколения "студентов".
Тем более, что работу забираю я.
312 Maxus43
 
23.09.13
17:09
(311) Как обычно, совершенно ничего не понятно в ответе. Кто тебя обидел?
313 Spieluhr
 
23.09.13
17:09
(311) так что насчет (305) ?
314 Ёпрст
 
23.09.13
17:12
(313) Вы таки спГашиваете или отвечаете ?
:)
315 viktor_vv
 
23.09.13
17:15
(308) Я думаю ответа вообще не будет :).
316 Spieluhr
 
23.09.13
17:17
(315) ага, наверное он ушел забирать очередную порцию работы у таких как мы )))
317 Sammo
 
модератор
23.09.13
17:24
(311) Прошу в течении часа ответить на 305, 307.
318 Лефмихалыч
 
модератор
23.09.13
17:28
+(317) от себя добавлю: "без вопросительных знаков"
319 vvf1973
 
23.09.13
17:30
суровые модеры взяли одавида в плотное кольцо...как в голубой лагуне... :-)
320 Maxus43
 
модератор
23.09.13
17:32
Да ответит, скажет что не это имел ввиду и всё...
321 Ёпрст
 
23.09.13
17:32
Не ответит, делаем ставки.
322 Лефмихалыч
 
23.09.13
17:34
(320) конечно ответит. Ссылку на какую-нить муру даст и будет корчить из себя мем ЕВПОЧЯ:
http://images.wikia.com/elderscrolls/images/1/11/If_you_know_what_I_mean_.png
323 viktor_vv
 
23.09.13
17:47
Похоже свалил он из ветки. Теперь будет слезная история, типа не видел вопроса, надо было срочно уходить и т. д.
324 Ёпрст
 
23.09.13
17:48
(323) ты просто убил его своим вопросом, взорвал ему мозг. Его двухзвенная архитектура мозг-пальцы по клаве отказались работать.
325 viktor_vv
 
23.09.13
17:51
(324)Ну я не ожидал, что этот вопрос в такой тупик его поставит, простите :).
Вроде он оперирует такими высокими материями.
326 Spieluhr
 
23.09.13
17:56
(325) еще чуток подождем, ответ у него наверняка готов, но как его выразить в утвердительной форме, без вопросительных знаков...
327 viktor_vv
 
23.09.13
18:00
(326) Да уж, это наверное самое тяжелое.
Причем он героически продолжает наблюдать за веткой :), и не менее героически молчит :).
328 Sammo
 
модератор
23.09.13
18:53
+317 Ответ готов получить на почту. Если не терпится - копию можно отправить любому из отметившемуся в теме.
330 Ёпрст
 
24.09.13
13:52
Ага, а он может быть ужо и ответ подготовил.
331 MM
 
09.10.13
10:57
Odavid, разбанили. Жду ответов. )
332 fisher
 
09.10.13
11:15
Числится в бане. И слава богу.