Digital-агентство Программист 1С
Портфолио
О нас
  • О компании
  • Партнеры
  • Реквизиты
  • Вопрос ответ
Услуги
  • Продвижение сайтов
    • SEO-продвижение
    • Seo-оптимизация сайта
    • Продвижение сайта статьями
    • SMM-продвижение в социальных сетях
    • Продвижение бренда в Инстаграм
    • Продвижение товаров интернет-магазина
  • Настройка и ведение контекстной рекламы
    • Настройка и ведение контекстной рекламы Яндекс.Директ
    • Google Adwords
    • Комплексная контекстная реклама
    • Аудит контекстной рекламы
  • Создание сайтов
    • Создание Интернет-магазина
    • Создание Корпоративного сайта
    • Наполнение интернет-магазина и сайтов
    • Дизайн и редизайн сайта
    • Интеграция сайта с Яндекс Маркетом
    • Коллтрекинг Mango
    • Web-аналитика и настройка счетчиков
  • Услуги 1С для бизнеса
    • Внедрение 1С
    • Hастройка 1С
    • Обслуживание 1С
    • Услуги программиста 1С
    • Сопровождение 1С
    • Автоматизация 1С
    • Доработка 1С
    • Интеграция 1С:Предприятие с Яндекс Маркетом
    • Маркировка импорта обуви
    • Интеграция OZON и 1C Предприятие
  • Автоматизация салона красоты
    • 1С:Предприятие для Салона красоты
    • CRM-система для Салона красоты
    • Создание сайта салона красоты
    • Продвижение сайта салона красоты
    • Реклама для Салона красоты
Блог
Контакты
Ещё
    Задать вопрос
    info@programmist1c.ru
    Люберцы, ул. Октябрьский проспект, 241Б,этаж 3 ,офис 301.
    Digital-агентство Программист 1С
    Портфолио
    О нас
    • О компании
    • Партнеры
    • Реквизиты
    • Вопрос ответ
    Услуги
    • Продвижение сайтов
      Продвижение сайтов
      • SEO-продвижение —
      • Seo-оптимизация сайта —
      • Продвижение сайта статьями —
      • SMM-продвижение в социальных сетях —
      • Продвижение бренда в Инстаграм —
      • Продвижение товаров интернет-магазина
    • Настройка и ведение контекстной рекламы
      Настройка и ведение контекстной рекламы
      • Настройка и ведение контекстной рекламы Яндекс.Директ —
      • Google Adwords —
      • Комплексная контекстная реклама —
      • Аудит контекстной рекламы
    • Создание сайтов
      Создание сайтов
      • Создание Интернет-магазина —
      • Создание Корпоративного сайта —
      • Наполнение интернет-магазина и сайтов —
      • Дизайн и редизайн сайта —
      • Интеграция сайта с Яндекс Маркетом —
      • Коллтрекинг Mango —
      • Web-аналитика и настройка счетчиков
    • Услуги 1С для бизнеса
      Услуги 1С для бизнеса
      • Внедрение 1С —
      • Hастройка 1С —
      • Обслуживание 1С —
      • Услуги программиста 1С —
      • Сопровождение 1С —
      • Автоматизация 1С —
      • Доработка 1С —
      • Интеграция 1С:Предприятие с Яндекс Маркетом —
      • Маркировка импорта обуви —
      • Интеграция OZON и 1C Предприятие
    • Автоматизация салона красоты
      Автоматизация салона красоты
      • 1С:Предприятие для Салона красоты —
      • CRM-система для Салона красоты —
      • Создание сайта салона красоты —
      • Продвижение сайта салона красоты —
      • Реклама для Салона красоты
    Блог
    Контакты
      Digital-агентство Программист 1С
      Портфолио
      О нас
      • О компании
      • Партнеры
      • Реквизиты
      • Вопрос ответ
      Услуги
      • Продвижение сайтов
        Продвижение сайтов
        • SEO-продвижение —
        • Seo-оптимизация сайта —
        • Продвижение сайта статьями —
        • SMM-продвижение в социальных сетях —
        • Продвижение бренда в Инстаграм —
        • Продвижение товаров интернет-магазина
      • Настройка и ведение контекстной рекламы
        Настройка и ведение контекстной рекламы
        • Настройка и ведение контекстной рекламы Яндекс.Директ —
        • Google Adwords —
        • Комплексная контекстная реклама —
        • Аудит контекстной рекламы
      • Создание сайтов
        Создание сайтов
        • Создание Интернет-магазина —
        • Создание Корпоративного сайта —
        • Наполнение интернет-магазина и сайтов —
        • Дизайн и редизайн сайта —
        • Интеграция сайта с Яндекс Маркетом —
        • Коллтрекинг Mango —
        • Web-аналитика и настройка счетчиков
      • Услуги 1С для бизнеса
        Услуги 1С для бизнеса
        • Внедрение 1С —
        • Hастройка 1С —
        • Обслуживание 1С —
        • Услуги программиста 1С —
        • Сопровождение 1С —
        • Автоматизация 1С —
        • Доработка 1С —
        • Интеграция 1С:Предприятие с Яндекс Маркетом —
        • Маркировка импорта обуви —
        • Интеграция OZON и 1C Предприятие
      • Автоматизация салона красоты
        Автоматизация салона красоты
        • 1С:Предприятие для Салона красоты —
        • CRM-система для Салона красоты —
        • Создание сайта салона красоты —
        • Продвижение сайта салона красоты —
        • Реклама для Салона красоты
      Блог
      Контакты
        Digital-агентство Программист 1С
        Digital-агентство Программист 1С
        • Портфолио
        • О нас
          • Назад
          • О нас
          • О компании
          • Партнеры
          • Реквизиты
          • Вопрос ответ
        • Услуги
          • Назад
          • Услуги
          • Продвижение сайтов
            • Назад
            • Продвижение сайтов
            • SEO-продвижение
            • Seo-оптимизация сайта
            • Продвижение сайта статьями
            • SMM-продвижение в социальных сетях
            • Продвижение бренда в Инстаграм
            • Продвижение товаров интернет-магазина
          • Настройка и ведение контекстной рекламы
            • Назад
            • Настройка и ведение контекстной рекламы
            • Настройка и ведение контекстной рекламы Яндекс.Директ
            • Google Adwords
            • Комплексная контекстная реклама
            • Аудит контекстной рекламы
          • Создание сайтов
            • Назад
            • Создание сайтов
            • Создание Интернет-магазина
            • Создание Корпоративного сайта
            • Наполнение интернет-магазина и сайтов
            • Дизайн и редизайн сайта
            • Интеграция сайта с Яндекс Маркетом
            • Коллтрекинг Mango
            • Web-аналитика и настройка счетчиков
          • Услуги 1С для бизнеса
            • Назад
            • Услуги 1С для бизнеса
            • Внедрение 1С
            • Hастройка 1С
            • Обслуживание 1С
            • Услуги программиста 1С
            • Сопровождение 1С
            • Автоматизация 1С
            • Доработка 1С
            • Интеграция 1С:Предприятие с Яндекс Маркетом
            • Маркировка импорта обуви
            • Интеграция OZON и 1C Предприятие
          • Автоматизация салона красоты
            • Назад
            • Автоматизация салона красоты
            • 1С:Предприятие для Салона красоты
            • CRM-система для Салона красоты
            • Создание сайта салона красоты
            • Продвижение сайта салона красоты
            • Реклама для Салона красоты
        • Блог
        • Контакты
        info@programmist1c.ru
        Люберцы, ул. Октябрьский проспект, 241Б,этаж 3 ,офис 301.
        • Главная
        • Примеры программирования

        v8: Ключевое слово ДЛЯ ИЗМЕНЕНИЯ

        Мы всегда на связи


        Автор статьи: Волшебник | Редакторы: Гений 1С, Tristan
        Последняя редакция №4 от 21.08.06 |


        Блокировка записей от считывания (от чтения!).

        Она нужна, если в модуле проведения документа, например, сначала рассчитываются (получаются) остатки, на основе которых делаются расчеты и движения, влияющие на те же регистры (остатки).

        Рассмотрим многопользовательский режим работы:

        Процесс А: Начинает транзакцию. Считывает остатки (допустим получилось 10)
        Процесс Б: Начинает транзакцию. Считывает остатки (получилось 10)
        Процесс А: Контролирует остатки, выполняет расчеты (допустим, нужно списать 8),
        Процесс А: Выполняет запись новых данных (10-8 = 2). Завершает транзакцию.
        Процесс Б: Контролирует остатки (10 > 7), думает, что все ок. Выполняет расчеты (допустим, нужно списать 7)
        Процесс Б: ОШИБКА: Он не может списать 7, поскольку в регистре уже не хватает остатка (там уже 2) после записи движений процессом А или после записи движений на складе образуется минус.

        Чтобы процесс Б не ошибался в САМОМ КОНЦЕ своей работы, он должен подождать завершения работы процесса А и даже не считывать эти данные. Поэтому добавляем туда ДЛЯ ИЗМЕНЕНИЯ. Теперь картина выглядит так:

        Процесс А: Начинает транзакцию. Считывает остатки (допустим получилось 10) с ключевым словом ДЛЯ ИЗМЕНЕНИЯ
        Процесс Б: Начинает транзакцию. Пытается считать те же данные (получилось 10) ДЛЯ ИЗМЕНЕНИЯ, но вынужден подождать.
        Процесс А: Контролирует остатки, выполняет расчеты (допустим, нужно списать 8)
        Процесс А: Выполняет запись новых данных (10-8 = 2). Завершает транзакцию.
        Процесс Б: Получает свежие данные из регистра (2)
        Процесс Б: Контролирует остатки и сразу определяет нехватку (расчеты не выполняются). Отменяет транзакцию.

        В предложении ДЛЯ ИЗМЕНЕНИЯ можно указать конкретные таблицы для блокировки (иначе будут заблокированы все, участвующие в запросе): таблицы верхнего уровня (не табличные части), виртуальные таблицы без параметров.

        ВАЖНО:
          Если активна транзакция, то таблицы блокируются не только на время выполнения запроса, а полностью до конца транзакции. Заметьте, что запись объекта - тоже транзакция, поэтому если в ПередЗаписью или в ПриЗаписи вызвать такой запрос, то до конца записи таблица будет заблокирована!
          Так написано в ЖКК и проверено на практике.
          В транзакции таблица, заблокированная через "ДЛЯ ИЗМЕНЕНИЯ" блокируется на запись другими транзакциями и на чтение запросами, содержащими "ДЛЯ ИЗМЕНЕНИЯ". Простые запросы, не содержащие "ДЛЯ ИЗМЕНЕНИЯ", могут читать данные из заблокированным таким образом таблиц.

          На практике проверено, что "ДЛЯ ИЗМЕНЕНИЯ" работает не только с регистрами, но и со справочниками, скорее всего работает и с другими таблицами (документы, возможно даже константы)
          "ДЛЯ ИЗМЕНЕНИЯ" - гибкий способ блокировки объектов, срок жизни которой совпадает со сроком жизни транзакции, более мягкий, чем Заблокировать()

          В файловой версии блокируется вся таблица целиком, в SQL-версии - только записи, участвующие в запросе.Если используется запрос максимального или среднего значения по таблице, блокируется вся таблица (удобно для получения уникального кода при альтернативной сквозной нумерации).



        Tristan: Все становится понятно из предложения "В предложении ДЛЯ ИЗМЕНЕНИЯ можно указать конкретные таблицы для блокировки (иначе будут заблокированы все, участвующие таблицыв запросе).
        Т.е. при выполнении запроса:

        "ВЫБРАТЬ
        |    *,
        |ИЗ
        |    Справочник.Номенклатура
        |ДЛЯ ИЗМЕНЕНИЯ";

        При попытке считать данные элемента или интерактивно открыть форму элемента справочника будет вызвано исключение.
        Услуги
        Продвижение сайтов
        Настройка и ведение контекстной рекламы
        Создание сайтов
        Услуги 1С для бизнеса
        Автоматизация салона красоты
        Компания
        О компании
        Партнеры
        Реквизиты
        Вопрос ответ
        Проекты
        Пресс-центр
        Контакты
        Подписка на рассылку
        info@programmist1c.ru
        Люберцы, ул. Октябрьский проспект, 241Б,этаж 3 ,офис 301.
        Политика конфиденциальности
        © 2026 Все права защищены.
        ООО «УСПЕХ» ОРГН:1105027007843