1с пересчет итогов как прервать
Определение имен таблиц MSSQL
Структура базы данных 1С весьма запутана и состоит из малозначимых для человека названий. 1С содержит функцию определения структуры хранения по имени объекта. В основу разработки положена эта функция ПолучитьСтруктуруХраненияБазыДанных, которая согласно русскому названию возвращает описание структуры. В этой структуре важны 2 поля Назначение, которое должно быть равно «Основная», и название таблицы ИмяТаблицыХранения.
Определение смещения дат
Таблица _YearOffset содержит число, обозначающее смещение года дат. Оно принимает значение 0 или 2000. Так со смещением 2000 дата 01.01.2014 будет храниться в базе данных как 01.01.4014. Соответственно при отборе по датам (удаление происходит за период времени) нужно учитывать смещение. Смещение можно получить следующим кодом 1С:
Установка пометки на удаление документов
Имея названия таблиц документов и зная, что поля _Date_Time, _Marked и _Posted отвечают за дату, отметку об удалении и отметку о проведении соответственно, можно одним SQL-запросом пометить их все на удаление. Делается это так:
Установка пометки на удаление в журналах документов
Не смотря на установку отметки на удаление у документов, в журналах документов хранятся дубли отметок об удалении на каждый документ. Список журналов, где участвует документ можно получить из метаданных документа так: Метаданные.ЖурналыДокументов
Отметка на удаление через поля _Marked и _Posted происходит аналогично через команду:
Удаление движений регистров
При удалении документов 1С удаляет движения документа по регистрам. В случае прямого доступа эти движения нужно удалить самостоятельно. Список регистров можно получить через метаданные ДокументМетаданные.Движения.
Команда, которой выполняется удаление движений следующая:
Заключение
Как оказалось, добиться убыстрения работы 1С примерно на 2 порядка не так сложно, достаточно выполнить 3 вида команд. В конечной обработке логика расширена за счет выбора документов по видам, добавлением таймаута, добавлением транзакции, пакетным выполнением команд.
PS. Список возникающих проблем и пути устранения:
1. Обработка игнорирует документы, где запрещено проведение, например, корректировка записей регистров. В корректировке записей регистров удаление документа связано со снятием активности записей регистров.
2. Результат удаления не отражается в планах обмена. Решается одновременным запуском обработки в связанных базах.
3. Не затрагивает таблицы итогов. Решается пересчетом итогов через Конфигуратор-Тестирование и Исправление-Пересчет итогов.
Всем привет. Как обычно в пт занимаемся оптимизацией 1С. Есть документы, которые генерирует по 20-30 тысяс проводок. Само проведение оптимизировали, записывая проводки порциями, но вот отмена проведения занимает капец время. При чем всегда разное. Что испробововали:
1. Проводить отмену проведения вне транзакций
2. Отключать итоги, делать отмену проведения, включать итоги (неодназначный результат, больше сомнения вызывает вкл\откл итогов, база большая, и постоянно вкл\выкл итоги накладно)
3. Управляемые блокировки (пока тестим)
Есть идеи? Заранее спасибо.
(0) Отказаться от документов, "которые генерирует по 20-30 тысяс проводок", и спроектировать правильно не предлагать?
(6) Правильно! Давайте откажемся от документа РСВ в УПП, например!
А то что он кучи проводок генерит, это же неправильно.
(7) Не слышал, чтобы кто-то жаловался на долгую *отмену* РСВ. И то, РСВ можно выполнять (и отменять) по частям. Так что все предусмотрено.
Там у ТС явно чего-то лишнего наворотили. Может так "обмен" пытаются делать.
У нас такая же проблема((
Есть документ, который в конце месяца генерит до 500 тыс проводок. Отмена проведения это ппц. Мало того, что память жрет, еще и выполняется долго, и эскалация блокировок включается.
(8) ниче там не предусмотрено. вообще мне кажется в 1С больше г..на, только что беседовали с коллегами по sap, те поржали от души, когда мы им сказали, что в 1С есть ограничение на кол-во записей в таб. доке (9999) и на кол-во записей в регистре (99999). резюмировали: 1С - для EPR систем еще расти и расти, лучше не жлобиться и купить норм. забугор прогу, которая веками оттачивали.
Че думаете? Идти к начальству с предложением :))
(0) Напиши свой блек ждек и шлюх.
т.е. есть документ Владелец и будут еще документы, которые подчинены владельцу и формируется автоматически, так же и проводятся из основного документа.
(13) супер, "раскидайте 30 000 проводок по 1000 документам", а когда откроешь карточка счета бухи аху, там же мля 1000 док, не говоря уже о размере базы и т.д., и т.п. Хотя признаюсь често была такая мысль - но главный спец наш сказал вы аху что ли! давайте думайте дальше.
(12) Вообще не в кассу. Я тоже могу пойти к бывшим коллегам ораклистам и у нас найдется 100500 причин поржать над тем, какое 1С тормозное УГ. (Что, кстати, раньше и делали.) Но это никак не относится к обсуждаемой теме. Как и ограничения в ТЧ.
(12) ограничение по числу строк на порядок шире - 99999, про регистр вранье - нет такого ограничения ни на сам регистр, ни на набор записей.
(0) Что конкретно больше всего времени занимает? подписки/обработчики при отмене проведения пустые что ли все?
(21) больше всего времени занимает "ОТМЕНА проведения документа", с "проведением документа" слава аллаху разобрались (летает)
(23) при отмене проведения что-то делается вашим кодом? Или обработчик при отмене проведения пустой и подписок нет?
Четыре в одном. Все обработки работают в многопользовательском режиме доступа (НЕ МОНОПОЛЬНО). Проведение документов и восстановление границы последовательности с индикацией хода выполнения. А также "Установка дат последовательностей", "Установка дат расчета итогов" и "Пересчет итогов".
В данной публикации представлено 4 обработки и бонусный файл. Для запуска обработок под 8.2, обработки необходимо открыть в конфигураторе для конвертации. Все представленные в данной публикации обработки могут работать в многопользовательском режиме доступа (НЕ МОНОПОЛЬНО).
Проведение документов / восстановление последовательностей
1. Проводит документы за период. По выбранным видам документов. По выбранной организации.
2. Восстановление выбранных границ последовательности блоками по часу. Т.е. в случае возникновения ошибки при проведении документа откат происходит на начало часа.
Дополнительные возможности
Повторные попытки проведения / восстановления в случае неудачи (например, в случае блокировки документа другим пользователем).
Ожидание завершения работы пользователя "Регламент" (под данным пользователем могут выполняться регламентные операции, например обмен данными РИБ).
"ТМЦ / Оплата" помечает документы от проведения которых зависит учет НДС. К сожалению не всегда восстановление последовательности позволят корректно рассчитать НДС, комбинация проведения всех документов связанных с движением ТМЦ и оплатой, а также восстановление границы последовательности позволяет в значительной степени "правильно" выполнить расчет.
Данная обработка первоначально была разработана для УПП, но, разумеется, будет работать и в любой другой конфигурации 1С:Предприятия 8.
Установка границ последовательностей
Обработка "Установка границ последовательностей" позволяет устанавливать границы последовательностей на указанную дату без проведения документов. Это бывает необходимо при "случайном" проведении документа раньше границы восстановленной последовательности. Чаще всего если документ не изменялся, то результат его проведения тоже не изменится. В этом случае нет необходимости перепроводить все последующие документы, достаточно вернуть границу последовательности "на место".
Установка дат расчета итогов
При загрузке большого количества документов есть стандартная возможность отключить итоги, в этом случае загрузка будет выполнена быстрее. Но в случае повторной загрузки документов требущей перепродения документов после загрузки, данный механизм не подходит, потому что возникнет ошибка при обращении к итогам. Обработка "Установка дат расчета итогов" не отключает итоги, она расчитывает их на нужную дату. При правильном её использовании, проведение загружаемых документов не будет вызавать пересчет итогов последующих периодов.
В случае, если по какой-то причине не был выполнен регламентированный расчет итогов регистров, то для расчета итогов также можно воспользоваться данной обработкой.
"Удаление рассчитанных итогов" - в этом режиме расчитанные итоги удаляются, но использование итогов не отключается. Т. е. документы будут нормально проводится.
Пересчет итогов по регистрам
Во многих конфигурациях появилась возможность использовать разделение итогов. Это снижает вероятность возникновения взаимных блокировок, но при этом в случае интенсивной работы пользователей таблицы итогов увеличиваются. Для уменьшения количества дублирующихся записей итогов предлогается выполнять пересчет итогов. Типовой механизм пересчета требует монопольного доступа к базе данных. Мне было удобно выполнять данную процедуру во время обеда. При этом выгонять пользователей из базы данных не обязательно.
Бонус
На отдельную публикацию не потянет, поэтому выкладываю бонусом.
Буду рад комментариям с конструктивной критикой, пожеланиями и замечаниями.
Иногда в программе 1С возникают ошибки. Например, в ОСВ не сходится сальдо на начало периода и сальдо на конец. Такие ошибки случаются из-за сбоев технического характера при выполнении системных операций, обновлений программы или переноса данных из программных продуктов.
Если возникли подобные ошибки в программе следует запустить пересчет итогов. Разберемся как сделать пересчет итогов в 1С 8.3 Бухгалтерия, какие варианты пересчета итогов доступны в режиме 1С Предприятие 8.
Пересчет итогов в 1С 8.3 Бухгалтерия
В режиме Конфигуратора
Пересчитать итоги в 1С можно как в конфигураторе, так и в режиме пользователя. Прежде рассмотрим, как сделать пересчет итогов в конфигураторе.
Откройте конфигуратор. Меню Администрирование – Тестирование и исправление .
Проверьте установку флага Пересчет итогов , нажмите Выполнить .
В режиме Пользователя
Если нет доступа к конфигуратору, пересчет итогов в 1С можно запустить в режиме пользователя.
Предварительно узнайте дату самого первого документа, проведенного в программе. Перейдите в раздел Операции – Журнал операций .
Перейдите в раздел Администрирование – Обслуживание .
Откройте раздел Регламентные операции , выберите Управление итогами и агрегатами .
В подвале формы нажмите на ссылку Полные возможности .
Из списка выберите Журнал проводок (бухгалтерский и налоговый учет) (регистр бухгалтерии) , нажмите Пересчет Пересчитать итоги за период .
Установите необходимый период, нажав на кнопку Выбрать , запустится пересчет итогов за выбранный промежуток времени.
После выполнения пересчета итогов ошибок в программе 1С не будет.
Мы рассмотрели, как сделать пересчет итогов в 1С 8.3 Бухгалтерия.
См. также:
Если Вы еще не подписаны:
Активировать демо-доступ бесплатно →
или
Оформить подписку на Рубрикатор →
После оформления подписки вам станут доступны все материалы по 1С:Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Рассмотрим возможность пересчета итогов в режиме конфигуратора и пользовательском режиме.
В процессе обновления, переносов данных из других конфигурация и даже в процессе повседневной работы возможные технические сбои при выполнении системных операций. В большинстве случае такие сбои выявляются и успешно обрабатываются, но в некоторых случаях они, все-таки, приводят к ошибкам. Такие ошибки чаще всего проявляются при обращении к итоговым данным. Например, в оборотно-сальдовой ведомости "не сходится" сальдо начальное, оборот и конечное сальдо или итоги. Для исправления данной ситуации требуется пересчет итогов.
Пересчет итогов может быть выполнен в режиме конфигуратора (Меню Администрирование - Тестирование и исправление).
Выбираем флажком Пересчет итогов – Выполнить.
Пересчет итогов возможет и из режима Предприятие, для этого перейдем в раздел Администрирование – Обслуживание – Регламентные операции – Управление итогами и агрегатами.
Нажимаем на гиперссылку в нижней части экрана «Полные возможности»
Находим в списке Журнал проводок, выделяем его курсором и нажимаем кнопку «Пересчет». Можно выбрать период для пересчета, а можно просто нажать «Пересчитать итоги»
После завершения пересчета итогов стандартные отчеты будет формироваться без ошибок.
Читайте также: