Добрый день!

Есть такая задача:

Необходимо запретить в форме документа "ЗаказПоставщику" изменение всех полей в таблице Товары, кроме ТоварыОтменено и ТоварыПричинаОтмены, для строк, которые есть в записанном экземпляре объекта .
Необходимо запретить в форме документа ЗаказПоставщику удаление строк, которые есть в записанном экземпляре объекта.

Получается добавлять новые можно и редактировать до момента записи, как записал, то редактирование и удаление запрещено, изменять можно только эти 2 реквизита.

При открытии документа получается надо тоже обработать.

Вопрос вот в чем: как сделать это с наименьшими трудозатратами? Можно конечно в цикле перебирая явно указать для каждого реквизита ТолькоЧтение.

Но хотелось бы узнать есть ли более лучшие способы? Может быть кто-то решал подобную задачу?

Может как то это обойти циклом? Но каким и как?

Признателен за любую помощь!
---
1) Создал дополнительный реквизит ДокЗаписан с типом булево, спасибо за подсказку Vitalya Гуляев (Vix).

2) Создал процедуру обрабатывающую нужные реквизиты с параметром (булево)

3) Завязал алгоритм на событии формы ПриАктивизацииЯчейки.
    Проверяю если ДокЗаписан - Ложь, то ложь передаю в процедуру и наоборот если истина, то передаю Истина.

Обрабатывает нормально, единственно, что при каждой активации ячейки, вызывается процедура, надо подумать над оптимизацией.

Может быть есть идеи?
---
еще 1 вариант создать реквизит в таб части, невидимый, с типом булево, например "записан или изменен", по этому признаку, можно управлять доступностью ваших реквизитов. Можно использовать так же не прям при записи, но и при др условиях, например, управлять доступностью, если вдруг были поменяны какие то колонки.
---
идея хорошая, а как быть?

Если документ записан, то строки в нем не меняются, только как я писал 2 реквизита в ТЧ, и если эти два реквизита заполнены, то можно добавить новую строку и редактировать ее до тех пор, пока документ не записан.

Более того, предыдущую нельзя редактировать и удалять.

Колонки же регулируют запись всех строк, а мне получается надо каждую строку отслеживать.
---
0) конфигурация? Обычные/упр. формы?
---
ЕРП 2.4 (Управляемые формы)
---
К сожалинию в моей стране ЕРП еще нет, так что не знаю)

Предлагаю сделать вот что:

при удалении строки проверять наличие ссылки (документ записан), если есть - искать строку , если нашли - отказ.

Также модифицировать процедуру "установка видимости" (или как там она называется в ерп) и сделать "для каждого колонка из элементы.ТЧ.Колонки цикл Если колонка.имя = "ТоварыОтменено " тогда колонка.толькопросмотр=ложь; иначе колонка.толькопросмотр=Истина; конецесли конеццикла "
---
ну с колонкой еще решить можно, здесь немного другая задача:

Если документ записан, то строки в нем не меняются, только как я писал 2 реквизита в ТЧ, и если эти два реквизита заполнены, то можно добавить новую строку и редактировать ее до тех пор, пока документ не записан.

Более того, предыдущую нельзя редактировать и удалять.

Колонки же регулируют запись всех строк, а мне получается надо каждую строку отслеживать.
---
то есть есть тч:
рекв1 рекв2 рекв3 рекв4

если документ записан то рекв1 и рекв2 менять нельзя, а есл рекв3 и рекв4 заполнены - можно только добавить новую строку, и в ней заполнять рекв1..4? Тогда действительно, нужно добавить невидимый рекв "доступностьДляИзменения", и при начале редактирования ставить ложь, а устанавливать доступность ложь-истина при окончании ред
---
а условным оформлением настроить это все не получится?
---
неа, условным оформлением не пойдет
---
1) Создал дополнительный реквизит ДокЗаписан с типом булево, спасибо за подсказку Vitalya Гуляев (Vix).

2) Создал процедуру обрабатывающую нужные реквизиты с параметром (булево)

3) Завязал алгоритм на событии формы ПриАктивизацииЯчейки.
    Проверяю если ДокЗаписан - Ложь, то ложь передаю в процедуру и наоборот если истина, то передаю Истина.

Обрабатывает нормально, единственно, что при каждой активации ячейки, вызывается процедура, надо подумать над оптимизацией.

Может быть есть идеи?