|
Расширение для ЗГУ 3.1. Не даёт редактировать документ при открытии формы расширения | ☑ | ||
---|---|---|---|---|
0
РыбаАист
07.02.22
✎
09:43
|
ЗГУ 3.1. Платформа 8.3. Управляемые формы.
Делаю расширение для расчета премии. В документе Премия, на основной форме по кнопке открываю свою форму из расширения, делаю там свои расчеты, при закрытии формы, данные переносятся в ТЧ с результатами вычислений. Так вот, если в форме документа тыкнуть хотя бы на одно поле, то при открытии моей формы из расширения, выдаёт ошибку, мол "не удалось начать редактирование документа. Пользователь (имя моего пользователя) уже начал редактировать эти данные." Ровно через минуту это сообщение пропадает и редактировать всё можно. Если ничего не тыкать перед открытием моей формы, то всё нормально. Перед открытием формы я записываю документ. И перечитываю данные при открытии моей формы. Но даже ручное Перечитывание в форме не помогает (когда руками тыкаешь "ещё - перечитать"). Форму открываю так: параметрыФормы.Вставить("Ключ", Объект.Ссылка); ОткрытьФорму("Документ.Премия.Форма.А_ФормаПремирования", параметрыФормы, ЭтаФорма,,,,ОписаниеОповещенияОЗакрытии); Последнее на что мне остаётся грешить на вид формы. Мол надо было делать её произвольной, а не формой документа. Но не знаю, стоит ли переделывать или я уткнусь в то же самое. |
|||
1
SleepyHead
гуру
07.02.22
✎
10:29
|
(0) Возможностей расчета по формулам не хватает?
|
|||
2
РыбаАист
07.02.22
✎
10:37
|
(1) не хватает :)
|
|||
3
SleepyHead
гуру
07.02.22
✎
11:03
|
(2) А принципиально именно в документе "Премии" считать?
Сделай показатель, считай сумму премии по своему алгоритму, пиши рассчитанное значение в документ "Данные для расчета зарплаты". А в премии исопльзуй вид начисления, резулдьтат по которому = значению этого показателя. |
|||
4
РыбаАист
07.02.22
✎
11:10
|
(3) Расчет там сложный, почти целый калькулятор получился, где по каждому человеку может собираться база по разным начислениям за разные периоды, который до этого люди в ексельке составляли.
Не вижу смысла обсуждать это, когда моя проблема совершенно в другом. И всё уже написано, осталось только эту несчастную форму открывать как-то правильно, чтобы не натыкаться на эту блокировку. |
|||
5
РыбаАист
09.02.22
✎
11:27
|
В общем решение не такое уж и сложное, но думать пришлось долго:
&НаКлиенте Процедура ПриОткрытии(Отказ) ПриОткрытииНаСервере(ЭтаФорма.ВладелецФормы.УникальныйИдентификатор); КонецПроцедуры &НаСервере Процедура ПриОткрытииНаСервере(ИдентификаторВладельца) РазблокироватьДанныеДляРедактирования(Объект.Ссылка, ИдентификаторВладельца); //Разблокирую данные, заблокированные основной формой ЗаблокироватьДанныеДляРедактирования(Объект.Ссылка); //Блокирую данные текущей формой КонецПроцедуры |
|||
6
SleepyHead
гуру
09.02.22
✎
13:52
|
(4) "И всё уже написано"
Всегда по-хорошему завидовал оптимистам )) Ты же обречен править свой цирк если не с каждым релизом, то (возможно) с каждой редакцией. Хуже всего, когда несколько редакций меняется, ты уже все забыл, и вдруг то, что давно работало, уже перестает работать. Или ты там уже не работаешь. |
|||
7
РыбаАист
09.02.22
✎
14:09
|
(6) Править что-то придётся, если великие умы 1с решат, например, ТЧ документа переименовать, как однажды всё-таки случалось.
Твой совет не небесполезен, просто есть постановка задачи, есть её уже практическое решение, этап "а что если мы не будем делать вот это вот всё и воспользуемся типовыми средствами" уже прошёл и давно. И как уже говорилось, тема создана не с вопросом "а как лучше реализовать хотелку клиента", а с конкретным вопросом про блокировку. И эта тема закрыта, спасибо за участие. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |