|
Временные файлы при проведении документов (выполнении запросов) | ☑ | ||
---|---|---|---|---|
0
klis
21.05.15
✎
23:45
|
Есть УТ11 в файловом варианте. Платформа 8.3.6. Есть нетиповой документ, который при проведении анализирует нетиповые регистры, сопоставляет с введенными данными и кладет результат в те же регистры, вроде ничего сверхъестественного.
Документ создается дополнительной обработкой по расписанию (регламентному заданию). В целом все работает более-менее хорошо, НО от случая к случаю при проведении на серваке начинает формировать временный файл, который заполняет все свободное пространство, после чего регламентное задание благополучно загибается. Что это может быть? Есть какая-то отрывочная информация о том, что 1Сина результат запросов помещает во временные файлы, но, блин, почему один и тот же запрос может отработать как надо 3-4 раза подряд, а на 5-й взять и начать генерить бесконечный временный файл?! Кто-то может быть сталкивался? |
|||
1
GROOVY
21.05.15
✎
23:54
|
Временные таблицы там, случаем не создаются в невообозримом количестве?
|
|||
2
Сергиус
21.05.15
✎
23:56
|
(0)Может зависит от числа строк документа? А вообще да, надо смотреть запросы, что там происходит.
|
|||
3
shuhard_серый
21.05.15
✎
23:57
|
(0) ну такой случай есть тех.журнал , ну и конечно файловая УТ 11 не предмет обсуждения, ей не положено работать от роду
|
|||
4
klis
22.05.15
✎
00:00
|
(1) Нет, как раз временных таблиц там вообще нет. Есть СрезПослдених регистра сведений на несколько тысяч записей, больше вроде ничего криминального.
|
|||
5
klis
22.05.15
✎
00:08
|
(2) Количество строк всегда практически одинаковое, разница от документа к документу <1%. Если запускать регламентное задание вручную в тонком клиенте напрямую (на сервере терминале), работает всегда, все регламентное задание отрабатывает за 3-5 сек. Если тоже само делать в тонком клиенте через веб прямо вот несколько раз подряд - каждые n раз (2-3) происходит вот эта мистика...
(3) Очень надеялся, что никогда не придется пользоваться этой штукой) Не подскажите, как его лучше настроить для моего случая? |
|||
6
klis
22.05.15
✎
00:11
|
Вот обработка проведения...
Процедура ОбработкаПроведения(Отказ, РежимПроведения) Движения.ТоварыНаСкладахПоставщиков.Записывать = Истина; Движения.ТоварыНаСкладахПоставщиков.Очистить(); Если Остатки.Количество() > 0 Тогда Запрос = Новый Запрос; Запрос.УстановитьПараметр("МоментВремени", МоментВремени()); Запрос.УстановитьПараметр("Ссылка", Ссылка); Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура, | ВложенныйЗапрос.СкладПоставщика, | СУММА(ВложенныйЗапрос.Количество) КАК Количество |ИЗ | (ВЫБРАТЬ | РегистрацияОстатковПоставщикаОстатки.Номенклатура КАК Номенклатура, | РегистрацияОстатковПоставщикаОстатки.СкладПоставщика КАК СкладПоставщика, | РегистрацияОстатковПоставщикаОстатки.Количество КАК Количество | ИЗ | Документ.РегистрацияОстатковПоставщика.Остатки КАК РегистрацияОстатковПоставщикаОстатки | ГДЕ | РегистрацияОстатковПоставщикаОстатки.Ссылка = &Ссылка | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ТоварыНаСкладахПоставщиковОстатки.Номенклатура, | ТоварыНаСкладахПоставщиковОстатки.СкладПоставщика, | -ТоварыНаСкладахПоставщиковОстатки.КоличествоОстаток | ИЗ | РегистрНакопления.ТоварыНаСкладахПоставщиков.Остатки( | &МоментВремени, | СкладПоставщика В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | РегистрацияОстатковПоставщикаОстатки.СкладПоставщика | ИЗ | Документ.РегистрацияОстатковПоставщика.Остатки КАК РегистрацияОстатковПоставщикаОстатки | ГДЕ | РегистрацияОстатковПоставщикаОстатки.Ссылка = &Ссылка)) КАК ТоварыНаСкладахПоставщиковОстатки) КАК ВложенныйЗапрос | |СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.Номенклатура, | ВложенныйЗапрос.СкладПоставщика | |ИМЕЮЩИЕ | СУММА(ВложенныйЗапрос.Количество) <> 0"; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Движение = Движения.ТоварыНаСкладахПоставщиков.Добавить(); Движение.Период = Дата; Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Номенклатура = Выборка.Номенклатура; Движение.СкладПоставщика = Выборка.СкладПоставщика; Движение.Количество = Выборка.Количество; КонецЦикла; КонецЕсли; Движения.ЛидТайм.Записывать = Истина; Движения.ЛидТайм.Очистить(); Если ЛидТайм.Количество() > 0 Тогда Запрос = Новый Запрос; Запрос.УстановитьПараметр("МоментВремени", МоментВремени()); Запрос.УстановитьПараметр("Ссылка", Ссылка); Запрос.Текст = "ВЫБРАТЬ | ЕСТЬNULL(ЛидТаймСрезПоследних.Номенклатура, ВложенныйЗапрос.Номенклатура) КАК Номенклатура, | ЕСТЬNULL(ВложенныйЗапрос.ЛидТайм, 0) КАК ЛидТайм |ИЗ | РегистрСведений.ЛидТайм.СрезПоследних(&МоментВремени, ) КАК ЛидТаймСрезПоследних | ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | РегистрацияОстатковПоставщикаЛидТайм.Номенклатура КАК Номенклатура, | РегистрацияОстатковПоставщикаЛидТайм.ЛидТайм КАК ЛидТайм | ИЗ | Документ.РегистрацияОстатковПоставщика.ЛидТайм КАК РегистрацияОстатковПоставщикаЛидТайм | ГДЕ | РегистрацияОстатковПоставщикаЛидТайм.Ссылка = &Ссылка) КАК ВложенныйЗапрос | ПО (ВложенныйЗапрос.Номенклатура = ЛидТаймСрезПоследних.Номенклатура)"; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Движение = Движения.ЛидТайм.Добавить(); Движение.Период = Дата; Движение.Номенклатура = Выборка.Номенклатура; Движение.ЛидТайм = Выборка.ЛидТайм; КонецЦикла; КонецЕсли; Движения.ДатыСледующихПоставок.Записывать = Истина; Движения.ДатыСледующихПоставок.Очистить(); Если ЗначениеЗаполнено(ДатаПоставки) Тогда Движение = Движения.ДатыСледующихПоставок.Добавить(); Движение.Период = Дата; Движение.ДатаПоставки = ДатаПоставки; КонецЕсли; КонецПроцедуры |
|||
7
klis
24.05.15
✎
12:32
|
Нет идей?
|
|||
8
klis
25.05.15
✎
18:04
|
А вдруг...
|
|||
9
D_E_S_131
25.05.15
✎
18:14
|
Через монитор производительности видно что за файл вообще создается? А то может это и не 1С во все...
|
|||
10
klis
25.05.15
✎
18:33
|
(9) Явно 1С - имя файла v8_AD82_68f.tmp (например) Да и регламентное задание отваливается с ошибкой - На устройстве нет свободного места 'C:\Windows\Temp\v8_AD82_68f.tmp'. 112(0x00000070): Недостаточно места на диске.
|
|||
11
D_E_S_131
25.05.15
✎
19:01
|
Как первое, что в глаза бросается — выгрузите склады из ТЧ в массив и используйте как параметр для условий на виртуальные таблицы.
|
|||
12
D_E_S_131
25.05.15
✎
19:04
|
С "ЛидТайм" тоже какая-то хня. Перенесите хотя бы вложенный запрос во врем.таблицу с индексацией поля "Номенклатура".
|
|||
13
klis
27.05.15
✎
11:29
|
(11)(12) Попробовал. Сами по себе доки стали проводить побыстрее, но в целом ничего не изменилось. Самое забавное, что эта хня происходит, если регламентное задание происходит в контексте тонкого клиента через веб. Если запускать вручную из тонкого клиента напрямую на сервере - то все норм.
Попробовал настроить технологический журнал - не разобрался с первого раза. Что нужно отлавливать и на что смотреть в моем случае? |
|||
14
klis
27.05.15
✎
16:26
|
В ТЖ происходит вот это http://pastebin.com/PAqun0R0 бесконечно число раз. Файл лога под гиг. Что это может быть?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |