|
Ограничение на работу фоновых задач на Постгри SQL | ☑ | ||
---|---|---|---|---|
0
K1RSAN
10.05.23
✎
12:52
|
В общем такая проблема, в серверной базе УТ обработка работает секунду и прекращается, в файловом режиме - отрабатывает полный срок. Выполнена в виде внешнего отчета-обработки с запуском в фоновом режиме. Даже вручную когда открываю форму обработки и запускаю запрос - он прерывается спустя секунду-две.
|
|||
1
АНДР
10.05.23
✎
12:59
|
Продолжайте наблюдения!
|
|||
2
K1RSAN
10.05.23
✎
13:00
|
(1) Гений, вы?)
|
|||
3
K1RSAN
10.05.23
✎
13:04
|
В Администрировании 1С ограничений на запуск фоновых задач нет. Вот и думаю, мне админов пинать, что-то намудрили в настройках постгри или ещё где может быть загвоздка?
|
|||
4
АНДР
10.05.23
✎
13:06
|
Через Консоль запросов этот запрос выполнял с такими же параметрами?
|
|||
5
K1RSAN
10.05.23
✎
13:09
|
(4) Да. Консоль показывает адекватные результаты, в обработке как будто идет сбрасывание по времени.
Потом копию базы раскрутил в файловом варианте - открыл ту же обработку - показывает адекватные результаты. |
|||
6
Hmster
10.05.23
✎
13:13
|
А что показывает журнал регистрации, и что консоль фоновых?
|
|||
7
PLUT
10.05.23
✎
13:13
|
(5) в качестве бреда: добавь в свою обормотку-отчет в нужных местах ВызватьИсключение бла-бла-бла с отладочной информацЫей - ну там кол-во записей запроса/время начала/кончала... если с отладкой возиться лень.
по журналу можно потом ашипки глянуть |
|||
8
K1RSAN
10.05.23
✎
13:19
|
(6)
Журнал регистрации Фоновое задание. Запуск Дополнительные отчеты и обработки: Выполнение серверного метода обработки Дополнительные отчеты и обработки Подключение, БезопасныйРежим = "Нет". Фоновое задание. Успешное завершение Журнал фоновых Дополнительные отчеты и обработки: Выполнение серверного метода обработки Задание выполнено |
|||
9
K1RSAN
10.05.23
✎
13:20
|
(7)
В результате запроса разное количество записей на серверной базе и в клиентской при одинаковых параметрах запроса. |
|||
10
Прапорщик
10.05.23
✎
13:22
|
(0) Что означает "запрос - он прерывается"?
Как это выглядит? Возвращается пустой результат запроса? Возвращается результат, но он неверный? Вызывается исключение? Если проблема с запросом, где его текст? Вангую. Проблемы с параметрами запроса. Если отладка выключена, воспользуйтесь методом (7) и добавьте вывод разной отладочной информации в ЖР. |
|||
11
K1RSAN
10.05.23
✎
13:24
|
(10) В файловой и серверной базе запрос возвращает разное количество строк при одинаковых параметрах.
При этом в консоли запросов результаты запросов идентичны. |
|||
12
АНДР
10.05.23
✎
13:26
|
(9), (11) При таких вводных надо исходные данные на соответствие параметрам проверять...
|
|||
13
Hmster
10.05.23
✎
13:32
|
(11) параметры запроса сохрани в ЖР при выполнении, потом проверяй
|
|||
14
K1RSAN
10.05.23
✎
13:47
|
(12) Запрос берет текущие остатки по складам на текущую дату, цены (2 вида цен забиты железно), доп. реквизит склада (прибит железно) для соответствия складов с сайтом.
по факту все параметры, кроме даты, забиты внутри и не меняются. В отладчике параметры показывает верно. |
|||
15
Garykom
гуру
10.05.23
✎
13:51
|
Покажи код
И возможно твое фоновое чем то другим прибивается |
|||
16
Garykom
гуру
10.05.23
✎
13:53
|
Проверь делая короткие запросы внутри фонового в цикле
Проверь "Проблемные процессы завершать через:" по умолчанию там 60 секунд Возможно почему то срабатывает при долгом запросе к СУБД |
|||
17
Garykom
гуру
10.05.23
✎
13:55
|
На крайняк возьми 8.3.23 и подними отдельный с сервер 1С с postgresql и mssql на другом компе
Проверь свою базу и обработку |
|||
18
Garykom
гуру
10.05.23
✎
13:55
|
(17)+ 8.3.23 потому что комьюнити лицензии появились
|
|||
19
K1RSAN
10.05.23
✎
13:57
|
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("КонецПериода", КонецДня(ТекущаяДата())); Запрос.УстановитьПараметр("СвойствоНомер", "НомерДляСайта"); Запрос.Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, | ТоварыНаСкладахОстатки.Склад КАК Склад, | ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток, | ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаИзмерения КАК НоменклатураЕдиницаИзмерения, | ТоварыНаСкладахОстатки.Номенклатура.Родитель КАК НоменклатураРодитель, | ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК НоменклатураАртикул, | СкладыДополнительныеРеквизиты.Значение КАК НомерДляСайта |ПОМЕСТИТЬ ВТ_Остатки |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ТоварыНаСкладахОстатки | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады.ДополнительныеРеквизиты КАК СкладыДополнительныеРеквизиты | ПО ТоварыНаСкладахОстатки.Склад = СкладыДополнительныеРеквизиты.Ссылка | И (СкладыДополнительныеРеквизиты.Свойство.Имя = &СвойствоНомер) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЦеныНоменклатурыСрезПоследних.Цена КАК Цена, | ЦеныНоменклатурыСрезПоследних.ВидЦены КАК ВидЦены, | ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура |ПОМЕСТИТЬ ВТ_Цены |ИЗ | РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних |ГДЕ | ЦеныНоменклатурыСрезПоследних.ВидЦены В(&ВидЦены) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_Остатки.Номенклатура КАК Номенклатура, | ВТ_Остатки.Склад КАК Склад, | ВТ_Остатки.ВНаличииОстаток КАК ВНаличииОстаток, | ВТ_Остатки.НоменклатураЕдиницаИзмерения КАК НоменклатураЕдиницаИзмерения, | ВТ_Остатки.НоменклатураРодитель КАК НоменклатураРодитель, | ВТ_Остатки.НоменклатураАртикул КАК НоменклатураАртикул, | ВТ_Цены.Цена КАК Цена, | ВТ_Цены.ВидЦены КАК ВидЦены, | ЕСТЬNULL(ВТ_Остатки.НомерДляСайта, 0) КАК НомерДляСайта |ИЗ | ВТ_Цены КАК ВТ_Цены | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки | ПО (ВТ_Остатки.Номенклатура = ВТ_Цены.Номенклатура) |ГДЕ | ВТ_Цены.Цена > 0 | И ВТ_Остатки.НомерДляСайта > 0 | |УПОРЯДОЧИТЬ ПО | Склад"; ОтборПоВидуЦен = Новый Массив; ОтборПоВидуЦен.Добавить(Справочники.ВидыЦен.НайтиПоКоду("0000000001")); ОтборПоВидуЦен.Добавить(Справочники.ВидыЦен.НайтиПоКоду("0000000002")); Запрос.УстановитьПараметр("ВидЦены", ОтборПоВидуЦен); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); ТабЗнач = ЭтотОбъект.Данные; ТабЗнач.Очистить(); Пока Выборка.Следующий() Цикл Стр = ТабЗнач.Добавить(); Стр.ДляВыгрузки = Истина; Стр.Номенклатура = Выборка.Номенклатура; Стр.ЕдиницаИзмерения = Выборка.НоменклатураЕдиницаИзмерения; Стр.Склад = Выборка.Склад; Стр.Родитель = Выборка.НоменклатураРодитель; Стр.ВидыЦен = Выборка.ВидЦены; Стр.Цена = Выборка.Цена; Стр.НомерСкладаДляСайта = Выборка.НомерДляСайта; Если Выборка.НоменклатураАртикул = "" Тогда Стр.НоменклатураАртикул = "*"; Иначе Стр.НоменклатураАртикул = Выборка.НоменклатураАртикул; КонецЕсли; Стр.КоличествоОстаток = Выборка.ВНаличииОстаток; КонецЦикла; Это всё записывается в ТЧ Потом в цикле обходятся результаты запроса и записываются в XML - этот код обрабатывается корректно, файлы сохраняются и потом выгружаются на ftp. Но только количество элементов в разы меньше, чем должно быть. Получается как будто при выполнении запроса сбрасывается и в выборку падает только 99-100 строк. |
|||
20
K1RSAN
10.05.23
✎
13:59
|
(16) у меня нет доступа к настройкам постгри, сам я его не настраивал, только MS SQL слегка ковырял, так что не знаю, какие там настройки вообще.
|
|||
21
Garykom
гуру
10.05.23
✎
14:03
|
(20) дело не в настройках постгре а скорее сервера 1С
|
|||
22
sandal_r
10.05.23
✎
14:04
|
1. у вас в запросе не используется параметр "КонецПериода"
2. проверьте права пользователя, под которым выполняется фоновое задание. возможно у него не хватает прав |
|||
23
sandal_r
10.05.23
✎
14:06
|
3. используйте параметры виртуальных таблиц
4. возможно в фоновом задании таблицы "Объект.Данные". Выгружайте в новую переменную 5. не используйте выборку, сразу выгружайте готовую таблицу. |
|||
24
Garykom
гуру
10.05.23
✎
14:08
|
(23) только хотел про ТабЗнач = ЭтотОбъект.Данные; ху из написать
|
|||
25
Garykom
гуру
10.05.23
✎
14:08
|
| И ВТ_Остатки.НомерДляСайта > 0
очень интересное условие, особенно если тип строка |
|||
26
K1RSAN
10.05.23
✎
14:09
|
(22)
1. Видимо случайно оборвалось 2. Выполняется с админскими правами. Если бы прав не хватало - вообще не формировался бы запрос, а не выгружалось бы первые 100 строк. 3. там должен быть параметр таблицы даты и всё. Проверю этот момент 4. Данные - ТЧ обработки. Думал так будет надежнее 5. Ок, попробую. |
|||
27
K1RSAN
10.05.23
✎
14:10
|
(25) тип число
|
|||
28
АНДР
10.05.23
✎
14:15
|
RLS используется?
|
|||
29
K1RSAN
10.05.23
✎
14:15
|
(28) Да
|
|||
30
АНДР
10.05.23
✎
14:17
|
При запуске в режиме отладки какой результат?
|
|||
31
K1RSAN
10.05.23
✎
14:17
|
(30) Всё проходит, но количество записей в разы меньше, чем при запуске отладки в файловом варианте
|
|||
32
АНДР
10.05.23
✎
14:22
|
(31) Мы точно говорим про одно и то же?
1С:Предприятие параметр запуска "РежимОтладки". |
|||
33
Галахад
гуру
10.05.23
✎
14:29
|
У пользователя есть права на склады?
|
|||
34
PLUT
10.05.23
✎
14:34
|
в настройках регл.заданий (фоновых) можно указать имя пользователя (имеет смысл только для серверной информацЫонной базы), под которым будет запускаться фоновое
|
|||
35
K1RSAN
10.05.23
✎
14:34
|
(33) да есть. как минимум потому, что часть строк же выгружается. Без прав был бы кукиш.
|
|||
36
sandal_r
10.05.23
✎
17:48
|
ну шо, таки права?
|
|||
37
Hmster
10.05.23
✎
22:39
|
ну или права, поэтому только кусок данных или параметры не так заполняются в фоновом
|
|||
38
dmt
11.05.23
✎
08:19
|
в запросе нет РАЗРЕШЕННЫЕ, значит при проблеме с правами должно выпадать исключение
(0) включи ТЖ, посмотри на текст запроса |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |