Имя: Пароль:
1C
1С v8
Регламентное задание
0 Мандалай
 
25.09.18
16:45
Добрый день.
Уже всю голову сломал.
Есть отчет, который выгружается каждую ночь на сервер в файл EXCEL.
Когда запускаешь задание вручную - файл выгружается.
Когда запускаешь по расписанию - задание валится с ошибкой: "Преобразование значения к типу Число не может быть выполнено".
Кто сталкивался?
Возможно ошибка из-за настроек пользователя.
Пробовал выгружать из под серверного пользователя, по которым выгрузка идет - ошибки нет.
1 Cyberhawk
 
25.09.18
16:48
На хосте сервера приложений теперь попробуй, и под пользователем ОС, что у службы агента прописан
2 Мандалай
 
25.09.18
16:49
Уже проверил - работает.
3 Мандалай
 
25.09.18
16:49
А по расписанию не работает.
4 kennetmccormick
 
25.09.18
16:50
отладчиком посмотреть. скорее всего параметр какой-то не задан
5 PR
 
25.09.18
16:52
Страшно за нашу отрасль порой
6 Мандалай
 
25.09.18
16:52
Параметры заданы.
7 Мандалай
 
25.09.18
16:53
К рабочей базе не имею доступа,.
На тестовом серваке все работает как часы.
8 Мандалай
 
25.09.18
16:54
(5)Что страшно то?
9 PR
 
25.09.18
16:55
LOL
Проанализировать строку кода, в которой ошибка, видимо выше человеческих сил?
Вангую, что дело в региональных настройках на серваке, типа точка вместо запятой в числах, а в результате говнокода на авось а'ля и так сойдет 1С валится
10 Базис
 
naïve
25.09.18
16:56
Локализовать ошибку до строки кода не хочешь?
11 Мандалай
 
25.09.18
16:57
На какой строке валится вижу.
Вопрос в том, почему вручную выгружается, а по регламенту нет.
12 Мандалай
 
25.09.18
16:58
(9)Это понятно, что рег настройки играют роль, тогда объясни почему руками выгружается, а по заданию нет.
13 Cyberhawk
 
25.09.18
16:59
Что-то ты брешешь в (2) походу
14 Мандалай
 
25.09.18
16:59
Поменять настройки на сервере не вариант, не в моей компетенции.
15 PR
 
25.09.18
17:00
(8) Страшно, что такие вещи как в (0) ставят в нерушимый тупик
16 Мандалай
 
25.09.18
17:00
(15)Какие?
17 PR
 
25.09.18
17:01
(12) Да потому что руками ты на клиенте все делаешь
18 PR
 
25.09.18
17:01
(16) Рукалицо
19 PR
 
25.09.18
17:02
(14) Их и не нужно менять, поменяй свой код, который работает на честном слове и на одном крыле в одном случае из пяти
20 Franchiser
 
гуру
25.09.18
17:04
(0) сколько серверов в кластере?
21 Мандалай
 
25.09.18
17:05
(13)Не брешу, если конечно меня техподдержка нагло не обманула, и не выслала другие учетные данные...
(20)3
22 Serg_1960
 
25.09.18
17:05
(11) "На какой строке валится вижу" - может стоит озвучить эту строку? Или так и будешь интриговать до сотого поста?

(15) Радуйся - без работы не останешься :)
23 Franchiser
 
гуру
25.09.18
17:06
Что мешает отладить регламентное задание?
24 Мандалай
 
25.09.18
17:06
(23)Отсутствие отладки на рабочем сервере -  по регламенту не положено.
25 Franchiser
 
гуру
25.09.18
17:07
(21) может у тебя в регламентном задании код выполняется на 1-м сервере, а когда вручную на другом?
Узнай на каком сервере выполняется код и настрой для отладки требования назначения функциональности временно на этот сервер.
26 Cyberhawk
 
25.09.18
17:07
(21) Какие "учетные данные" тебе выслали?
27 PR
 
25.09.18
17:08
(24) Ну так выполни уже код на сервере что ли и сообщи в окно сообщений, при каких обстоятельствах валится
28 Мандалай
 
25.09.18
17:08
(25)Я ж говорю не имею доступа до настроек рабочей базы, если б имел и проблем не было. Мне учетку, пользователя под которым 1С крутится выслали под большим секретом.
29 PCcomCat
 
25.09.18
17:09
Свои пять копеек )): может не на сервере код выполняется, когда регламентному нужно выполнение на сервере.
30 Мандалай
 
25.09.18
17:09
Менять рабочую конфу я тоже не могу.
31 PR
 
25.09.18
17:10
(30) Ну так выполни во внешней обработке
32 kennetmccormick
 
25.09.18
17:10
отчет на СКД?
33 PCcomCat
 
25.09.18
17:10
Строка,на которой валится, не функцией значение получает?
34 Serg_1960
 
25.09.18
17:11
PS: Регламент, работа которого зависит не от конфигурации, а от каких-то там "учетных данных" - это... это (5)
35 Cyberhawk
 
25.09.18
17:16
Может у DefUser'а, что с ролями из корня конфигурации, каких-нибудь прав не хватает.
Проверь под пользователем ИБ, роли которого совпадают с ролями корня конфигурации.
36 Franchiser
 
гуру
25.09.18
17:16
(28) если три сервер д.б. 3 учетки.
37 Franchiser
 
гуру
25.09.18
17:17
Ну добавь запись в лог регламентом, чтобы понять на какой строке валится.
38 tesseract
 
25.09.18
17:18
(29) Ну так регламентные без пользователя выполняться вообще. Фоновые только с пользователем.
39 PCcomCat
 
25.09.18
17:20
(38) Я про пользователя не упоминаю)
40 Мандалай
 
25.09.18
17:23
(37)Я это уже сделал. Сегодня ответственные лица перенесут эти 3 строчки в рабочую конфигурацию. Завтра в ЖР появятся записи об ошибках - будет какая-то информация для размышления.
41 Cyberhawk
 
25.09.18
17:24
(29) "может не на сервере код выполняется, когда регламентному нужно выполнение на сервере" // Не ясно, о чем речь в первой половине предложения. ФЗ, порождаемое РЗ, нигде кроме как на сервере выполняться не может. А вот если первая половина о том, что автор проверяет код и он выполняется не на сервере (например, он это в толстом клиенте делает), то да - вполне возможно
42 Мандалай
 
25.09.18
17:24
(32)Нет, часть запросом высчитывается, частично пересчет врукопашную пересчет идет.
43 Мандалай
 
25.09.18
17:25
(41)Да нет, я в тонком проверяю.
44 tesseract
 
25.09.18
17:27
(30) как-то противоречит (40).

(39) Сейчас еще в итоге выясниться, что он Excel запускает через OLE.
45 Мандалай
 
25.09.18
17:32
(44)Почему? Я вношу изменения в хранилище, предоставляю реестр изменений ответственным лицам, которые переносят в продуктив, после тестирования. Я не имею права менять ни настройки кластера, ни конфигурацию рабочей азы, ни данные в базе.
Этот механизм подрядчик пилил, хз как он там Excel вызывал. Этот отчетик кстати тоже не мой, я его дорабатываю.
46 tesseract
 
25.09.18
22:54
(45) Я тебе мешаю? Ты входных данных не даешь достаточно, для выяснения, в чем у тебя проблема.  

Регламентное задание выполняется только "На сервере".

На сервере нельзя вызвать интерактивные OLE объекты, на сервере есть доступ только к папке пользователя сервера, на сервере нельзя получить данные к реквизитам формы, нельзя обращаться к реквизитам обработки, если ты не создал объект обработки.
47 Mankubus
 
26.09.18
07:37
(45) может быть покажешь строку кода в которой ошибка появляется?
48 Evgenchik
 
26.09.18
09:02
Ты когда вручную запускаешь, выгрузка откуда идет в файл, с серверной процедуры или с клиентской? Если с клиентской - то переделай на серверную и потестируй у себя, ведь регламентным заданием у тебя выгружается с сервера.
Эмулируй структуру базы у себя, отладку регзадания сделай у себя.
Найди все места, где возможно преобразование в число и обработай так, чтобы ошибки не было. Пусть выгружается ноль например, но сохраняй лог ошибок.
49 Ник080808
 
26.09.18
09:17
предлагаю дружно попросить автора показать строчку кода на которую ругается. На раз два три кричим - Просю!
50 Мандалай
 
26.09.18
09:48
:)
облИтог.Параметры.Переменная1 = ВыборкаОбщиеИтоги.Переменная2/ВыборкаОбщиеИтоги.Переменная3*100;

ВыборкаОбщиеИтоги - выборка верхнего уровня.

В журнал регистрации есть следующая информация:

"Не удалось автоматически сформировать очтет "Отчет1" - {Отчет.Отчет1.МодульОбъекта(468)}: Cannot convert value to Numeric" - это пишется платформой.

"Тип Undefined" - это то что я дописал.
Причем ругается на обе переменные: Переменная2 и Переменная3.

Знаю что на РЗ сервере выполняется.
У нас кластер из 3-х серверов - когда запускаю руками РЗ - оно выполняется на 1-ом - 2-ом серверах, когда по расписанию - на 3-ем сервере.
Не работает именно на третьем серваке.
Excel везде одинаковый.

Грешил на NULL, но в запросе нет предпосылок для NULL. Обе переменные получаются без левого соединения, напрямую из основной таблицы, тип Число (не составной).
51 Мандалай
 
26.09.18
09:49
Приходит в голову только проверка на число в момент выполнения операции. Но это как то не кошерно.
52 Evgenchik
 
26.09.18
10:01
Причем тут Excel, если у тебя не может выражение рассчитаться. И при чем тут серваки тоже не понятно. Очевидно, что в Переменная2 или в Перменная3 у тебя ни фига не число.
53 Cyberhawk
 
26.09.18
10:02
Вообще-то ошибка "Cannot convert value to Numeric" число скульная
54 Cyberhawk
 
26.09.18
10:03
Хотя...
55 Cyberhawk
 
26.09.18
10:05
Пади в выборе нет ни одной записи
56 Мандалай
 
26.09.18
10:09
(55)Если бы не было записей, то и на других серваках была бы такая же ошибка.
57 Evgenchik
 
26.09.18
10:11
непонятно как ты тестируешь. Если ты вручную запускаешь, как ты определяешь на каком серваке запускаешь?
58 Мандалай
 
26.09.18
10:14
В журнале регистрации фиксируются все этапы выполнения задания.
59 Cyberhawk
 
26.09.18
10:15
(56) Не обязательно: на разных рабочих серверах кластера может быть разный набор сервисов, что может вызывать разное поведение одного и того же кода. Например, сервис взаимодействия с ВИДами.
60 VladZ
 
26.09.18
10:19
(0) Покажи уже код.
61 Мандалай
 
26.09.18
10:47
(60)Всю портянку? Знаешь же что не покажу.
(59)Да, ты прав, на 3-ем сервере из сервисов только "Сервис сеансовых данных". У 1-ого и 2-ого сервера какая-то каша с сервисами - у 2-ого добавлены все, а у 1-ого добавлено всего 5. Хотя может это специально сделано...
Какой сервис надо добавить для корректной выгрузки отчета по расписанию? Отмечу, что это не единственный отчет, который выгружается по расписанию. Есть еще и другие отчеты, которые выгружаются автоматом по расписанию, с ними проблем нет - только с этим.
62 Cyberhawk
 
26.09.18
13:02
Применительно к твоему отчету вряд ли причина в разных назначенных сервисах, но вообще все зависит от кода отчета.
Без отладки в реальном времени можно попробовать "отладку в уме", но ты же код не предоставляешь.
63 MrBoss
 
26.09.18
13:03
(50) А завернуть всё в попытку исключение не пробовал?
Типа так:
Попытка
облИтог.Параметры.Переменная1 = ВыборкаОбщиеИтоги.Переменная2/ВыборкаОбщиеИтоги.Переменная3*100;
Исключение
КонецПопытки
64 Ник080808
 
26.09.18
13:27
(63) Только дописать
Исключение
Сообщить(ТипЗнач(ВыборкаОбщиеИтоги.Переменная2));
Сообщить(ВыборкаОбщиеИтоги.Переменная2);
Сообщить(ТипЗнач(ВыборкаОбщиеИтоги.Переменная3));
Сообщить(ВыборкаОбщиеИтоги.Переменная3);
КонецПопытки
65 Мандалай
 
26.09.18
13:59
(63)Попытка скорее всего уберет данную ошибку, но это ж не вариант каждую строку пихать в попытку/исключение.
(64)Уже реализовал. Только пишу в ЖР: значение - ничего не пишет, а тип Undefined.
66 Ник080808
 
26.09.18
14:09
ВыборкаОбщиеИтоги это шо такое?
67 Мандалай
 
26.09.18
14:29
(66)Друг, ты гений. В отчете не было проверки на пустой запрос, а в параметры запроса передавался перечень организаций из параметров сеанса.
Всем спасибо.
68 Cyberhawk
 
26.09.18
14:55
Таки (55) угадал?
69 Мандалай
 
26.09.18
15:11
(68)Да. :) Не мог предположить что подрядчик, который берет деньги за свои работы будет так безобразничать.
Спасибо.
70 Cyberhawk
 
26.09.18
16:30
А почему выборка пустая только в регл. задании? В запросе установка параметров привязана к пользователю ИБ?
71 Мандалай
 
26.09.18
16:35
Да, в параметр передается параметр сеанса со списком организаций.
Для регл.задания такая реализация хорошего мало, но мне сейчас никто внятно не скажет как это задумывалось на самом деле.