Версия для печати темы (https://pro1c.org.ua/index.php?s=d66e40ede3f5d547131939aca8e699d6&showtopic=67422)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Как в выгружаемой на форму ТЗ дать пользователю возможность редактировать указанные колонки но закрыть редактирования некоторых строк из них

Автор: Svetas_2024 06.01.24, 8:22

Добрый день, уважаемые форумчани. Прошу помощи
1С:Предприятие 8.3 (8.3.15.1869), "Управление производственным предприятием для Украины", редакция 1.3 (1.3.66.1) , формы обычные (не управляемые)
вопрос
выгружаю на форму Таблицу Значений

вопрос как :
1. пользователю дать возможность редактировать колонку "наименование", но не давать редактировать колонку "код" и не давать редактировать строки в колонке "наименование", которые выполняют условие стр.код_п=False;
2. как дать пользователю возможность выбора из списка значений в колонке "порядок" (т.е. что бы пользователь мог менять порядковый номер элементов, но не на произвольный , а только между собой (т.е. из списка), и без повторений );
3. как раскрасить для пользователя строки Таблицы значений в разные цвета в зависимости от условия "стр.код_п=False;"
4. колонка "дТЗ.Колонки.Добавить("код_п",Новый ОписаниеТипов("Булево"))" отображается как Да/нет, как отображение заменить на "галочку"?

 
   аа = Новый Массив;

    //аа = УдалитьПустыеЭлементы(номенклат_ед);        
        аа=номенклат_св;
        
        дТЗ = новый таблицазначений;
               дТЗ.Колонки.Добавить("наименование");
        дТЗ.Колонки.Добавить("код");
        дТЗ.Колонки.Добавить("выбор",Новый ОписаниеТипов("Булево"));
        дТЗ.Колонки.Добавить("порядок");
        дТЗ.Колонки.Добавить("код_п",Новый ОписаниеТипов("Булево"));
      

    
        Для Каждого ЭлементМассива из аа Цикл
          стр = дТЗ.добавить();
          стр.наименование = ЭлементМассива.наименование;
          стр.код = ЭлементМассива.код;
          стр.выбор=True;
          стр.порядок= ЭлементМассива.порядок;
          
          если    СтрДлина(СокрЛП(Строка(ЭлементМассива.код)))>0  тогда
            стр.код_п=True;
          Иначе
            стр.код_п=False;

          конецесли;    

        КонецЦикла;


   Форма1=ЭтотОбъект.ПолучитьФорму("ФормаОтчета");
   Форма1.ЭлементыФормы.ТЗ.Значение = дТЗ;
   Форма1.ЭлементыФормы.ТЗ.СоздатьКолонки();
      
   Колонка = Форма1.ЭлементыФормы.ТЗ.Колонки.порядок;
   Колонка.ИзменятьНастройку = Ложь;
   Колонка.ИзменениеРазмера = ИзменениеРазмераКолонки.НеИзменять;
   Колонка.Ширина = 3;
    
  Форма1.ЭлементыФормы.ТЗ.Колонки.код_п.Видимость = False;



в коде задаю ширину последней колонки "Колонка.Ширина = 3;", а она всё равно отображается слишком толстой - почему не работает?

Автор: Svetas_2024 07.01.24, 20:54

Svetas_2024 @ Вчера, 8:22 * ,
изменила код

 кол =  Форма1.ЭлементыФормы.ТЗ.Колонки.Найти("наименование");
     кол.УстановитьЭлементУправления(Тип("ПолеВвода"));
     кол.ЭлементУправления.КнопкаОткрытия =Истина;
     кол.ЭлементУправления.РедактированиеТекста  =Истина;

     кол.ТолькоПросмотр = Ложь;
     кол.Доступность=Истина;

а редактировать всё равно не даёт данные в колонке ТЗ

Автор: Svetas_2024 13.01.24, 9:42

Svetas_2024 @ 07.01.24, 20:54 * ,
хоть-кто может подсказать? помогите пожалуйста

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua