Перерасчет итогов регистра бухгалтерии в 1С

Публикация № 628408 30.05.17

База данных - HighLoad оптимизация

Вариант перерасчета итогов частями (помесячно), если при типовом пересчете 1С зависает.

Про типовые ситуации при работе с итогами регистра бухгалтерии опубликовано много материала. Я хотел бы рассказать о своем опыте, когда пришлось применить некоторый творческий подход, возможно кому то он пригодится.

На предприятии, где я работаю имеется база 1С бухгалтерии 1.6, в которой велся учет с 2013 по 2016 годы. По счетам 41.01, 45.01 учет велся в разрезе 2 субконто. Третье субконто (партии) не использовался (себестоимость по среднему). Вдруг руководству потребовалось посмотреть карточку счетов 41.01, 45.01 в разрезе поставщиков, т.е. партий товара. Было принято решение заполнить 3 субконто (партии), используя для этого данные регистра "НДС партий товаров" (его вели, т.к. присутствовали реализации на эскпорт). Немного о специфике этой базы данных и сервера БД. Номенклатура товара более 100 тыс., размер базы 80 Г. Сервер  sql сервер Intel Xeon E5530 2.4 GHz 2 2 процессора (16 ядер) 48 ГБ ОЗУ, СУБД MS SQL 2012. 

Про саму методику заполнения 3 субконто на основании данных регистра "НДС парий товаров" подробно описывать не буду, если кому интересно пишите в комметариях, отвечу. Хочу только отметить, что выключил использование итогов (РегистрыБухгалтерии.Хозрасчетный.УстановитьИспользованиеИтогов(ЛОЖЬ)) и текущих итогов РегистрыБухгалтерии.Хозрасчетный.УстановитьИспользованиеИтогов(ЛОЖЬ) для ускорения работы с наборами движений 1С (чтобы кроме самих таблиц записей еще не происходил пересчет итогов). Итоги запланировать расчитать разово в конце обработки.

После того как 3-е субконто было заполнено начал расчитывать итоги. Но первый же месяц зависал на пересчете именно таблицы остаток 3-го субконто на несколько часов, не помогла даже реиндексация таблиц. Возможно большое кол-во строк в таблицах движений (около 10 млн) и  значений субконто (около 40 млн.)., так же сам запрос, приведенный ниже, сконструирован таким образом, т.е. многочисленные join-ны, чтобы привязать в к движениям значения всех 3-х субконто так же затратная операция.

Если кто не вкурсе приведу небольшой ликбез по устройству регистра бухгалтерии. Данные регистра хранятся в нескольких таблицах, в скобках указаны имена таблиц в моей базе:

  • Таблица движений (_AccRg5550);
  • Итоги без субконто (_AccRgAT05560);
  • Итоги 1 субконто (_AccRgAT15570);
  • Итоги 2 субконто (_AccRgAT25571);
  • Итоги 3 субконто (_AccRgAT35572);
  • Итоги оборотов между счетами (_AccRgCT5573);
  • Значения субконо (_AccRgED5574).

Прочие таблицы:   Виды субконто (_Acc3_ExtDim5522).

Для понимания, приведу фрагмент запроса по расчету 3-го субконто, полученный из Profiler:

SELECT
			T2._AccountDtRRef AS AccountRRef,
			T2._Fld5551RRef AS Fld5551RRef,
			T2._Fld5552DtRRef AS Fld5552RRef,
			T3._EDCount AS EDCount_,
			T5._Value_TYPE AS EDValue1_TYPE,
			T5._Value_RTRef AS EDValue1_RTRef,
			T5._Value_RRRef AS EDValue1_RRRef,
			T7._Value_TYPE AS EDValue2_TYPE,
			T7._Value_RTRef AS EDValue2_RTRef,
			T7._Value_RRRef AS EDValue2_RRRef,
			T9._Value_TYPE AS EDValue3_TYPE,
			T9._Value_RTRef AS EDValue3_RTRef,
			T9._Value_RRRef AS EDValue3_RRRef,
			T2._Fld5553 AS TurnoverDt5561_,
			CAST (0.0 AS NUMERIC (15, 2)) AS TurnoverCt5562_,
			T2._Fld5554Dt AS TurnoverDt5564_,
			CAST (0.0 AS NUMERIC (15, 2)) AS TurnoverCt5565_,
			T2._Fld5555Dt AS TurnoverDt5567_,
			CAST (0.0 AS NUMERIC (15, 3)) AS TurnoverCt5568_
		FROM
			_AccRg5550 T2
			INNER JOIN #tt1 T3 WITH (NOLOCK)
				ON T3._IDRRef = T2._AccountDtRRef
		 		AND T3._EDCount = @P1
			LEFT OUTER JOIN _Acc3_ExtDim5522 T4
				ON T4._Acc3_IDRRef = T2._AccountDtRRef
		 		AND T4._LineNo = @P2
			LEFT OUTER JOIN _AccRgED5574 T5
				ON T5._Period > = @P3
		 		AND T5._Period < @P4
		 		AND T5._Period = T2._Period
		 		AND T5._RecorderTRef = T2._RecorderTRef
		 		AND T5._RecorderRRef = T2._RecorderRRef
		 		AND T5._LineNo = T2._LineNo
		 		AND T5._Correspond = @P5
		 		AND T5._KindRRef = T4._DimKindRRef
			LEFT OUTER JOIN _Acc3_ExtDim5522 T6
				ON T6._Acc3_IDRRef = T2._AccountDtRRef
		 		AND T6._LineNo = @P6
			LEFT OUTER JOIN _AccRgED5574 T7
				ON T7._Period > = @P7
		 		AND T7._Period < @P8
		 		AND T7._Period = T2._Period
		 		AND T7._RecorderTRef = T2._RecorderTRef
		 		AND T7._RecorderRRef = T2._RecorderRRef
		 		AND T7._LineNo = T2._LineNo
		 		AND T7._Correspond = @P9
		 		AND T7._KindRRef = T6._DimKindRRef
			LEFT OUTER JOIN _Acc3_ExtDim5522 T8
				ON T8._Acc3_IDRRef = T2._AccountDtRRef
		 		AND T8._LineNo = @P10
			LEFT OUTER JOIN _AccRgED5574 T9
				ON T9._Period > = @P11
		 		AND T9._Period < @P12
		 		AND T9._Period = T2._Period
		 		AND T9._RecorderTRef = T2._RecorderTRef
		 		AND T9._RecorderRRef = T2._RecorderRRef
		 		AND T9._LineNo = T2._LineNo
		 		AND T9._Correspond = @P13
		 		AND T9._KindRRef = T8._DimKindRRef
		WHERE
			T2._Active = 0x01
			AND (T2._Period > = @P14
			AND T2._Period < @P15)

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

Сперва я скопировал таблицы движений и значений итогов в новые таблицы, очистив после этого оригинальные таблицы:

--движения
select * into _AccRg5550_copy from _AccRg5550 (nolock) 

--знач субконто
select * into _AccRgED5574_copy from _AccRgED5574 (nolock) 

--удаление движений в основной таблице движений
TRUNCATE TABLE _AccRg5550

--удаление движений в основной таблице значений субконто 
TRUNCATE TABLE _AccRgED5574

После этого для каждого месяца я заполнял таблицы движений и значений субконто только записями за этот месяц. Предварительно делаю очистку в таблицах, если запрос выполняется не первый раз и в таблицах уже лежат данные для расчета предыдущего месяца. Ниже приведен пример при расчете итогов января 2013 года:

declare @ДатаНач datetime;
set @ДатаНач = '2013-01-01';
declare @ДатаКон datetime;
set @ДатаКон = '2013-01-31 23:59:59';

--удаление записей, оставшихся при расчете предыдущего месяца
TRUNCATE TABLE _AccRg5550
TRUNCATE TABLE _AccRgED5574

--заполнение записей из копий таблиц (только за месяц расчета)

--движения
insert into _AccRg5550 
select * from _AccRg5550_copy (nolock) as t1  
where t1._Period between @ДатаНач and @ДатаКон

--значения субконто
insert into _AccRgED5574 
select * from _AccRgED5574_copy (nolock) as t1  
where t1._Period between @ДатаНач and @ДатаКон

После выполнения очередного для каждого месяца по очистке и заполнения движений, выполнял непосредственный расчет итогов очередного месяца срествами 1С.

После расчета последнего месяца вернул исходные записи в таблицы движений и значений субконто:

--движения
TRUNCATE TABLE _AccRg5550
insert into _AccRg5550 
select * from _AccRg5550_copy (nolock)

--значения субконто
TRUNCATE TABLE _AccRgED5574
insert into _AccRgED5574 
select * from _AccRgED5574_copy (nolock) 

Для упрощения действий для каждого месяца написал обработку для 1С (помесячный очитка и заполнение таблиц в SQL + расчет итогов). Обработку прикладываю. Если кому поможет данная статья буду рад.

P.S. В данной статье привидены скрипты с названиями таблиц для моей базы данных, в вашем случае нужно использовать имена таблиц Вашей базы данных, посмотреть их можно разными способами, например через к функцию 1С ПолучитьСтруктуруХраненияБазыДанных. 

Скачать файлы

Наименование Файл Версия Размер
Перерасчет итогов регистра бухгалтерии в 1С:

.rar 7,33Kb
35
.rar 7,33Kb 35 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. GROOVY 2490 30.05.17 15:09 Сейчас в теме
Превосходная статья, для тех кто хочет разобраться в механизмах регистров бухгалтерии.
4. anig99 2827 19.12.20 23:20 Сейчас в теме
(1)Добрый вечер! Текущий способ помог и мне, но остается открытым вопрос, почему так происходит?
У меня эта проблема возникла в ноябре. Расчет шел больше суток, потом я его вырубал. Все месяцы до этого считались и считаются быстро (по 1-2 минуты). Я пробовал очищать таблицы итого и пересчитывать, убирать проводки отдельных счетов, искать битые ссылки, проверял на разных базах. Но ничего необычного не находил. Максимум, что выяснил, что если оставить проводки с 1 по 5 число, то расчет идет 10-15 минут. Далее Помог только описанный в статья способ. Итог рассчитался за 15 секунд.
Как найти причину, чтобы не пришлось каждый раз чистить таблицы?

Вот зависающий отчет из profilerа

exec sp_executesql N'INSERT INTO #tt7 WITH(TABLOCK) (_Period, _AccountRRef, _Fld13158RRef, _Fld13159RRef, _EDValue1_TYPE, _EDValue1_RTRef, _EDValue1_RRRef, _EDValue2_TYPE, _EDValue2_RTRef, _EDValue2_RRRef, _Fld13160, _TurnoverDt13171, _TurnoverCt13172, _Turnover13173, _Fld13161, _TurnoverDt13174, _TurnoverCt13175, _Turnover13176, _Fld13162, _TurnoverDt13177, _TurnoverCt13178, _Turnover13179) SELECT
*P1,
T1.AccountRRef,
T1.Fld13158RRef,
T1.Fld13159RRef,
T1.EDValue1_TYPE,
T1.EDValue1_RTRef,
T1.EDValue1_RRRef,
T1.EDValue2_TYPE,
T1.EDValue2_RTRef,
T1.EDValue2_RRRef,
*P2,
CAST(SUM(T1.TurnoverDt13171_) AS NUMERIC(21, 2)),
CAST(SUM(T1.TurnoverCt13172_) AS NUMERIC(21, 2)),
CAST(SUM(T1.TurnoverDt13171_ - T1.TurnoverCt13172_) AS NUMERIC(22, 2)),
*P3,
CAST(SUM(T1.TurnoverDt13174_) AS NUMERIC(21, 2)),
CAST(SUM(T1.TurnoverCt13175_) AS NUMERIC(21, 2)),
CAST(SUM(T1.TurnoverDt13174_ - T1.TurnoverCt13175_) AS NUMERIC(22, 2)),
*P4,
CAST(SUM(T1.TurnoverDt13177_) AS NUMERIC(21, 3)),
CAST(SUM(T1.TurnoverCt13178_) AS NUMERIC(21, 3)),
CAST(SUM(T1.TurnoverDt13177_ - T1.TurnoverCt13178_) AS NUMERIC(22, 3))
FROM (SELECT
T2._AccountDtRRef AS AccountRRef,
T2._Fld13158RRef AS Fld13158RRef,
T2._Fld13159DtRRef AS Fld13159RRef,
T3._EDCount AS EDCount_,
T5._Value_TYPE AS EDValue1_TYPE,
T5._Value_RTRef AS EDValue1_RTRef,
T5._Value_RRRef AS EDValue1_RRRef,
T7._Value_TYPE AS EDValue2_TYPE,
T7._Value_RTRef AS EDValue2_RTRef,
T7._Value_RRRef AS EDValue2_RRRef,
T2._Fld13160 AS TurnoverDt13171_,
CAST(*P5 AS NUMERIC(15, 2)) AS TurnoverCt13172_,
T2._Fld13161Dt AS TurnoverDt13174_,
CAST(*P6 AS NUMERIC(15, 2)) AS TurnoverCt13175_,
T2._Fld13162Dt AS TurnoverDt13177_,
CAST(*P7 AS NUMERIC(15, 3)) AS TurnoverCt13178_
FROM dbo._AccRg13157 T2
INNER JOIN #tt4 T3 WITH(NOLOCK)
ON T3._IDRRef = T2._AccountDtRRef AND T3._EDCount = *P8
LEFT OUTER JOIN dbo._Acc4_ExtDim13078 T4
ON T4._Acc4_IDRRef = T2._AccountDtRRef AND T4._LineNo = *P9
LEFT OUTER JOIN dbo._AccRgED13184 T5
ON T5._Period >= *P10 AND T5._Period < *P11 AND T5._Period = T2._Period AND T5._RecorderTRef = T2._RecorderTRef AND T5._RecorderRRef = T2._RecorderRRef AND T5._LineNo = T2._LineNo AND T5._Correspond = *P12 AND T5._KindRRef = T4._DimKindRRef
LEFT OUTER JOIN dbo._Acc4_ExtDim13078 T6
ON T6._Acc4_IDRRef = T2._AccountDtRRef AND T6._LineNo = *P13
LEFT OUTER JOIN dbo._AccRgED13184 T7
ON T7._Period >= *P14 AND T7._Period < *P15 AND T7._Period = T2._Period AND T7._RecorderTRef = T2._RecorderTRef AND T7._RecorderRRef = T2._RecorderRRef AND T7._LineNo = T2._LineNo AND T7._Correspond = *P16 AND T7._KindRRef = T6._DimKindRRef
WHERE T2._Active = 0x01 AND (T2._Period >= *P17 AND T2._Period < *P18) AND T2._AccountDtRRef <> 0x00000000000000000000000000000000
UNION ALL SELECT
T8._AccountCtRRef AS AccountRRef,
T8._Fld13158RRef AS Fld13158RRef,
T8._Fld13159CtRRef AS Fld13159RRef,
T9._EDCount AS EDCount_,
T11._Value_TYPE AS EDValue1_TYPE,
T11._Value_RTRef AS EDValue1_RTRef,
T11._Value_RRRef AS EDValue1_RRRef,
T13._Value_TYPE AS EDValue2_TYPE,
T13._Value_RTRef AS EDValue2_RTRef,
T13._Value_RRRef AS EDValue2_RRRef,
CAST(*P19 AS NUMERIC(15, 2)) AS TurnoverDt13171_,
T8._Fld13160 AS TurnoverCt13172_,
CAST(*P20 AS NUMERIC(15, 2)) AS TurnoverDt13174_,
T8._Fld13161Ct AS TurnoverCt13175_,
CAST(*P21 AS NUMERIC(15, 3)) AS TurnoverDt13177_,
T8._Fld13162Ct AS TurnoverCt13178_
FROM dbo._AccRg13157 T8
INNER JOIN #tt4 T9 WITH(NOLOCK)
ON T9._IDRRef = T8._AccountCtRRef AND T9._EDCount = *P22
LEFT OUTER JOIN dbo._Acc4_ExtDim13078 T10
ON T10._Acc4_IDRRef = T8._AccountCtRRef AND T10._LineNo = *P23
LEFT OUTER JOIN dbo._AccRgED13184 T11
ON T11._Period >= *P24 AND T11._Period < *P25 AND T11._Period = T8._Period AND T11._RecorderTRef = T8._RecorderTRef AND T11._RecorderRRef = T8._RecorderRRef AND T11._LineNo = T8._LineNo AND T11._Correspond = *P26 AND T11._KindRRef = T10._DimKindRRef
LEFT OUTER JOIN dbo._Acc4_ExtDim13078 T12
ON T12._Acc4_IDRRef = T8._AccountCtRRef AND T12._LineNo = *P27
LEFT OUTER JOIN dbo._AccRgED13184 T13
ON T13._Period >= *P28 AND T13._Period < *P29 AND T13._Period = T8._Period AND T13._RecorderTRef = T8._RecorderTRef AND T13._RecorderRRef = T8._RecorderRRef AND T13._LineNo = T8._LineNo AND T13._Correspond = *P30 AND T13._KindRRef = T12._DimKindRRef
WHERE T8._Active = 0x01 AND (T8._Period >= *P31 AND T8._Period < *P32) AND T8._AccountCtRRef <> 0x00000000000000000000000000000000) T1
GROUP BY T1.AccountRRef,
T1.Fld13158RRef,
T1.Fld13159RRef,
T1.EDValue1_TYPE,
T1.EDValue1_RTRef,
T1.EDValue1_RRRef,
T1.EDValue2_TYPE,
T1.EDValue2_RTRef,
T1.EDValue2_RRRef',N'*P1 datetime2(3),*P2 numeric(10),*P3 numeric(10),*P4 numeric(10),*P5 numeric(10),*P6 numeric(10),*P7 numeric(10),*P8 numeric(10),*P9 numeric(10),*P10 datetime2(3),*P11 datetime2(3),*P12 numeric(10),*P13 numeric(10),*P14 datetime2(3),*P15 datetime2(3),*P16 numeric(10),*P17 datetime2(3),*P18 datetime2(3),*P19 numeric(10),*P20 numeric(10),*P21 numeric(10),*P22 numeric(10),*P23 numeric(10),*P24 datetime2(3),*P25 datetime2(3),*P26 numeric(10),*P27 numeric(10),*P28 datetime2(3),*P29 datetime2(3),*P30 numeric(10),*P31 datetime2(3),*P32 datetime2(3)','4020-11-01 00:00:00',0,0,0,0,0,0,2,1,'4020-11-01 00:00:00','4020-12-01 00:00:00',0,2,'4020-11-01 00:00:00','4020-12-01 00:00:00',0,'4020-11-01 00:00:00','4020-12-01 00:00:00',0,0,0,2,1,'4020-11-01 00:00:00','4020-12-01 00:00:00',1,2,'4020-11-01 00:00:00','4020-12-01 00:00:00',1,'4020-11-01 00:00:00','4020-12-01 00:00:00'
Показать
2. пользователь 19.12.20 23:11
Сообщение было скрыто модератором.
...
3. anig99 2827 19.12.20 23:20 Сейчас в теме
Добрый вечер! Текущий способ помог и мне, но остается открытым вопрос, почему так происходит?
У меня эта проблема возникла в ноябре. Расчет шел больше суток, потом я его вырубал. Все месяцы до этого считались и считаются быстро (по 1-2 минуты). Я пробовал очищать таблицы итого и пересчитывать, убирать проводки отдельных счетов, искать битые ссылки, проверял на разных базах. Но ничего необычного не находил. Максимум, что выяснил, что если оставить проводки с 1 по 5 число, то расчет идет 10-15 минут. Далее Помог только описанный в статья способ. Итог рассчитался за 15 секунд.
Как найти причину, чтобы не пришлось каждый раз чистить таблицы?

Вот зависающий отчет из profilerа

exec sp_executesql N'INSERT INTO #tt7 WITH(TABLOCK) (_Period, _AccountRRef, _Fld13158RRef, _Fld13159RRef, _EDValue1_TYPE, _EDValue1_RTRef, _EDValue1_RRRef, _EDValue2_TYPE, _EDValue2_RTRef, _EDValue2_RRRef, _Fld13160, _TurnoverDt13171, _TurnoverCt13172, _Turnover13173, _Fld13161, _TurnoverDt13174, _TurnoverCt13175, _Turnover13176, _Fld13162, _TurnoverDt13177, _TurnoverCt13178, _Turnover13179) SELECT
*P1,
T1.AccountRRef,
T1.Fld13158RRef,
T1.Fld13159RRef,
T1.EDValue1_TYPE,
T1.EDValue1_RTRef,
T1.EDValue1_RRRef,
T1.EDValue2_TYPE,
T1.EDValue2_RTRef,
T1.EDValue2_RRRef,
*P2,
CAST(SUM(T1.TurnoverDt13171_) AS NUMERIC(21, 2)),
CAST(SUM(T1.TurnoverCt13172_) AS NUMERIC(21, 2)),
CAST(SUM(T1.TurnoverDt13171_ - T1.TurnoverCt13172_) AS NUMERIC(22, 2)),
*P3,
CAST(SUM(T1.TurnoverDt13174_) AS NUMERIC(21, 2)),
CAST(SUM(T1.TurnoverCt13175_) AS NUMERIC(21, 2)),
CAST(SUM(T1.TurnoverDt13174_ - T1.TurnoverCt13175_) AS NUMERIC(22, 2)),
*P4,
CAST(SUM(T1.TurnoverDt13177_) AS NUMERIC(21, 3)),
CAST(SUM(T1.TurnoverCt13178_) AS NUMERIC(21, 3)),
CAST(SUM(T1.TurnoverDt13177_ - T1.TurnoverCt13178_) AS NUMERIC(22, 3))
FROM (SELECT
T2._AccountDtRRef AS AccountRRef,
T2._Fld13158RRef AS Fld13158RRef,
T2._Fld13159DtRRef AS Fld13159RRef,
T3._EDCount AS EDCount_,
T5._Value_TYPE AS EDValue1_TYPE,
T5._Value_RTRef AS EDValue1_RTRef,
T5._Value_RRRef AS EDValue1_RRRef,
T7._Value_TYPE AS EDValue2_TYPE,
T7._Value_RTRef AS EDValue2_RTRef,
T7._Value_RRRef AS EDValue2_RRRef,
T2._Fld13160 AS TurnoverDt13171_,
CAST(*P5 AS NUMERIC(15, 2)) AS TurnoverCt13172_,
T2._Fld13161Dt AS TurnoverDt13174_,
CAST(*P6 AS NUMERIC(15, 2)) AS TurnoverCt13175_,
T2._Fld13162Dt AS TurnoverDt13177_,
CAST(*P7 AS NUMERIC(15, 3)) AS TurnoverCt13178_
FROM dbo._AccRg13157 T2
INNER JOIN #tt4 T3 WITH(NOLOCK)
ON T3._IDRRef = T2._AccountDtRRef AND T3._EDCount = *P8
LEFT OUTER JOIN dbo._Acc4_ExtDim13078 T4
ON T4._Acc4_IDRRef = T2._AccountDtRRef AND T4._LineNo = *P9
LEFT OUTER JOIN dbo._AccRgED13184 T5
ON T5._Period >= *P10 AND T5._Period < *P11 AND T5._Period = T2._Period AND T5._RecorderTRef = T2._RecorderTRef AND T5._RecorderRRef = T2._RecorderRRef AND T5._LineNo = T2._LineNo AND T5._Correspond = *P12 AND T5._KindRRef = T4._DimKindRRef
LEFT OUTER JOIN dbo._Acc4_ExtDim13078 T6
ON T6._Acc4_IDRRef = T2._AccountDtRRef AND T6._LineNo = *P13
LEFT OUTER JOIN dbo._AccRgED13184 T7
ON T7._Period >= *P14 AND T7._Period < *P15 AND T7._Period = T2._Period AND T7._RecorderTRef = T2._RecorderTRef AND T7._RecorderRRef = T2._RecorderRRef AND T7._LineNo = T2._LineNo AND T7._Correspond = *P16 AND T7._KindRRef = T6._DimKindRRef
WHERE T2._Active = 0x01 AND (T2._Period >= *P17 AND T2._Period < *P18) AND T2._AccountDtRRef <> 0x00000000000000000000000000000000
UNION ALL SELECT
T8._AccountCtRRef AS AccountRRef,
T8._Fld13158RRef AS Fld13158RRef,
T8._Fld13159CtRRef AS Fld13159RRef,
T9._EDCount AS EDCount_,
T11._Value_TYPE AS EDValue1_TYPE,
T11._Value_RTRef AS EDValue1_RTRef,
T11._Value_RRRef AS EDValue1_RRRef,
T13._Value_TYPE AS EDValue2_TYPE,
T13._Value_RTRef AS EDValue2_RTRef,
T13._Value_RRRef AS EDValue2_RRRef,
CAST(*P19 AS NUMERIC(15, 2)) AS TurnoverDt13171_,
T8._Fld13160 AS TurnoverCt13172_,
CAST(*P20 AS NUMERIC(15, 2)) AS TurnoverDt13174_,
T8._Fld13161Ct AS TurnoverCt13175_,
CAST(*P21 AS NUMERIC(15, 3)) AS TurnoverDt13177_,
T8._Fld13162Ct AS TurnoverCt13178_
FROM dbo._AccRg13157 T8
INNER JOIN #tt4 T9 WITH(NOLOCK)
ON T9._IDRRef = T8._AccountCtRRef AND T9._EDCount = *P22
LEFT OUTER JOIN dbo._Acc4_ExtDim13078 T10
ON T10._Acc4_IDRRef = T8._AccountCtRRef AND T10._LineNo = *P23
LEFT OUTER JOIN dbo._AccRgED13184 T11
ON T11._Period >= *P24 AND T11._Period < *P25 AND T11._Period = T8._Period AND T11._RecorderTRef = T8._RecorderTRef AND T11._RecorderRRef = T8._RecorderRRef AND T11._LineNo = T8._LineNo AND T11._Correspond = *P26 AND T11._KindRRef = T10._DimKindRRef
LEFT OUTER JOIN dbo._Acc4_ExtDim13078 T12
ON T12._Acc4_IDRRef = T8._AccountCtRRef AND T12._LineNo = *P27
LEFT OUTER JOIN dbo._AccRgED13184 T13
ON T13._Period >= *P28 AND T13._Period < *P29 AND T13._Period = T8._Period AND T13._RecorderTRef = T8._RecorderTRef AND T13._RecorderRRef = T8._RecorderRRef AND T13._LineNo = T8._LineNo AND T13._Correspond = *P30 AND T13._KindRRef = T12._DimKindRRef
WHERE T8._Active = 0x01 AND (T8._Period >= *P31 AND T8._Period < *P32) AND T8._AccountCtRRef <> 0x00000000000000000000000000000000) T1
GROUP BY T1.AccountRRef,
T1.Fld13158RRef,
T1.Fld13159RRef,
T1.EDValue1_TYPE,
T1.EDValue1_RTRef,
T1.EDValue1_RRRef,
T1.EDValue2_TYPE,
T1.EDValue2_RTRef,
T1.EDValue2_RRRef',N'*P1 datetime2(3),*P2 numeric(10),*P3 numeric(10),*P4 numeric(10),*P5 numeric(10),*P6 numeric(10),*P7 numeric(10),*P8 numeric(10),*P9 numeric(10),*P10 datetime2(3),*P11 datetime2(3),*P12 numeric(10),*P13 numeric(10),*P14 datetime2(3),*P15 datetime2(3),*P16 numeric(10),*P17 datetime2(3),*P18 datetime2(3),*P19 numeric(10),*P20 numeric(10),*P21 numeric(10),*P22 numeric(10),*P23 numeric(10),*P24 datetime2(3),*P25 datetime2(3),*P26 numeric(10),*P27 numeric(10),*P28 datetime2(3),*P29 datetime2(3),*P30 numeric(10),*P31 datetime2(3),*P32 datetime2(3)','4020-11-01 00:00:00',0,0,0,0,0,0,2,1,'4020-11-01 00:00:00','4020-12-01 00:00:00',0,2,'4020-11-01 00:00:00','4020-12-01 00:00:00',0,'4020-11-01 00:00:00','4020-12-01 00:00:00',0,0,0,2,1,'4020-11-01 00:00:00','4020-12-01 00:00:00',1,2,'4020-11-01 00:00:00','4020-12-01 00:00:00',1,'4020-11-01 00:00:00','4020-12-01 00:00:00'
Показать
5. anig99 2827 19.12.20 23:21 Сейчас в теме
Добрый вечер! Текущий способ помог и мне, но остается открытым вопрос, почему так происходит?
У меня эта проблема возникла в ноябре. Расчет шел больше суток, потом я его вырубал. Все месяцы до этого считались и считаются быстро (по 1-2 минуты). Я пробовал очищать таблицы итого и пересчитывать, убирать проводки отдельных счетов, искать битые ссылки, проверял на разных базах. Но ничего необычного не находил. Максимум, что выяснил, что если оставить проводки с 1 по 5 число, то расчет идет 10-15 минут. Далее Помог только описанный в статья способ. Итог рассчитался за 15 секунд.
Как найти причину, чтобы не пришлось каждый раз чистить таблицы?
6. anig99 2827 19.12.20 23:22 Сейчас в теме
(5) вот отчет из profiler
Добрый вечер! Текущий способ помог и мне, но остается открытым вопрос, почему так происходит?
У меня эта проблема возникла в ноябре. Расчет шел больше суток, потом я его вырубал. Все месяцы до этого считались и считаются быстро (по 1-2 минуты). Я пробовал очищать таблицы итого и пересчитывать, убирать проводки отдельных счетов, искать битые ссылки, проверял на разных базах. Но ничего необычного не находил. Максимум, что выяснил, что если оставить проводки с 1 по 5 число, то расчет идет 10-15 минут. Далее Помог только описанный в статья способ. Итог рассчитался за 15 секунд.
Как найти причину, чтобы не пришлось каждый раз чистить таблицы?

Вот зависающий отчет из profilerа

exec sp_executesql N'INSERT INTO #tt7 WITH(TABLOCK) (_Period, _AccountRRef, _Fld13158RRef, _Fld13159RRef, _EDValue1_TYPE, _EDValue1_RTRef, _EDValue1_RRRef, _EDValue2_TYPE, _EDValue2_RTRef, _EDValue2_RRRef, _Fld13160, _TurnoverDt13171, _TurnoverCt13172, _Turnover13173, _Fld13161, _TurnoverDt13174, _TurnoverCt13175, _Turnover13176, _Fld13162, _TurnoverDt13177, _TurnoverCt13178, _Turnover13179) SELECT
*P1,
T1.AccountRRef,
T1.Fld13158RRef,
T1.Fld13159RRef,
T1.EDValue1_TYPE,
T1.EDValue1_RTRef,
T1.EDValue1_RRRef,
T1.EDValue2_TYPE,
T1.EDValue2_RTRef,
T1.EDValue2_RRRef,
*P2,
CAST(SUM(T1.TurnoverDt13171_) AS NUMERIC(21, 2)),
CAST(SUM(T1.TurnoverCt13172_) AS NUMERIC(21, 2)),
CAST(SUM(T1.TurnoverDt13171_ - T1.TurnoverCt13172_) AS NUMERIC(22, 2)),
*P3,
CAST(SUM(T1.TurnoverDt13174_) AS NUMERIC(21, 2)),
CAST(SUM(T1.TurnoverCt13175_) AS NUMERIC(21, 2)),
CAST(SUM(T1.TurnoverDt13174_ - T1.TurnoverCt13175_) AS NUMERIC(22, 2)),
*P4,
CAST(SUM(T1.TurnoverDt13177_) AS NUMERIC(21, 3)),
CAST(SUM(T1.TurnoverCt13178_) AS NUMERIC(21, 3)),
CAST(SUM(T1.TurnoverDt13177_ - T1.TurnoverCt13178_) AS NUMERIC(22, 3))
FROM (SELECT
T2._AccountDtRRef AS AccountRRef,
T2._Fld13158RRef AS Fld13158RRef,
T2._Fld13159DtRRef AS Fld13159RRef,
T3._EDCount AS EDCount_,
T5._Value_TYPE AS EDValue1_TYPE,
T5._Value_RTRef AS EDValue1_RTRef,
T5._Value_RRRef AS EDValue1_RRRef,
T7._Value_TYPE AS EDValue2_TYPE,
T7._Value_RTRef AS EDValue2_RTRef,
T7._Value_RRRef AS EDValue2_RRRef,
T2._Fld13160 AS TurnoverDt13171_,
CAST(*P5 AS NUMERIC(15, 2)) AS TurnoverCt13172_,
T2._Fld13161Dt AS TurnoverDt13174_,
CAST(*P6 AS NUMERIC(15, 2)) AS TurnoverCt13175_,
T2._Fld13162Dt AS TurnoverDt13177_,
CAST(*P7 AS NUMERIC(15, 3)) AS TurnoverCt13178_
FROM dbo._AccRg13157 T2
INNER JOIN #tt4 T3 WITH(NOLOCK)
ON T3._IDRRef = T2._AccountDtRRef AND T3._EDCount = *P8
LEFT OUTER JOIN dbo._Acc4_ExtDim13078 T4
ON T4._Acc4_IDRRef = T2._AccountDtRRef AND T4._LineNo = *P9
LEFT OUTER JOIN dbo._AccRgED13184 T5
ON T5._Period >= *P10 AND T5._Period < *P11 AND T5._Period = T2._Period AND T5._RecorderTRef = T2._RecorderTRef AND T5._RecorderRRef = T2._RecorderRRef AND T5._LineNo = T2._LineNo AND T5._Correspond = *P12 AND T5._KindRRef = T4._DimKindRRef
LEFT OUTER JOIN dbo._Acc4_ExtDim13078 T6
ON T6._Acc4_IDRRef = T2._AccountDtRRef AND T6._LineNo = *P13
LEFT OUTER JOIN dbo._AccRgED13184 T7
ON T7._Period >= *P14 AND T7._Period < *P15 AND T7._Period = T2._Period AND T7._RecorderTRef = T2._RecorderTRef AND T7._RecorderRRef = T2._RecorderRRef AND T7._LineNo = T2._LineNo AND T7._Correspond = *P16 AND T7._KindRRef = T6._DimKindRRef
WHERE T2._Active = 0x01 AND (T2._Period >= *P17 AND T2._Period < *P18) AND T2._AccountDtRRef <> 0x00000000000000000000000000000000
UNION ALL SELECT
T8._AccountCtRRef AS AccountRRef,
T8._Fld13158RRef AS Fld13158RRef,
T8._Fld13159CtRRef AS Fld13159RRef,
T9._EDCount AS EDCount_,
T11._Value_TYPE AS EDValue1_TYPE,
T11._Value_RTRef AS EDValue1_RTRef,
T11._Value_RRRef AS EDValue1_RRRef,
T13._Value_TYPE AS EDValue2_TYPE,
T13._Value_RTRef AS EDValue2_RTRef,
T13._Value_RRRef AS EDValue2_RRRef,
CAST(*P19 AS NUMERIC(15, 2)) AS TurnoverDt13171_,
T8._Fld13160 AS TurnoverCt13172_,
CAST(*P20 AS NUMERIC(15, 2)) AS TurnoverDt13174_,
T8._Fld13161Ct AS TurnoverCt13175_,
CAST(*P21 AS NUMERIC(15, 3)) AS TurnoverDt13177_,
T8._Fld13162Ct AS TurnoverCt13178_
FROM dbo._AccRg13157 T8
INNER JOIN #tt4 T9 WITH(NOLOCK)
ON T9._IDRRef = T8._AccountCtRRef AND T9._EDCount = *P22
LEFT OUTER JOIN dbo._Acc4_ExtDim13078 T10
ON T10._Acc4_IDRRef = T8._AccountCtRRef AND T10._LineNo = *P23
LEFT OUTER JOIN dbo._AccRgED13184 T11
ON T11._Period >= *P24 AND T11._Period < *P25 AND T11._Period = T8._Period AND T11._RecorderTRef = T8._RecorderTRef AND T11._RecorderRRef = T8._RecorderRRef AND T11._LineNo = T8._LineNo AND T11._Correspond = *P26 AND T11._KindRRef = T10._DimKindRRef
LEFT OUTER JOIN dbo._Acc4_ExtDim13078 T12
ON T12._Acc4_IDRRef = T8._AccountCtRRef AND T12._LineNo = *P27
LEFT OUTER JOIN dbo._AccRgED13184 T13
ON T13._Period >= *P28 AND T13._Period < *P29 AND T13._Period = T8._Period AND T13._RecorderTRef = T8._RecorderTRef AND T13._RecorderRRef = T8._RecorderRRef AND T13._LineNo = T8._LineNo AND T13._Correspond = *P30 AND T13._KindRRef = T12._DimKindRRef
WHERE T8._Active = 0x01 AND (T8._Period >= *P31 AND T8._Period < *P32) AND T8._AccountCtRRef <> 0x00000000000000000000000000000000) T1
GROUP BY T1.AccountRRef,
T1.Fld13158RRef,
T1.Fld13159RRef,
T1.EDValue1_TYPE,
T1.EDValue1_RTRef,
T1.EDValue1_RRRef,
T1.EDValue2_TYPE,
T1.EDValue2_RTRef,
T1.EDValue2_RRRef',N'*P1 datetime2(3),*P2 numeric(10),*P3 numeric(10),*P4 numeric(10),*P5 numeric(10),*P6 numeric(10),*P7 numeric(10),*P8 numeric(10),*P9 numeric(10),*P10 datetime2(3),*P11 datetime2(3),*P12 numeric(10),*P13 numeric(10),*P14 datetime2(3),*P15 datetime2(3),*P16 numeric(10),*P17 datetime2(3),*P18 datetime2(3),*P19 numeric(10),*P20 numeric(10),*P21 numeric(10),*P22 numeric(10),*P23 numeric(10),*P24 datetime2(3),*P25 datetime2(3),*P26 numeric(10),*P27 numeric(10),*P28 datetime2(3),*P29 datetime2(3),*P30 numeric(10),*P31 datetime2(3),*P32 datetime2(3)','4020-11-01 00:00:00',0,0,0,0,0,0,2,1,'4020-11-01 00:00:00','4020-12-01 00:00:00',0,2,'4020-11-01 00:00:00','4020-12-01 00:00:00',0,'4020-11-01 00:00:00','4020-12-01 00:00:00',0,0,0,2,1,'4020-11-01 00:00:00','4020-12-01 00:00:00',1,2,'4020-11-01 00:00:00','4020-12-01 00:00:00',1,'4020-11-01 00:00:00','4020-12-01 00:00:00'
Показать
7. MarcoPolo3 50 20.12.20 23:50 Сейчас в теме
(5) Приветствую, причина скорее всего в том, что текущая модель хранения данных регистра бухгалтерии и запросы, которые формирует 1С при расчете итогов, при большом количестве записей в таблицах строит не оптимальные планы запроса на стороне MSSQL (если оптимальные при такой модели вообще можно построить). К сожалению я не имею достаточной квалификации по MSSQL, чтобы "копнуть" глубже в данном вопросе, поэтому ума хватило только на такой своеобразный "костыль".
8. anig99 2827 21.12.20 05:42 Сейчас в теме
(7) Доброе утро! Вчера всё-таки выяснили в чем дело. Не обновлялась статистика по регистрам. Вручную обновил статистику, добавил соответствующее задание на перестройку индексов с обновлением статистики, включил флаг для SQL сервера для баз с режимом совместимости.
9. due 372 11.07.22 09:34 Сейчас в теме
(8)
включил флаг для SQL сервера для баз с режимом совместимости
Добрый день! Можете уточнить какой флаг включали для оптимизации?
Оставьте свое сообщение

См. также

Пример многопоточной обработки (БСП)

Обработка документов HighLoad оптимизация Обработка справочников БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка-шаблон, на основе которой можно делать свои многопоточные обработки данных для конфигураций на БСП.

13.02.2023    3887    3    echo77    8    

68

Индикация многопоточной серверной операции без доработки конфигурации с помощью Сервера взаимодействия

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Используя внешнюю обработку (через меню Файл-Открыть), осуществляем длительную серверную операцию с отображением состояния по каждому потоку и суммарно.

5 стартмани

01.11.2022    1483    4    Olga_siberia    0    

3

Небольшой кейс оптимизации. Ускоряем печать табеля УПП

HighLoad оптимизация Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 2.5 1С:Управление производственным предприятием Россия Бухгалтерский учет Абонемент ($m)

Будет проведено небольшое расследование производительности без профайлера и трансляторов запроса. Вместо всего этого, ограничимся набором ИР от Tormozit. Дисклеймер: результат не гарантирован, у нашей базы своя специфика, у вас эффект может быть другим.

1 стартмани

15.09.2022    2326    2    Painted    5    

6

Решение проблем подвисания 1С “в онлайне”. Инструмент - консоль управления блокировками и процессами 1С и PostgreSQL (MS SQL - тестируется)

HighLoad оптимизация Администрирование СУБД Платформа 1С v8.3 Управляемые формы 8.3.14 Конфигурации 1cv8 Абонемент ($m)

Обработка-консоль, улучшенная версия консоли администрирования 1С для решения проблем с производительностью, поиска и устранения блокировок и длительных запросов. Тестировалось на платформе 8.3.14, 8.3.17, 8.3.20 УФ.

1 стартмани

04.07.2022    6152    58    victor_goodwill    23    

36

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Привилегированные отчеты

Роли и права HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Расширение позволяет настроить для пользователей выполнение отчетов в привилегированном режиме. 1) Убирает тормоза формирования отчета, возникающие при наложении прав пользователя на запросы отчета; 2) Позволяет обойти ошибки формирования отчета из-за отсутствия прав на часть объектов у пользователя.

4 стартмани

24.01.2022    9891    27    sapervodichka    36    

101

Нагрузочный тест для базы данных 1С (обычные формы)

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Универсальный нагрузочный тест для баз данных 1С. Позволяет оценивать производительность работы в конкретной базе данных при подборе параметров сервера. Тест производит циклическое перепроведение документов и замер скорости на каждом цикле. Выбирается интервал документов и виды документов для перепроведения.

1 стартмани

27.12.2021    4201    7    Miket78    4    

1

Обработка данных в фоновых потоках

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Выполнение заданных действий над выбранными данными в фоновых заданиях.

3 стартмани

30.10.2021    5246    6    MaxxiMiliSan    4    

10

Изыскания на тему записи в регистр сведений

HighLoad оптимизация Платформа 1С v8.3 Платформа 1C v8.2 Конфигурации 1cv8 Абонемент ($m)

Уважаемые коллеги, здравствуйте! Сегодня хочу поделиться с Вами своими изысканиями на тему записи в регистр сведений в контексте оптимизации одной операции. Однажды мы столкнулись со следующей проблемой: поступили жалобы от разработчиков сайта, что наш веб-сервис очень медленно реагирует, точней, обработка запроса не укладывается в таймаут 5 секунд, и сайт получает ошибку 500. Стали разбираться, и вот что выяснили.

1 стартмани

21.09.2021    12474    0    METAL    57    

103

Сравнение замеров производительности

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Бывают ситуации, когда необходимо быстро определить, в чем разница при выполнении, например, проведения документа. Я обычно для решения данной задачи использовал два замера и сравнивал в коде. Это помогало при небольшом количестве строк кода, но, когда их тысячи, или сотни тысяч, проще воспользоваться обработкой, которая позволяет находить различия в замерах производительности.

2 стартмани

06.09.2021    3820    9    17808849    4    

3

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Где баланс между производительностью и возможностями программы ? Исправление автоподбора контрагента в УНФ

Рефакторинг и качество кода HighLoad оптимизация Адаптация типовых решений Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 Россия Управленческий учет Абонемент ($m)

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

1 стартмани

27.08.2021    5756    0    con-men    0    

8

Просмотр файлов технологических журналов 1С (WinAPI)

HighLoad оптимизация Технологический журнал Платформа 1С v8.3 Россия Абонемент ($m)

Программа просмотра файлов технологических журналов 1С (WinAPI). Работает с большими файлами. Минимальное потребление памяти при индексировании данных, просмотре. Анализ управляемых взаимоблокировок, таймаутов, ожиданий. Фильтры по событиям, периоду, пользователям, соединениям, сеансам.

1 стартмани

24.08.2021    6002    22    sdf1979    17    

23

Как 1С всю оперативную память съел...

HighLoad оптимизация Платформа 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Абонемент ($m)

В данной статье рассматривается обход (средствами встроенного языка) ошибки: "Превышен максимальный расход памяти сервера за один вызов" при рассылке расчетных листков в ЗУП 3.1 250+ сотрудникам.

1 стартмани

17.06.2021    11274    6    iD1n    0    

7

ЦУП 2.1.6 Исправленная обработка выгрузки метаданных для платформы 8.2

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка предназначена для ЦУП 2.1.6. Исправленная типовая обработка для выгрузки метаданных для конфигурацию, работающих на платформе 8.2 (в т.ч. в режиме совместимости).

1 стартмани

04.03.2021    4870    1    SpecRam    0    

1

Быстрая реструктуризация базы данных

HighLoad оптимизация Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Внешняя обработка для быстрой реструктуризации клиент-серверной базы данных. Способ ускорения реструктуризации - замена таблиц большого объема пустыми копиями перед проведением обновления БД и возврат к исходным таблицам после обновления с предварительной корректировкой их структуры. Полностью автоматизировано создание и выполнение всех требуемых скриптов SQL. Представлены версии обработки для обычных форм (1С:Предприятие 8.2 (8.2.19.130)) и управляемого приложения (1С:Предприятие 8.3 (8.3.9.1818)).

1 стартмани

05.11.2019    33927    155    dmitrydemenew    40    

76

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

В курсе обобщен опыт работы аналитика на проектах в течение пяти лет, в нескольких фирмах. Подходы к написанию документов унифицированы и по возможности не привязаны к конфигурациям 1С.

3 500 рублей

Влияние БСП на производительность базы 1С с добавленными метаданными

HighLoad оптимизация Адаптация типовых решений БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Повод для статьи — заметное снижение быстродействия при переводе учета с УТ 11.1 на 11.4 по «нашим» не стандартным метаданным (регламенты работы с массовым заполнением/проведением документов/регистров). Предварительно причину увидел во влиянии БСП. Была создана тестовая подсистема, быстродействие которой оцениваем в демобазе "Управление торговлей". С включенными и выключенными подписками БСП.

5 стартмани

04.11.2019    13226    6    VsHome    1    

7

Оптимизация прав ролей

HighLoad оптимизация Роли и права Управляемые формы Управление правами Конфигурации 1cv8 Россия Абонемент ($m)

Решение вопроса по неоптимальной настройке (избыточной) ролей, влияющей на производительность системы (потребление оперативной памяти). Алгоритм работы следующий: Выгрузка конфигурации в файлы - Обработка (изменение) файлов прав ролей - Загрузка измененных прав в конфигурацию. Проверено на платформе начиная с 8.3.12.

1 стартмани

09.09.2019    53835    14    toxilamer    11    

21

Взаимодействие при редактировании одних и тех же данных [Расширение] УТ11

HighLoad оптимизация Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Расширение позволяет взаимодействовать между пользователями в тех случаях, когда они пытаются редактировать одни и те же данные. Теперь пользователи могут согласовать между собой последовательность своих действий, а при необходимости – освободить данные, занятые другим пользователем.

2 стартмани

14.04.2019    11841    4    noprogrammer    1    

6

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Исправление ЦУП 2.1.2

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Расширение для конфигурации Центр управления производительностью, редакция 2.1 (2.1.2.11), которое позволяет настроить регламентный мониторинг. Работает на платформе 1С:Предприятие 8.3 (8.3.13.1644).

2 стартмани

21.01.2019    11148    6    Neco    0    

2

Многопоточное тестирование производительности по методике APDEX (управляемые формы)

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Каждый у кого нет сервера, мечтает его купить, а те, у кого сервер есть, мечтают, чтобы он был быстрее. Но деньги на сервер выделяет руководство...

10 стартмани

09.01.2019    16460    27    capitan    32    

17

Решение проблемы быстродействия в ERP на рабочем примере

HighLoad оптимизация Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Рассмотрим практический пример оптимизации, определим последовательность действий и воспользуемся специализированными инструментами.

3 стартмани

18.12.2018    33715    283    ivanov660    24    

107

Многопоточная обработка данных

HighLoad оптимизация Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Конфигурация "Универсальные механизмы: пакеты данных". Набор инструментов для быстрой организации отказоустойчивой многопоточной обработки данных.

1 стартмани

23.11.2018    41812    169    _ASZ_    19    

95

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

Очистка и обновление индекса полнотекстового поиска (регламентное задание)

HighLoad оптимизация Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x Россия Абонемент ($m)

Обработка-регламентное задание позволяет в автоматическом режиме очищать и обновлять индекс полнотекстового поиска. Это необходимо делать для устранения проблем производительности на крупных базах. Подключаем в доп.обработках, задаем расписание выполнения на выходные и радуемся :)

2 стартмани

14.09.2018    37988    109    Kyrales    10    

16

Монитор блокировок пользователей

HighLoad оптимизация Платформа 1С v8.3 Управление блокировками Конфигурации 1cv8 Россия Абонемент ($m)

Анализ и автоматическое удаление блокировок

1 стартмани

17.08.2018    12622    27    Re:аниматор    7    

18

Ускорение отчета 'Контроль передвижений агентов (онлайн-карты)' от AgentPlus v1.5.2

HighLoad оптимизация Рабочее место Платформа 1С v8.3 Конфигурации 1cv8 Украина Абонемент ($m)

У пользователей системы AgentPlus (Агент Плюс) отчет 'Контроль передвижений агентов (онлайн-карты)' v1.5.2 вызывает восторг и разочарование одновременно. Восторг – потому, что позволяет увидеть маршрут передвижения пользователя системы с привязкой к карте и дорогам, разочарование – от длительности построения отчета. Отчет по 45 точкам маршрута у меня строится больше минуты. Тестировалось на "Управление торговым Предприятием" 1.2.45.2.

1 стартмани

03.05.2018    11069    3    DiegoLidabo    0    

5

Обработки  для проведения сценарного нагрузочного тестирования на примере конфигурации ЗУП версии 3.1.1.91

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Украина Абонемент ($m)

Обработки предназначены  для проведения сценарного нагрузочного тестирования, включая  пример описанного  сценария  с обработками (epf) -  ГлавныйРасчетчик, Кадровик, Расчетчик, Табельщик. Обработка будет полезна прежде всего тому, кто внедряет решение на базе конфигурации 1С "Зарплата и Управления персоналом" с необходимостью воспроизвести определенный сценарий с заданным количеством пользователей для расчета, а также возможность посмотреть, какая будет при этом нагрузка на ваше оборудование и скорость выполнения операций с учетом блокировок СУБД. Также это будет интересно тем, кто хочет прощупать, как на практике пользоваться конфигурацией "Тест Центр", входящий в состав пакета 1С:КИП.

2 стартмани

15.09.2017    15163    36    podorojnii_ayu    1    

5

Просмотр заблокированных строк в 1С

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Ввиду своей деятельности, мне часто приходится рассказывать про различные аспекты оптимизации и в том числе про блокировки. Очень часто слушатели задают следующие вопросы: Как посмотреть в реальном времени, какие именно данные сейчас заблокированы? Как понять, что сейчас заблокировано в терминах 1С? Если гранулярность блокировки страница, как увидеть, какие данные в ней находятся? Раньше приходилось отвечать, что инструмента, который показывает все вышеописанное, сейчас просто нет. Но потом мне это надоело, и я решил сделать собственный инструмент, который позволяет ответить на все вышеописанные вопросы.

1 стартмани

25.10.2016    55488    1003    Andreynikus    71    

192

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Настройка PostgreSQL для работы в связке с 1С 8.х на платформе Windows Server 2012, объём БД более 200 Гб

HighLoad оптимизация Инструменты администратора БД Платформа 1С v8.3 Россия Абонемент ($m)

Настройка бесплатной СУБД PostgreSQL для работы в связке с 1С 8.х на платформе Windows Server 2012 х64. Объём БД более 380 Гб для мощного сервака. Конфигурация КА 1.1.108.2, 50 пользователей. Более 1 млн. проводок при закрытии месяца. Время закрытия месяца сравнимо с MSSQL и составляет в среднем 2 часа. Время отмены закрытия месяца - всего 10 минут! Ликвидированы зависания PostgreSQL. Всё за счет настроек файла postgesql.conf.

1 стартмани

11.10.2016    115829    90    vsasav    48    

232

Оптимизация расчета себестоимости выпуска продукции (УПП 1.3, Партионный учет)

Производство готовой продукции (работ, услуг) HighLoad оптимизация Платформа 1С v8.3 1С:Управление производственным предприятием Бухгалтерский учет Абонемент ($m)

В результате выполненных доработок удалось уменьшить время проведения Регламентной операции "Рассчитать себестоимость (БУ, НУ)" в два и более раза, а в отдельных операциях (Распределение продукции и затрат по переделам) удалось достичь 7-ми кратного уменьшения времени проведения!

1 стартмани

23.08.2016    22793    35    linkov    23    

47

Средство поиска "узких мест" при проведении документов

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Обработка и добавляемые в конфигурацию коды для ведения простой для понимания статистики времени проведения документов. Пригодно для разных конфигураций на платформе 8.2

1 стартмани

31.05.2016    16343    4    ibs10    12    

6

Просмотр структуры БД, парсинг запросов SQL

Статистика базы данных HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Получение некоторых данных о БД и сеансе, просмотр внутренней структуры таблиц БД 1С в SQL, "перевод" запросов SQL в терминологию 1С. Чуть больше, чем "ПолучитьСтруктуруХраненияБазыДанных"; чуть удобнее, чем аналоги; чуть другая, чем КИП.

1 стартмани

26.02.2016    39144    280    Yashazz    15    

99

Поиск в динамическом списке (по части строки): попытка оптимизации

HighLoad оптимизация Платформа 1С v8.3 1С:Управление торговлей 10 Россия Управленческий учет Абонемент ($m)

И все же в этом черном ящичке (динамическом списке) есть узкие места, которые влияют на производительность. Попробую описать пойманные места. Запросы в динамическом списке просты, с одной основной таблицей и без фактических соединений на уровне языка 1С.

1 стартмани

24.11.2015    28586    2    logarifm    5    

15

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Фиксируем SPID для отслеживания в SQL Profiler

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Для разбора запросов бывает полезным использовать SQL Profiler. При настройке выборки событий предлагаю дополнительно наложить еще один фильтр по полю SPID.

1 стартмани

22.09.2015    22809    28    break    3    

19

Обработка-сценарий нагрузочного тестирования для тест-центра

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Данная обработка реализует сценарий пользовательского проведения документов

1 стартмани

26.08.2015    18779    33    acsent    1    

2

Скорость проведения документов

Обработка документов Статистика базы данных HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Отчет служит для анализа скорости проведения документов

1 стартмани

11.06.2015    17434    20    Fox-trot    9    

5

1С:Бухгалтерия 3.0. Борьба за производительность

HighLoad оптимизация Закрытие периода Платформа 1С v8.3 1С:Бухгалтерия 3.0 Бухгалтерский учет Абонемент ($m)

Программисты в шоке: закрытие месяца в БП 3.0. Как закрыть ноябрь 2014 года и успеть встретить новый год.

49 стартмани

01.06.2015    14884    0    pit201201    21    

6

Тест производительности 1С

HighLoad оптимизация Платформа 1С v8.3 Абонемент ($m)

Глубоко убежден, что организациям с числом активных пользователей 1с большим чем 10, крайне необходимо уходить от файловых баз. И тут возникает дилемма: Какую СУБД выбрать? SQL или Postgre? Скуль хорош. Очень хорош. Практически "из коробки" он обеспечит превосходную производительность. Но стоит нереальных денег. Очень хорош... Но дорог... Очень дорог... С Постгри все сложнее. "Из коробки" мы получаем конструктор "очумелые ручки". Чтобы насладиться более-менее приемлемым результатом, придется попотеть. Зато "халява, сэр".

1 стартмани

22.04.2015    18026    18    smallbuk    22    

6