Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
26 Сен 2017, 19:14
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Тормозит при проведении  (Прочитано 1575 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн akaipbay

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-04-25
    • Skype: akaipbay
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день!

Подскажите пожалуйста, при проведении документа есть такой запрос (ниже). Он очень долго Выполняется(), в чем может быть причина? Как его можно оптимизировать или ускорить подскажите?

Процедура ЗаполнитьТаблицуОстатковНДС(ДатаК,Склад,СписСчетов,тбОстСтатей) экспорт
зпОст = новый Запрос;
текстОст =
"ВЫБРАТЬ
| ВложНДС.Счет,
| ВложНДС.Склад,
| ВложНДС.СтатьяЗатрат,
| ВложНДС.ОстНДС,
| ВложСчета.ОстатокСтатьи,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВложСчета.ОстатокСтатьи, 0) = 0
| ТОГДА 0
| ИНАЧЕ ВложНДС.ОстНДС / ВложСчета.ОстатокСтатьи
| КОНЕЦ КАК коэфф,
| ВложНДС.КолОстНДС
|ИЗ
| (ВЫБРАТЬ
| УслНДС_ОИОб.Счет КАК Счет,
| УслНДС_ОИОб.Склад КАК Склад,
| УслНДС_ОИОб.СтатьяЗатрат КАК СтатьяЗатрат,
| СУММА(НАК_УслНДС_ОИОб.СуммаНДСНачальныйОстаток + УслНДС_ОИОб.СуммаНДСПриход) КАК ОстНДС,
| СУММА(НАК_УслНДС_ОИОб.КоличествоНачальныйОстаток + УслНДС_ОИОб.КоличествоПриход) КАК КолОстНДС
| ИЗ
| РегистрНакопления.УслугиПроизводствоНДС.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Период, , Счет В ИЕРАРХИИ (&СписСчетов)) КАК НАК_УслНДС_ОИОб
| ГДЕ
| ВЫБОР
| КОГДА &Склад <> 0
| ТОГДА УслНДС_ОИОб.Склад = &Склад
| ИНАЧЕ ИСТИНА
| КОНЕЦ
|
| СГРУППИРОВАТЬ ПО
| УслНДС_ОИОб.Счет,
| УслНДС_ОИОб.Склад,
| УслНДС_ОИОб.СтатьяЗатрат) КАК ВложНДС
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ВЫБОР
| КОГДА ТОИОб.Счет = &счет2621_1
| ТОГДА &счет2612_1
| КОГДА ТОИОб.Счет = &счет2622_6
| ТОГДА &счет2613_5
| КОГДА ТОИОб.Счет = &счет2622_1
| ТОГДА &счет2613_1
| ИНАЧЕ ТОИОб.Счет
| КОНЕЦ КАК Счет,
| ВЫБОР
| КОГДА ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2613""
| ИЛИ ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2621""
| ИЛИ ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2622""
| ТОГДА ТОИОб.Субконто1
| ИНАЧЕ ТОИОб.Субконто2
| КОНЕЦ КАК Склад,
| ВЫБОР
| КОГДА ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2613""
| ИЛИ ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2621""
| ИЛИ ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2622""
| ТОГДА ТОИОб.Субконто2
| ИНАЧЕ ТОИОб.Субконто3
| КОНЕЦ КАК СтатьяЗатрат,
| СУММА(ВЫБОР
| КОГДА ТОИОб.Счет = &счет2621_1
| ИЛИ ТОИОб.Счет = &счет2622_6
| ИЛИ ТОИОб.Счет = &счет2622_1
| ТОГДА -ТОИОб.СуммаНачальныйОстатокКт
| ИНАЧЕ ТОИОб.СуммаНачальныйОстатокДт + ТОИОб.СуммаОборотДт
| КОНЕЦ) КАК ОстатокСтатьи
| ИЗ
| РегистрБухгалтерии.Типовой.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Период, , Счет В ИЕРАРХИИ (&СписСчетов), , ) КАК ТОИОб
| ГДЕ
| ВЫБОР
| КОГДА &Склад <> 0
| ТОГДА ВЫБОР
| КОГДА ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2613""
| ИЛИ ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2621""
| ИЛИ ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2622""
| ТОГДА ТОИОб.Субконто1 = &Склад
| ИНАЧЕ ТОИОб.Субконто2 = &Склад
| КОНЕЦ
| ИНАЧЕ ИСТИНА
| КОНЕЦ
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ТОИОб.Счет = &счет2621_1
| ТОГДА &счет2612_1
| КОГДА ТОИОб.Счет = &счет2622_6
| ТОГДА &счет2613_5
| КОГДА ТОИОб.Счет = &счет2622_1
| ТОГДА &счет2613_1
| ИНАЧЕ ТОИОб.Счет
| КОНЕЦ,
| ВЫБОР
| КОГДА ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2613""
| ИЛИ ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2621""
| ИЛИ ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2622""
| ТОГДА ТОИОб.Субконто1
| ИНАЧЕ ТОИОб.Субконто2
| КОНЕЦ,
| ВЫБОР
| КОГДА ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2613""
| ИЛИ ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2621""
| ИЛИ ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2622""
| ТОГДА ТОИОб.Субконто2
| ИНАЧЕ ТОИОб.Субконто3
| КОНЕЦ) КАК ВложСчета
| ПО ВложНДС.Счет = ВложСчета.Счет
| И ВложНДС.Склад = ВложСчета.Склад
| И ВложНДС.СтатьяЗатрат = ВложСчета.СтатьяЗатрат"
;

зпОст.Текст = текстОст;
зпОст.УстановитьПараметр("ДатаНач",НачалоМесяца(ДатаК));
зпОст.УстановитьПараметр("ДатаКон",КонецМесяца(ДатаК));
зпОст.УстановитьПараметр("СписСчетов",СписСчетов);
зпОст.УстановитьПараметр("Склад",Склад);

счет2612_1 = ПланыСчетов.Типовой.НайтиПоКоду("2612.1");
счет2613_5 = ПланыСчетов.Типовой.НайтиПоКоду("2613.5");
счет2613_1 = ПланыСчетов.Типовой.НайтиПоКоду("2613.1");

счет2621_1 = ПланыСчетов.Типовой.НайтиПоКоду("2621.1");
счет2622_6 = ПланыСчетов.Типовой.НайтиПоКоду("2622.6");
счет2622_1 = ПланыСчетов.Типовой.НайтиПоКоду("2622.1");

зпОст.УстановитьПараметр("счет2612_1",счет2612_1);
зпОст.УстановитьПараметр("счет2613_5",счет2613_5);
зпОст.УстановитьПараметр("счет2613_1",счет2613_1);

зпОст.УстановитьПараметр("счет2621_1",счет2621_1);
зпОст.УстановитьПараметр("счет2622_6",счет2622_6);
зпОст.УстановитьПараметр("счет2622_1",счет2622_1);

резЗпОст = зпОст.Выполнить();
тбОстСтатей = резЗпОст.Выгрузить();


КонецПроцедуры


Оффлайн vitasw

  • *****
  • Сообщений: 2554
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
"Выбор" - это зло. я б использовал кучу левых соединений.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
и
ПОДСТРОКА(ТОИОб.Счет.Код, 1, 4) = ""2613""
- зло

лучше "...Счет = &Счет2613" или "...Счет В (&СписокСчетов2600)" или "...Счет В ИЕРАРХИИ(&Счет2600)"
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
и мои 5 копеек:
&Склад = 0 или УслНДС_ОИОб.Склад = &Склад
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн vitasw

  • *****
  • Сообщений: 2554
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
"или" - вообще зло, лучше список значений.

Оффлайн SGIRG

  • **
  • Сообщений: 93
  • РЕПУТАЦИЯ: 30
  • КПД: 32%
  • Регистрация: 2014-03-26
  • Сайт: 
  • Профессия: Программист 8.1
Попробуйте использовать временные таблицы.
Оптимизатор 1С плохо работает с вложенными запросами
Нажимайте "Спасибо", так приятнее))

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
"или" - вообще зло, лучше список значений.
ИМХО, не все так однозначно
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн Luzer1C

  • ****
  • Сообщений: 411
  • РЕПУТАЦИЯ: 41
  • КПД: 10%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
Цитировать
Попробуйте использовать временные таблицы.

Плюсую. Временные таблицы в последнее время работают быстрее всяких вложенных запросов.
Добавлено: 04 Авг 2016, 04:50

Например:
ВЫБРАТЬ
ПланСчетовТиповой.Ссылка
ПОМЕСТИТЬ СписокСчетов
ИЗ
ПланСчетов.Типовой КАК ПланСчетовТиповой
ГДЕ
ПланСчетов.Типовой.Код = "2612.1"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
ПланСчетовТиповой.Ссылка
ИЗ
ПланСчетов.Типовой КАК ПланСчетовТиповой
ГДЕ
ПланСчетов.Типовой.Код = "2613.5"
И так далее. Запрос получится громоздкий, но работать будет на порядок быстрее.
Помочь мне очень сложно. Но можно.
Помогаю просто так...
Матёрый разработчик УПП + Бит Финанс

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Luzer1C, вы имеете ввиду соединение с таблицей плана счетов будет быстрее условия "...Счет В (&СписокСчетов)"?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Luzer1C

  • ****
  • Сообщений: 411
  • РЕПУТАЦИЯ: 41
  • КПД: 10%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
100%. Вместо &СписокСчетов прописать так:

(Выбрать
СписокСчетов.Ссылка
Из
СписокСчетов)
Помочь мне очень сложно. Но можно.
Помогаю просто так...
Матёрый разработчик УПП + Бит Финанс


Теги:
 

Как в 1С 8.2 при проведении документа заполнить элемент справочника информацией из документа?

Автор Галина55555Раздел Беседка

Ответов: 1
Просмотров: 5237
Последний ответ 01 Июл 2014, 16:44
от Галина55555
выводит ошибку при проведении документа "Оплаты праздничных и выходных дней"

Автор bannovРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 2481
Последний ответ 06 Июл 2010, 14:46
от bannov
ПРОБЛЕМА!!!( при проведении документа"Реализация" выдается ошибка)

Автор Syuz79Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1646
Последний ответ 22 Мар 2012, 14:17
от Vit1501
Ошибка при проведении документа "Реализация товаров и услуг"

Автор PowerLordРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 1140
Последний ответ 21 Июл 2013, 15:44
от PowerLord
Для всех документов нужно сделать проверку при проведении. Где это можно сделать?

Автор ZeedРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 555
Последний ответ 04 Сен 2016, 04:20
от cska-fanat-kz

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
138 Сообщений
alex0402
81 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
76 Сообщений
BuhRust
24 Сообщений
Golickoff Golickoff
23 Сообщений
ilyay ilyay
23 Сообщений
Kironten
21 Сообщений
AIFrame
21 Сообщений
Варвар
20 Сообщений
Римма
18 Сообщений

* Кто онлайн

  • Точка Гостей: 415
  • Точка Скрытых: 0
  • Точка Пользователей: 8
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal