Ускоряем расчет себестоимости УПП

Публикация № 176644

Администрирование - Производительность и оптимизация (HighLoad)

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

Себестоимость у нас считается достаточно долго от 30 минут и больше в зависимости от разных факторов.

Используем партионный учет. Списание партий "по средней" в БУ/НУ, по ФИФО в УУ

Как-то раз решил сделать замер производительности чтобы определить какие операции занимают много времени. Замер приложен в файле ЗамерПроведенияСебестоимости.pff.

Меня очень удивило, что почти 10% общего времени выполнялся код:

    Если Элемент.Ключ = "ВременнаяРазница" или Элемент.Ключ = "ПостояннаяРазница" тогда

Вроде бы ничего криминального, но этот код выполнялся в моем случае в двух местах в общей сложности более 159 млн раз!

Стал смотреть где и как используется структура "СтруктураСостояния" и обнаружил, что как структура-то собственно она нигде не используется. Везде используется только ее ключ. Поэтому было решено отказаться от этой структуры и перейти к массиву. Так как в коде требовалось использовать как все ключи этой струтуры, так и все кроме "ВременнаяРазница" и "ПостояннаяРазница", то решено было создать два массива.

В приложенном файле КорректировкаСтоимости_РассчитатьСписаниеПоСредней.txt находится уже готовая к применению процедура - просто замените штатную.

Для тех кто не имеет доступ к скачиванию распишу, что исправил в процедуре РассчитатьСписаниеПоСредней() из общего модуля КорректировкаСтоимости УПП 1.3.37.1 (вообще эта процедура не менялась со времен как минимум 1.2.16.1)

Для возможности сравнения времени операции в начало процедуры добавим (учитываем, что ТекущаяУниверсальнаяДатаВМиллисекундах() появилась только в 8.2.17, для более ранних используем просто ТекущаяДата())

    // ША
   
НачалоОперации = ТекущаяУниверсальнаяДатаВМиллисекундах();
   
ИспользоватьМассивы = Истина;
   
// ША

После кода

    СтруктураСостояния = Новый Структура;

Добавим

    // ША
   
Если ИспользоватьМассивы Тогда
       
МассивСостояний = Новый Массив;
       
МассивСостоянийБР = Новый Массив;
    КонецЕсли;
   
// ША

После кода

                СтруктураСостояния.Вставить(Колонка.Имя)

Добавим

                // ША
               
Если ИспользоватьМассивы Тогда
                   
МассивСостояний.Добавить(Колонка.Имя);
                    Если Не
Колонка.Имя = "ВременнаяРазница" И Не Колонка.Имя = "ПостояннаяРазница" Тогда
                       
МассивСостоянийБР.Добавить(Колонка.Имя);
                    КонецЕсли;
                КонецЕсли;
               
// ША

Код

            НайденоСостояние=Истина;
            Для Каждого
Элемент Из СтруктураСостояния Цикл

                Если
Элемент.Ключ = "ВременнаяРазница" или Элемент.Ключ = "ПостояннаяРазница" тогда
                    Продолжить;
                КонецЕсли;
                Если НЕ (
ЭлементСостояние.Значение[Элемент.Ключ] = Строка[Элемент.Ключ]) Тогда

                   
НайденоСостояние = Ложь; // состояния различны

                   
Прервать; // дальше можно не проверять
               
КонецЕсли;
            КонецЦикла;

Заменим на

            НайденоСостояние=Истина;
           
// ША
           
Если ИспользоватьМассивы Тогда
                Для Каждого
Элемент Из МассивСостоянийБР Цикл Если ЭлементСостояние.Значение[Элемент] <> Строка[Элемент] Тогда НайденоСостояние = Ложь; Прервать; КонецЕсли; КонецЦикла;
            Иначе
           
// ША
           
Для Каждого Элемент Из СтруктураСостояния Цикл

                Если
Элемент.Ключ = "ВременнаяРазница" или Элемент.Ключ = "ПостояннаяРазница" тогда
                    Продолжить;
                КонецЕсли;
                Если НЕ (
ЭлементСостояние.Значение[Элемент.Ключ] = Строка[Элемент.Ключ]) Тогда

                   
НайденоСостояние = Ложь; // состояния различны

                   
Прервать; // дальше можно не проверять
               
КонецЕсли;
            КонецЦикла;
            КонецЕсли;
// ША

Код

            // Переносим в соответствие
           
СтрСост = Новый Структура;
            Для Каждого
Элемент Из СтруктураСостояния Цикл
                Если
Элемент.Ключ = "ВременнаяРазница" или Элемент.Ключ = "ПостояннаяРазница" тогда
                    Продолжить;
                КонецЕсли;
               
СтрСост.Вставить(Элемент.Ключ, Строка[Элемент.Ключ]);
            КонецЦикла;

Заменим на

            // Переносим в соответствие
           
СтрСост = Новый Структура;
           
// ША
           
Если ИспользоватьМассивы Тогда
                Для Каждого
Элемент Из МассивСостоянийБР Цикл СтрСост.Вставить(Элемент, Строка[Элемент]); КонецЦикла;
            Иначе
           
// ША
           
Для Каждого Элемент Из СтруктураСостояния Цикл
                Если
Элемент.Ключ = "ВременнаяРазница" или Элемент.Ключ = "ПостояннаяРазница" тогда
                    Продолжить;
                КонецЕсли;
               
СтрСост.Вставить(Элемент.Ключ, Строка[Элемент.Ключ]);
            КонецЦикла;
            КонецЕсли;
// ША

Код

            НайденоСостояние=Истина;
            Для Каждого
Элемент Из СтруктураСостояния Цикл

                Если
Элемент.Ключ = "ВременнаяРазница" или Элемент.Ключ = "ПостояннаяРазница" тогда
                    Продолжить;
                КонецЕсли;

                Если НЕ (
ЭлементСостояние.Значение[Элемент.Ключ] = Строка[Элемент.Ключ+ПрефиксПараметровНовогоСостояния]) Тогда

                   
НайденоСостояние = Ложь; // состояния различны

                   
Прервать; // дальше можно не проверять
               
КонецЕсли;
            КонецЦикла;

Заменим на

            НайденоСостояние=Истина;
           
// ША
           
Если ИспользоватьМассивы Тогда
                Для Каждого
Элемент Из МассивСостоянийБР Цикл Если ЭлементСостояние.Значение[Элемент] <> Строка[Элемент + ПрефиксПараметровНовогоСостояния] Тогда НайденоСостояние = Ложь; Прервать; КонецЕсли; КонецЦикла;
            Иначе
            Для Каждого
Элемент Из СтруктураСостояния Цикл

                Если
Элемент.Ключ = "ВременнаяРазница" или Элемент.Ключ = "ПостояннаяРазница" тогда
                    Продолжить;
                КонецЕсли;

                Если НЕ (
ЭлементСостояние.Значение[Элемент.Ключ] = Строка[Элемент.Ключ+ПрефиксПараметровНовогоСостояния]) Тогда

                   
НайденоСостояние = Ложь; // состояния различны

                   
Прервать; // дальше можно не проверять
               
КонецЕсли;
            КонецЦикла;
            КонецЕсли;
// ША

Код

            // Переносим в соответствие
           
СтрСост = Новый Структура;
            Для Каждого
Элемент Из СтруктураСостояния Цикл
               
СтрСост.Вставить(Элемент.Ключ, Строка[Элемент.Ключ+ПрефиксПараметровНовогоСостояния]);
            КонецЦикла;

Заменим на

            // Переносим в соответствие
           
СтрСост = Новый Структура;
           
// ША
           
Если ИспользоватьМассивы Тогда
                Для Каждого
Элемент Из МассивСостояний Цикл СтрСост.Вставить(Элемент, Строка[Элемент+ПрефиксПараметровНовогоСостояния]); КонецЦикла;
            Иначе
            Для Каждого
Элемент Из СтруктураСостояния Цикл
               
СтрСост.Вставить(Элемент.Ключ, Строка[Элемент.Ключ+ПрефиксПараметровНовогоСостояния]);
            КонецЦикла;
            КонецЕсли;
// ША

Для анализа эффекта от кода будем записывать время выполнения процедуры в журнал регистрации. Для этого в конце процедуры добавим

    // ША
   
ЗаписьЖурналаРегистрации("СписаниеПоСредней, сек", УровеньЖурналаРегистрации.Предупреждение, , ,
       
Формат((ТекущаяУниверсальнаяДатаВМиллисекундах() - НачалоОперации) / 1000, "ЧДЦ=3; ЧГ=0"));
   
// ША

Теперь меняя всего одну строку (ИспользоватьМассивы = Истина/Ложь) в модуле мы можем проверить эффект от предложенных манипуляций. В моем случае время выполнение этой процедуры сократилось примерно в два раза, что уменьшило время расчета себестоимости на величину порядка 7-10 минут. Конечно это не ускорение расчета себестоимости в разы, но неплохое начало оптимизации

Так же значительно ускорилось время проведения документа "Корректировка стоимости списания товаров"

Тестируем, отписываемся о результатах полученных на ваших базах

Отредактировано 13.03.2013
1) Указал что используем партионный учет
2) Добавил пропущенное в тексте статьи заполнение массивов (в прикрепленном файле это было)
3) Добавил, что ускорилось время проведения документа "Корректировка стоимости списания товаров"

Для раскраски кода применялась Разукрашка

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

Наименование Файл Версия Размер
КорректировкаСтоимости_РассчитатьСписаниеПоСредней.txt

.txt 18,32Kb
05.03.13
63
.txt 18,32Kb 63 Скачать
ЗамерПроведенияСебестоимости.pff

.pff 2,86Mb
05.03.13
18
.pff 2,86Mb 18 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. AlexO 129 05.03.13 16:57 Сейчас в теме
Пример хоть и корявой, но реальной оптимизации УПП :)
И не просто "сферической" УПП, а самого коварного блока - расчет себестоимости.
2. AlexO 129 05.03.13 17:01 Сейчас в теме
(0) Антон Ширяев,
но этот код выполнялся в моем случае в двух местах в общей сложности более 159 млн раз!

а от чего конкретно зависит столь великое число итераций? Объем регистра, активное использование определенных документов?
7. Антон Ширяев 477 05.03.13 17:21 Сейчас в теме
(2)
На самом деле пока не вникал какие именно операции дают столь большие исходные таблицы "ТаблицаТоваров", но очевидно что есть три вложенных цикла которые и дадут столь большой объем итераций.
Плюс ко всему процедура при расчете себестоимости вызывается многократно. Сколько длился каждый вызов покажет журнал регистрации.
9. AlexO 129 05.03.13 17:28 Сейчас в теме
(7) Антон Ширяев,
т.е. зависит здесь просто зависит напрямую от количества товаров в периоде, за который рассчитывается себестоимость?
3. Kom-off 05.03.13 17:09 Сейчас в теме
Вот только, автор не указал режим учета затрат: РАУЗ или традиционный учет.
4. AlexO 129 05.03.13 17:10 Сейчас в теме
(3) Kom-off,
ну этот блок точно не РАУЗ :)
5. Kom-off 05.03.13 17:15 Сейчас в теме
(4) Да, чудес на свете много.
Поди, знай! (с) Интерны
6. AlexO 129 05.03.13 17:16 Сейчас в теме
(3) Kom-off,
автор не указал режим учета затрат: РАУЗ

РАУЗ чем и "хорош" (хотя я наоборот - склонен сказать в данном случае "плох"), что не считает "тупо" все, что попало в период, а на основе показателей (которых набирается на порядки меньше, чем реальных исходных данных, "давших" (сформировавших) эти показатели), дает "приближенную" картину по себестоимости каждого товара.
1С считает, что картина "и так сойдет".
Я же считаю - что даже и для сельской местности нужно быть ответственнее и профессиональнее.
Точно "в тютельку" РАУЗ, по-моему, считает только по НДС (отдельным регистром и расчетом) - тут им (1С-у) просто налоговая не дает безобразничать :)
10. Kom-off 05.03.13 17:35 Сейчас в теме
(6) Какой-то поток сознания.
11. AlexO 129 05.03.13 17:45 Сейчас в теме
(10) Kom-off,
предлагаю озвучить "свое" понимание РАУЗ.
Не возбраняется :)
А остальные послушают.
Только без копи-паста 1совых агиток, а как сам вот понял - так и руби.
12. AlexO 129 05.03.13 17:48 Сейчас в теме
(10) Kom-off,
или напишите сразу - "ниасилил" :)
Ни РАУЗ, ни "потоки сознания".
Только - адаптированные для 1сников агитки 1С.
13. Kom-off 05.03.13 17:48 Сейчас в теме
(12) Без агиток - расчет системы линейных уравнений. Чего тут понимать то?
15. AlexO 129 05.03.13 18:03 Сейчас в теме
(13) Kom-off,
расчет системы линейных уравнений. Чего тут понимать то?

конечно :)
браво. Достойный ответ 1сника, читавшего агитки :)
А что рассчитывают эти ЛУ? Какие исходные данные подставляются в уравнения?
16. Кадош 05.03.13 18:09 Сейчас в теме
(15) мальчик, читай умные книжки, и РАУЗ посетит тебя.
17. AlexO 129 05.03.13 18:14 Сейчас в теме
(16) Кадош,
так, еще один юноша пожаловал :)
Вас посетил РАУЗ уже? Прошу, в двух словах - что это такое.
А иначе - в контейнер с остальными, "знающими" РАУЗ от 1С.
19. Kom-off 05.03.13 18:18 Сейчас в теме
(17) Вот любитель хамить.
Что тут скажешь: тролль - он и в Африке тролль.
Одно чего стоит:
...РАУЗ... двух словах - что это такое...

В двух словах уже сказано было, названо было агиткой и опять по кругу. Молодец!
18. AlexO 129 05.03.13 18:18 Сейчас в теме
(16) Кадош,
читай умные книжки

... хоть бы поискал сначала по инету инфо, что книжек по 1С-РАУЗу - нет.. брошюрки и невнятная методичка с Украины Абрашиной..но куда ж там...
короче, контейнер...
20. Кадош 05.03.13 18:29 Сейчас в теме
(18) мдя...ты книжки читать пробовал?
23. Кадош 05.03.13 19:05 Сейчас в теме
(18) для теоретиков. В одной из ЖКК есть подробный разбор РАУЗа с расчетами и формулами.
Фас, ищи.
26. AlexO 129 06.03.13 12:27 Сейчас в теме
(23) Кадош,
В одной из ЖКК есть подробный разбор РАУЗа с расчетами и формулами.

а на Марсе яблони цветут.
Сам факт того, что даже не знаешь - "в каком ЖКК", да еще и подробный (!) разбор, говорит сам за себя.
27. Кадош 06.03.13 12:41 Сейчас в теме
(26) иди еще маме пожалуйся, что тебе не сказали в какой именно из книг, что искать.
Наверняка больше азбуки в школе ничего не прочитал, ну может быть еще состав на балончике с освежителем.
28. AlexO 129 06.03.13 12:58 Сейчас в теме
(27) Кадош,
задвинься в угол контейнера, друг.
Когда хоть что-то будешь знать - приходи.
А пикироваться с тобой на уровне "В одной из ЖКК" и "Наверняка больше азбуки" - у меня нет времени. Наверняка у тебя есть сотня таких же московских деятелей, равных по разуму, которые с удовольствием продолжат тренд про школу и "там где-то что-то должно же быть", с которыми ты более приятно проведешь время.
29. Кадош 06.03.13 13:10 Сейчас в теме
(28) Ты уже показал себя во всей красе постом о том, что расчет себестоимости с помощью РАУЗ происходит с точностью +- километр. Ах тысячи несчастных российскийх предприятий! Прежде чем выдавать такие тезисы, надо было поработать с РАУЗ хотя бы на 1-2 предприятих.
Ах, да. В вашей деревне только ларьки, которым требуются эникейщики вроде тебя, "компьютерные монстры" так сказать.
31. AlexO 129 06.03.13 13:20 Сейчас в теме
(29) Кадош,
Прежде чем выдавать такие тезисы, надо было поработать с РАУЗ хотя бы на 1-2 предприятих.

Если на каких-то несчастных предприятиях деятели вроде тебя "внедрили" (включили галочки) РАУЗ - это не значит, что на предприятии теперь полная прозрачность в учете и реальная цифра на выходе расчета себестоимости.
И живут они, бедные, по принципу "что-то считает - ну и ладно".
35. Кадош 06.03.13 13:33 Сейчас в теме
(31) бгггг...палишься. РАУЗ это не галочки.
30. Кадош 06.03.13 13:20 Сейчас в теме
(28)
вот и читайте книжки (хотя они несут минимум информации) (с) AlexO
Понял, что книги не несут для тебя полезной информации.
Извиняй, друх.
32. AlexO 129 06.03.13 13:22 Сейчас в теме
(30) Кадош,
Понял, что книги не несут для тебя полезной информации.

спасибо за цитирование, но 2 листа агиток 1С я не считаю за "книжки".
Уж извиняйте.
А "водонасыщенные" методички, которые вы так громко назвали "ЖКК" никакой инфо, кроме "как включить учет по РАУЗ", не несут.
36. Кадош 06.03.13 13:34 Сейчас в теме
(32) скажи сразу, что уровень умственного развития не позволяет понимать ЖКК.
34. AlexO 129 06.03.13 13:32 Сейчас в теме
(30) Кадош,
Извиняй, друх.

И не надо меня принимать в ваше московское общество "избранных".
Я не такой :)
Просто "извиняй, друг" достаточно.
(33) Kom-off,
нас зло обманывают :-)

ну вас, может, и обманывают - но, верно, "и сам обманываться рад" (с) :)
А мне еще ни на один вопрос здесь ни вы, ни другие, кроме автора статьи, не ответили по предмету.
(чтобы не возникло новых "подпрыгиваний" вокруг этой фразы - не привели ни одного понимания; если понятно выражаюсь).
37. Kom-off 06.03.13 13:38 Сейчас в теме
(34)
А мне еще ни на один вопрос здесь ни вы, ни другие, кроме автора статьи, не ответили по предмету.

Да и сами Вы, сударь, ничего путного по этому вопросу не сказали, однако.
Как говорится:
...нечего не зеркало пенять...
(с) Иван Крылов. Зеркало и обезъяна.
33. Kom-off 06.03.13 13:23 Сейчас в теме
(28)
А пикироваться с тобой на уровне "В одной из ЖКК" и "Наверняка больше азбуки" - у меня нет времени.

Судя по количеству постов автора (28) - нас зло обманывают :-)
14. Kom-off 05.03.13 17:49 Сейчас в теме
(12)
ли напишите сразу - "ниасилил" :)

Нет. Я так не скажу. "Звиняй", барин.
8. Антон Ширяев 477 05.03.13 17:22 Сейчас в теме
(3) Kom-off,
Используется партионный учет
21. yuraos 966 05.03.13 18:43 Сейчас в теме
жене сказал - что поехал в командировку,
любовнице сказал - что поехал в колхоз на картошку,
а сам на чердак и .....
Оптимизировать, оптимизировать и еще раз оптимизировать!!!
22. yuraos 966 05.03.13 18:55 Сейчас в теме

Для возможности сравнения времени операции в начало процедуры добавим (учитываем, что ТекущаяУниверсальнаяДатаВМиллисекундах() появилась только в 8.2.17, для более ранних используем просто ТекущаяДата())

(21)
для тех, кто не осчастливлен платформой 8.2.17:

// Функция, возвращающая время в миллисекундах или секундах.
//
&НаКлиентеНаСервереБезКонтекста
Функция ВремяВМиллисекундах()
    Попытка
        Script = Новый COMОбъект("MSScriptControl.ScriptControl");
        Script.Language = "javascript";
        Script.Timeout   = -1;
        Время = Script.Eval("var d = new Date(); d.getTime()");
    Исключение
        Время = ТекущаяДата();
    КонецПопытки;
    
    Возврат Время;
КонецФункции
Показать

---
этот пример любезно предложил StepByStep
в своей статье
http://infostart.ru/public/165702/
24. kapustinag 06.03.13 00:56 Сейчас в теме
Если в этом месте потребуется еще ускорить, даже ценой большего использования памяти, то попробуйте заменить эти многократные проверки равенства строк текстовым константам на проверки равенства чисел или логических переменных. Например, если один раз пройти по структуре или по массиву, и заполнить добавочные элементы примерно так:

Если Элемент.Ключ = "ВременнаяРазница" тогда
Элемент.ПризнакВР = Истина;
КонецЕсли;

то потом вместо сравнений Если Элемент.Ключ = "ВременнаяРазница" Тогда
можно использовать Если Элемент.ПризнакВР Тогда

Это может дать большой выигрыш на многомиллионных повторах.
25. Антон Ширяев 477 06.03.13 09:13 Сейчас в теме
(24) kapustinag,
Дело в том, что это уже не нужно :)
Для этого и создано два массива, чтоб закешировать в них только нужные элементы и не проверять условие в цикле
38. hasp_x 154 06.03.13 15:23 Сейчас в теме
Если учесть, что на блоке себестоимости в 1С сидят наиболее крутые перцы, то автору тем-более большой жирный плюс
39. yuraos 966 06.03.13 17:56 Сейчас в теме
(38) hasp_x,
простите пожалусто за нескромный вопрос:
а что именно у тех самых перцев СамоеЕ крУТое ???
40. Rustig 1489 06.03.13 19:05 Сейчас в теме
(0) плюсую за находчивость и сообразительность! :)
...однажды основательно поменял код типовой конфы (в БП 2.0 механизмы учета ОС - практически всю подсистему переписал), увеличил производительность алгоритмов.
Но привычки критически относиться к коду типовых конфигураций в тот раз не сформировалось.
А теперь на уровне подсознания зафиксировался вопрос: а не прогнать ли тест на производительность?
semen_2008; +1 Ответить
41. Антон Ширяев 477 13.03.13 11:55 Сейчас в теме
Исправил и немного дополнил статью
1) Указал что используем партионный учет
2) Добавил пропущенное в тексте статьи заполнение массивов (в прикрепленном файле это было)
3) Добавил, что ускорилось время проведения документа "Корректировка стоимости списания товаров"
4) Исправил версию УПП на которой проверял - обновил до 1.3.37.1
42. AlexO 129 14.03.13 12:58 Сейчас в теме
(41) Антон Ширяев,
4) Исправил версию УПП на которой проверял - обновил до 1.3.37.1

Да там годами ничего не меняется :)
Не то, что в версиях.
43. MiCe 9 19.03.13 01:43 Сейчас в теме
рауз - идея хорошая.... но как всегда 1с реализация ж..а
и навязывание ее еще большая зад..ца
особенно в ут... просто ....
ихние теоретики хромают что с практикой ... да и теорией ....
44. Pushast 10.06.13 10:35 Сейчас в теме
РАУЗ..рауз...
единственная книга ко мне в руки попала в 170 страничек (отечественная), надеюсь ее в сети еще не затерли, а то старался... картинки сляпывал:)
А вот с расчетом себестоимости у меня засада - у всех главбухов жажда - закрыть счет 20 за каждый день. И стандартный механизм расчета себестоимости "доломали" до состояния расчета с/с за каждый день.
Мне жалко усилий парниши-программера... Если расчет с/с вне зависимости -за один день или месяц у меня укладывается в полчаса - это "щастье"! А, в довесок, и если при этом не весят все остальные (операторы на реализации)...а это редкость:(
45. isn 15 16.10.13 16:38 Сейчас в теме
за РАУЗ как таковой будущее расчета себестоимости, так что нам, программерам "пилить" да "пилить".
SunShinne; +1 Ответить
46. drugoi_mir 11 18.07.17 20:44 Сейчас в теме
Вопрос такой. В свое время читал эту статью, сейчас встретился с проблемой напрямую. Для нас провели анализ и выявили что при использовании серий много времени тратится на часть кода связанную с перебором ТЗ. Кто-то переделывал эту часть кода через индексы. И почему разработчики изначально делали поиск полным перебором а не поиском через индексы?
Для Каждого Строка Из Таб Цикл // поиск выплняется полным перебором
		
		// Состояния-источники
		// Найдем состояние в соответсвии				
		НайденоСостояние=Ложь;
		Для Каждого ЭлементСостояние Из СоотвПараметровСостояний Цикл
			
			НайденоСостояние=Истина;
			Для Каждого Элемент Из СтруктураСостояния Цикл
				
				Если Элемент.Ключ = "ВременнаяРазница" или Элемент.Ключ = "ПостояннаяРазница" тогда
					Продолжить;
				КонецЕсли;
				Если НЕ (ЭлементСостояние.Значение[Элемент.Ключ] = Строка[Элемент.Ключ]) Тогда
					
					НайденоСостояние = Ложь; // состояния различны
					
					Прервать; // дальше можно не проверять
				КонецЕсли;
			КонецЦикла;
			
			Если НайденоСостояние Тогда
				Прервать;
			КонецЕсли;
		КонецЦикла;
		
		Если НайденоСостояние Тогда
			ИндексСостояния = ЭлементСостояние.Ключ;
		Иначе
			// Переносим в соответствие
			СтрСост = Новый Структура;
			Для Каждого Элемент Из СтруктураСостояния Цикл
				Если Элемент.Ключ = "ВременнаяРазница" или Элемент.Ключ = "ПостояннаяРазница" тогда
					Продолжить;
				КонецЕсли;
				СтрСост.Вставить(Элемент.Ключ, Строка[Элемент.Ключ]);
			КонецЦикла;
			
			ИндексСостояния = СоотвПараметровСостояний.Количество();
			СоотвПараметровСостояний.Вставить(ИндексСостояния, СтрСост);
		КонецЕсли;
		
		// Оставим в таблице ссылку на состояние
		Строка.Источник = ИндексСостояния;
		
		
		// То же самое для состояний-приемников
		// Найдем состояние в соответсвии				
		НайденоСостояние=Ложь;
		Для Каждого ЭлементСостояние Из СоотвПараметровСостояний Цикл
			
			НайденоСостояние=Истина;
			Для Каждого Элемент Из СтруктураСостояния Цикл
				
				Если Элемент.Ключ = "ВременнаяРазница" или Элемент.Ключ = "ПостояннаяРазница" тогда
					Продолжить;
				КонецЕсли;
				
				Если НЕ (ЭлементСостояние.Значение[Элемент.Ключ] = Строка[Элемент.Ключ+ПрефиксПараметровНовогоСостояния]) Тогда
					
					НайденоСостояние = Ложь; // состояния различны
					
					Прервать; // дальше можно не проверять
				КонецЕсли;
			КонецЦикла;
			
			Если НайденоСостояние Тогда
				Прервать;
			КонецЕсли;
		КонецЦикла;
		
		Если НайденоСостояние Тогда
			ИндексСостояния = ЭлементСостояние.Ключ;
		Иначе
			// Переносим в соответствие
			СтрСост = Новый Структура;
			Для Каждого Элемент Из СтруктураСостояния Цикл
				СтрСост.Вставить(Элемент.Ключ, Строка[Элемент.Ключ+ПрефиксПараметровНовогоСостояния]);
			КонецЦикла;
			
			ИндексСостояния = СоотвПараметровСостояний.Количество();
			СоотвПараметровСостояний.Вставить(ИндексСостояния, СтрСост);
		КонецЕсли;
		
		// Оставим в таблице ссылку на состояние
		Строка.Приемник = ИндексСостояния;
		
	КонецЦикла;
Показать
Оставьте свое сообщение

См. также

Еще один тест 1C: Postgres SQL 11 Pro Enterpise против MSSQL 14 под Windows 2012 Server R2 Промо

Производительность и оптимизация (HighLoad) v8 Абонемент ($m)

Проработав 15 лет с MSSQL в 2017 начал активно СУБД Postgres SQL. За два года успел поработать в 9 версии Postgres и в 10-ой. И пришел к выводу, что существуют реальное замедление работы баз после перехода на Postgres. Недавно вышла 11 версия Postgres Pro Enterpise, которая обещает почти 2-х кратное ускорение над 11 Pro Standart и 10-ой версией. Закупив лицензию Postgres 11 Pro Enterpise Это я и решил проверить на 1С.

1 стартмани

05.09.2019    13327    41    Indgo    106    

БП 3.0, Закрытие месяца, Отключение проверок операций прошлых периодов

Закрытие периода v8 v8::БУ БП3.0 БУ Абонемент ($m)

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

1 стартмани

13.05.2020    3516    8    sapervodichka    9    

Zabbix: Мониторинг рабочих процессов

Zabbix v8 1cv8.cf Абонемент ($m)

Мониторинг памяти, потребляемой рабочими процессами, средствами Zabbix. Создание пользовательских LLD правил с помощью One Script

1 стартмани

07.02.2020    3653    2    EShchavleva    6    

Транслятор запросов 1С в SQL

Производительность и оптимизация (HighLoad) Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Инструмент для трансляции запросов платформы 1С в SQL, а также их диагностики.

10 стартмани

07.01.2020    10486    77    YPermitin    89    

Помощник по закрытию месяца для УТ 11.3 Промо

Закрытие периода Обработка документов Закрытие периода Закрытие периода v8 v8::ОУ УТ11 Россия УУ Абонемент ($m)

Помощник по закрытию месяца для УТ 11.3. Имеет две функции: обнуление товаров "К оформлению" в интеркампани и обнуление отрицательных остатков в регистре "Себестоимость товаров".

5 стартмани

10.11.2017    20883    26    Zalipaka    1    

Тест серверного оборудования на допустимое количество пользователей: как это использовать?

Администрирование СУБД Нагрузочное тестирование Сервера v8 1cv8.cf Абонемент ($m)

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

3 стартмани

17.12.2019    9960    10    sapervodichka    3    

Работа с базами данных 1С в SQL Server Management Studio (Расширение для SSMS)

Администрирование СУБД Производительность и оптимизация (HighLoad) Администрирование данных 1С Структура метаданных v8 Абонемент ($m)

Расширение позволяет просматривать связи объектов метаданных и таблиц БД, сгруппированные данные (по группам метаданных) об используемом дисковом пространстве и выполнять трансляцию SQL текста запроса в термины 1С. И бонусом - при наведении курсора мыши на таблицу или поле показывает назначение объекта в терминах 1С.

10 стартмани

27.11.2019    10159    36    akpaevj    46    

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

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

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

1 стартмани

05.11.2019    11914    42    dmitrydemenew    36    

Списание (корректировка) задолженности контрагентов УНФ 1.6 Промо

Закрытие периода Дебиторская и кредиторская задолженность Обработка документов Дебиторская и кредиторская задолженность v8 УНФ Украина БУ Абонемент ($m)

Обнуление задолженности контрагентов в конфигурации "Управление небольшой (нашей) фирмой" версии 1.6 с помощью документа "Корректировка регистров".

1 стартмани

24.07.2019    18957    12    DMon    1    

Кто круче: "ИЛИ" или "ОБЪЕДИНИТЬ ВСЕ" в запросе?

Производительность и оптимизация (HighLoad) v8 v8::СПР v8::Запросы ЗУП2.5 Абонемент ($m)

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

1 стартмани

14.09.2019    5164    0    azazana    28    

Менеджер потоков: реализация "любой" задачи в потоках

Производительность и оптимизация (HighLoad) Инструментарий разработчика v8 Абонемент ($m)

Менеджер потоков – один их новых инструментов, который упрощает работу разработчиков. Насколько легко с ним, на конференции Infostart Event 2018 Education показал начальник отдела автоматизации 1С Иван Филимонов компании «Трансстроймеханизация».

01.08.2019    8890    0    DarkAn    6    

Ловец дедлоков СУБД

Производительность и оптимизация (HighLoad) Практика программирования Разработка v8 Россия Абонемент ($m)

Анализ простейшего дедлока СУБД в рабочей базе с использованием ЦУП (центра управления производительностью) и profiler MS SQL (Microsoft SQL Server). Эта статья будет полезна людям, изучающим вопросы оптимизации работы 1С, или тем, у кого возникают дедлоки в рабочей базе. UPD 09.07.2019 добавлено воспроизведение блокировки в случае установки управляемой блокировки перед чтением набора записей регистра сведений. UPD 10.07.2019 добавлена тестовая база с примером.

1 стартмани

08.07.2019    10329    2    azazana    79    

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

Производительность и оптимизация (HighLoad) Администрирование данных 1С v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

23.11.2018    18435    53    _ASZ_    15    

Мониторинг производительности и искусственный интеллект

Производительность и оптимизация (HighLoad) Практика программирования Разработка v8 Абонемент ($m)

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

1 стартмани

01.07.2019    8685    12    ivanov660    28    

Методика оптимизации программного кода 1С: проведение документов

Обработка документов Производительность и оптимизация (HighLoad) Инструментарий разработчика v8 v8::УФ Абонемент ($m)

Описание простого метода анализа производительности программного кода 1С, способов его оптимизации и оценки результатов в виде числовых показателей прироста производительности. Не требует сторонних программных продуктов, используются только типовые возможности платформ 1С. Методика проверена на линейке платформ начиная с 1С:Предприятие 8.2 (обычные формы, управляемые формы). Позволяет ускорить проведение проблемных документов в 3 и более раз, провести проверку корректности формирования проводок оптимизированным кодом и подтвердить результаты оптимизации реальными замерами производительности в режиме предприятия. К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).

1 стартмани

19.03.2019    22042    16    dmitrydemenew    83    

Полная проверка учета НДС (БП 3.0, БП КОРП 3.0)

Бухгалтерские Анализ учета Закрытие периода Закрытие периода v8 v8::БУ БП3.0 Россия БУ НДС Абонемент ($m)

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

2 стартмани

18.01.2019    6658    130    Асов    16    

Проверка и корректировка данных по выплате зарплаты Промо

Закрытие периода Бухгалтерские Анализ учета Зарплата Зарплата v8 v8::СПР ЗКГУ3.0 ЗУП3.x Россия БУ Госбюджет Абонемент ($m)

Обработка показывает остатки и движения взаиморасчетов с сотрудниками. Также обработка может откорректировать сумму остатков. Конфигурации: "Зарплата и управление персоналом" , релиз не ниже 3.1.2.105 и "Зарплата и кадры государственного учреждения" , релиз не ниже 3.1.2.105.

2 стартмани

08.06.2018    23936    157    APTEM_SLV    14    

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

Производительность и оптимизация (HighLoad) v8 1cv8.cf Абонемент ($m)

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

10 стартмани

09.01.2019    7592    11    capitan    24    

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

Производительность и оптимизация (HighLoad) v8 ERP2 Абонемент ($m)

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

3 стартмани

18.12.2018    15502    102    ivanov660    17    

Сравниваем Управление торговлей 11.4 и Бухгалтерию предприятия 3.0 после обмена

Закрытие периода Анализ учета Поиск данных Закрытие периода Закрытие периода v8 БП3.0 УТ11 Россия БУ УУ Абонемент ($m)

Вам приходилось проверять результаты корректности данных после переноса из УТ в БП? Если "ДА", то Вы знаете какое это "приятное дело". Данная обработка была написана для того, чтобы это стало менее "приятно". И осталось больше времени для других дел.

1 стартмани

07.12.2018    6298    18    RomikR    10    

Корректировка остатков регистров накопления (обычные и управляемые формы) Промо

Закрытие периода Свертка базы Чистка базы Универсальные обработки v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка, предназначенная для удобного и быстрого исправления остатков регистров накопления (посредством автоматического ввода документов "Корректировки записей регистров", "Операция", содержащих движения, приводящие существующие остатки к желаемым). Позволяет корректировать и обнулять по аналитике и суммам остатки регистров учета товаров, партий, взаиморасчетов, налогового учета по НДС, РАУЗ, и др.

2 стартмани

14.01.2012    74494    577    stvorl    76    

PostgreSQL для 1С 8.3: ускоряем резервное копирование и восстановление для отдельной базы очень большого размера

Производительность и оптимизация (HighLoad) Тестирование и исправление v8 1cv8.cf Россия Абонемент ($m)

В этой статье разберем оптимизацию работы с моментальным снимком отдельной базы 1С в кластере PostgreSQL средствами pg_dump.exe, pg_restore.exe, psql.exe в среде Windows Server 2008,2012,2016. А также разберем проблемные ситуации и неожиданные ограничения при работе 1С в связке с PostgreSQL. Для Linux все аналогично.

1 стартмани

03.12.2018    26349    38    vsasav    68    

Скорость работы 1С8 файловой по сети

Производительность и оптимизация (HighLoad) v8 1cv8.cf Абонемент ($m)

Как я увеличил скорость работы файловой 1С8 по сети, изменив формат БД и размер страницы.

1 стартмани

01.11.2018    26152    17    Vlx    55    

Мониторинг показателей систем 1С 8.3 с помощью Zabbix

Внешние источники данных Zabbix v8 1cv8.cf Абонемент ($m)

Опишу свой опыт мониторинга наших систем 1С с помощью Zabbix и ту пользу, которую можно извлечить из этого.

1 стартмани

05.10.2018    34674    49    akimych    48    

Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов Промо

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

Восстановление партий, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

26.05.2017    47460    15    DarkAn    86    

Монитор операций закрытия месяца для УТ/КА/УП, или как правильно создать нетривиальное расширение

Закрытие периода Закрытие периода Закрытие периода v8 ERP2 УТ11 КА2 Россия БУ Абонемент ($m)

Как часто, приходя к клиенту, вы видите ужас и мрак с закрытием месяцев? Как долго нужно проматывать список месяцев, чтобы наконец найти тот самый проблемный месяц и его закрыть? Всегда хочется иметь актуальную информацию обо всех операциях закрытия месяца. Но статья не о том, как можно удобно и просто посмотреть проблемные операции закрытия месяца, а о том, как удобно и просто делать сложные расширения, сохраняющие свою функциональность при обновлениях основной конфигурации.

1 стартмани

17.09.2018    11697    31    zeegin    0    

Пересечение транзакций. Примеры

Производительность и оптимизация (HighLoad) v8 Абонемент ($m)

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

3 стартмани

03.09.2018    10532    0    vasilev2015    5    

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

Производительность и оптимизация (HighLoad) v8 v8::blocking 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

17.08.2018    6361    14    Re:аниматор    7    

Книга покупок по разным ставкам НДС для Бухгалтерии 3.0 Промо

Бухгалтерские Закрытие периода Закрытие периода v8 v8::БУ БП3.0 Россия БУ НДС Абонемент ($m)

Отчет по НДС. КНИГА ПОКУПОК по разным ставкам НДС ДЛЯ БУХГАЛТЕРИИ 3.0. Типовая книга покупок не показывает все сведения по суммам по разным ставкам НДС. Отчет создан для самопроверки перед формированием отчетности.

1 стартмани

21.09.2016    16641    26    overloader    2    

Универсальный документ корректировки регистров накопления (Управляемые формы)

Закрытие периода Обработка документов v8 v8::УФ 1cv8.cf Абонемент ($m)

Если у вас нет документа корректировки регистров, скачивайте ;)

1 стартмани

30.07.2018    12127    30    rpgshnik    2    

Робот - Дата запрета редактирования

Закрытие периода v8 1cv8.cf Абонемент ($m)

Установка Даты запрета редактирования - по расписанию и по алгоритму.

1 стартмани

27.07.2018    12051    38    Timur.V    16    

Удаление движений непроведенных документов. УФ.

Закрытие периода Чистка базы v8 v8::УФ ERP2 УТ11 КА2 Абонемент ($m)

Обработка помогает в закрытии отчетных периодов в программах 1С.

3 стартмани

02.07.2018    9456    67    PSMNN    1    

Исправление ошибок при закрытии месяца. Управление Торговлей 11.х для 1С Предприятие 8.3 Промо

Закрытие периода Закрытие периода Оптовая торговля Закрытие периода Оптовая торговля v8 v8::ОУ УТ11 Россия УУ Абонемент ($m)

В при работе обработки: Закрытие месяца возникают ошибки расчета себестоимости. Постепенно ошибки накапливаются и при дальнейшей эксплуатации системы количество ошибок лавинообразно растет. Обработка помогает исправить ошибки расчета себестоимости. Полный доступ к коду обработки.

3 стартмани

21.06.2016    40946    101    Ликреонский    28    

Нагрузочное тестирование. В дни проведения ЧМ по футболу.

Производительность и оптимизация (HighLoad) v8 Абонемент ($m)

Нагрузочное тестирование. Подготовка к экзамену 1С:Эксперт. По мотивам доклада Виктора Богачева Инфостарт Event 2014. В дни проведения ЧМ по футболу.

1 стартмани

24.06.2018    10234    4    vasilev2015    9    

Исправление ошибки закрытия месяца УТ 11.4: "Обнаружены отрицательные остатки ..."

Закрытие периода Учет ТМЦ Учет ТМЦ v8 v8::ОУ УТ11 Россия УУ Абонемент ($m)

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

1 стартмани

11.05.2018    26515    288    vasilievil    11    

Закрытие отрицательных остатков на 41 и 10 счете (БП 3.0 и Бух 7.7)

Обработка документов Закрытие периода Закрытие периода Учет ТМЦ Закрытие периода Учет ТМЦ v8 v77::БУ v8::БУ 1С7:Бух БП3.0 БУ Абонемент ($m)

Предлагаемые обработки позволят сформировать документ "Поступление товаров и материалов" по отрицательным остаткам ТМЦ (счета 41 и 10) за выбранный период. Для БП 3.0 и Бух 7.7.

1 стартмани

02.04.2018    15895    89    Ant10    0    

УПП. Реализация товаров в у.е. Формирование рублевых сумм проводок и регистров накопления с учетом ранее поступивших авансов : сразу при проведении документа Промо

Дебиторская и кредиторская задолженность Закрытие периода Обработка документов Дебиторская и кредиторская задолженность Закрытие периода v8 УПП1 Россия БУ НУ Налог на прибыль НДС Абонемент ($m)

Договор с покупателем ведется в условных единицах. Вид взаиморасчетов : по договору. Ведем взаиморасчеты в разрезе документов расчетов. Ранее поступил аванс на 2 000 EUR. Курс был 45 руб Теперь производим отгрузку на 5 000 EUR. Курс изменился и стал : 60 руб. Проводки по отгрузке формируются с учетом ранее поступившего аванса. Сумма реализации должна составить : 2 000 х 45 + 3 000 х 60 = 90 000 + 180 000 = 270 000 руб.е В типовой реализации проведение дает сумму по реализации 270 000 только для регистра накопления "Взаиморасчеты с контрагентами по документам расчетов" После внесения доработок в обработку проведения (процедура "Движения Регистров") данные по другим регистрам тоже выходят на сумму с учетом поступившего ранее аванса. Проверено для вариантов настройки программы: 1.Валюта упр.учета - Рубли 2.Валюта упр.учета НЕ Рубли

2 стартмани

08.09.2015    36413    18    Designer1C    9    

Автоматическое закрытие месяца ERP 2.хх (несколько периодов)

Закрытие периода Закрытие периода Закрытие периода v8 ERP2 Россия БУ Абонемент ($m)

К сожалению, случается закрывать период, например квартал, не один раз. И вроде бы все ручные операции выполнены, развернутое сальдо убрано, отрицательные остатки закрыты, отчеты по комиссии между организациями созданы, но себестоимость нужно пересчитать. Чтобы не ждать, пока закроется один месяц (а процедура закрытия может затянуться на часы), а потом приступать к следующему, создана данная обработка.

1 стартмани

22.02.2018    9028    50    Region_64    6    

Раздельный учет затрат по Гособоронзаказам

Закрытие периода Обработка документов Закрытие периода Закрытие периода v8 v8::БУ БП2.0 БП3.0 Россия БУ НУ Абонемент ($m)

Обработка по распределению затрат 44 счета на субсчет 90.07 пропорционально прямым затратам на исполнение гособоронзаказа, а также отчет "Отчетная Калькуляция", в который выводится информация по затратам, выручке и рентабельности каждого гособоронзаказа.

4 стартмани

12.10.2017    25086    74    suhoi    22    

Графический план выполнения запроса 1С

Производительность и оптимизация (HighLoad) Инструментарий разработчика Универсальные обработки v8 1cv8.cf Абонемент ($m)

Просмотр графического отображения плана выполнения для запросов 1С. Для информационных баз на MS SQL Server.

1 стартмани

24.06.2017    14660    56    berezdetsky    28    

Обработка восстановления последовательности (НЕ МОНОПОЛЬНО, с возможностью задать отбор по Контрагентам и по Фирмам) Промо

Обработка документов Сервисные утилиты Закрытие периода v8 БП2.0 УТ10 Украина Россия Абонемент ($m)

Обработка предназначена для восстановления последовательности проведения документов. Пригодится, когда возникает ситуация необходимости перепроведения документов, в хронологическом порядке или в том порядке, в котором нужно пользователю за определенный период времени. Отличается от стандартной обработки «Проведение документов», тем что, можно сделать отбор документов по фирме, по контрагенту или группе контрагентов, и нет необходимости в монопольном доступе, а также можно менять последовательность документов по усмотрению пользователя. Эта версия обработки для использования на платформе 8.2 в типовых конфигурациях БП 2.0, а также и для УТ 10.3 и УТП 1.2

05.03.2012    48030    109    Kuzya_brаtsk    48    

График времени выполнения ключевой операции

Статистика базы данных Производительность и оптимизация (HighLoad) v8 v8::УФ Розница ДО ERP2 БП3.0 УТ11 ЗУП3.x Абонемент ($m)

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

1 стартмани

09.04.2017    13083    15    info1i    0    

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

Производительность и оптимизация (HighLoad) v8 1cv8.cf Абонемент ($m)

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

1 стартмани

25.10.2016    38575    680    Andreynikus    58    

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

Производительность и оптимизация (HighLoad) Администрирование данных 1С v8 Россия Абонемент ($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    77111    65    vsasav    46    

Интерактивная оборотно-сальдовая ведомость 2.0 Промо

Бухгалтерские Анализ учета Налоговые Финансовый учет и бюджетирование (FRP) Дебиторская и кредиторская задолженность Закрытие периода Оборотно-сальдовая ведомость, Анализ счета Учет доходов и расходов Учет ОС и НМА Учет ТМЦ Дебиторская и кредиторская задолженность Закрытие периода Оборотно-сальдовая ведомость, Анализ счета Учет ОС и НМА Учет ТМЦ v8 v8::БУ КА1 БП2.0 УПП1 УНФ БУ НУ Абонемент ($m)

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

1 стартмани

23.07.2009    113040    52    Леонов Александр    491    

Версионирование объектов. Сжатие регистра "ВерсииОбъектов" Промо

Производительность и оптимизация (HighLoad) v8 1cv8.cf Абонемент ($m)

Cжимаем версии объектов в регистре сведений "ВерсииОбъектов". Экономия занимаемого версиями объектов объема более 50% !!!

1 стартмани

30.12.2014    26632    24    ZLENKO    14