На УФ 1с8 есть таблица значений на форме с двумя колонками-реквизитами:
1. "Документ", который имеет ссылку на документ "Заказ клиента";
2. "Количество", количество товара в документе.
Как сделать так, что бы в ТЗ на форме ячейка с ссылкой на документ "Заказ клиента" была зеленого цвета, если документ проведен, красного, если документ помечен на удаление, и желтого, если документ не проведен.
Важно: именно не всю строку условно оформить, а конкретную ячейку.
---
Добавить колонку статус (1 - удален, 2 - отмена проведения, 3 - проведен), от нее рисовать УО
---
Я имел ввиду что реквизит "Проведен" - это отдельный реквизит в табличной части, который никак не связан с реквизитом по ссылке на документ. И этот реквизит нужно заполнять отдельно. Именно. При автообновлении списка (таблицы) - обновляется допколонка в таблице формы (читай - перечитывается признак "Проведен" у документов), на основании которой и строится Условное оформление.

1. Надеюсь, тот код, который вы написали - он весь на сервере выполняется? Включая цикл?
2. И зачем вы цикле "по ссылке через точку" дергаете СУБД? Каждое обращение через точку- это неявный запрос к СУБД. Сделайте правильнее - одним общим запросом, который получает данные таблицы одной транзакцией.
---
Добавить колонку статус (1 - удален, 2 - отмена проведения, 3 - проведен), от нее рисовать УО
---
Спасибо, всё понятно,но...
Реквизит "Проведен" не зависит от документа. Мне нужно в любом случае как то реализовывать контроль того, что если документ изменяется, то форма должна быть "уведомлена"?
Например, один человек открыл форму в которой при открытии заполнилась ссылка на документ, а так же был определён признак для условного оформления, допустим документ не проведён. Далее второй человек провёл документ, но у первого человека признак того, что документ не проведённый остался, так как форма не была обновлена.
Как реализовать контроль в таких ситуациях? При каких условиях снова рассчитывать признак "Проведен?
---
Реквизит "Проведен" не зависит от документа. А от чего он зависит, если не секрет?
Далее второй человек провёл документ, но у первого человека признак того, что документ не проведённый остался, так как форма не была обновлена Автообновление динамического списка, только так. Оповещений на формы другим пользователям не существует. Если только сервер взаимодействия использовать.
---
А от чего он зависит, если не секрет?
Я имел ввиду что реквизит "Проведен" - это отдельный реквизит в табличной части, который никак не связан с реквизитом по ссылке на документ. И этот реквизит нужно заполнять отдельно.
У меня таблица формы, а не динамический список.
На данный момент добавил в ТЗ столбец реквизита формы и заполняю его на событие "ПриСозданииНаСервере", а так же "ПриИзмененииЭлемента", то есть ловлю событие, после чего получаю по ссылке данные о документе и в отдельный реквизит заполняю признак, по которому условно оформляю ТЧ...

```1c
    //вызов
    Для каждого СтрДокументы Из Объект.Документы Цикл
    СтрДокументы.СтатусТТН=ПолучитьСтатусДокумента(СтрДокументы.ТТН);
    КонецЦикла;

    &НаСервереБезКонтекста
    Функция ПолучитьСтатусДокумента(СсылкаНаДокумент)
    Если СсылкаНаДокумент.ПометкаУдаления Тогда //помечен на удаление
    Возврат 3;
    ИначеЕсли СсылкаНаДокумент.Проведен Тогда //проведен
    Возврат 1;
    Иначе //записан
    Возврат 2;
    КонецЕсли;
    КонецФункции
```
---
Я имел ввиду что реквизит "Проведен" - это отдельный реквизит в табличной части, который никак не связан с реквизитом по ссылке на документ. И этот реквизит нужно заполнять отдельно. Именно. При автообновлении списка (таблицы) - обновляется допколонка в таблице формы (читай - перечитывается признак "Проведен" у документов), на основании которой и строится Условное оформление.

1. Надеюсь, тот код, который вы написали - он весь на сервере выполняется? Включая цикл?
2. И зачем вы цикле "по ссылке через точку" дергаете СУБД? Каждое обращение через точку- это неявный запрос к СУБД. Сделайте правильнее - одним общим запросом, который получает данные таблицы одной транзакцией.
---
1. Да, цикл "НаСервере".
2. Вы имеете ввиду выгрузить таблицу формы в ТЗ и засунуть ее в запрос 1с8 в котором сразу же заполнить реквизит, после чего снова загрузить полученную ТЗ после запроса в таблицу формы?
---
2. Ну можно и не таблицу целиком, а хотя бы массив ссылок на документы. Заодно и всякие другие данные актуализируете по необходимости... Смысл такой, да. Сразу получать готовый результат для ТаблицаДокументов.Загрузить(РезультатЗапроса).
---
Примерно понял проблему. Вы хотите чтобы расскраска была актуальна, если другой пользователь меняет статус в другом сеансе. Что ж, будет достаточно того, что вы обновляете статус при изменении таблицы. Можно также повестить обновление раз в минуту и кнопку "обновить статусы".
---
Верно поняли, спасибо за совет. Как то подобно и реализовал.
У меня практически на все кнопки формы прописан в конце серверный метод "УстановитьДоступность", который снова проверяет все данные формы и нас траивает доступы на форме. Просто добавил в этот метод заполнение доп. реквизитов, а так же на изменение непосредственно в самой ячейке тоже прописал перезаполнение по изменяемой строке.
Если кто то поменяет, а пользователь сразу не заметит - подумал не критично.