Имя: Пароль:
1C
1С v8
Не изменять модифицированность формы при изменении реквизита таблицы формы
☑
0 altaykniga
 
11.11.26
✎
08:44
Доброго времени суток, уважаемые.

На управляемую форму документа выведена его табличная часть. Нужно добавить на форму колонку "Напечатать". Пользователь проставляет галочки в этой колонке на необходимых строках, жмет Кнопку "Напечатать". Обрабатываются только строки, в которых пользователь проставил галочки. При закрытии формы значения из колонки "Напечатать" сохранять не нужно.

Добавил в основной реквизит формы "Объект" в реквизит "Товары"(тип = табличная часть) колонку реквизита "Напечатать" (тип - булево). Вывел эту колонку на форму.

В пользовательском режиме при изменении значения в колонке "Напечатать" модифицированность формы меняется в Истина. Как этого избежать?

Пытался использовать события таблицы "Товары" на форме:
-перед началом изменения (сохранял значение модифицированности формы в созданный реквизит формы)
-при изменении (брать значение модифицированности формы из сохраненного значения в событии "перед началом изменения")
Но на этапе "при изменении" форма еще не видит, что она была модифицирована. В итоге при изменении значения в колонке "Напечатать" форма думает, что она модифицирована.

Добавлять в метаданные новый реквизит табличной части не хотелось бы, рассчитываю обойтись реквизитом, создаваемым непосредственно при создании формы документа

Прошу подсказать, как этого добиться. Заранее благодарю за помощь
1 Eiffil123
 
11.11.26
✎
08:57
(0)
Добавлять в метаданные новый реквизит табличной части не хотелось бы, рассчитываю обойтись реквизитом, создаваемым непосредственно при создании формы документа

это не помогло бы.

Сделайте доп.обработку, в которой будет повторена ТЧ из документа. Там пользователь будет галки ставить и печатать из нее. Вызов обработки - по кнопке из документа.
2 maxab72
 
11.11.26
✎
09:03
если сотрудник не должен более ничего менять в ТЧ документа, то можно заменить ее на таблицу из запроса к документу, и обрабатывать ее.
3 Chameleon1980
 
11.11.26
✎
09:22
запоминай "перед началом" текущее значение текущего реквизита формы (ЭтотОбъект.ТекущийЭлемент) будь то реквизит формы, тч и да хоть чего. после изменения сравнивай и по результату выставляй модифицированность. пардон. тебе наоборот. читай (4).
4 Chameleon1980
 
11.11.26
✎
09:22
Запоминай модифицированность перед началом редактирования своего реквизита - выставляй после - в то, что запомнил.
Вроде, все верно описано в 0 - не вчитывался, правда.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший