Регламентное задание

1. starjevschik 04.09.20 11:37 Сейчас в теме
База 10.3 (обычное приложение) сиквел. Есть регламентное задание, оно выгружает файл с остатками на фтп. Если запускаю вручную ту же процедуру, то остатки совсем другие получаются, чем когда оно само. Параметров входящих нет, остатки берем на текущую дату, дата пишется в тот же файл, ее можно проверить и она правильная.
Вручную выполняется именно та же процедура, что и в задании.
Когда вручную, все в остатках правильно, сходится с отчетами в базе. Когда автоматически, то пишется что-то другое. Причем по-моему всегда одинаковое, в файле меняется только дата остатков, то есть файл все же не не тот же самый.
Не могу понять, что может идти не так. Выглядит как-то мистически. В чем может быть фокус?
Причем так не всегда было, заданию уже 4 года, проблема появилась недавно, несколько дней назад.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Xershi 1484 04.09.20 11:46 Сейчас в теме
(1) записывай параметры и все станет ясно. А так есть и отладка фоновых в чем проблема?
Если работает не так как нужно, то проблема в входных данных. Или контексте выполнения, т.е. кривой код.
4. starjevschik 04.09.20 11:47 Сейчас в теме
(2) там нет входных параметров. Ни одного. Текущая дата передается в запрос и записывается в файл, причем записывается параметр запроса...
6. Xershi 1484 04.09.20 11:54 Сейчас в теме
(4) как это то ни одного. В запросе куча параметров.
8. AnryMc 849 04.09.20 11:56 Сейчас в теме
(4)
там нет входных параметров


???

(5)
&Склад
&СписокГрупп
&СкладыДоТоргового
&ДатаОстатков

!!!
(5)
там параметры есть, которые определяются в той же процедуре. Входящих параметров нет.


Где исполняется процедура при ручном старте и в задании???
11. starjevschik 04.09.20 11:58 Сейчас в теме
(8) параметры определяются в той же процедуре, сама процедура вызывается без параметров, то есть что кнопкой, что заданием, одинаково.
13. user930087 04.09.20 11:59 Сейчас в теме
(11) есть подобная ситуация, выполняю на сервере же вручную - одни данные, фоновое на сервере - другие. Понять тоже не могу
17. Xershi 1484 04.09.20 12:04 Сейчас в теме
(11) рекомендую проверить конфигурацию с галочкой сервер, много нового узнаете)
19. starjevschik 04.09.20 12:09 Сейчас в теме
(17) ну вот сделал каждые 20 минут - все правильно выгружается. Параметры зависят от времени? Там все совсем прямолинейно, Справочник.НайтиПоНаименованию(). Я никакие константы не стал использовать специально, чтобы негде было ошибиться с правами всякими и т.п.
22. Xershi 1484 04.09.20 12:52 Сейчас в теме
(19) НайтиПоНаименованию кривая функция. Платформу случайно не обновляли пару дней назад?
23. starjevschik 04.09.20 13:08 Сейчас в теме
(22) платформу обновляли с год назад. Почему может не так работать поиск по наименованию, я представить не могу. Если только они поменяют названия складов, ну это очень маловероятно.
24. TODD22 18 04.09.20 13:14 Сейчас в теме
(23)
Почему может не так работать поиск по наименованию, я представить не могу.

Можно предположить что могут быть два одинаковых названия.
25. starjevschik 04.09.20 13:16 Сейчас в теме
(24) да, но здесь не тот случай...
27. Xershi 1484 04.09.20 13:31 Сейчас в теме
(23) вероятность всегда есть.
А СУБД не обновляли?
20. user930087 04.09.20 12:10 Сейчас в теме
(17) как понять проверить?
21. Xershi 1484 04.09.20 12:51 Сейчас в теме
(20) вы не знаете как проверять модули? Откройте руководство администратора или программиста.
16. soft_wind 04.09.20 12:04 Сейчас в теме
(1) похоже на кеширование,
еще как вариант, задать Фоновому Заданию другого пользователя
18. user930087 04.09.20 12:09 Сейчас в теме
(16) а как решить проблему с кешированием? удалить/добавить базу может помочь?
3. Климов Сергей 04.09.20 11:47 Сейчас в теме
1. Запрос без параметров? Текст бы увидеть.
2. При запуске вручную код исполняется на клиентской машине. Регламентным заданием - на сервере. В этом разница. Может время таки разное на клиенте и на сервере?
5. starjevschik 04.09.20 11:49 Сейчас в теме
(3) время одинаковое, я его пишу в файл с данными.
Запрос и запрос, там параметры есть, которые определяются в той же процедуре. Входящих параметров нет.
ВЫБРАТЬ
	ВсеДанные.Номенклатура КАК Номенклатура,
	ВсеДанные.Номенклатура.Артикул КАК Артикул,
	ВЫРАЗИТЬ(ВсеДанные.Номенклатура.НаименованиеПолное КАК СТРОКА(300)) КАК НаименованиеПолное,
	ВЫБОР
		КОГДА СУММА(ВсеДанные.Остаток) - СУММА(ВсеДанные.Резерв) < 0
			ТОГДА 0
		ИНАЧЕ СУММА(ВсеДанные.Остаток) - СУММА(ВсеДанные.Резерв)
	КОНЕЦ КАК СвободныйОстаток,
	ВЫБОР
		КОГДА СУММА(ВсеДанные.Резерв) < 0
			ТОГДА 0
		ИНАЧЕ СУММА(ВсеДанные.Резерв)
	КОНЕЦ КАК Резерв,
	ВЫБОР
		КОГДА СУММА(ВсеДанные.Заказано) < 0
			ТОГДА 0
		ИНАЧЕ СУММА(ВсеДанные.Заказано)
	КОНЕЦ КАК Заказано
ИЗ
	(ВЫБРАТЬ
		ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
		ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
		0 КАК Резерв,
		0 КАК Заказано
	ИЗ
		РегистрНакопления.ТоварыНаСкладах.Остатки(
				&ДатаОстатков,
				Склад = &Склад
					И Номенклатура В ИЕРАРХИИ (&СписокГрупп)) КАК ТоварыНаСкладахОстатки
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		ТоварыВРезервеНаСкладахОстатки.Номенклатура,
		0,
		ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,
		0
	ИЗ
		РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
				&ДатаОстатков,
				Склад = &Склад
					И Номенклатура В ИЕРАРХИИ (&СписокГрупп)) КАК ТоварыВРезервеНаСкладахОстатки
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		ВсеВПути.Номенклатура,
		0,
		0,
		ВсеВПути.КоличествоОстаток
	ИЗ
		(ВЫБРАТЬ
			ЗаказыПоставщикамОстатки.Номенклатура КАК Номенклатура,
			ЗаказыПоставщикамОстатки.КоличествоОстаток КАК КоличествоОстаток
		ИЗ
			РегистрНакопления.ЗаказыПоставщикам.Остатки(&ДатаОстатков, Номенклатура В ИЕРАРХИИ (&СписокГрупп)) КАК ЗаказыПоставщикамОстатки
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			ТоварыНаСкладахОстатки.Номенклатура,
			ТоварыНаСкладахОстатки.КоличествоОстаток
		ИЗ
			РегистрНакопления.ТоварыНаСкладах.Остатки(
					&ДатаОстатков,
					Номенклатура В (&СписокГрупп)
						И Склад В (&СкладыДоТоргового)) КАК ТоварыНаСкладахОстатки) КАК ВсеВПути
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		ТоварыКПередачеСоСкладовОстатки.Номенклатура,
		0,
		ТоварыКПередачеСоСкладовОстатки.КоличествоОстаток,
		0
	ИЗ
		РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(
				&ДатаОстатков,
				Склад = &Склад
					И Номенклатура В ИЕРАРХИИ (&СписокГрупп)) КАК ТоварыКПередачеСоСкладовОстатки) КАК ВсеДанные

СГРУППИРОВАТЬ ПО
	ВсеДанные.Номенклатура,
	ВЫРАЗИТЬ(ВсеДанные.Номенклатура.НаименованиеПолное КАК СТРОКА(300)),
	ВсеДанные.Номенклатура.Артикул

УПОРЯДОЧИТЬ ПО
	Артикул
Показать
7. herfis 499 04.09.20 11:54 Сейчас в теме
Самое тупое - другие права доступа на FTP для пользователя сервера приложений.
А, нет, у тебя же выгрузка а не загрузка...
Если совсем мистика-мистика, то врубай отладку на сервере и иди по фоновому отладчиком.
10. starjevschik 04.09.20 11:57 Сейчас в теме
(7) совсем мистика. Сделал расписание на каждые 20 минут, выгрузка прошла - файл правильный. Такое ощущение, что только выгрузка в 8 утра неправильная, в нормальном режиме оно выгружается в 8 и 15.
Но так же не бывает?
14. TODD22 18 04.09.20 12:01 Сейчас в теме
(10)
Такое ощущение, что только выгрузка в 8 утра неправильная

Может там какое то фоновое задание отрабатывает которое влияет на остатки/партии.

Можно залогировать все параметры отдельно и посмотреть.
15. starjevschik 04.09.20 12:04 Сейчас в теме
(14) других заданий в это же время нет
может пользователи... каждый день в 8 утра... но там это практически исключено, не те пользователи.
Попробую параметры еще куда-то записать все. Но как-то в это не очень верю.
26. herfis 499 04.09.20 13:25 Сейчас в теме
(15) Легко проверить. Посмотри ЖР на предмет записи доков, влияющих на остатки, в это время.
28. starjevschik 04.09.20 13:43 Сейчас в теме
(26) регулярно нет ничего, я проверял, конечно. В это время там редко вообще пользователи есть. Сегодня вот не было никого.


(27) ничего не менялось, ни платформа, ни СУБД, ни операционная система...
29. Xershi 1484 04.09.20 16:21 Сейчас в теме
(28) дыра тогда в коде или контексте.
Проверку кода провели?
9. TODD22 18 04.09.20 11:57 Сейчас в теме
"Дата остатков" каким значением инициализируется при ручном запуске и при запуске рег заданием, нет ли разницы по времени между сервером и клиентом?

И параметры отборов то же надо проверить, что в параметрах Склад, СписокГрупп, СкладыДоТоргового.
12. starjevschik 04.09.20 11:59 Сейчас в теме
(9) это текущая дата, и в файл я ее пишу, там видно, какая она была при выгрузке.
30. starjevschik 05.09.20 09:06 Сейчас в теме
Мистика продолжается. Вчера поменял расписание - утром в 7:45 выгружать. Сейчас смотрю - в консоли заданий написано, что выполнено в 7:45. В файле написано "Остатки по состоянию на 05.09.2020 8:00:08", в файл пишется параметр запроса, который ставится на ТекущаяДата(). Остатки в файле неправильные.
Хотя постойте-ка... кажется, я начинаю понимать, что происходит...
31. Xershi 1484 05.09.20 10:36 Сейчас в теме
(30) вам уже об этом давно сказали.
32. starjevschik 05.09.20 13:40 Сейчас в теме
(31) где? ответа пока не было
код тут вообще ни при чем )
33. Xershi 1484 05.09.20 18:29 Сейчас в теме
(32) входные параметры кривые. Текущая дата на сервере это не тоже самое что на клиенте.
И если формировать отчёт на время уканное в коде, то разницы нет.
34. starjevschik 05.09.20 21:05 Сейчас в теме
(33) нет, совсем не в этом дело
ключ вот в этом
пишется что-то другое. Причем по-моему всегда одинаковое, в файле меняется только дата остатков

и в этом
в консоли заданий написано, что выполнено в 7:45. В файле написано "Остатки по состоянию на 05.09.2020 8:00:08"

но я очень не сразу догадался
прям логическая задача.
35. пользователь 29.09.20 20:23
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот