Имя: Пароль:
1C
 
WEB-клиент, как закрасить фон нужного рисунка и почему не обновляется на форме
0 ig0z
 
10.10.19
12:41
При выборе нужного Станка-рисунка цвет фона выделенного рисунка в табличном поле закрашивается КрасноФиолетовый НО фон всех рисунков становиться таким.
Как не обновляться все табличное поле конструкцией "ТабДокумент = ТабДокумент;" а только нужный рисунок?

&НаКлиенте
Процедура ТабДокументПриАктивизацииОбласти(Элемент)
    
    ИмяЭлемента = Элемент.ТекущаяОбласть.Имя;
    ЭтоРисунок = ?(Найти(ИмяЭлемента, "Рисунок") = 0, Ложь, Истина);
    
    Если НЕ ЭтоРисунок Тогда Возврат; КонецЕсли;
    
    СсылкаНаСправочник = ПолучитьСсылкуПоКоду(СтрЗаменить(ИмяЭлемента, "Рисунок", ""));
    
    //Сообщить(ТабДокумент.Рисунки.Количество());
    Для Каждого Рис Из ТабДокумент.Рисунки Цикл
        //Сообщить("Да ладно блять: "+Рис.Имя);
        ТабДокумент.Рисунки[Рис.Имя].ЦветФона = WebЦвета.Белый;    
    КонецЦикла;
    //ТабДокумент.Рисунки[ИмяЭлемента].ЦветФона = WebЦвета.КрасноФиолетовый;
    
    ТабДокумент = ТабДокумент;
    
    
    Элементы.Список.ТекущаяСтрока = СсылкаНаСправочник;
    
КонецПроцедуры
1 ig0z
 
10.10.19
12:42
сорян сообщение в комментарии не заметил ...
2 ig0z
 
10.10.19
12:49
Это: "ТабДокумент = ТабДокумент;" заменил на это: "ОбновитьИнтерфейс();"
3 ig0z
 
10.10.19
12:50
блин почему все картинки разом а не одну красит, я так и не понял
4 ig0z
 
10.10.19
12:57
Подскажите люди добрые почему красятся все картинки формы в КрасноФиолетовый, когда только выбранная
5 ig0z
 
10.10.19
14:03
Данная конструкция красит все картинки в Web клиенте в толстом всё нормально, как это исправить в Web клиенте?

ТабДокумент.Рисунки["Picture"+Элемент.ТекущиеДанные.Код].ЦветФона = WebЦвета.КрасноФиолетовый;
6 hhhh
 
10.10.19
14:09
(5) может ко всем ячейкам один и тот же рисунок присобачили?
7 ig0z
 
10.10.19
14:11
(6) тогда почему в толстом всё правильно работает?
8 ig0z
 
10.10.19
14:16
В толстом что выберу и то закрашивает в web всё или ничего

https://ibb.co/qgTXvLr
https://ibb.co/rbnsbJ1
9 hhhh
 
10.10.19
14:17
(7) в толстом значит вы не один и тот же рисунок к ячейкам присобачили.
10 ig0z
 
10.10.19
14:18
(9) Это один и тот же табличный документ который хранится в реквизите справочника помещения с типом ХранилищеЗначений
11 ig0z
 
10.10.19
14:39
Данная комбинация положение не улучшила

        Индекс = ТабДокумент.Рисунки.Индекс(ТабДокумент.Рисунки["Picture"+Элемент.ТекущиеДанные.Код]);
        ТабДокумент.Рисунки.Получить(Индекс).ЦветФона = WebЦвета.КрасноФиолетовый;
12 hhhh
 
10.10.19
15:04
(11) ну русунок откуда там взялся? Вам надо проверить момент формирования табдокумента
13 ig0z
 
10.10.19
15:10
(12)

так его вставил в Табличный документ
&НаКлиенте
Процедура ВставитьИзображениеИзФайла(Команда)
    
    УжеЕстьСтанок = ПроверитьОбъектНаНаличиеРисунка();
    Если УжеЕстьСтанок = Неопределено Тогда
        Возврат;
    ИначеЕсли УжеЕстьСтанок Тогда
        ПоказатьПредупреждение(, "Данный станок уже отрисован");
        Возврат;
    КонецЕсли;
    
    
    Если ТипЗнч(ТабДокумент.ВыделенныеОбласти[0]) = Тип("ОбластьЯчеекТабличногоДокумента") Тогда
        
        ТекущаяОбласть = ТабДокумент.ТекущаяОбласть;
        
        Режим = РежимДиалогаВыбораФайла.Открытие;
        ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
        ДиалогОткрытияФайла.ПолноеИмяФайла = "";
        Текст = "ru = ""Изображения""; en = ""Images""";
        Фильтр = НСтр(Текст)+"(*.png; *.jpg; *.jpeg; *.gif)|*.png;*.jpg;*.jpeg;*.gif";
        ДиалогОткрытияФайла.Фильтр = Фильтр;
        ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
        ДиалогОткрытияФайла.Заголовок = НСтр("ru = 'Выберите файлы'");
        Если ДиалогОткрытияФайла.Выбрать() Тогда
            МояКартинка = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла);
            Рисунок = ТабДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
            Рисунок.Имя = "Picture" + Элементы.Список.ТекущиеДанные.Код;
            Рисунок.ПараметрРасшифровки = Элементы.Список.ТекущиеДанные.Наименование;
            Рисунок.РазмерКартинки = РазмерКартинки.Пропорционально;
            Рисунок.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);            
            Индекс = ТабДокумент.Рисунки.Индекс(Рисунок);
            ТабДокумент.Рисунки[Индекс].Картинка = МояКартинка;
            ТабДокумент.Рисунки[Индекс].Расположить(ТекущаяОбласть);
            
            Модифицированность = Истина;
        КонецЕсли;        
    Иначе
        ОчиститьСообщения();
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = НСтр("ru = 'Выделите область для вставки'");
        Сообщение.Поле = "ТабДокумент";
        Сообщение.Сообщить();        
    КонецЕсли;
КонецПроцедуры


Так  сохранил
&НаКлиенте
Процедура Редактирование(Команда)
    
    ОбъектДляРедактирования = ПолучитьПомещениеДляРедактированияСхемы(ПомещениеОтбора);
    
    Если Редактирование Тогда
        Редактирование = Ложь;
        Элементы.ГруппаНастройки.Доступность = Ложь;        
        Элементы.Редактирование.Заголовок = "Редактирование";
        //СохранитьИзмененияСхемы();
        Если НЕ ЗначениеЗаполнено(ПомещениеОтбора) Тогда
            Возврат;
        КонецЕсли;
        
        // очистим все выделение с рисунков
        Для Каждого Рис Из ТабДокумент.Рисунки Цикл
            ТабДокумент.Рисунки[Рис.Имя].ЦветФона = WebЦвета.Белый;    
        КонецЦикла;        
        Об = ПомещениеОтбора.ПолучитьОбъект();    
        Об.Схема = Новый ХранилищеЗначения(ТабДокумент);
        Об.Записать();
    Иначе
        Редактирование = Истина;
        Элементы.ГруппаНастройки.Доступность = Истина;
        Элементы.Редактирование.Заголовок = "Сохранить";
        
    КонецЕсли;
    
    Элементы.Редактирование.Пометка = Редактирование;
    Модифицированность = Истина;
    
КонецПроцедуры


Так зачитал
&НаСервере
Процедура ЗагрузитьСхемуИзБД()
    //ЗнОбъект = РеквизитФормыВЗначение("Объект");
    Если НЕ ЗначениеЗаполнено(ПомещениеОтбора) Тогда
        Возврат;
    КонецЕсли;
        
    Об = ПомещениеОтбора.ПолучитьОбъект();    
    Результат = Об.Схема.Получить();
    Если Результат <> Неопределено Тогда
        ТабДокумент = Результат;
    КонецЕсли;
КонецПроцедуры
14 ig0z
 
10.10.19
15:10
что не так вроде всё ок ...
15 ig0z
 
10.10.19
15:11
не ок но рисунки всё такие же
16 hhhh
 
10.10.19
15:47
(15) вот здесь чего-то

ТабДокумент.Рисунки[ИмяЭлемента]


в квадратных скобках должно быть число - индекс рисунка. А у вас чего там в ИмяЭлемента? Число?