| 
    
        
     
     | 
    
    
  | 
массив из 700 элементов в запрос | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        asder117    
     15.07.21 
            ✎
    22:52 
 | 
         
        Коллеги, как можно в параметр запроса запихать массив значений из 700 элементов.  До 300 элементов отрабатывает больше вываливается с превышением блокировки)) Конфа УПП     
         | 
|||
| 
    1
    
        Asmody    
     15.07.21 
            ✎
    22:56 
 | 
         
        (0) переделывать архитектуру     
         | 
|||
| 
    2
    
        nicxxx    
     15.07.21 
            ✎
    23:08 
 | 
         
        Элементарно, Ватсон! Сделать 3 массива и запрос в цикле :)     
         | 
|||
| 
    3
    
        RomanYS    
     15.07.21 
            ✎
    23:09 
 | 
         
        Проблема явно не в параметре. Запрос в студию!     
         | 
|||
| 
    4
    
        Жан Пердежон    
     15.07.21 
            ✎
    23:18 
 | 
         
        в запрос таблицу значений можно передать, если что     
         | 
|||
| 
    5
    
        asder117    
     15.07.21 
            ✎
    23:26 
 | 
         
        (3) ВЫБРАТЬ
 
        | ТоварыВРезервеНаСкладахОстатки.Номенклатура, | ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК Резерв |ПОМЕСТИТЬ ВТ_Резерв |ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( | , | Номенклатура В (&Продукция) | И Склад В (&Склад)) КАК ТоварыВРезервеНаСкладахОстатки |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТоварыНаСкладахОстаткиИОбороты.Номенклатура, | МИНИМУМ(ТоварыНаСкладахОстаткиИОбороты.Период) КАК Минимум |ПОМЕСТИТЬ ВТ_Минимум |ИЗ | РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( | НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), | КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), | Регистратор, | , | Номенклатура В (&Продукция) | И Склад В (&Склад)) КАК ТоварыНаСкладахОстаткиИОбороты | |СГРУППИРОВАТЬ ПО | ТоварыНаСкладахОстаткиИОбороты.Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТоварыНаСкладахОстаткиИОбороты.Период) КАК Период, | ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, | СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК НачальныйОстаток, | СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КонечныйОстаток, | СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход, | СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход |ПОМЕСТИТЬ ВТ_ПоПериодам |ИЗ | РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( | &НачалоПериода, | &КонецПериода, | Месяц, | , | Номенклатура В (&Продукция) | И Склад В (&Склад)) КАК ТоварыНаСкладахОстаткиИОбороты | |СГРУППИРОВАТЬ ПО | ТоварыНаСкладахОстаткиИОбороты.Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.КоличествоОстаток КАК НачальныйОстаток, | &НачалоПериода КАК Период |ПОМЕСТИТЬ ВТ_Начало |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки( | НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), | Номенклатура В | (ВЫБРАТЬ | ВТ_ПоПериодам.Номенклатура | ИЗ | ВТ_ПоПериодам КАК ВТ_ПоПериодам) | И Склад В (&Склад)) КАК ТоварыНаСкладахОстатки |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.КоличествоОстаток КАК КонечныйОстаток, | КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ) КАК Период |ПОМЕСТИТЬ ВТ_Конец |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки( | , | Номенклатура В | (ВЫБРАТЬ | ВТ_ПоПериодам.Номенклатура | ИЗ | ВТ_ПоПериодам КАК ВТ_ПоПериодам) | И Склад В (&Склад)) КАК ТоварыНаСкладахОстатки |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЗначенияТочкиЗаказаСрезПоследних.Номенклатура, | ЗначенияТочкиЗаказаСрезПоследних.ЗначениеТочкиЗаказа, | ЗначенияТочкиЗаказаСрезПоследних.МинимальныйСтраховойЗапас |ПОМЕСТИТЬ ВТ_точкиЗаказа |ИЗ | РегистрСведений.ЗначенияТочкиЗаказа.СрезПоследних(&КонецПериода, Номенклатура В (&Продукция)) КАК ЗначенияТочкиЗаказаСрезПоследних |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_ПоПериодам.Номенклатура КАК Номенклатура, | ЕСТЬNULL(ВТ_Начало.НачальныйОстаток, 0) КАК НачальныйОстатокНаНачало, | ВТ_ПоПериодам.КоличествоПриход, | ВТ_ПоПериодам.КоличествоРасход, | ЕСТЬNULL(ВТ_Конец.КонечныйОстаток, 0) КАК КонечныйОстатокНаКонец, //| (ЕСТЬNULL(ВТ_ПоПериодам.КонечныйОстаток, 1) - ЕСТЬNULL(ВТ_Начало.НачальныйОстаток, 0) - ЕСТЬNULL(ВТ_Конец.КонечныйОстаток, 0) + ЕСТЬNULL(ВТ_Начало.НачальныйОстаток, 0) / 2 + ЕСТЬNULL(ВТ_Конец.КонечныйОстаток, 0) / 2) / ВЫБОР //| КОГДА ВТ_ПоПериодам.Период < 2 //| ТОГДА 1 //| ИНАЧЕ ВТ_ПоПериодам.Период-1 //| КОНЕЦ КАК СреднийЗапас, | ЕСТЬNULL(ВТ_ПоПериодам.КоличествоРасход, 0) / ВЫБОР | КОГДА ВТ_ПоПериодам.Период < 2 | ТОГДА 1 | ИНАЧЕ ВТ_ПоПериодам.Период-1 | КОНЕЦ КАК СреднийРасход, //| ЕСТЬNULL(ВТ_ПоПериодам.КоличествоРасход, 0) / ((ЕСТЬNULL(ВТ_ПоПериодам.КонечныйОстаток, 1) - ЕСТЬNULL(ВТ_Начало.НачальныйОстаток, 0) - ЕСТЬNULL(ВТ_Конец.КонечныйОстаток, 0) + ЕСТЬNULL(ВТ_Начало.НачальныйОстаток, 0) / 2 + ЕСТЬNULL(ВТ_Конец.КонечныйОстаток, 0) / 2) / ВЫБОР //| КОГДА ВТ_ПоПериодам.Период < 2 //| ТОГДА 1 //| ИНАЧЕ ВТ_ПоПериодам.Период //| КОНЕЦ) КАК ОБСР, //| ЕСТЬNULL(ВТ_ПоПериодам.КоличествоРасход, 0) / ВЫБОР //| КОГДА ВТ_ПоПериодам.Период < 2 //| ТОГДА 1 //| ИНАЧЕ ВТ_ПоПериодам.Период //| КОНЕЦ / ((ЕСТЬNULL(ВТ_ПоПериодам.КонечныйОстаток, 1) - ЕСТЬNULL(ВТ_Начало.НачальныйОстаток, 0) - ЕСТЬNULL(ВТ_Конец.КонечныйОстаток, 0) + ЕСТЬNULL(ВТ_Начало.НачальныйОстаток, 0) / 2 + ЕСТЬNULL(ВТ_Конец.КонечныйОстаток, 0) / 2) / ВЫБОР //| КОГДА ВТ_ПоПериодам.Период < 2 //| ТОГДА 1 //| ИНАЧЕ ВТ_ПоПериодам.Период //| КОНЕЦ) КАК ОСР, | ВТ_ПоПериодам.Период КАК Период, | ВТ_ПоПериодам.НачальныйОстаток, | ВТ_ПоПериодам.КонечныйОстаток, | ВТ_Минимум.Минимум КАК ДатаПоступления, | ЕСТЬNULL(ВТ_Резерв.Резерв, 0) КАК Резерв, | ВТ_точкиЗаказа.ЗначениеТочкиЗаказа, | ВТ_точкиЗаказа.МинимальныйСтраховойЗапас |ИЗ | ВТ_ПоПериодам КАК ВТ_ПоПериодам | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Начало КАК ВТ_Начало | ПО ВТ_ПоПериодам.Номенклатура = ВТ_Начало.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Конец КАК ВТ_Конец | ПО ВТ_ПоПериодам.Номенклатура = ВТ_Конец.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Минимум КАК ВТ_Минимум | ПО ВТ_ПоПериодам.Номенклатура = ВТ_Минимум.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Резерв КАК ВТ_Резерв | ПО ВТ_ПоПериодам.Номенклатура = ВТ_Резерв.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_точкиЗаказа КАК ВТ_точкиЗаказа | ПО ВТ_ПоПериодам.Номенклатура = ВТ_точкиЗаказа.Номенклатура"; В принципе вопрос снят...Деление на 0 было отловил  | 
|||
| 
    6
    
        TormozIT    
     гуру 
    15.07.21 
            ✎
    23:42 
 | 
         
        (0) Текст ошибки сейчас сообщать не модно?     
         | 
|||
| 
    7
    
        МихаилМ    
     15.07.21 
            ✎
    23:55 
 | 
         
        (0) в правилах форума не случайно указано писать версии ПО.     
         | 
|||
| 
    8
    
        OldCondom    
     16.07.21 
            ✎
    00:04 
 | 
         
        а индекс точно номенклатура+склад, а не наоборот? 
 
        плюс можно попробовать в вт сперва выбрать свою номенклатуру, и вместо параметра подставлять выборку из ВТ  | 
|||
| 
    9
    
        timurhv    
     16.07.21 
            ✎
    00:30 
 | 
         
        (3) Если больше 256 элементов (с количеством могу ошибаться, но около того), то вся таблица блокируется. Притом это делает платформа 1С.
 
        Решение в (4)  | 
|||
| 
    10
    
        OldCondom    
     16.07.21 
            ✎
    00:36 
 | 
         
        (5) Зачем врешь? Не было там деления на 0. Покупай книжку "Язык запросов 1С", небольшая такая. Переписывай весь свой запрос. 
 
        Ради интереса запустил твой и свой слегка переписанный. 168 секунд vs 18 Запрос = Новый Запрос; Запрос.УстановитьПараметр("НачалоПериода", НачалоГода(ТекущаяДата())); Запрос.УстановитьПараметр("КонецПериода", ТекущаяДата()); Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 700 | Номенклатура.Ссылка |ПОМЕСТИТЬ ВТ_Номенклатура |ИЗ | Справочник.Номенклатура КАК Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Склады.Ссылка |ПОМЕСТИТЬ ВТ_Склады |ИЗ | Справочник.Склады КАК Склады |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТоварыВРезервеНаСкладахОстатки.Номенклатура, | ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК Резерв |ПОМЕСТИТЬ ВТ_Резерв |ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( | , | Склад В | (ВЫБРАТЬ | ВТ_Склады.Ссылка | ИЗ | ВТ_Склады) | И Номенклатура В | (ВЫБРАТЬ | ВТ_Номенклатура.Ссылка | ИЗ | ВТ_Номенклатура)) КАК ТоварыВРезервеНаСкладахОстатки |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТоварыНаСкладахОстаткиИОбороты.Номенклатура, | МИНИМУМ(ТоварыНаСкладахОстаткиИОбороты.Период) КАК Минимум |ПОМЕСТИТЬ ВТ_Минимум |ИЗ | РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( | НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), | КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), | Регистратор, | , | Склад В | (ВЫБРАТЬ | ВТ_Склады.Ссылка | ИЗ | ВТ_Склады) | И Номенклатура В | (ВЫБРАТЬ | ВТ_Номенклатура.Ссылка | ИЗ | ВТ_Номенклатура)) КАК ТоварыНаСкладахОстаткиИОбороты | |СГРУППИРОВАТЬ ПО | ТоварыНаСкладахОстаткиИОбороты.Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТоварыНаСкладахОстаткиИОбороты.Период) КАК Период, | ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, | СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК НачальныйОстаток, | СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КонечныйОстаток, | СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход, | СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход |ПОМЕСТИТЬ ВТ_ПоПериодам |ИЗ | РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( | &НачалоПериода, | &КонецПериода, | Месяц, | , | Склад В | (ВЫБРАТЬ | ВТ_Склады.Ссылка | ИЗ | ВТ_Склады) | И Номенклатура В | (ВЫБРАТЬ | ВТ_Номенклатура.Ссылка | ИЗ | ВТ_Номенклатура)) КАК ТоварыНаСкладахОстаткиИОбороты | |СГРУППИРОВАТЬ ПО | ТоварыНаСкладахОстаткиИОбороты.Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.КоличествоОстаток КАК НачальныйОстаток, | &НачалоПериода КАК Период |ПОМЕСТИТЬ ВТ_Начало |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки( | НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), | Склад В | (ВЫБРАТЬ | ВТ_Склады.Ссылка | ИЗ | ВТ_Склады) | И Номенклатура В | (ВЫБРАТЬ | ВТ_Номенклатура.Ссылка | ИЗ | ВТ_Номенклатура)) КАК ТоварыНаСкладахОстатки |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.КоличествоОстаток КАК КонечныйОстаток, | КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ) КАК Период |ПОМЕСТИТЬ ВТ_Конец |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки( | , | Склад В | (ВЫБРАТЬ | ВТ_Склады.Ссылка | ИЗ | ВТ_Склады) | И Номенклатура В | (ВЫБРАТЬ | ВТ_Номенклатура.Ссылка | ИЗ | ВТ_Номенклатура)) КАК ТоварыНаСкладахОстатки |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЗначенияТочкиЗаказаСрезПоследних.Номенклатура, | ЗначенияТочкиЗаказаСрезПоследних.ЗначениеТочкиЗаказа, | ЗначенияТочкиЗаказаСрезПоследних.МинимальныйСтраховойЗапас |ПОМЕСТИТЬ ВТ_точкиЗаказа |ИЗ | РегистрСведений.ЗначенияТочкиЗаказа.СрезПоследних( | &КонецПериода, | Номенклатура В | (ВЫБРАТЬ | ВТ_Номенклатура.Ссылка | ИЗ | ВТ_Номенклатура)) КАК ЗначенияТочкиЗаказаСрезПоследних |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_ПоПериодам.Номенклатура КАК Номенклатура, | ЕСТЬNULL(ВТ_Начало.НачальныйОстаток, 0) КАК НачальныйОстатокНаНачало, | ВТ_ПоПериодам.КоличествоПриход, | ВТ_ПоПериодам.КоличествоРасход, | ЕСТЬNULL(ВТ_Конец.КонечныйОстаток, 0) КАК КонечныйОстатокНаКонец, | ЕСТЬNULL(ВТ_ПоПериодам.КоличествоРасход, 0) / ВЫБОР | КОГДА ВТ_ПоПериодам.Период < 2 | ТОГДА 1 | ИНАЧЕ ВТ_ПоПериодам.Период - 1 | КОНЕЦ КАК СреднийРасход, | ВТ_ПоПериодам.Период КАК Период, | ВТ_ПоПериодам.НачальныйОстаток, | ВТ_ПоПериодам.КонечныйОстаток, | ВТ_Минимум.Минимум КАК ДатаПоступления, | ЕСТЬNULL(ВТ_Резерв.Резерв, 0) КАК Резерв, | ВТ_точкиЗаказа.ЗначениеТочкиЗаказа, | ВТ_точкиЗаказа.МинимальныйСтраховойЗапас |ИЗ | ВТ_ПоПериодам КАК ВТ_ПоПериодам | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Начало КАК ВТ_Начало | ПО ВТ_ПоПериодам.Номенклатура = ВТ_Начало.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Конец КАК ВТ_Конец | ПО ВТ_ПоПериодам.Номенклатура = ВТ_Конец.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Минимум КАК ВТ_Минимум | ПО ВТ_ПоПериодам.Номенклатура = ВТ_Минимум.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Резерв КАК ВТ_Резерв | ПО ВТ_ПоПериодам.Номенклатура = ВТ_Резерв.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_точкиЗаказа КАК ВТ_точкиЗаказа | ПО ВТ_ПоПериодам.Номенклатура = ВТ_точкиЗаказа.Номенклатура";  | 
|||
| 
    11
    
        timurhv    
     16.07.21 
            ✎
    00:45 
 | 
         
        (9) извиняюсь, спутал с темповской таблицей     
         | 
|||
| 
    12
    
        asder117    
     17.07.21 
            ✎
    12:32 
 | 
         
        (10) в (5) я как раз закомментировал те строки где падал в 0. (6) ошибка превышено ожидание блокировки а потом скульная деление на 0, вот ее я и отловил (8) точно..     
         | 
|||
| 
    13
    
        asder117    
     17.07.21 
            ✎
    12:33 
 | 
         
        (7) УПП 1.3. последний релиз..звиняйте     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |