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. Не затрагивает таблицы итогов. Решается пересчетом итогов через Конфигуратор-Тестирование и Исправление-Пересчет итогов.
Это значит, что в базе есть ссылка на данный элемент. И надо её найти:
Открываем операции - поиск ссылок на объекты. Добавить в поле объекты для поиска нового элемента. Открывается окно выбора: в верхнем поле выбираем "Сотрудники", в нижнем конкретного сотрудника, нажимаем ОК, затем кнопку поиск - внизу выводится список найденных элементов.
Разместил: E_Migachev Версии: | Дата: 25.12.2009 Прочитано: 7165
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению 1
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени rphost занимает память и грузит процессор 19
У многих возникают проблемы с rphost.exe, разного вида: rphost занимает всю память rphost грузит процессор rphost жрет память причем 1С даже на запущена, а в диспетчере следующее: ежеминутно расчет на 2-3 мегабайта. Как быть и что делат Посмотреть все результаты поиска похожих
Еще в этой же категории
Как сделать резервную копию информационной базы 1С? 2
Сделай архив и спи спокойно! И это факт - ведь порой совсем неожиданно, рано или поздно из строя выйдет даже самый дорогой и стабильный компьютер, а в нем все Ваши данные которые вы вводите в 1С:Предприятие ежедневно: новые документы, элементы справ Где скачать классификатор ФИАС (вместо КЛАДР) для загрузки в 1С и как установить ФИАС? 2
Думаю, уже многие слышали что KLADR заменен на ФИАС (Федеральная информационная адресная система) Единой информацией из ФИАС будут обязаны пользоваться все ведомства – ГИБДД, Росреестр, ЗАГС, ФМС России и др, в частности Почта России – которая ис Как включить/выключить Рабочий стол или Панель функций ? 0
По что во всех конфигурациях 1С есть рабочий стол пользователя. Для того чтобы его выключить или наоборот включить нужно выполнить следующее: - В Базовых и ПРОФ версиях открыть Сервис - Настройки пользователя и отметить галкой Показывать па Производственный календарь на 2015 год 0
Производственный календарь & незаменимый помощник бухгалтера и кадровика. В нем содержится информация о количестве рабочих, выходных и праздничных дней, норме рабочего времени в 2015 году. Для удобства использования производственный календарь соде Посмотреть все в категории 1С Общие вопросы - Обычные формы
Особенности использования поля "ПометкаУдаления" объектов базы данных
В структуре объектов базы данных 1С:Предприятия 8 имеется поле ПометкаУдаления. Оно предназначено для работы механизма удаления с контролем ссылочной целостности. Данный механизм позволяет исключить удаление пользователем объекта, если на него имеются ссылки в других данных хранящихся в базе данных.
С точки зрения системы, удаление без контроля ссылочной целостности (непосредственное удаление) допускается, и наличие в базе данных ссылок на отсутствующие объекты не является ошибкой. Область использования механизма удаления с контролем ссылочной целостности определяется разработчиком конфигурации и администратором. Разработчик конфигурации может регулировать возможность вызова непосредственного удаления пользователями для конкретных типов объектов с помощью права "Интерактивное удаление". Например, возможность непосредственного удаления может быть запрещена для всех пользователей или может быть оставлена только ответственным пользователям. Данное право влияет только на интерактивные действия, вызываемые стандартными командами системы. Если удаление выполняется средствами встроенного языка, то данное право может проверяться в модуле. Разумеется, в некоторых случаях непосредственное удаление должно выполняться, если это предусмотрено логикой решаемой задачи. Например, если выполняется массированное удаление данных регламентной обработкой. Тогда проверка права может не выполняться.
Механизм удаления с контролем ссылочной целостности предоставляет определенный сервис, но при этом не нарушает работу остальных механизмов. Пометка на удаление является только признаком того, что пользователь намеревается удалить объект. Поле ПометкаУдаления в 1С:Предприятии 8 по своему поведению, в основном, не отличается от других системных полей объекта. Оно может быть установлено присваиванием значения свойства объекта, и после выполнения записи объект будет фактически помечен на удаление.
Кроме возможности установки пометки удаления путем непосредственного присваивания свойства и записи объекта, существует метод УстановитьПометкуУдаления() . Этот метод выполняет установку свойства в указанное в параметре значение, запись объекта, а также дополнительные действия, содержание которых зависит от типа объекта. Например, для проведенного документа выполняется отмена проведения, а для справочника выполняется пометка на удаление всех подчиненных элементов в этом справочнике и в подчиненных справочниках. При выполнении пометки на удаление стандартными командами пользовательского интерфейса выполняются действия, соответствующие этому методу. Однако следует учитывать, что эти действия являются только рекомендованным типовым способом выполнения пометки на удаление. Они не являются обязательными. При установке пометки удаления путем присвоения значения свойства и записи объекта дополнительных действий не производится. Таким образом, разработчик может при необходимости выполнить пометку удаления без дополнительных действий.
Пометка на удаление является полем, значение которого используется системой в механизме удаления с контролем ссылочной целостности, однако сам процесс пометки на удаление и снятие пометки на удаление не является, с точки зрения объекта, каким-то выделенным процессом. Поэтому специального обработчика, сопровождающего пометку и снятие пометки, не существует. Так же как и для любого другого поля объекта, значение поля ПометкаУдаления может анализироваться в обработчиках ПередЗаписью() и ПриЗаписи() для выполнения каких-либо проверок или других действий. Если необходимо анализировать только записываемое значение, то достаточно проверять собственно значение поля. Если необходимо определить факт записи измененного значения, то в обработчике ПередЗаписью() необходимо организовать считывание значения данного поля из базы данных и сравнивать полученное значение с текущим значением.
Следует заметить, что в расширениях табличного поля существуют события ПередУстановкойПометкиУдаления . Однако эти события сопровождают только вызов пометки удаления с помощью стандартной команды. Поэтому эти события могут использоваться только для анализа интерактивного вызова пользователем пометки удаления в конкретной форме, а для решения общих задач контроля значения данного поля или выполнения связанных действий необходимо использовать события самого объекта.
Если документ помечен на удаление, то не допускается выполнение проведения этого документа. Однако допускается наличие движений у документа, помеченного на удаление, так как в 1С:Предприятии 8 понятие проведенности документа не связано жестко с наличием движений. Например, это используется для документов, предназначенных для ручного редактирования движений. В них при пометке на удаление не должно выполняться удаление движений, так как пользователь может снять пометку на удаление, и движения при этом не должны потеряться. В конфигурации средствами встроенного языка может быть реализовано снятие активности с записей регистров при установке пометки удаления такого документа. Однако это будет являться методологическим приемом, совмещающим пометку на удаление и отключение активности движений.
Возможность непосредственного удаления объектов без пометки на удаление и контроля ссылочной целостности
В 1С:Предприятии 8 существует механизм контроля ссылочной целостности, предусматривающий выполнение удаления объектов в два этапа: пометку на удаление и удаление с контролем ссылочной целостности. Однако этот механизм является сервисным и не должен использоваться всегда в обязательном порядке.
Само по себе наличие ссылок на несуществующие объекты не является ошибкой с точки зрения платформы. Например, даже при использовании механизма контроля ссылочной целостности для объектов базы данных ссылки на удаленные объекты могут быть получены из сохраненных значений настроек отчетов.
Средства встроенного языка позволяют как пометить на удаление объект, так и удалить его непосредственно без контроля ссылочной целостности. Соответственно, и для интерактивной работы пользователя предусмотрена как возможность пометки объекта на удаление, так и возможность непосредственного удаления объекта.
Для избежания ошибок стандартное действие, вызываемое в списках по клавише Del, выполняет пометку на удаление, а для непосредственного удаления используется комбинация клавиш Shift+Del.
Для того чтобы запретить конечному пользователю возможность непосредственного удаления, следует отключать право "Интерактивное удаление" для соответствующих объектов конфигурации. Следует учитывать, что по умолчанию данное право, как и все остальные права, разрешено.
Таким образом, возможность непосредственного удаления (без контроля ссылочной целостности) должна определяться разработчиком конфигурации при настройке ролей и администратором при назначении ролей пользователям. В большинстве случаев имеет смысл запрещать пользователям интерактивное удаление и обеспечить, таким образом, использование механизма контроля ссылочной целостности. Однако в некоторых случаях непосредственное удаление может быть полезно. Например, для сотрудников, выполняющих первоначальное наполнение информационной базы до начала использования системы, или для объектов, на которые не создается ссылок в других объектах конфигурации.
Читайте также: