Зависает закрытие месяца

1. tip22 24.07.12 11:08 Сейчас в теме
бух 2.0 1c 8.2.15 SQL2008 зависает при закрытие месяца на операции( корректировка стоимости номенклатуры ) , приходится выгружать в файловый вариант и закрывать месяц ( еще помогает загрузит свежесделанную дтшку , загрузить в базу "sql" сделать тестирование и исправление , после этого месяц закроет , только 1 раз , когда следующий закрываешь опять висит , надо проделывать все сначала )
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
47. PN01021998 11.11.19 11:37 Сейчас в теме
(1) Добрый день. Столкнулась сейчас с такой проблемой в клиент-серверной БП 3.0. Вы решили данный вопрос, подскажите пожалуйста?
48. ybatiaev 59 20.04.21 16:06 Сейчас в теме
(47) только сейчас столкнулись с проблемой зависания закрытия месяца. Не могу понять откуда ноги. Вполне вероятно связано с комплектами. Но точки останова ничего не дали.
Вы решили свою проблему? На что обратить внимание?
2. tango 546 24.07.12 11:18 Сейчас в теме
3. tip22 24.07.12 11:23 Сейчас в теме
разные были ( щас последняя стоит ), платформы тоже разные были начиная 8.2.15.296 , сейчас 318 стоит
4. tango 546 24.07.12 11:25 Сейчас в теме
5. tango 546 24.07.12 11:26 Сейчас в теме
любопытный камент в алгоритме:
//Заполним новый массив комплектов с проверкой на наличие такой номенклатуры
//в составе обработанных комплектов. Это нужно что бы исключить зацикливание
//в случаях Ном1 -> Компл1 -> Ном1
6. tango 546 24.07.12 11:31 Сейчас в теме
как насчет зацикливания в комплектах?
7. tango 546 24.07.12 11:45 Сейчас в теме
возвраты (от покупателей, переработчиков) были? с местами хранения какие-нибудь случаи нестандартные?
8. tango 546 24.07.12 11:53 Сейчас в теме
в общ.модуле КорректировкаСтоимости в процедуре ОцифроватьСостояния
есть определение массива
Массив = Новый Массив;
Массив.Добавить(Тип("NULL"));
который потом не используется

можно предположить, что игры разрабов с типом НУЛЛ
привели к разнице в поведении между файловой и клиент-серверной базы
9. tango 546 24.07.12 11:54 Сейчас в теме
короче, аффтар, ты где? а то интерес гастнет
10. tango 546 24.07.12 12:07 Сейчас в теме
короче, попробуй сделать так:

//Массив = Новый Массив;
//Массив.Добавить(Тип("NULL"));
//ОписаниеТиповС = Новый ОписаниеТипов(Таб.Колонки[2].ТипЗначения.Типы(), , ,);
Массив = Таб.Колонки[2].ТипЗначения.Типы();
Массив.Добавить(Тип("NULL"));
ОписаниеТиповС = Новый ОписаниеТипов(Массив, , ,);
11. tip22 24.07.12 17:13 Сейчас в теме
Много комплектов и комплекты в комплектах
12. tango 546 24.07.12 17:15 Сейчас в теме
косяк с нулами отработал?
13. tip22 24.07.12 17:46 Сейчас в теме
14. tango 546 24.07.12 17:57 Сейчас в теме
срубай. копать надо в рекурсию комплектов, имхо. базу кинешь?
15. tip22 24.07.12 17:59 Сейчас в теме
база большая 20Гб , подскажите мож как найти
16. tango 546 24.07.12 18:19 Сейчас в теме
на поверхности - проверить на кольцо ссылок в комплектах
20 гиг - это архив dt, архив скульный или cd-ешник?
через файлообменники должно пролезть
17. tango 546 24.07.12 18:32 Сейчас в теме
... бадья. зациклил у себя спецификацию одной позиции на саму себя - проскочило
18. tango 546 24.07.12 18:43 Сейчас в теме
не нравится мне этот запрос, в ПолучитьТаблицуОперацийСписания
19. tango 546 24.07.12 18:45 Сейчас в теме
тормознись на этой строчке
СтруктураДопПараметров.Вставить("МассивКомплектов", МассивКомплектов);
посмотри, сколько раз она вызывается, как изменяется массив
20. tango 546 25.07.12 08:26 Сейчас в теме
21. tip22 25.07.12 16:32 Сейчас в теме
СтруктураДопПараметров.Вставить("МассивКомплектов", МассивКомплектов); сюда попадает 1 раз , а после продолжения, зависает ( ну или считает что-то до бесконечности ).
23. tango 546 25.07.12 20:34 Сейчас в теме
(21) tip22, ага. ну хоть что-то
22. пользователь 25.07.12 17:35
Сообщение было скрыто модератором.
...
24. Гинея 27.07.12 09:04 Сейчас в теме
Корректировка стоимости происходит до ПолучитьТаблицуОперацийСписания. А эта процедура нужна уже для корректировки стоимости перемещений.
Сколько переделов выдает при закрытии?
25. tip22 30.07.12 13:08 Сейчас в теме
все выходные бился , зависание происходит в разных местах на разных запросах , но есть одна закономерность , если пройти отладчиком ( корректировка стоимости номенклатуры ) то операция отрабатывается . Мож с ресурсами чего , освобождать не успевает . На сервере 16 г оперативки , и стоит 1С81 и 1с 82 на разных портах .
26. Sol 54 30.07.12 14:27 Сейчас в теме
(25) 8.2 сколько процессов 8.2 запущено? нужно понимать что для 8.1 и для 8.2 абсолютно противоположные рекомендации по количеству рабочих процессов.
27. tip22 30.07.12 16:48 Сейчас в теме
28. владимирова 19.09.12 16:33 Сейчас в теме
29. Valerich 1636 25.01.13 02:14 Сейчас в теме
Попробую поднять тему, потому что наступили на те же грабли.

Дано: 1с Бухгалтерия КОРП 2.0.43.12 (начало глючить на релизе 2.0.0.32)
Вариант запуска "Клиент-сервер".
1С:Предприятие 8.2 (8.2.17.143)
MS SQL 2005 SP 4 64 bit

Корректировка стоимости зависает. Происходит это всегда при выполнении одного из запросов: либо в процедуре "ПолучитьТаблицуПеремещений" (чаще всего) либо в "ДобавитьНачальныйОстатокИВнешнееПоступление" (гораздо реже).
при пошаговом выполнении в отладчике шансов, что запрос выполнится нормально гораздо больше, чем при нормальном выполнении, потому что не пошагово уже не работает вообще.

В файловом варианте не пробовал, потому что база довольно большая (14 гиг)

Делал тестирование и исправление, включающее реиндексацию, реструктуризацию, пересчет итогов (вообще все флажки взводил) . Все проходит нормально. На SQL сервере тоже выполнял очистки процедурного кэша, перестроение индексов, обновление статистик - все что рекомендуют спецы из 1с.

Пытался даже по SQL лазить профайлером в момент выполнения запроса. Правда пользоваться им особо не умею еще. Запускал со стандартной настройкой сбора
SQL:Batch Starting
SQL:Batch Comleted
RPC:Completed

Возникает такое ощущение, что скуль вообще где-то теряет этот запрос (на котором тормозится), потому что никакой реакции или записи в профайлере не возникает. Только периодически повляются запросики при выполнении регламентных заданий. А 1сина при этом висит.

В момент зависания прекратить отладку невозможно - виснет наглухо конфигуратор. Через управление 1с сервером зависшая сессия убивается нормально как правило (хотя обычно этого не происходит, если завис большой запрос).

В общем подскажите куда еще копать, плиз
30. Sol 54 25.01.13 02:30 Сейчас в теме
(29) нужно переписать запросы из указанных процедур на пакетник, с временными таблицами вместо вложенных запросов.

самое главное - нельзя оставлять в запросах СОЕДИНЕНИЯ с виртуальными таблицами и вложенными запросами.
31. Valerich 1636 25.01.13 14:36 Сейчас в теме
Разложил запрос на атомы и вот что получается: вот такой простейший запрос может увести базу в нирвану и бесконечное созерцание себя самой:

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

