Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Доступ к ячейкам табличного поля (обычные формы)

Доступ к ячейкам табличного поля (обычные формы)
Я
   denco_78
 
01.10.18 - 20:52
Добрый день.  1С 8.2

Есть форма. На ней табличное поле, берущее данные из табличной части документа. Надо ограничить вводимые цифры некоторыми максимальными значениями, вычисляемыми при открытии формы. Для каждой строки - свое значение.

Для этого я сделал в поле еще один столбец, не связанный с ТЧ.
Он заполняется в обработчике поля "ПриПолученииДанных". С этим я вроде разобрался.

Проблема возникла с обработчиком "ПриИзменении", в котором вводимое значение должно сравниваться с цифрой из того независимого столбца. Не пойму, как добраться до его ячеек. В отладчике видны только ячейки, связанные с ТЧ. Сама колонка видна, но только как оформление. Ячеек нет.
 
 
   hhhh
 
1 - 01.10.18 - 21:56
(0) там нет ничего. это фикция. Данные выводятся на форму и в ту же наносекунду грохаются нахрен. Никаких ячеек для хранения не существует в действительности.
   denco_78
 
2 - 02.10.18 - 17:40
Да вроде не грохаются. По крайней мере, в таблице видны.

Порылся по форуму. Нашел несколько тем с подобными вопросами, но без нормального решения.

А можно еще как-то осуществить задуманное?
Фактически этот документ, где нужны ограничения получается копированием другого в новый. Вот надо, чтобы в таблице была возможность только уменьшать цифры относительно исходных.
   Cool_Profi
 
3 - 02.10.18 - 17:44
ПриПолученииДанных:
ОформлениеСтроки.ТвояКолонка.УстановитьТекст(ВычислитьНужноеЗначение());

ПриИзменении:
Если ТвояДругаяКолонка <> вычсислитьНужноеЗначение() Тогда...
   denco_78
 
4 - 02.10.18 - 17:58
Так не получится.
Открываю форму - таблица уже заполнена скопированными значениями.
ПриПолученииДанных копирую одну колонку в другую (запоминаю).

ПриИзменении надо сравнить введенное значение с исходным, т.е. запомненым.
   hhhh
 
5 - 02.10.18 - 22:03
(4) не запоминаешь ты. Вот Фома неверующий. После вывода на экран значение стирается.

Поэтому в таблице они видны, а в ПриИзменении не видны.
   denco_78
 
6 - 03.10.18 - 18:05
Это я примерный алгоритм озвучивал. Что вычислять неоткуда.
А что не получится - уже понял.

В итоге реализовал через 2-е поле с одной колонкой рядом. На мой взгляд изврат, но работает.
   aka AMIGO
 
7 - 03.10.18 - 18:08
Я-б при открытии документа создавал ТЗ, в ней нужные значения, (т.е старые!) при изменениях - сравнивал с ними.. Но я таки семерочник.
   denco_78
 
8 - 03.10.18 - 18:19
Форма уже есть. Не моя. Я ее просто дорабатываю, одновременно разбираясь с программированием.
Понадобилось возвраты реализовать малой кровью. Естественно, возврат не может быть больше первоначальной выдачи.
   sechs
 
9 - 03.10.18 - 18:57
(8) > малой кровью

Ну-ну. Подумай о том, что будет если одну строку удалить, а другую добавить.
   denco_78
 
10 - 03.10.18 - 20:28
Перечень строк заблокирован. Можно менять только количество в сторону уменьшения.
 
 Рекламное место пустует
   denco_78
 
11 - 03.10.18 - 20:40
Т.е. цифры в столбике "количество".
   НЕА123
 
12 - 04.10.18 - 08:52
(8)
самое правильное - проверять при проведении.
   lEvGl
 
13 - 04.10.18 - 09:05
есть же максимальное/минимальное значение для числовых полей ввода/реквизитов. ПриНачалеРедактирования поставить нужное ограничение. Сам не делал, проверять что то лень.
   lEvGl
 
14 - 04.10.18 - 09:13
а, тут в другом вопрос..
а зачем рассчитывать в приполученииданных? если колонка заполняется данными из колонки другого документа зачем тут еще колонка? скопировал данные "один в один" и в событиях типа ПЕРЕД изменением фиксировать старое, потом в событиях типа ПРИ изменении сравнивать с новым. Либо как уже предлагал - ограничение макс. значения для поля ввода.
   denco_78
 
15 - 04.10.18 - 11:13
(13) С минимальным/максимальным значениями, похоже, та же история, что и с дополнительным столбцом - оформление столбца есть, а в ячейках их нет. С них я и начинал. Либо не разобрался.

(14) Проверять со старым значением при вводе не годится: представим, что изначально в ячейке стояло 20. Пользователь сначала поменял на 5, а потом передумал и захотел поставить 8...

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует