8.х Документ.доступ для редактирования

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем zayaroslava, 13 мар 2010.

  1. TopicStarter Overlay
    zayaroslava
    Offline

    zayaroslava Опытный в 1С

    Регистрация:
    27 янв 2010
    Сообщения:
    329
    Симпатии:
    1
    Баллы:
    26
    всем привет ! =)
    Есть документ,в нем табличное поле с колонками.Как сделать так чтобы этот документ могли редактировать сразу несколько пользователей?Документ редактируется только под одним пользователем =( у другого появляется сообщение об ошибки.Подскажите как это можно решить??
    УПП.
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Одновременно никак. Система выдаст что версии документов не совпадают. или документ открыт другим пользователем.
  3. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    Дело в том что любой документ и табличные части являются таблицами базы данных. Когда пользователь открывает документ система управления базами данных блокирует данные таблицы этого документа для записи, для всех пользователей пока первый пользователь не отпустит данные. В противном случае получится что один пользователь изменил контрагента например на "Вася", а второй в этот момент внес изменения в документ записав в реквизит контрагента "Маша". Тяжело будет понять Вася или Маша в итоге окажется там. Это критичное правило работы с базой данных и обойти этого возможности нету ни какой, да и насчет целесообразности не уверен...
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Ну, обойти-то можно :))))

    Только вот mialord точно описал одну из возникающих проблем.
    Могу сказать так: что подобное можно эмулировать, но только в частных случаях и только по жестким, подробно описанным алгоритмам.
    Делал подобные задачи - очень внимательно надо относиться к коллизиям и нормально работать будет только в клиент-серверной версии, иначе будут тормоза.

    Общая идея: работаем не с самим документом, а его представлением. Примерно так, как 8.2 есть понятие объект (запись и т.п), а есть ЭтотОбъект. Кто в теме - тот поймет :)
  5. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    А можно немного теории в виде ссылочки, а то сейчас не совсем понятно что при записи мы пишем объект или его некоторое представление, и как провести разбор полёта при попытки записи одного и того же поля базы данных, скажем так, а у кого приоритет. Человек зашел, данные ввёл, записал закрыл, распечатал документ, приносит, а там крупными буквами написано "Клиент - лох" кто-то уже переписал :unsure: Как понять кого куда мы должны записать?
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Одно из решений - контролировать захват реквизита на редактирование.
    Второе решение - показывать, что было в поле на момент записи.

    Я, обычно, использую первый вариант. Но он более трудоемок с точки зрения разработки.
    Пример можно увидеть в Документообороте - там используются такая же идея для редактирования документов.

Поделиться этой страницей