#0
by MxDn
Когда кто-то уже создает док, то других надо отфутболить, до того момента, пока этот кто-то не запишет док или отменит создание. Редактировать существующие можно. Интересует решение средствами платформы, без запила своего механизма блокировок. 1С 8.2, база MsSQL.
#4
by Рэйв
сделай константу флаг - булево. Если открыт новый - устанваливай истина и футболь осталтьных желающих проверкой ПередОткрытием на ЭтоНовый и константа= истина Помле записи ставь константу ложь
#7
by Молодой 1Снег
Надо обдумать ситуацию когда при создании нового дока что-нибудь глюкнет или ребутнется комп. Т.е. док уже никто не создает, а константа указывает на обратное.
#10
by MxDn
Чуть подробнее о задаче: Есть скелет документа запись в регистре сведений - это скелет документа и на его основе создается документ. Пользователи видят этот список скелетов и на их основе создают доки. Так вот нужно чтобы на основе одного и того же скелета не создали 2 дока. Я добавил флаг-поле "блок" в регистр при создании нового дока и его проверяю при создании нового и после снимаю. Проблема в том, что босс неодобряэ. Говорит, что в случае зависания клиента кто снимать такие блокировки будет? Ну я вижу вы уже сами знаете чем это грозит :)
#11
by PR
Я бы прикрутил к механизму согласование с ответственными лицами компании, а то так любой удод будет заходить и снимать галочку.
#13
by PR
У тебя толковый босс. Он же не виноват, что ты не понимаешь, что просто тупо перед записью документа нужно смотреть, а нет ли уже такого документа.
#14
by Рэйв
Чего ты мучаешься? При записи проверяй есть ли уже у твоего скелета подчиненные доки.Если есть - шли лесом текущего. Кто успел - тот присел.
#15
by MxDn
существующий объект - таблица доков. Если можно как-то заблочить всю таблицу, то можно и так. Это идея босса и я с ней не согласен. там немного сложнее все, но скажем, что после записи дока, скелет удаляется и такого не случится, но ведь начать создание на основе одного скелета могут несколько пользователей.
#16
by Рэйв
А что вообще за извращение с этими скелетами? Нормальный один цельный док нельзя сделать чтоли?
#17
by PR
Да блин. Перед записью смотришь, есть у тебя что-то на основе такого же скелета или нет. Если невозможно по готовым документам понять, что они как-то связаны, то перестраивайте консерваторию, а не делайте дерьмо. А потом люди плюются, что 1С тупая программа с тупыми ограничениями, ага.
#19
by MxDn
скелеты тоже особым образом создаются, здесь все упрощено, так что просто принимайте это как условие задачи. на его основе еще ничего нет, у всех пользователей начавших создание дока на основе одного скелета открыто окно документ с текстом "Новый*" в заголовке, чего быть не должно. И ,о гуру, не гневайтеся, пожалуйста ;)
#21
by welwel
записывать сразу новый документ и проверять, как в , а потому уже продолжать наполнять данными
#22
by PR
Если честно, непонятно, почему "скелетом" изначально не является новый документ? Или наоборот, почему "скелет" изначально не является новым документом? Нафига эти прелюдии и лишние сущности?
#23
by Serg_1960
Вообще-то такой механизм "контроля" уже создан и используется в типовых. Когда вы заполняете "на основании" документа, то используется, зачастую, не сам документ, а его остатки.
#24
by FoxFox
Ага, и опрашивать у 100500 коллег, никто случайно не создает в данный момент документ?
#25
by AlexITGround
нахуа, сделай зависимыми и проверяй на подчиненность. Флаги какие-то делать начинают, херня какая-то
#27
by MxDn
я в ответил это вариант, спасибо. Правда, есть свои тонкости, но тем не менее. а теперь до дочитайте :)
#31
by PR
Просто постановка "Когда кто-то уже создает док, то других надо отфутболить, до того момента, пока этот кто-то не запишет док или отменит создание" изначально ущербная. Но если так, то делай константой, сказали же в . Какая задача, такое и решение. Но вообще хрень полная. Какое чье дело, что кто-то открыл форму нового документа? Если кто-то переживает, что он не будет первым, то для него давно придумали кнопочку "Записать".
#32
by Serg_1960
(Off) Задача, которую озвучил автор, мне напомнила проблему менеджеров сбыта, которые заполняют в диалоге различные заказы различных покупателей, заказывающие один и тот-же товар с общего склада...
#33
by MxDn
я разделяю ваше мнение, но задачу поставил не я. И я также не согласен с некоторыми существующим механизмами, но я работаю с тем, что есть. Попробую решить задачу через запись дока сразу после открытия.
#40
by программистище
а почему бы не пихать ссылку на записанный пустой документ в скелет (т.е. резервировать документ) а юзеру при создании подсовывать уже записанный вместо нового, его и блокировать для изменения другим пользователям
#41
by kosts
Создай служебный справочник с одним элементом и блокируй этот элемент на нужное время, если клиент вылетет по какой либо ошибке, то блокировка с элемента должна вроде сама сняться через некоторое время.
#42
by Фрэнки
А как происходит заполнение реквизиов нового документа по данным из скелетной записи? Процедуры/события какие? Обычное приложение? Может быть в форме ПередОткрытием считывать значение дополнительного реквизита в скелете? А при закрытии формы, если записи документа не произошло - очищать этот реквизит? Лично мне не нравится вариант записи нового документа раньше, чем юзер примет решение его сохранить сознательно.
#43
by AlexITGround
да вы , батенька, извращенец)) плодить таблицы ради такого дела, юзайте существующий функционал
#44
by kosts
Криво использовать существующий функционал, не по мне. Я лучше создам все что мне нужно для получения нормального решения в т.ч. новые таблицы, если понадобится.
#45
by MxDn
я сейчас иду в этом направлении, спасибо. интересная мысль. запись/очистка реквизита - это примерно тоже, что и с такой же проблемой. Всем скелетам суждено стать документами, за редким исключением, поэтому запись после создания вполне приемлема. Не спрашивайте, почему тогда не создаются сразу документы :)
#46
by Фрэнки
Тогда при попытке создания пользователем нового документа - искать существующую ссылку и открывать. Просто получается, что одной только ссылки будет недостаточно, чтоб сделать вывод открыта форма документа-скелета или нет. Перед открытием формы смотреть кроме поля "ссылка на документ" на поле "форма уже открыта". В противном случае пользователи будут упорно трудиться параллельно на уже открытыми формами у соседей и ПередЗапись вслух комментироовать на устном русском системное сообщение о нарушении синхронизации с объектом
#47
by MxDn
Если документ создан (существует в базе), то открывается для редактирования существующий документ. Скелет после создания документа удаляется.
#50
by Фрэнки
Тогда зачем ждать пока юзеры проснутся? Разве только в целях садо-мазо Если садо-мазо исключить, то в начале какого-либо сеанса сгенерить все доки-скелеты... Впрочем, причин заготовки скелета можно придумать множество, а некрофильство - это только одна из них ;)
#53
by PR
С фига ли? Делаем так, как правильно с учетом всех факторов, а не отдельно выборочно взятых моментов.
#55
by PR
Прогнуться-то можно, только нужно четко понимать и донести пользователю, что получается идиотское решение. Ты открываешь новый документ, а он, раз, и какого-то лешего уже записан.
#56
by Фрэнки
согласен. тем более, что по инфе от ТС, документ записан в состоянии не пригодном для дальнейшей работы с ним, т.е. нужно еще что-то совершать с данными документа и только после этого его проводить... технически можно много извратов прикручивать, только приводит это к автоматизации хаоса
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как запретить одновременное открытие документа двумя пользователями?
- Как запретить выход из режима редактирования ?
- Как можно запретить создание элементов справочника в корне
- v8. Отрицательные остатки разрешить/запретить
- как запретить создание документа без основания?
- Как запретить создание документа копированием?
- Как запретить одновременное редактирование одного док-та двумя пользователями?
- Запретить печать программно ИспользованиеВывода.Запретить
- Как запретить одновременное открытие отдельных внешних обработок?
В этой группе 1С
- БГУ 1.0 - сроки поддержки
- Где и по какому принципу 1с обычно хранит Адреса?
- Документооборот отмена задачи проверки поручения
- Почтовый клиент УТ 10.3
- v7: Узнать размер картинки и файла
- 1с 8.2 Кнопка "Найти" в форме списка
- УПП при вклюечнии RLS - на сколько сильно влияние на производительность
- СКД. Как передать параметры во внешнюю функцию при вычислении ресурса
- Почему Поле не найдено "КорСчет"?
- УстановитьИспользованиеИтогов и ПересчитатьИтоги
- Загрузка ТЧ xml документа в ТЗ
- Очистка набора записей регистра сведений перед загрузкой. Конвертация
- OFF настройки MS Word - курсор в середине страницы по вертикали
- 8.1 Свойство оформления ячейки строки табличного поля - Значение
- Как отчет из консоли отчетов перенести в СКД
- Конвертация данных : передавать данные в параметр
- Можно ли в Табличной части объединять несколько полей под одной шапкой?
- Перехват содержимого окна "служебные сообщения"
- Розница 8.2. Где хранятся драйверы подключаемого оборудования.
- Загадочный файл SprScndInfo в таблице Files который постоянно ищет сервер 1С