Имя: Пароль:
1C
 
Изменение цвета фона отдельных ячеек в ТЧ документа ОФ
0 НоваяВолна
 
03.04.16
10:04
Доброго всем времени суток.
Столкнулся с проблемой. Есть ТЧ на форме документа (ОФ), При изменении значения первой колонки, в зависимости от выбранного значения, некоторые колонки строки должны быть обязательны для заполнения. Эти ячейки в строке надо пометить цветом. Пока добился только изменения цвета ячеек всей колонки, что не правильно. Как обратиться к нужной ячейке нужной колонки и поменять только ее цвет, не изменяя цвет всех ячеек колонки?

Код примерно такой
Процедура КомпанияПобедительТорговПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Стр =  ЭлементыФормы.КомпанияПобедительТоргов.ТекущаяСтрока;
    Если Стр.ВидСделки = Перечисления.ВидСделки.ПрямаяСделка ИЛИ Стр.ВидСделки = Перечисления.ВидСделки.АгентскаяСделкаБезПремии Тогда
        ОформлениеСтроки.Ячейки.КомпанияПобедительТоргов.ЦветФона = WebЦвета.БледноБирюзовый;
    КонецЕсли;    

КонецПроцедуры
1 RomanYS
 
03.04.16
10:07
замени
    Стр =  ЭлементыФормы.КомпанияПобедительТоргов.ТекущаяСтрока;

на
Стр = ДанныеСтроки;
2 НоваяВолна
 
03.04.16
10:20
(1) Спасибо)))) помогло!!!!
3 НоваяВолна
 
03.04.16
17:17
(0) Вопрос к модераторам? Могу ли я изменить тему сабжа? Не хочется задавать новую ветку, а есть вопрос по продолжению этой
4 nordbox
 
03.04.16
17:25
Ответ пользователей
НЕТ, не можешь
Пиши тут
5 НоваяВолна
 
03.04.16
17:25
(0) А ВОПРОС такой! Таже самая ТЧ, в которой теперь подсвечены обязательные для заполнения поля. ПередЗаписью() надо проверить их заполненность, и сохранять документ только в том случае, если все ОБЯЗАТЕЛЬНЫЕ ПОЛЯ заполнены во всех строчках. Само сохранение можно производить в документ (Я ТАК ДУМАЮ, МОЖЕТ Я НЕ ПРАВ)... Не хочется подкладывать под ТЧ документа регистр (долго, муторно и не нужно)...
МОГУ ЛИ Я ПередЗаписью() выгрузить ТЧ в таблицу значений и проверить на заполненность ее? ... И будет ли такой подход правильный?
6 nordbox
 
03.04.16
17:28
>> Не хочется подкладывать под ТЧ документа регистр
А зачем в регистр????
Просто проверь на значение. Есть или Нет.
7 НоваяВолна
 
03.04.16
17:38
(6)
1) в каждой колонке разный тип значения (число, строка, булево, перечисление, справочник и т.д.)
2) При выборе значения первой колонки текущей строки ОБЯЗАТЕЛЬНЫМИ для заполнения становятся разные ячейки (в зависимости от выбора)
3) ВОТ В ЭТОМ ПРОБЛЕМА!!! Документ может быть записан (ВСЕ В НЕМ ПРАВИЛЬНО!!), но потом отрыт для редактирования и при смене значения первой колонки нужно будет заполнять ДРУГИЕ ОБЯЗАТЕЛЬНЫЕ ПОЛЯ...
8 НоваяВолна
 
03.04.16
17:41
(7)+  Т.е. ведущим является первая колонка любой строки ВидСделки - в зависимости от вида сделки ОБЯЗАТЕЛЬНЫМИ становятся  от 4-х до 18 полей ТЧ (не всегда по порядку)
9 nordbox
 
03.04.16
17:43
Ну сделай проверку на Неопределено,Пусто, "" , 0, истина,ложь
в чем проблема???
И в цикле по колонкам пройдись на Пусто или Неоопределено
10 НоваяВолна
 
03.04.16
17:44
(7) +++ Т.е. я не могу проверить все изменения в ТЧ с момента открытия, до его сохранения.... хотя я опять же может неправ
11 nordbox
 
03.04.16
17:45
Зачем проверять при открытии если заранее известно что уже там правильно???
12 НоваяВолна
 
03.04.16
17:47
(9) Хорошо! Как я могу программно понять что в строке скажем № 3 Изменилась Первая ВЕДУЩАЯ колонка?... ведь документ еще не записан!... А изменение может быть таким, что его и нельзя записать с незаполненными в этой строке дополнительными (по сравнению с старым вариантом) ячейками
13 nordbox
 
03.04.16
17:47
ПриОкончанииРедактирования
14 НоваяВолна
 
03.04.16
17:48
(11) Правильный документ могут открыть и отредактировать ПЕРВУЮ колонку, что он вмиг станет НЕПРАВИЛЬНЫМ
15 nordbox
 
03.04.16
17:49
Ну и чо из этого???
Есть еще ПЕРЕДОкончаниемРедактирования
16 nordbox
 
03.04.16
17:50
Док тогда ля чего открывать??
Ну сделай кнопку запрета редактирования  вправах
17 nordbox
 
03.04.16
17:53
способов мульён,
ПЕРЕДОкончаниемРедактирования или ПриОкончанииРедактирования Твоей таб части сделай проверку
на првильность
18 НоваяВолна
 
03.04.16
17:55
(15) Хорошо. Поставлю вопрос по другому. Есть документ, заполнен правильно, сохранен! Его открыли и в ПЕРВОЙ КОЛОНКЕ ТЧ (в какой-то строке)поменяли значение, что может быть, но при этом нужно заполнить дополнительные ОБЯЗАТЕЛЬНЫЕ ЗНАЧЕНИЯ ТЧ.

ВОПРОС: КАК ДО СОХРАНЕНИЯ ИЗМЕНЕНИЙ ПРЕДУПРЕДИТЬ ПОЛЬЗОВАТЕЛЯ, ЧТО ОН НЕ ЗАПОЛНИЛ ВСЕ НУЖНЫЕ ПОЛЯ?

Я НЕ ВИЖУ НА КАКОЕ ЗНАЧЕНИЕ ОН ПОМЕНЯЛ ПЕРВУЮ КОЛОНКУ... ПОТОМУ КАК ОНА ЕЩЁ НЕ СОХРАНЕНА В БАЗУ!!!  

ГДЕ МНЕ УВИДЕТЬ ЧТО И НА ЧТО ОН ПОМЕНЯЛ?
19 НоваяВолна
 
03.04.16
18:00
(0) Короче, думаю ПередЗаписью() вываливать ТЧ в ТЗ и проверять на заполненность ТЗ... и если правильно, сохранять, нет ... так выдавать предупреждение, без сохранения
20 nordbox
 
03.04.16
18:01
И чо????
Если ты так акцентируешь что докк не записан, то причем тогда тут призаписи ??? ))))
Пройдись по строкам и первой колонке
Табличная часть (Tabular section)
Количество (Count)
Синтаксис:
Количество()
Возвращаемое значение:
Тип: Число.
Описание:
Получает количество строк табличной части.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Пример:
ВсегоСтрок = Состав.Количество();
21 nordbox
 
03.04.16
18:02
А у конкретной клетке есть еще и ПриИзменении
22 nordbox
 
03.04.16
18:03
у тебя юзвери будут контролироваться не ПриЗаписи,
а еще на стадии изменения или клетки или табчасти вообще
23 НоваяВолна
 
03.04.16
18:10
(20) Количество колонок строго определено. Я же акцентирую внимание на том, что документ ЗАПИСАН и записан правильно, НО ОТКРЫТ НА РЕДАКТИРОВАНИЕ .. и может быть отредактирован НЕ ПРАВИЛЬНО.  Так вот, при повторной записи документа (ПриЗаписи()) надо проверить правильность редактирования документа. И если он неправильно отредактирован, то не сохранять изменения
24 НоваяВолна
 
03.04.16
18:12
(23) + точнее проверка  должна быть ПередЗаписью()
25 nordbox
 
03.04.16
18:14
а почему нельзя проверять правильность на стадии редактирования???
Ну делай как считаешь нужным, я тебе сказал что я думаю по этому поводу
На самом деле там может быть и более простое решение.
Просто ты не полностью озвучиваешь задачу
смотри сам
26 НоваяВолна
 
03.04.16
18:19
(25) думаю, что это длинный геммор проверять каждую колонку на заполненность в зависимости должна ли она быть заполнена при редактировании... Лучше проверить один раз при попытке сохранения
27 nordbox
 
03.04.16
18:23
Тебе в лом один раз функцию написать???
(а тебе в любом случае придется это делать
и в цикле загнать или при окончании редактирования или изменения
28 nordbox
 
03.04.16
18:24
Функция ПроверитьСтроку()
....
....
возврат
КонецФункции
29 nordbox
 
03.04.16
18:25
Ты на ровном месте проблему ищешь