Пользователь уже начал редактировать эти данные 1с

Обновлено: 07.07.2024


Редактировать одни и те же данные в прикладных решениях «1С:Предприятие» раньше было неудобно. Пользователи не могли согласовать последовательность своих действий или освободить занятые другими данные.

С новым механизмом взаимодействия это становится возможным. «1С» разбирает опцию на примерах.

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

Редактирование одних и тех же данных пользователя в платформе «1С:Предприятие» осуществляется с помощью пессимистической блокировки.

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


Разработчики фирмы «1С» внесли несколько поправок, чтобы избежать таких неудобств.

Взаимодействие при пессимистической блокировке

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

В версии платформы «1С:Предприятие» 8.3.15 задействован сервер взаимодействия 1С:Диалог. Любые пользователи прикладных решений смогут зарегистрировать на нем свою информационную базу. Если решение подключено к системе взаимодействия, сценарий редактирования одних и тех же данных будет выглядеть более простым и удобным.

Примеры



Менеджер, который еще не окончил редактирование заказа, отвечает:


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



Если администратор нажмет кнопку «Начать редактирование», платформа снимет пессимистическую блокировку. Администратор, который и так помнит, что хотел заказать, отредактирует документ заново и сохранит изменения.



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

При введении текущего механизма в рабочей базе , следует так же разработать свод регламентов изменений захваченых объектов.
и правила кулачных боев на предприятии. bazookaa; axelerleo; LuxVeritatis; Hazker; SagittariusA; portwein; olezhe; rovenko.n; Orlando Skibraves; kild; D_e_X_T_e_R; Serega-artem; TMV; TreeDogNight; Brawler; trumanl; rossoxa; + 17 – Ответить

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

И, да, ТекущейДатыСеанса() тоже не существует в запросах.

KolBbl4; SagittariusA; user654546_kirill.masloboev; olezhe; yad; falsepilot; ilialin; TMV; TreeDogNight; dimisa; gea81; t.v.s.; + 12 – 1 Ответить (2)Идея здравая, но малореализуемая, т.к. 1С Предпритие 8 - свои запросы просто транслирует в запросы, выполняемые в СУБД (и лишь в конце - немного дообрабатывает результат, например для формирования итогов). А СУБД об объектных блокировках не знает ничего (и передавать ему эти сведения, например, в виде временной таблицы) - не очень эффективное (хотя и возможное) решение! Поэтому в результирующих запросах не удастся обращаться к данным объектных блокировок. (3)Почему только для больших. Такое решение может быть очень актуально и для небольших компаний, но имеющих сильно распределённую по удалённым местам структуру клиентских компьютеров. Когда пользователи далеко друг от друга работают с одними и теми же данными - такая помощь очень даже полезна - реализовано только очень грубо. И ничего не сказано про мобильного клиента - но, по идеи, там тоже самое должно быть - что для МК ещё более актуально (сотруднику "в поле" тяжело разбираться сейчас - почему ему не удаётся отредактировать, скажем документ, который занят сейчас офисным планктоном или другим сотрудников в другом "огороде", но с пересекающимися интересами). SagittariusA; pecherskikh; JohnyDeath; Waanneek; tsmult; TreeDogNight; + 6 – Ответить (5)От чего, от того, что к заблокированной ссылке, имени пользователю и дате добавится ещё имя поля (или нескольких полей)? Не смешите меня! (9)ну не знаю, не знаю. Мы же говорим о куче документов, открытых одновременно? А тот же 1C: ERP систему и без всяких примочек грузит очень неслабо. (10)Объектные блокировки можно получить программно (или в коносли) - посмотрите - там нет каких-то гигантских объёмов данных, они уже хранятся. Добавление изменённых реквизитов лишь немного увеличели бы их. (11) Так вся проблема в том, что последние версии во всём "немного увеличили". Тут кусочечек, там кусочечек, и имеем, что для ЕРП нужно 4 гига оперативки. А теперь еще немножечко увеличить на измененные реквизиты, и еще туда, туда и туда. И свапить у вас будет даже на мощном сервере.

Я бы лучше встроил бы такое информирование (в кратком виде), например, в заголовок (вернее под ним) форм - и ввёл бы цветовое выделение (в т.ч., например, рамки формы, и рамки закладки формы в панели открытых окон + в клиентском приложении можно получать всплывающие краткие уведомления).

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

Вот бы ещё, нечто подобное сделали бы для РИБ - когда один и тот же объект хотят отредактировать в разных узлах - сейчас этому ничего не препятствует - только потом, всплывёт (а может и не всплывёт), что чья-то версия стала главнее и заменила собой другие - но об этом самих авторов изменений никто даже не уведомит, ни постфактум, ни тем более в реальном времени! Поэтому РИБ в 1С Предприятие 8 вещь специфическая, ненадёжная - и мало практикуемая в серьёзных организациях.


Пользователи

Откроется окно со списком всех пользователей информационной базы:

Пользователи

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

Пользователи

В поле Имя нужно ввести имя пользователя, которое будет показано при входе в программу, например: Иванов И.И.

В поле Полное имя нужно ввести полное имя пользователя. Оно будет отображаться в программе, например: Иванов Иван Иванович.

Для аутентификации средствами платформы 1С нужно чтобы был установлен флаг Аутентификация 1С:Предприятия. В этом случае при входе нужно будет ввести логин и пароль.

В полях Пароль и Подтверждение пароля нужно указать пароль пользователя.

Заполним данные пользователя:

Пользователи

Пользователи

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

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

ПолныеПрава

Дважды щелкнув по роли, откроем окно настроек прав доступа для данной роли:

ПолныеПрава

Установить все права

И сохраним конфигурацию базы данных.

Вернемся к настройке пользователя и на закладке Прочее установим флаг рядом с ролью Полные права в списке доступных ролей и нажмем ОК:

Доступные роли

И добавим еще одного пользователя:

Пользователь

Теперь при входе в базу нужно выбрать пользователя и ввести его пароль:

Пользователь

Идентификация пользователя не выполнена

Значит пользователя с таким именем нет в базе данных или введен неверный пароль.

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

Удалить пользователя

Список пользователей хранится в специальной таблице базы данных.

Показывать в списке выбора

В настройках пользователя есть флаг Показывать в списке выбора:

Показывать в списке выбора

Если данный флаг установлен, то пользователь будет доступен для выбора при входе в программу. Если снять этот флаг, то пользователя не будет в списке выбора, но можно будет ввести его имя вручную и войти под ним. Это можно использовать, чтобы скрыть администратора системы.

Например, создадим нового пользователя Администратор и снимем у него флаг Показывать в списке выбора:

Показывать в списке выбора

Теперь при входе в базу пользователь не будет в списке доступных пользователей:

Показывать в списке выбора

Но можно вручную ввести его логин и пароль и войти под ним:

Показывать в списке выбора

Защита от опасных действий

Потенциально опасными действиями считаются:

  • Загрузка внешней обработки или отчета
  • Подключение расширения
  • Обновление конфигурации
  • Выполнение команды операционной системы из внешней обработки/отчета или расширения
  • Программное добавление или удаление пользователей из внешней обработки/отчета или расширения
  • Загрузка внешней компоненты из внешней обработки/отчета или расширения
  • Использование COM-объекта из внешней обработки/отчета или расширения

Если в свойствах пользователя установлен флаг Защита от опасных действий:

Защита от опасных действий

предупреждение безопасности

Если нажать Нет, то внешняя обработка не будет открыта.

Если нажать Да, то внешняя обработка будет открыта и платформа запомнит, что данное действие было разрешено. При последующих открытиях этой же обработки предупреждения не будет. Платформа запоминает разрешение для хэша обработки. Если в дальнейшем обработка будет изменена, то при первом открытии обработки снова будет выдано предупреждение безопасности.

Активные пользователи

Активные пользователи

Будет открыт список активных пользователей:

Активные пользователи

Текущий пользователь выделен специальной пиктограммой с галочкой.

Параметры

В открывшемся окне нужно установить флажок Режим технического специалиста:

Режим технического специалиста

После этого в главном меню выбрать Функции для технического специалиста:

Функции для технического специалиста

В открывшемся окне в узле Стандартные нужно найти пункт меню Активные пользователи:

Активные пользователи

По двойному клику будет открыто окно с активными пользователями. Текущий пользователь будет выделен жирным шрифтом:

Активные пользователи

Активные пользователи
Активные пользователи

Если база клиент-серверная, то можно запустить утилиту для администрирования серверов 1С предприятие. Для этого в меню пуск нужно найти соответствующий пункт меню:

администрирование серверов 1С

В открывшемся окне нужно в списке информационных баз найти нужную базу, развернуть ее и выбрать пункт Сеансы:

Сеансы

Справа будут показаны все активные сеансы с текущей базой:

Сеансы

Если нужно просто узнать текущего пользователя, то он отображается в правом верхнем углу:

Текущий пользователь

Завершение работы пользователей

Чтобы завершить работу пользователей в 1С можно воспользоваться утилитой для администрирования серверов. Данный вариант подойдет только для клиент-серверных баз. В списке сеансов нужно выделить нужного пользователя и выбрать команду Удалить:

Завершение работы пользователей

Чтобы выгнать всех пользователей из базы нужно нажать ctrl+A, чтобы выделить всех пользователей. А потом выбрать в контекстном меню команду Удалить.

В конфигурациях на базе БСП, в списке активных пользователей есть кнопка Завершить сеанс, которая позволяет завершить сеанс пользователя:

Завершить сеанс

Чтобы выкинуть всех пользователей из файловой базы можно завершить их процессы операционной системы. Этот вариант подойдет если все пользователи работают на одном компьютере. Нужно запустить диспетчер задач (ctrl + alt + Del), на закладке Процессы найти все процессы 1С и завершить их, выбрав в контекстном меню Снять задачу:

Снять задачу

Программная работа с пользователями

Создать нового пользователя

Управление пользователями информационной базы выполняется с помощью объекта ПользователиИнформационнойБазы.

Для добавления нового пользователя нужно вызвать метод СоздатьПользователя у данного объекта. Затем заполнить все необходимые поля и записать пользователя в базу методом Записать:

НовыйПольз = ПользователиИнформационнойБазы . СоздатьПользователя ( ) ; ЗащитаОтОпасныхДействий = Новый ОписаниеЗащитыОтОпасныхДействий ; ЗащитаОтОпасныхДействий . ПредупреждатьОбОпасныхДействиях = Истина; НовыйПольз . ЗащитаОтОпасныхДействий = ЗащитаОтОпасныхДействий ; НовыйПольз . Роли . Добавить ( Метаданные . Роли . ПолныеПрава ) ;

В результате будет добавлен новый пользователь:

пользователь

Получить всех пользователей

Всех пользователей можно получить с помощью метода ПолучитьПользователей. Данный метод вернет массив объектов типа ПользовательИнформационнойБазы:

ВсеПользователи = ПользователиИнформационнойБазы . ПолучитьПользователей ( ) ;

Поиск пользователей

Найти пользователя можно или по имени или по идентификатору. Для поиска используются методы НайтиПоИмени и НайтиПоУникальномуИдентификатору:

НайдПольз = ПользователиИнформационнойБазы . НайтиПоИмени ( "Сидоров С.С." ) ; УИДПользователя = Новый УникальныйИдентификатор ( "0c3c8e07-c36a-41ce-977a-85ee65d03a00" ) ; НайдПольз = ПользователиИнформационнойБазы . НайтиПоУникальномуИдентификатору ( УИДПользователя ) ;

Удаление пользователя

Для удаления пользователя используется метод Удалить:

НайдПольз = ПользователиИнформационнойБазы . НайтиПоИмени ( "Сидоров С.С." ) ;

Текущий пользователь

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

ТекПользователь = ПользователиИнформационнойБазы . ТекущийПользователь ( ) ;

Блокировка установки сеансов

Клиент-серверный вариант

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

Свойства

В поле с администратором информационной базы нужно ввести логин и пароль пользователя 1С:

администратор информационной базы

Блокировка начала сеансов включена

Начало сеанса с информационной базой запрещено

Блокируются как пользовательские сеансы, так и конфигуратор. При этом, существующие сеансы смогут продолжить работать.

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

Код разрешения

Данный код указывается в свойствах базы в параметре Дополнительные параметры запуска после ключа /UC. Чтобы открыть свойства базы нужно в списке баз выделить нужную базу и нажать кнопку Изменить:

Дополнительные параметры запуска

Теперь в данную базу можно войти даже во время блокировки.

Чтобы снять блокировку до ее окончания нужно просто снять флаг Блокировка начала сеансов включена.


Что конкретно удалил либо поменял пользователь в конкретном документе в 1С? Для решения этого вопроса разработчики внедрили специальный механизм хранения версий объектов — так называемое версионирование, с помощью которого вы как раз можете увидеть всю конкретику измененных документов.

В этой статье мы расскажем обо всех плюсах и минусах версионирования, а также покажем на конкретном примере в 1С: Зарплата и управление персоналом ред. 3.1, как работает механизм.

Начиная с платформы 8.3.11, механизм версионирования встроен в систему и называется «История данных». Он имеется во всех конфигурациях, работающих на основе библиотеки стандартных подсистем (БСП). Например, в 1С: Бухгалтерия предприятия он реализован, начиная с версии 3.0.35.

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

Версионирование — это механизм хранения истории изменения объектов в 1С, который позволяет:

  • просматривать, какие изменения внес пользователь в объект (справочник, документ);
  • анализировать версии объектов;
  • сравнивать эти версии между собой;
  • восстанавливать любую из версий объекта.

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

Плюсов у этого функционала, конечно много.

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

Центр обучения «Клерка» приглашает разобрать не менее важный аспект бухгалтерского учета — ведение учета запасов по новому ФСБУ 5/2019. Бесплатный вебинар уже совсем скоро — 20 августа.

Как включить версионирование в 1С?

Этот механизм может включить как разработчик в конфигураторе, так и сам пользователь в пользовательском режиме.

Для включения версионирования объектов выполните следующие пункты.

Шаг 1. Перейдите в раздел «Администрирование» — «Общие настройки».

Пример раздела в 1С: Зарплата и управление персоналом, ред. 3.1:


Пример раздела в 1С: Бухгалтерия предприятия ред. 3.0.


Шаг 2. Разверните подраздел «История изменений» и установите галочку «Хранить историю изменений». Для перехода к настройкам нажмите гиперссылку «Настроить».


Как видите, в 1С: ЗУП и 1С: Бухгалтерии предприятия эти пункты выглядят совершенно одинаково.

Соответственно, и настройка версионирования во всех конфигурациях 1С выполняется аналогично, т.к. это одна подсистема.


Настройки истории хранения изменений

Рассмотрим основные настройки подсистемы «Версионирование» и механизма «Хранение данных» на примере программы 1С: Зарплата и управление персоналом ред. 3.1.

В составе объектов настройки два пункта: справочники и документы.

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


В разделе «Документы» перечислены все имеющиеся в конфигурации документы, для которых также отдельно выполняется настройка хранения данных.


Параметр «Когда сохранять версии»

Для изменения параметра выделите ячейку и нажмите стрелочку. В выпадающем списке выберите нужное значение.

Значение параметра «Когда сохранять версии» может принимать значение:

  • «При записи» — версия сохраняется при создании или изменении справочника либо документа;
  • «При проведении» — применима для документов, для которых предусмотрено проведение. Запись производится при их проведении;
  • «Никогда» — запись истории изменения объекта не ведется.


Применить настройки можно и к группе объектов.

Выберите несколько объектов с помощью кнопки Shift (в указанном диапазоне «с какого по какой») или Ctrl (выборочное выделение) и, нажав кнопку «Установить когда сохранять версии», выберите нужное значение для указанных объектов.

В этом пункте, кроме описанных выше вариантов, доступна настройка «По умолчанию». В данном случае устанавливаются рекомендуемые настройки. Для справочников это — «Никогда», для документов — «При проведении».


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


Параметр «Срок хранения версий»

Аналогично задается параметр «Срок хранения версий».

Выделите ячейку и выберите вариант срока хранения заданного элемента.

Он может принимать значение:

  • «За последнюю неделю»;
  • «За последний месяц»;
  • За последние три месяца«;
  • «За последний год»;
  • «Бессрочно».


Для выбранной группы объектов изменить этот параметр также можно с помощью кнопки «Установить срок хранения версий».

Выделите объекты, нажмите вышеуказанную кнопку и выберите нужное значение.


Рассмотрим настройку на примере.

Пример настройки версионирования в 1С: ЗУП ред. 3.1

Установите настройки хранения истории изменений для документа «Начисление зарплаты и взносов». Значение параметра «Когда сохранять версии» — При проведении«, «Срок хранения» — «За последнюю неделю» (для примера).


После того, как активировано версионирование, в объектах 1С станут доступны кнопки в виде карандаша с часиками — «Перейти к истории изменений».

В нашем примере она расположена в журнале документов на панели инструментов, а также по нажатию кнопки «Еще».


Во втором варианте она выглядит как строка — «История изменений».


При открытии документа, в нем также присутствует такая кнопка и команда по нажатию кнопки «Еще».


Рассмотрим пример, когда бухгалтер вносила изменения в документ «Начисление зарплаты и взносов».

Для иллюстрации примера изменим заработную плату Булочкиной О.И. с 67000 руб. на 75000 руб. и посмотрим, как программа сохранит версии документов и сможем ли мы, используя механизм хранения данных, вернуться к прежней версии.

Нажмите «кнопку-карандашик» — «Перейти к истории изменений».


Становится видно информацию о версиях документа «Начисление зарплаты и взносов»: кто изменил данный объект, а также дату и время изменения.

Для просмотра версии выделите строку и нажмите кнопку «Открыть версию».


В отчете представлены вся информация, показатели и данные документа выделенной версии. Кнопками " " и «-» можно свернуть и развернуть блоки для удобства чтения.


В нашем примере мы знаем, что пользователь изменил зарплату по окладу Булочкиной О.И. на 75000 руб.

Но как же пользователь проанализирует такой объем информации и определит, какие изменения произведены в какой версии?

Для этого есть функция сравнения с помощью одноименной кнопки «Сравнить».

Для сравнения версий выделите нужные строки (с помощью Shift или Ctrl) и нажмите кнопку «Сравнить».

Обратите внимание, при выделении нескольких версий другие команды неактивны, т.к. предназначены для работы с одной строкой-версией.


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


Пролистав таблицу, мы видим, что пользователем Кругловой О. были изменены данные по Булочкиной О.И. Сохраненные версии № 1 и № 2 идентичные, а в версии № 3 прослеживаются изменения.

Обратите внимание на значение поля «Изменения в реквизитах». По умолчанию установлено — «Все». Поэтому отчет получился объемным. Нажав кнопку выбора с тремя точками, пользователь может задать выводимые реквизиты, отметив нужные галочками.


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

Как это сделать?

Выделите версию объекта, на который хотите перейти и нажмите кнопку «Перейти на версию».

В моделируемом примере нас устроит версия № 2 (до внесения изменений). На нее и перейдем.


В результате проведенных манипуляций в таблице «История изменений: Начисление зарплаты и взносов от 31.08.2021» появилась четвертая версия документа с пометкой — «Выполнен переход к версии № 2 от 10.08.2021 18:32:49» (пример моделировался 10.08.2021).


Откройте документ и проверьте, что в нем изменилось.

Документ перешел к варианту до внесения в него изменений. В нашем примере зарплата сотрудника Булочкиной О.И. автоматически изменилась на 67000 руб. (напомним, она была изменена ранее на 75000 руб.). Начисление НДФЛ и страховых взносов также приняло прежние значения. Т.е. документ полностью принял первоначальный вид.


Этот способ очень удобен. Он позволяет не только отслеживать, когда и кем были произведены изменения, но и «откатывать» состояние объекта в предшествующее состояние. Перейдя на версию объекта и не получив результата, пользователь может повторить операцию снова. Переходы от версии к версии не ограничены и их можно выполнять в пределах хранящихся версий.

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

Объем хранимых версий объектов и их удаление в 1С

Вернемся к разделу «Настройка и хранение истории изменений».

Нажмите гиперссылку «Количество и объем хранения версий объектов».


В отчете представлена информация в графическом и в табличном варианте, где пользователь видит структуру данных версий хранения объектов.

В нашем примере видно, что объект — документ «Начисление зарплаты и взносов» имеет четыре версии и этот объем данных занимает 0,01Мб.


Но это всего лишь один документ. Поэтому, если вы настраиваете версионирование и активно им пользуетесь, смотрите какой объем занимают данные.

Обратите внимание на строку «Очистка устаревших версий». У нас пока таковых не имеется, но при их появлении появится кнопка «Очистить». Здесь также выводится информация об их количестве и объеме. Нажав на эту кнопку старые, неактуальные версии удаляются.

Для автоматизации процесса удаления устаревших версий, установите одноименную галочку «Автоматически удалять устаревшие версии» и вам не придется постоянно отвлекаться на контроль этого процесса.


Теперь вы знаете что такое версионирование и как настроить хранение истории изменения справочников и документов в программах 1С.

Как говорится: «Все гениальное — просто!». Экспериментируйте, используйте этот функционал программы и, главное, не бойтесь что-то испортить, ведь всегда можно вернуть версию объекта. Если вы сочтете это ненужным, то в любой момент вы сможете отключить эту настройку.

Описание ошибки:
Ошибка " Данные были изменены или удалены другим пользователем" может возинкать при сохранении элемента справочника или при сохранении/проведении какого либо документа.

1С 8 ошибка данные были изменены или удалены другим пользователем

В управляемом интерфейсе после нажатия кнопки "ОК" откроется еще окно с описанием текста ошибки: "Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)!"

1С 8 ошибка операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных

В базе с обычным интерфейсом ошибка может возникнут при попытке пользователя просто внести какие-то изменения в форме.

1С 8 ошибка (возможно, запись была изменена или удалена)! при изменении в форме

Демонстрация возникновения ошибки на практическом примере:

Если в базе 1С 8 работает несколько (два-три) пользователя, то вероятность встретить данную ошибку стремится к нулю. Если в базе работает несколько десятков пользователей, то шансы возникновения данной ошибки при работе со справочниками и документами повышаются существенно. Но не стоит паниковать при появлении данной ошибки. Она лишь говорит о том, что документ или элемент справочника уже успел изменить и сохранить другой пользователь. Пользователю, который получил такую ошибку ничего не остается, как просто закрыть форму документа или элемента справочника без сохранения внесенных изменений. Открыть форму и снова нести изменения, которые не удалось сохранить.

Рассмотрим более подробно, как развиваются события в базе, приводящие к возникновению ошибки "Данные были изменены или удалены другим пользователем". Условно пусть будет "Пользователь 1" базы и "Пользователь 2". Пользователь 1 открывает форму документа и вносит изменения. При этому Пользователь 2 так же открывает форму этого же документа и тоже вносит изменения и успевает раньше Пользователя 2 нажать кнопку сохранения или проведения документа. Все, в документе сохранились изменения, Пользователь 2 оказался быстрее. 1С не поддерживает совместную одновременную работу в одном объекте базы (в данном примере это документ). Поэтому Пользователь 1 получит ошибку, т.к. пытался сохранить изменения уже после того, как это сделал Пользователь 2. Даже не смотря на то, что Пользователь 1 раньше открыл форму документа для редактирования.

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

Читайте также: