Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Менеджер временных таблиц. Проблема при аварийном завершении          
Zlyukka Подменю пользователя
сообщение 14.08.14, 10:53
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 33
Спасибо сказали: 1 раз
Рейтинг: 0

При написании отчета была необходимость в использовании менеджера временных таблиц. И вот отчет написан, все работает, но есть как обычно «НО» при аварийном закрытии 1с при запущенном отчете , SQL виснет. Помогите пожалуйста.

Kashemir Подменю пользователя
сообщение 14.08.14, 11:17
Сообщение #2

Молчаливый
*
Группа: Пользователи
Сообщений: 8
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Очевидно SQL залипает на выполнении запроса. Аварийный срыв клиента в данной ситуации не играет роли - поскольку управление до завершения запроса будет оставаться на сервере.
Так что скорее всего проблема в запросе.

Zlyukka Подменю пользователя
сообщение 14.08.14, 11:26
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 33
Спасибо сказали: 1 раз
Рейтинг: 0

Согласен запрос тяжёлый, но проблема в том, что прервать запрос, если пользователь ошибся, к примеру с датой я не знаю как.

Kashemir Подменю пользователя
сообщение 14.08.14, 11:32
Сообщение #4

Молчаливый
*
Группа: Пользователи
Сообщений: 8
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Zlyukka @ 14.08.14, 12:26) *
Согласен запрос тяжёлый, но проблема в том, что прервать запрос, если пользователь ошибся, к примеру с датой я не знаю как.


Если на SQL то остается только ждать. Лучше не допускать ситуации с выполнение таких неподъемных запросов.

Zlyukka Подменю пользователя
сообщение 14.08.14, 11:36
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 33
Спасибо сказали: 1 раз
Рейтинг: 0

Спасибо Вам. Значит будим ограничивать периоды.

Kashemir Подменю пользователя
сообщение 14.08.14, 11:44
Сообщение #6

Молчаливый
*
Группа: Пользователи
Сообщений: 8
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Возможно стоит поработать над вопросом оптмизации запроса.

Zlyukka Подменю пользователя
сообщение 14.08.14, 11:58
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 33
Спасибо сказали: 1 раз
Рейтинг: 0

Давайте попробуем

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

Коротко о задаче: Отчет должен вернуть количество дней, когда чистый остаток на складе был =0. Также в отчет выводятся Закупочная цена и оптовая цена

 ! 

Правила п.6
 


Сообщение отредактировал pablo - 14.08.14, 12:15

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Тема закрыта Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 23.05.24, 16:42
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!