Показать
ybatiaev; b-dm; +2 Ответить
32. Sol 54 25.01.13 22:41 Сейчас в теме
(31) в теории, именно эта чать запроса не должна приводить к настолько печальным последствиям, с учетом того что ты делаешь реиндексацию и обновление статистик...

но если это так, то рекомендую изменить запрос так:
"ВЫБРАТЬ
|	Хозрасчетный.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ВТ_Счета
|ИЗ
|	ПланСчетов.Хозрасчетный КАК Хозрасчетный
|ГДЕ
|	Хозрасчетный.Ссылка В ИЕРАРХИИ(&СписокСчетов)
|
|ИНДЕКСИРОВАТЬ ПО
|	Ссылка;
|////////////////////////////////////////////////////////////­////////////////////
.....
|   ПОМЕСТИТЬ Обороты
|   ИЗ
|	РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&ДатаНач, &ДатаКон, ,
СчетДт В (ВЫБРАТЬ ВТ_Счета.Ссылка ИЗ ВТ_Счета), , СчетКт В (ВЫБРАТЬ ВТ_Счета.Ссылка ИЗ ВТ_Счета), , ...
Показать


т.е. избавиться от получения счетов в ИЕРАРХИИ внутри параметров виртуальной таблицы

P.S. ты когда делаешь Временную таблицу, не забывай интексировать те поля, по которым потом будет идти СОЕДИНЕНИЕ. И их порядок в индексе должен быть такой же, в каком они будут потом соединяться
33. Valerich 1636 28.01.13 16:55 Сейчас в теме
(32) не помогает :(
Но что самое интересное, если рядом открыть вторую сессию с те ми же правами (полными между прочим) и запустить эти же запросы в консоли запросов с тем же набором параметров, то все безупречно отрабатывает в разумное время (несколько секунд).

Вот теперь думаю... может в каких блокировках проблема ???
34. dentoma51 8 01.03.13 15:24 Сейчас в теме
Аналогичная проблема. Зависает закрытии месяца по Корректировке стоимости списанных МПЗ (БП 1.6,Серверный вариант MS SQL Server 2005). Оставляли задание на ночь,но это не помогло. В файловом варианте проходит быстро. В режиме отладки нашел,что зависает запрос "ПолучитьТаблицуОперацийСписания",причем зависает на виде учета "Нал". На виде учета "Бух" проходит быстро. Вот,нашел форуме тему по этой проблеме,но понял,что решение не найдено? Комплектов у нас нет. База достаточно большая (dt весит 700 мб). Поделитесь опытом,нашедшие выход из этой ситуации.
35. Andrew123 23.07.13 17:08 Сейчас в теме
Решение следующее: Общий модуль "КорректировкаСтоимости"
Внести следующие исправления (в процедуре КорректировкаСтоимости):

//ДНС-> Начало изменения 23.07.2013 16:30:24
Сообщить("Получение таблицы операций");
Предупреждение("Получение таблицы состояний", 1);
//ДНС<- Конец изменения
ПолучитьТаблицуОперацийСписания(МассивНоменклатуры, НачДата, КонДата, СтруктураДопПараметров);
//ДНС-> Начало изменения 23.07.2013 16:30:24
Сообщить("Получение таблицы операций закончено");
Предупреждение("Получение таблицы состояний закончено", 1);
Сообщить("Расчет списания по средней");
Предупреждение("Расчет списания по средней", 1);
//ДНС<- Конец изменения
РассчитатьСписаниеПоСредней(МассивНоменклатуры, НачДата, КонДата, СтруктураДопПараметров);
//ДНС-> Начало изменения
Сообщить("Расчет списания по средней завершен");
Предупреждение("Расчет списания по средней завершен", 1);
//ДНС<- Конец изменения
НаборЗаписей = СтруктураДопПараметров.Регистратор.Движения["Хозрасчетный"];
Если НаборЗаписей.Количество() > 0 Тогда
НаборЗаписей.Записать(Ложь);
КонецЕсли;

МассивКомплектов = СтруктураДопПараметров.МассивКомплектов;
МассивРассчитанныхКомплектов = Новый Массив();

Пока МассивКомплектов.Количество() > 0 Цикл

СтруктураДопПараметров.Вставить("ТаблицаТоваров", МассивКомплектов);
//ДНС-> Начало изменения 23.07.2013 16:30:24
Сообщить("Получение таблицы операций комплектов");
Предупреждение("Получение таблицы состояний комплектов", 1);
//ДНС<- Конец изменения
ПолучитьТаблицуОперацийСписания(МассивКомплектов, НачДата, КонДата, СтруктураДопПараметров);
//ДНС-> Начало изменения 23.07.2013 16:30:24
Сообщить("Получение таблицы операций комплектов закончено");
Предупреждение("Получение таблицы состояний комплектов закончено", 1);
Сообщить("Расчет списания комплектов по средней");
Предупреждение("Расчет списания комплектов по средней", 1);
//ДНС<- Конец изменения
РассчитатьСписаниеПоСредней(МассивКомплектов, НачДата, КонДата, СтруктураДопПараметров);
//ДНС-> Начало изменения
Сообщить("Расчет списания комплектов по средней завершен");
Предупреждение("Расчет списания комплектов по средней завершен", 1);
//ДНС<- Конец изменения
НаборЗаписей = СтруктураДопПараметров.Регистратор.Движения["Хозрасчетный"];
Если НаборЗаписей.Количество() > 0 Тогда
НаборЗаписей.Записать(Ложь);
КонецЕсли;

//Запомним обработанную номенклатуру
36. Andrew123 23.07.13 17:46 Сейчас в теме
А если сервак совсем слабый, то можно увеличить интервал предупреждения с 1 до 5 секунд.
сделать так: Предупреждение("Расчет списания комплектов по средней завершен", 5); - для каждого предупреждения из текста изменения.
37. eagrafov 18.02.14 12:20 Сейчас в теме
И в чем суть? Таких задержек?
38. eagrafov 18.02.14 13:46 Сейчас в теме
39. tene 29.05.14 09:37 Сейчас в теме
Да, не помогает... Получается закрыть месяц только если выгрузить базу в файловый "вид", а после закрытия месяца снова выгрузить в SQL...
40. eagrafov 26.06.14 16:04 Сейчас в теме
Вылечилось установкой сервера SQL 2008 и последней платформы 1С 8.3
41. Armando 1401 27.06.14 22:22 Сейчас в теме
Могу ошибаться, но на партнерском писали, что эту проблему устранили в бух 3.0
42. Airlord 28.06.14 13:07 Сейчас в теме
Иногда прибегаю на СКУЛе к следующим танцам с бубном:
1. Выгружаю базу в dt.
2. Средствами 1С-сервера произвожу зачистку таблиц (ПКМ -очистить).
3. Конфигуратор, Администрирование, Загрузить базу - лечил даже БП3.0 ооочень тяжелую и с большими багами.
43. igen 01.08.14 10:54 Сейчас в теме
(42) Airlord, Смысл второй операции?
44. zyris 18.08.14 10:33 Сейчас в теме
У меня помогло следующие перед закрытием месяца в Management studio делаем след.
DBCC FREEPROCCACHE
DBCC FREESESSIONCACHE
DBCC FREESYSTEMCACHE ('ALL')
DBCC DROPCLEANBUFFERS
GO

Тогда отрабатывает корректно иначе очень долго считает процедуру ПолучитьТаблицуПеремещений()
45. b-dm 174 27.10.14 01:47 Сейчас в теме
(44) zyris, а можете уточнить что означают подобные мантры, можно ли их проводить в разделенном режиме,при работе др.пользователей?)
46. b-dm 174 27.10.16 12:56 Сейчас в теме
Добрый день! В итоге как то кто нибудь эту проблему решил ?) Или она так и осталась неразрешимой ?
Оставьте свое сообщение

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