| 
    
            
         
         | 
    
  | 
Доступ к ячейкам табличного поля (обычные формы) | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        denco_78    
     01.10.18 
            ✎
    20:52 
 | 
         
        Добрый день.  1С 8.2
 
        Есть форма. На ней табличное поле, берущее данные из табличной части документа. Надо ограничить вводимые цифры некоторыми максимальными значениями, вычисляемыми при открытии формы. Для каждой строки - свое значение. Для этого я сделал в поле еще один столбец, не связанный с ТЧ. Он заполняется в обработчике поля "ПриПолученииДанных". С этим я вроде разобрался. Проблема возникла с обработчиком "ПриИзменении", в котором вводимое значение должно сравниваться с цифрой из того независимого столбца. Не пойму, как добраться до его ячеек. В отладчике видны только ячейки, связанные с ТЧ. Сама колонка видна, но только как оформление. Ячеек нет.  | 
|||
| 
    1
    
        hhhh    
     01.10.18 
            ✎
    21:56 
 | 
         
        (0) там нет ничего. это фикция. Данные выводятся на форму и в ту же наносекунду грохаются нахрен. Никаких ячеек для хранения не существует в действительности.     
         | 
|||
| 
    2
    
        denco_78    
     02.10.18 
            ✎
    17:40 
 | 
         
        Да вроде не грохаются. По крайней мере, в таблице видны.
 
        Порылся по форуму. Нашел несколько тем с подобными вопросами, но без нормального решения. А можно еще как-то осуществить задуманное? Фактически этот документ, где нужны ограничения получается копированием другого в новый. Вот надо, чтобы в таблице была возможность только уменьшать цифры относительно исходных.  | 
|||
| 
    3
    
        Cool_Profi    
     02.10.18 
            ✎
    17:44 
 | 
         
        ПриПолученииДанных:
 
        ОформлениеСтроки.ТвояКолонка.УстановитьТекст(ВычислитьНужноеЗначение()); ПриИзменении: Если ТвояДругаяКолонка <> вычсислитьНужноеЗначение() Тогда...  | 
|||
| 
    4
    
        denco_78    
     02.10.18 
            ✎
    17:58 
 | 
         
        Так не получится.
 
        Открываю форму - таблица уже заполнена скопированными значениями. ПриПолученииДанных копирую одну колонку в другую (запоминаю). ПриИзменении надо сравнить введенное значение с исходным, т.е. запомненым.  | 
|||
| 
    5
    
        hhhh    
     02.10.18 
            ✎
    22:03 
 | 
         
        (4) не запоминаешь ты. Вот Фома неверующий. После вывода на экран значение стирается.
 
        Поэтому в таблице они видны, а в ПриИзменении не видны.  | 
|||
| 
    6
    
        denco_78    
     03.10.18 
            ✎
    18:05 
 | 
         
        Это я примерный алгоритм озвучивал. Что вычислять неоткуда.
 
        А что не получится - уже понял. В итоге реализовал через 2-е поле с одной колонкой рядом. На мой взгляд изврат, но работает.  | 
|||
| 
    7
    
        aka AMIGO    
     03.10.18 
            ✎
    18:08 
 | 
         
        Я-б при открытии документа создавал ТЗ, в ней нужные значения, (т.е старые!) при изменениях - сравнивал с ними.. Но я таки семерочник.     
         | 
|||
| 
    8
    
        denco_78    
     03.10.18 
            ✎
    18:19 
 | 
         
        Форма уже есть. Не моя. Я ее просто дорабатываю, одновременно разбираясь с программированием.
 
        Понадобилось возвраты реализовать малой кровью. Естественно, возврат не может быть больше первоначальной выдачи.  | 
|||
| 
    9
    
        sechs    
     03.10.18 
            ✎
    18:57 
 | 
         
        (8) > малой кровью
 
        Ну-ну. Подумай о том, что будет если одну строку удалить, а другую добавить.  | 
|||
| 
    10
    
        denco_78    
     03.10.18 
            ✎
    20:28 
 | 
         
        Перечень строк заблокирован. Можно менять только количество в сторону уменьшения.     
         | 
|||
| 
    11
    
        denco_78    
     03.10.18 
            ✎
    20:40 
 | 
         
        Т.е. цифры в столбике "количество".     
         | 
|||
| 
    12
    
        НЕА123    
     04.10.18 
            ✎
    08:52 
 | 
         
        (8)
 
        самое правильное - проверять при проведении.  | 
|||
| 
    13
    
        lEvGl    
     гуру 
    04.10.18 
            ✎
    09:05 
 | 
         
        есть же максимальное/минимальное значение для числовых полей ввода/реквизитов. ПриНачалеРедактирования поставить нужное ограничение. Сам не делал, проверять что то лень.     
         | 
|||
| 
    14
    
        lEvGl    
     гуру 
    04.10.18 
            ✎
    09:13 
 | 
         
        а, тут в другом вопрос..
 
        а зачем рассчитывать в приполученииданных? если колонка заполняется данными из колонки другого документа зачем тут еще колонка? скопировал данные "один в один" и в событиях типа ПЕРЕД изменением фиксировать старое, потом в событиях типа ПРИ изменении сравнивать с новым. Либо как уже предлагал - ограничение макс. значения для поля ввода.  | 
|||
| 
    15
    
        denco_78    
     04.10.18 
            ✎
    11:13 
 | 
         
        (13) С минимальным/максимальным значениями, похоже, та же история, что и с дополнительным столбцом - оформление столбца есть, а в ячейках их нет. С них я и начинал. Либо не разобрался.
 
        (14) Проверять со старым значением при вводе не годится: представим, что изначально в ячейке стояло 20. Пользователь сначала поменял на 5, а потом передумал и захотел поставить 8...  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |