"Внутренние" блокировки в 1С

В предыдущей статье по "гибким" блокировкам, я пожалуй, не сделал акцент на то ,что блокировки в контексте 1С бываю двух видов. Первый вид - это блокировки данных на уровне SQL Servera. Второй вид - это блокировки объектов 1С (клиентских форм). Хочу исправить свою ошибку и остановиться на описании второго вида блокировок подробнее.
6,5 тыс. 2,3 тыс.

Материал сайта www.softpoint.ru/

В предыдущей статье по "гибким" блокировкам, я пожалуй, не сделал акцент на то ,что блокировки в контексте 1С бываю двух видов. Первый вид - это блокировки данных на уровне SQL Servera. Второй вид - это блокировки объектов 1С (клиентских форм). Хочу исправить свою ошибку и остановиться на описании второго вида блокировок подробнее.

Владимир Сердюк

Для чего вообще 1С реализовала внутренний механизм блокировок ? Ну во-первых для того, чтобы не решать вопрос разрешения конфликтов отображения и записи данных из разных экранных форм одного и того же объекта. То есть предполагается, что если пользователь открыл расходную накладную №5, то никто другой не сможет открыть экранную форму этой накладной, пока он ее не закроет. На попытку открыть документ выведется на экран сообщение «Запись заблокирована». Аналогичные по смыслу сообщения будут выводиться в обработках при попытках изменить объект данных, который заблокирован.Это кстати многие не учитывают в своих обработках.

Давайте теперь попытаемся понять, как устроен механизм «внутренней» блокировки 1С. Ну во-первых, при каждом открытии формы документа создается, если он еще не существует, временный файл 1sjourn.$lk. Размер этого файла всегда 0 и казалось бы в нем вряд ли может быть заложена информация по блокировкам. На самом деле это заблуждение. 1С используя функцию LockFile блокирует конкретный байт в фале указывая тем самым, что тот или иной документ заблокирован. Номер байта соответствует Row-Id(первичный ключ) данного документа. Перед открытием формы или исполнением метода объекта 1С пытается заблокировать байт. Если попытка проходит, то он остается заблокированным до завершения операции, если же нет - то выдается соответствующее сообщение.

Вот простейший пример на Delphi отображения заблокированных объектов в 1С.

procedure TForm1.Button1Click(Sender: TObject);
var

i : integer;
begin
h:=FileOpen('d:ПроверкаКонфликтов1sjourn.$lk',fmOpenRead+fmShareDenyNone);
showmessage(inttostr(h));
for i:=0 to 10000 do
if LockFile(h,i,0,1,0) then
begin
UnlockFile(h,i,0,1,0);
end
else
begin
Memo1.Lines.Add(IntToStr(i)+' - Locked');
end;
FileClose(h);
end;
Для того чтобы понять, какой у документа номер и вид для этого достаточно выполнить простейший select. SELECT IDDOCDEF AS ТипДокумента, IDDOC AS ВнутреннийИдентификатор, DOCNO AS НомерДокумента
FROM _1SJOURN
WHERE (ROW_ID = @i)

Где @i это номер байта полученный вышеописанной процедурой.

Для справочников это будет файл не 1sjourn.$lk а scXXX.$lk где ХХХ – внутренний идентификатор объекта метаданных.

Также нужно отметить, что блокировку установить или снять в пределах своей сессии можно с помощью метода Блокировать(). Значение, которое возвращает этот метод собственно и указывает на то, заблокирован он или нет. Нужно отметить, что пример приведенный на Delphi, гораздо производительней, т.к. в этом случае не нужно открывать выборку данных и проверять каждый элемент на блокировку, а достаточно лишь взять заведомо заблокированные байты и сопоставить их объектам данных в 1С.

Возникает вопрос: а можно ли снимать блокировки не из своей сессии, и что произойдет, например, если мы попытаемся удалить файл 1sjourn? Сразу нужно отметить, что просто так удалить нам его не удастся, если он задействован хотя бы в одном сеансе 1С. Даже если мы возьмем и удалим все хэндлы на него и затем удалим его, то и в этом случае нас постигнет неудача т.к. в этом случае при обращении ко всем документа будет появляться надпись «запись заблокирована». Косвенные причины этого понятны, неудача в LockFile(h,i,0,1,0) ,а в данном случае хэндл теряется, 1С интерпретируется как блокировка объекта. И даже если мы создадим заново этот файл, то блокировок не будет только у тех клиентов, которые загрузили 1С после создания файла. Скорее всего, это происходит потому, что 1С хранит в локальной переменной информацию об открытии файла. Если он уже открывался, то 1С не пытается за нового его открыть и получить новый хендл. Однако принципиальная возможность создания такого менеджера управления блокировками существует(возможно, он уже и написан).

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

Начать дискуссию

У Wildberries появились брендированные грузовики

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

Курсы повышения
квалификации

20
Официальное удостоверение с занесением в госреестр Рособрнадзора

Новые штрафы для бизнеса, банки против маркетплейсов и директор с лапками. Что обсуждали сегодня бухгалтеры. 😺«Ночной бухгалтер» № 1667

Бизнес больше не может звонить и отправлять рассылки по смс и e-mail без предварительного согласия абонента. Банкам не нравится, что маркетплейсы проводят платежи через собственную структуру. Компания ищет сотрудника с лапками, который будет создавать уют, контролировать запасы вкусняшек и обниматься. А также другие новости дня для бухгалтера.

Иллюстрация: создана при помощи ИИ playground.com / Елена Балаклицкая
Банки

Данные об иностранных поставщиках платежных услуг станут закрытыми

Центробанк закроет доступ к перечню иностранных поставщиков платежных услуг до конца 2024 года.

Лучшие спикеры, новый каждый день
Бесплатно с Социальные пособия

Новый порядок назначения пособия по уходу за ребенком в 2024 году. Мини-курс

Как назначается пособие по уходу за ребенком по новым правилам в 2024 году, какие документы нужно предоставить, рассказываем в мини-курсе и приводим форму уведомления о прекращение права сотрудника на получение ежемесячного пособия.

Новый порядок назначения пособия по уходу за ребенком в 2024 году. Мини-курс
Бесплатно с КоАП РФ

Новые штрафы в КоАП: за «холодные» звонки могут наказать на миллион, как избежать наказания

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

Новые штрафы в КоАП: за «холодные» звонки могут наказать на миллион, как избежать наказания

Новостной дайджест: правила переводов с Сбербанке, новые меры поддержки МСБ, план Минэкономразвития, изменения в налогах, форум «Создай НАШЕ»

Самое интересное и важное за день в новостном дайджесте.

Опытом делятся эксперты-практики, без воды
Банки

RBI: Европейский центральный банк потребует быстрее свернуть бизнес в РФ

Raiffeisen Bank International ждет требования от ЕЦБ ускорить процесс сокращения бизнеса в России.

Импорт

Вводится режим «параллельного импорта» для зарубежных патентов

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

Иллюстрация: Вера Ревина/Клерк.ру

Доверительные отношения между ИП и его бухгалтером обошлись предпринимателю в 20,6 млн рублей ущерба

Бухгалтер из Краснодарского края предстанет перед судом по обвинению в неправомерном обороте средств платежей и мошенничестве.

Что такое системное мышление и как руководителю научиться использовать его на практике

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

Иллюстрация: Вера Ревина/Клерк.ру

⚡️ Итоги дня: «Яндекс» будет продавать товары для взрослых, Китай урезал поставки, а россияне стали чаще пить растворимый кофе и есть лапшу быстрого приготовления

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

1
60

Авито ищет бухгалтеров и специалистов по финансам

Разбирайте горячие вакансии от крупной компании. Авито нужен специалист казначейства, бухгалтер и старший бухгалтер!

Миникурсы, текстовые и видеоинструкции для бухгалтеров
Отпуска

Как уйти в отпуск в 2024 году: как написать и подать заявление и рассчитать отпускные

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

Иллюстрация: Вера Ревина/Клерк.ру

Госдума защитит трудовые права работников маркетплейсов

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

48

🔥 Безлимитных консультаций больше не будет! Успейте купить подписку «Клерк.Премиум» с безлимитными консультациями

Воспользуйтесь шансом купить подписку с безлимитными консультациями экспертов «Клерка» до 22 апреля, чтобы задавать вопросы без ограничений.

В начале 2025 года РЖД запустят новое мобильное суперприложение

Замгендиректора РЖД Евгений Чаркин на конференции Data Fusion заявил, что «Российские железные дороги» (РЖД) планируют запустить новое мобильное суперприложение (SuperApp) в начале 2025 года.

☝️Готовы к сдачи отчетности за I квартал? Напоминаем, как правильно заполнить форму 6-НДФЛ

До 25 апреля нужно сдать 6-НДФЛ за I квартал 2024 года. Бланк расчета и правила его заполнения изменились, рассказываем, как заполнить отчет, чтобы сдать все с первого раза — без проблем и штрафов.

Иллюстрация: Вера Ревина / Клерк.ру

Как организовать работу с локально-нормативными актами

Локально-нормативные акты (ЛНА) — это законодательство на уровне компании. ЛНА устанавливают права и обязанности работодателя и работника по отношению друг к другу и позволяют сторонам защитить свои права в случае трудовых споров. Но сначала всех работников необходимо надлежащим образом с ЛНА ознакомить.

Иллюстрация: Вера Ревина/Клерк.ру

📧 ФНС разослала компаниям сообщения по имущественным налогам за 2023 год. Эксперт: возможна некорректная выгрузка данных из федресурсов

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

Интересные материалы

Кадры

Персона дня. Чилл-директор с лапками

В Калининград требуется умилительный питомец на должность чилл-директора.

Персона дня. Чилл-директор с лапками