Имя: Пароль:
1C
1С v8
При нажатии "Провести и закрыть" просто закрыть, возможно?
0 Sevish
 
16.12.25
07:03
Добрый день.
Возникла необходимость при нажатии на "Провести и закрыть" просто закрыть, чтобы не было проведения документа. Есть пользователи, который открывают документ "посмотреть" и закрывают его всегда именно этой кнопкой, хотя в принципе изменения не вносят.
В обработчике "ПередЗаписью" модифицированность всегда "Истина", что можно сделать?
Вариант "проверить все реквизиты" не очень, много их в "Заказе поставщику".
Может есть какое-то единое событие формы, которое вызывается при изменении любого реквизита? То есть поймать момент, когда  действительно модифицированность случилась?
Пока придумал запустить обработчик, который просто проверяет модифицированность каждую секунду и помещает в программно добавленнный реквизит формы, который и проверяю "ПередЗаписью". Не нравится такое решение :(
1 Гипервизор
 
16.12.25
07:17
Почему пользователю нельзя перепровести документ?
2 p-soft
 
16.12.25
07:18
зачем так сложно? кнопку переопределите. а дальше от ситуации
3 Sevish
 
16.12.25
07:21
(1) потому что новый механизм такой в КА для актуализации взаиморасчетов. Провел заказ от 01.12.2025 и упало в регистр 700+ документов, хотя документ реально не менялся.
(2) в каком смысле переопределить? Это же типовая кнопка.
4 p-soft
 
16.12.25
07:23
(3) сделать свою кнопку, а типовую скрыть.
5 PuhUfa
 
16.12.25
08:34
(0) если модифицированность всегда "Истина", то значит в документе что-то поменялось. Начни с анализа, что именно и почему поменялось.
6 Толич
 
16.12.25
08:35
Привет!
Конечно понятно, что как руководитель скажет, так и должно быть. Скажет кнопку сюда ненужную никому прикрутить... ну со временем - отношусь с пониманием. Отложу чуть попозже и как будет время - прикручу, ну после более нужных вещей.
Но вот в каждой организации, вот прям в каждой, раз в 2-3 года, один из пользователей бездумно что-то проведет и возникает вопрос - "а давайте, чтобы пользователь в будущем не ошибся, сделаем "подтверждалку-всплывалку"". А еще бывает, что и этого недостаточно, нужна еще "нажималка - проверено бухгалтером". И это поверх стандартных статусов.

Это прям эффект Долиной. Пользователь не виноват, что бездумно нажал на ЭТО. Вот привык он на предыдущем месте работы нажимать на "Провести и закрыть" для просто закрытии формы.
Не понимаю я такого рода задач, вот хоть увольте...
7 ZloyBrawler
 
16.12.25
09:15
(0) подписку на событие перед записью сделайте на форме и если модифицированности нет, то выкидывайтн исключение что юзер ты осел и не нужно проводить не измененный доеумент

Также это и кнопки Записать коснется, ибо у проведенного документа запись вызывает проведение


Однако в форме списка в контекстном меню можно будет проводить доки не изменяя их))) значит и там кнопки удалить))
8 Sevish
 
16.12.25
08:27
Я все понимаю и согласен, но тут положение такое, очень критично, чтобы именно из документа и только из его формы такого не было (проведение / запись не измененного).

Я открываю документ и тут же нажимаю "Провести и закрыть" (ничего не менял) и в событии "ПередЗаписью" уже модифицированность "Истина". Я ничего не делал, ощущение, что кнопка эта типовая поднимает флаг, хотя отладчик не показал никакого когда...

PS: Такой задачи не было бы, если бы в очередь не валилось всё подряд в огромном количестве.
9 Kongo2019
 
16.12.25
08:37
(0) Для таких пользователей обычно делают запрет на проведение, то бишь посмотреть могут, а провести нет.
Ну или дату запрета проведения персонально им сдвигают.
10 Sevish
 
16.12.25
08:37
Иначе спрошу, кто-то знает, почему типовая кнопка "Провести и закрыть" изменяет модифицированность до первого обработчика? Это где-то как-то можно изменить в настройках в конфе?
11 Sevish
 
16.12.25
08:38
(9) Суть не в том кто и что может, они могут и должны менять!
Суть в том, что если изменений не было - проводить не надо.
12 Kongo2019
 
16.12.25
08:39
(7) Так скорее всего он смотрит из дока карточку товара, в режиме выбора, товар не поменялся, а флажок модифицированный поднялся, у нас так любил один бух делать, еле отучил.
13 Kongo2019
 
16.12.25
08:43
(10) Скорее всего где-то меняются системные реквизиты документа, типа суммы документа. Тут нужно проверять модифицированность не у объекта, а у формы документа.
14 Sevish
 
16.12.25
08:47
(2) да, своя кнопка отличный вариант "ЭтаФорма.Модифицированность" в ней "Ложь", если изменений не вносилось.
Мне как бы и не всем пользователям надо такое и только в 2х документах и только по 2-3 контрагентам, так что пойду этим путем.
Благодарю.
15 p-soft
 
16.12.25
08:53
(14) ну и хорошо
16 Garykom
 
гуру
16.12.25
08:55
(0) Мне кажется, лучшим решением при нажатии на "Провести и закрыть" (в случае если документ уже проведен) выводить пользователю вопрос "Хотите перепровести документ?"
С кнопками Да и Нет
Это быстро отучит их закрывать документ не той кнопкой

И главное функционал перепроведения не теряется
17 p-soft
 
16.12.25
08:55
(16) на массе это никто не читает - тыкают на первую удобную кнопку. особенно тети в толстых очках. они же и самые умные)
18 Garykom
 
гуру
16.12.25
08:57
(17) Пофиг
Суть в лишних действиях когда не туда нажали
Со временем дойдет что проще закрывать крестиком
19 El_Duke
 
гуру
16.12.25
09:13
(8) Таким пользователям надо устанавливать права доступа Только просмотр и не городить мутных схем.
Пользователь должен отвечать за то, что он делает. Не надо пускать в конфу тех, кто накосячит, а потом начнет рассказывать что виновата конфа, кривой код и фазы Сатурна. И вообще он думал, что не проводит, а участвует в спецоперации, по окончании которой все вернется как було. Невменько аля Долина, согласен с (6)
20 Garykom
 
гуру
16.12.25
08:58
(18)+ В случае если не будет доходить, добавить при нажатии на Да еще один вопрос "Вы уверены что хотите перепровести документ задним числом?"
21 Kongo2019
 
16.12.25
09:00
(17) В одной системе видел там не тока да и нет было, но и введите персональный код.
22 Garykom
 
гуру
16.12.25
09:00
(21) Во
Даже без персонального кода можно просто требовать ввести "Да" или "Уверен" в поле текстом
23 p-soft
 
16.12.25
09:01
(18) на топикстартере поддержка, ему не пофиг.
(20) это задача бизнес-аналитика такое мутить. он в отпуске походу. или бухает)
24 El_Duke
 
гуру
16.12.25
09:05
(23) Да чо там мутить, все предельно просто.
Критичные к изменениям метаданные версионируются и всегда можно выявить кто на ком стоял.
25 Lama12
 
16.12.25
09:13
(0) Очень плохая идея. Проще и дешевле научить пользователя. Но если у вас социально ориентированная компания, то да. Делайте отдельные кнопки. Увеличьте штат разработчиков. Специалистов поддержки. Надо оправдывать ориентированность компании.
26 Sevish
 
16.12.25
09:18
(23) Добавил кнопку, благо обед, расширение накатил и всех выгнал. Временно поставил в журнал писать "Провел без сохранения"...
Сначала все поругались что их кикнуло, затем стали заходить.
За прошедшие 7 (уже 8) минут в журнале набежало 11 записей.
Каждое такое действие раньше кидало в "ЗаданияКРаспределениюВзаиморасчетов" 600-700 записей к обработке.
Для базы, где 20-30 человек это не критично, но где 120 - эта очередь потом 5 минут рассасывается ... в холостую.
Так что ещё раз благодарю!
27 p-soft
 
16.12.25
09:27
(26) рекомендую проверить дописки, если есть, на предмет наличия галки "изменять данные" в реквизитах форм.
28 YaFedor
 
16.12.25
09:31
(26) "Временно поставил в журнал писать "Провел без сохранения"..."

Сделай еще отправку письма по электронной почте тому, кто эту задачу придумал
29 dmt
 
16.12.25
09:37
(26) небольшой, но минус - потерялась возможность перепровести документ по новой логике, если логика находится вне документа (н-р зависит от константы/настроек номенклатуры). Придется менять документ и потом проводить.
30 Kongo2019
 
16.12.25
09:37
(26) Ты старую грохнул чтоли? а как?
31 Sevish
 
16.12.25
09:43
(29) нет, я просто проверяю модифицированность и если да - вызываю типовую процедуру "ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть" (она же в типовой кнопке).
Возможность проведения всё равно осталась на типовой кнопке, но уже осознанно.
Просто может никто не сталкивался с проблемами с очередью в УТ / КА / ERP, но они есть, правда при определенных условиях, увы.
Например, если оплаты редкие, а заказов и приобретений море... вот 1С и пытается их всех актуализировать "по срокам".
32 Sevish
 
16.12.25
09:43
(30) программно через расширение добавил свою, ту скрыл.
33 craxx
 
17.12.25
00:16
(0) а если изначально кнопку блокировать (сделать недоступной), а в меню "Еще.." сделать команду "Разблокировать проведение документа".
Чтоб если хотели провести - провели, но не в автомате.
34 PR
 
17.12.25
01:00
(0) Проверяй модифицированность перед записью и, если ничего не изменено, то записывай запись в регистр сведений "Ебланы, которые зачем-то перепроводят документы, хотя они нихуя не изменены"
Периодически таких ебланов на ковер и пусть объясняют руководству, что они перепроводили документ, потому что было ну очень нужно, хоть он был и не изменен, по причине того, что <тут фантазия пользователя, зачем>

Если уверен в том, что такой необходимости не может быть вообще, тогда просто тупо при такой ситуации выдавай сообщение "Слышь, еблан, я запомнил, что ты жмакал кнопку провести в неизмененном документе и взял тебя на контроль, тупое животное" и отказ записи
35 Web00001
 
17.12.25
05:02
Перед записью сравниваешь, ссылку с объектом. В базе у тебя лежит объект до того как пользователь его открыл. Объект в форме, это текущий объект. Функцию можно сделать универсальной. Получаешь метаданные документа, сравнил реквизиты текущего объекта и объекта который получил по ссылке. Выгружаешь табличные части в таблицы значений, сравниваешь(а может и выгружать не надо, не знаю, не проверял) - методы для этого есть в БСП. Готово. Цена вопроса 2-4 часа.
36 craxx
 
17.12.25
11:16
(35) а если иногда надо просто перепровести не измененный документ? например, чтоб выровнять взаиморасчеты?
Как мне видится, я в (33) более удачное решение написал
37 rozer76
 
17.12.25
11:26
(8) правильно, там у команд стоит "Изменять сохраняемые данные". Вот сразу Модифицированность и устанавливается. Можно снять ее но тогда программно отключить придется доступность, есть док только на просмотр открылся, например, по дате запрета редактирования т.к. этот флаг автоматом такое решает.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан