Не блокируется окно владельца 1с
Пользователь ругается, что не всегда отрабатывает блокировка,бывает что могут два пользователя редактировать.
Собственно вопрос, почему в коде написано в одном месте Заблокировать и Разблокировать ?
Кто то же сделал это не с проста, думаю как раз дело в Разблокировать.
Плюс как можно проверить в одном конфигураторе вход двух разных пользователей?
(11)А вы и так его не блокируете, так как у вас все происходит в попытке, не смогли заблокировать, вышли в исключение, смогли..то и разблокировали сразу,
Тут вопрос в другом , нужно при открытии формы документа тогда дописывать что то типа
Поправка, в УФ надо в процедуре при ПриСозданииНаСервереэто делать
И при закрытии документа, его разблокировать. тогда этот метод прокатит у вас , а иначе ничего не отработает.
он блокируется и разблокируется в одной "попытке"? " ТЧ есть процедура Выбора" - т.е. выбрали и блокировка снялась.
1.1. Прежде чем изменять существующий объект информационной базы из кода на встроенном языке, следует предварительно его заблокировать (установить «блокировку данных для редактирования» или «объектную блокировку»), тем самым, во-первых, убедиться, не заблокирован ли он другими объектами, во-вторых, попытаться предотвратить его изменение другими пользовательскими сеансами (или другими экземплярами объекта в этом же сеансе).
В противном случае, если при изменении и записи из встроенного языка не устанавливать блокировку объекта на время редактирования, то может возникнуть, например, ситуация, когда пользователь не сможет сохранить свои изменения, если эти же самые данные были конкурентно изменены в другом сеансе.
При этом блокировка данных для редактирования не запрещает запись заблокированных данных в других пользовательских сеансах (или в других экземплярах объекта в этом же сеансе), а лишь не позволяет нескольким объектам одновременно установить блокировку одних и тех же данных.
Сервис - Параметры - Запуск 1с
Можно выбрать пользователя под которым запускать 1с для отладки
При этом блокировка данных для редактирования не запрещает запись заблокированных данных в других пользовательских сеансах (или в других экземплярах объекта в этом же сеансе), а лишь не позволяет нескольким объектам одновременно установить блокировку одних и тех же данных.
По поводу этого, по сути устанавливается же блокировка объекта, как тогда пользователь ещё может зайти ? Выходит дело всё-таки в блокировка и разблокировке в одном месте и достаточно убрать разблокировать?
(0) а режим управления блокировкой в свойствах конфы какой ?
ЗЫ: если явно указать в НачатьТранзакцию и там и там, что управляемый
(12) они по разным измерениям - это раз. по разным занчениям - это 2.
кмк блокировка по ячейке блокирует всю таблицу. но по тж я не проверял
(14) Зачем? Это БСПшная процедура. Мне как бы не жалко, вот:
(15) в доке пишут:
Разделяемая блокировка позволит конкурирующему процессу установить разделяемую блокировку по этому же условию, но не позволит установить исключительную блокировку.
(15) Ты накладывашь две блокировки по двум пространствам, которые пересекаются на каком-то значении:
Номер строки - Контейнер - Ячейка
Конфликт на строке 2, так как вторая блокировка исключительная.
(0) Блокировка по значению одного измерения значит, что что по второму измерению блокируются все значения. Поэтому такая блокировка конфликтует с блокировкой по конкретным значениям второго измерения.
(0) Просто сделай запросом выборку по первому отбору и по второму, потом внутреннее соединение. И найдешь пересечение.
(35) На файловой базе блокировка на уровне СУБД по уровню перебивает все твои управляемые выкрутасы. Поэтому даже если управляемая блокировка пропустит тебя, ты гарантировано упрешся в блокировку СУБД. Потому как serializable.
(40) Да. Но для файловой решили не заморачиваться. Ими же должен кто-то управлять. Поэтому на файловой блокировки всегда табличные.
(0) Какую ошибку получаешь?
(49) + Скорее даже не из-за необходимости реализации менеджера блокировок на файловой, а из-за особенностей работы файлового движка, наверное. А может и то другое.
(57) Но не для упр. блокировок.
(56) Эта табличечка про блокировочки СУБД.
(58) Нельзя сказать, что неактуальная. Потому что read committed snapshot - это в терминологии mssql которым пришлось придумать новое название чтобы отличалось от старого блокировочного read committed. В общей литературе при упоминании режимов изоляции до таких ньюансов обычно не опускаются.
(59) Ок. И какой смысл тогда блокировать по измерениям регистра, если блокироваться будет вся таблица регистра хоть в лоб, хоть по лбу?
(62) При блокировке по измерениям регистра таблица не блокируется. Таблица блокируется при записи набора.
А смысл — упр. блокировки позволяют реализовать логику, которую не позволяют реализовать блокировки СУБД.
это можно легко увидеть, ибо при исключительной блокировке вполне можно запрос читать данные в другом сеансе.
(64) С одной стороны ты вроде прав. Но с другой - serializable обязывает к тому, чтобы прочитанные в одной транзакции данные нельзя было поменять в другой. И в файловой по-моему тупо реализовали так, что хрена ты проведешь параллельно два дока, пишущих в один регистр. Но я по файловой не спец, могу и ошибаться.
(67) serializable обязывает немного к этому. :) Остальное верно, и даже без упр. блокировок. Но это не мешает использовать еще и их, когда нужно. :)
(68) В сабже нет записи в регистр. Но есть транзакция. И объявлена исключительная управляемая блокировка. Допускаю, что ее могут тупо транслировать в блокировку всей таблицы. Ибо нефиг. Или практика говорит об обратном?
Из этой формы можно создать новый документ.
Как из формы оповещения открыть форму документа, чтобы она цеплялась к списку открытых документов?
(1)Не совсем понятно, что такое форма оповещения. Может быть из обработки этого оповещения открывается форма? Может следует использовать БлокироватОкноВладельца?
Не совсем понятно, что такое форма оповещения. Может быть из обработки этого оповещения открывается форма? Может следует использовать БлокироватОкноВладельца?
Раз в пол часа, если это требуется, открывается общая форма, которая блокирует весь интерфейс пользователя. Если оповещение появилось, его обязательно нужно отработать.
И этой общей формы может формироваться новый документ.
Как из формы оповещения открыть форму документа, чтобы она цеплялась к списку открытых документов?
(3)Оповещение появляется внизу экрана справа, я так понимаю. Вот по клику на это всплывающее оповещение и надо открывать форму, правильно?
(4) Нет. Типовое оповещение не особо информативно, поэтому есть обработчик ожидания, который запускается ПередНачаломРаботыСистемы.
Этот обработчик проверяет необходимость показа оповещения, собирает необходимую информацию и открывает общую форму, которая блокирует весь интерфейс пользователя, чтобы тот не мог как-то пропустить данное оповещение.
(1) Попробуй передавать в форму нового документа владельцем форму клиентского приложения. По умолчанию предполагаю, владельцем является твоя форма, которая блокирует весь интерфейс.
Не совсем понятна фраза "цеплялась к списку открытых документов". Я правильно понял - у вас общая форма, которая ждёт от пользователя действие после выполнения которого должна открыться форма списка документов с определенным отбором?
(7) У меня общая форма, которая открывается в режиме блокировки всего интерфейса.
Далее из этой общей формы по кнопке открывается новый документ, которого в 1С еще нет. По умолчанию он открывается не в окне клиентского приложения, а отдельно и в панель открытых не попадает. Мне же нужно, чтобы форма нового документа открывалась в том же окне (основном) и отображалась в панели открытых.
(8) Сначала подумал, раз у меня открывается форма в отдельном окне, то вернуться в основное окно возможности уже нет, но стандартными средствами (Ctrl+Shift+F4) документ из отдельного окна открывается в основном. Значит, все таки, возможность есть. Смотрю на владельца уже открытых форм - везде Неопределено. CrazyFace
Если в качестве владельца передать основное окно, то форма нового документа открывается в отдельном окне.
Если в качестве владельца передать элемент формы, которая открыта в основном окне результат тот же.
(10) Перепробовал четыре варианта, но нужного результата не добился.
(11) Сначала пользователю необходимо ввести число - номер заявки. Это реализовано так:
Далее появляется стандартное окно для ввода числа. Пользователь его вводит, нажимает "Ок" и мы переходим к процедуре "СозданиеЗаявки_ПослеВводаЧисла".
Результат одинаковый, за исключением того, что форма нового документа либо блокирует интерфейс, либо нет. Но открывается в отдельном окне.
ОО = Новый ОписаниеОповещения("СозданиеЗаявки_ПослеСозданияЗаявки",ЭтаФорма);
ОткрытьФорму("Документ.Заявки.Форма.ФормаДокумента", СтруктураЗаявки. ОО);
Судя по тому, что передается оповещение ПослеСозданияЗаявки, после документа что то происходит?
А если не происходит то можно так попробовать
У меня общая форма, которая открывается в режиме блокировки всего интерфейса.
Далее из этой общей формы по кнопке открывается новый документ, которого в 1С еще нет. По умолчанию он открывается не в окне клиентского приложения, а отдельно и в панель открытых не попадает. Мне же нужно, чтобы форма нового документа открывалась в том же окне (основном) и отображалась в панели открытых.
А сам код открытия/Создания документа какой? может есть смысл перед созданием документа закрыть текущую форму, что то типа
открывай свою форму также, как вводишь число (с описанием оповещения при закрытии)
и при необходимости создания новой заявки возвращай нужные данные для её создания
а далее просто создаешь и открываешь, должно работать
Вместо ПоказатьВводЧисла() нарисовал свою форму, которая служит для ввода числа.
Если эту форму открыть в режиме РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс, тогда следующее окно открывается отдельно.
Если эту форму открыть в режиме РежимОткрытияОкнаФормы.БлокироватьОкноВладельца, тогда следующее окно открывается в основном.
Не исключаю, что это проблема платформы 8.3.15.1534, а может так и задумано.
Написал внешнюю обработку (типа интерфейс, там ссылки на документы и справочники). Сделал что он открывается при загрузке 1с. И хочу что бы рядовой сотрудник не мог ее закрыть (буду делать проверку на роль).
Вопрос - как запретить закрытие обработки, только при закрытии 1с. Учту и другие варианты))
П.С. Зациклить вопрос "Уверены ли вы?" походу не даст закрыть 1с). а было б весело
Развернуть браузер на весь экран без возможности свернуть, закрыть открыть другую программу и тд
Здравствуйте, возможно пишу не в том разделе, если ошибся прошу прощения. Вообщем стоит следующая.
Открыть обработку или форму, заполнив весь экран (8.3)
Здравствуйте, возникла необходимость открыть форму и сделать ее побольше, убрав панель разделов и.
Как при закрытии формы сохранить весь текст который был написан в richTextBox1 без файла?
Как при закрытии формы сохранить весь текст который был написан в richTextBox1 сделать это без.
Как при клике на Submit открыть новое окно не на весь экран, и передать туда все методом POST?
Добрый день, я только начинаю позновать азы языка так что есть маленькая задачка, смотрите есть.
Я в эту процедуру написал
и в итоге 1с не закрывается. Вот у меня вопрос что написать в эту процедуру или как убрать команды "свернуть", и "закрыть" с формы
кнопку на форму "закрыть 1с"
СанкционированноеЗакрытие = Истина;
ЗавершитьРаботуСистемы(Ложь);
тем, кому положено по ролям - при открытии выставить:
СанкционированноеЗакрытие = Истина;
в ПередЗакрытием() засунуть
Если НЕ СанкционированноеЗакрытие Тогда
Отказ = Истина
КонецЕсли;
Добавлено через 9 минут
ну и до кучи: свойство формы "РежимОткрытияОкна" сделать "Блокировать окно владельца"
При закрытии окна закрывается весь проект
Собственно есть Две формы MainForm вызывается из основного потока. И есть SubForm она вызывается.
Избежать закрытия Application при закрытии последней книги через ActiveWorkbook.Close
Добрый день. Есть проблема следующего плана. Мне нужно, чтобы xlsm файл, открываемый не в режиме.
Открыть форму в без возможности редактирования полей, но с разрешением на удаление записи
Добрый вечер. Подскажите каким макаром можно открыть форму без возможности редактирования полей, но.
Открыть картинку на весь экран из Галереи
Всем добрый вечер! Разрабатываю приложение для Android. В приложении галерея, подкачиваю картинки.
Открыть документ PDF на весь экран
Здравствуйте Я открываю имеющийся файл следующим образом .
Любой начинающий разработчик управляемого приложения 1С, который дошел до открытия управляемых форм заметил, что новая форма открывается всегда не поверх текущего окна, а в соседнем окне. Этот режим открытия называют Независимым. Но очень часто для удобства работы пользователей форму нужно открыть именно поверх всех имеющихся окон. Разберемся, как это работает.
Прежде чем изучать открытие формы программно, познакомимся с очень интересным свойством управляемой формы 1С, которое называется РежимОткрытияОкна. Именно это свойство отвечает, каким образом откроется новое окно. Это свойство принимает три значения: Независимый, Блокировать окно владельца и Блокировать весь интерфейс.
Если у формы 1С установлен Независимый режим открытия окна, то форма откроется в отдельном окне, как на рисунке ниже.
Здесь и далее приведена конфигурация из книги «Основы разработки в 1С: Такси».
В том случае если установлен режим Блокировать окно владельца или Блокировать весь интерфейс, то форма откроется по верх всех окон.
Только в случае режима Блокировать окно владельца, будет заблокирована форма, в которой было инициализировано открытие новой формы. А в случае режима Блокировать весь интерфейс заблокируется весь интерфейс программы 1С. По сути, форма откроется в модальном режиме.
Со свойством формы разобрались, перейдем к открытию формы при помощи программного кода. Делать мы это будем при помощи уже знакомого нам метода ОткрытьФорму. Как работает этот метод, читайте в моей статье:
У этого метода есть последний седьмой параметр, который называется РежимОткрытияОкна, этот параметр имеет тип системное перечисление РежимОткрытияОкнаФормы, которое содержит в себе уже знакомые нам режимы: Независимый, Блокировать окно владельца и Блокировать весь интерфейс.
Если мы в методе ОткрытьФорму установим в седьмой параметр какое-либо значение, то форма откроется согласно этому значению.
Ниже приведены все три варианта открытия окна формы с использованием параметра РежимОткрытияОкна:
ОткрытьФорму ( «Документ.УстановкаЦен.Форма.ФормаДокумента» .
РежимОткрытияОкнаФормы . Независимый );
ОткрытьФорму ( «Документ.УстановкаЦен.Форма.ФормаДокумента» .
РежимОткрытияОкнаФормы . БлокироватьОкноВладельца );
ОткрытьФорму ( «Документ.УстановкаЦен.Форма.ФормаДокумента» .
РежимОткрытияОкнаФормы . БлокироватьВесьИнтерфейс );
Изучайте управляемые формы 1С с моими статьями:
Открытие управляемой формы существующего объекта
Открытие управляемой формы 1С на основании другого объекта
Открытие обычной формы в управляемом приложении 1С
Очень подробно вопросы по работе с управляемыми формами в частности и с управляемым приложением в целом рассмотрены в книге «Основы разработки в 1С: Такси. Разработка управляемого приложения за 12 шагов». Эта книга станет настоящим подспорьем для тех, кто только начал знакомится с разработкой управляемого приложения.
Книга «Основы разработки в 1С: Такси» отлично подойдёт тем, кто уже начал программировать и испытывает определенные сложности с этой темой и тем, кто уже давно программирует, но ни разу еще не работал с управляемыми формами 1С
- Без сложных технических терминов;
- Более 600 страниц практического материала;
- Каждый пример сопровождается рисунком (скриншот);
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Промо-код на скидку в 15% — 48PVXHeYu
Многие начинающие думают, что изучить язык программирование в 1С сложно и трудно. В действительности программировать в 1С — легко. Помогут Вам легко и быстро освоить программирование в 1С мои книги: «Программировать в 1С за 9 шагов» и «Основы разработки в 1С: Такси»
Изучите программирование в 1С с помощью моей книги «Программировать в 1С за 9 шагов»
- Без сложных технических терминов.
- Более 500 страниц практического материала.
- Каждое задание сопровождается рисунком (скриншот).
- Сборник задач для домашней проработки.
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Промо-код на скидку в 16%: vCph8bW3rE
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
Читайте также: