Имя: Пароль:
1C
1С v8
Матрица с флажками, как реализовать.
0 temmy70
 
19.04.13
13:45
Добрый день. Есть задача, реализовать матрицу переходов между статусами. Вывожу статусы по вертикали и горизонтали, внутри заполняю флажками. Нужно записать пару значений, у которой пересечение отмечено флажком. У флажков поле "данные" не заполнено. Подскажите как собрать эти пересечения, может кто сталкивался?
1 iceborn
 
19.04.13
13:47
У меня была такая задача, только эту матрицу из флажков строил в документе, таб. часть. А в чем трудности?
2 butterbean
 
19.04.13
13:47
а можно для тупых по-русски повторить??
3 temmy70
 
19.04.13
13:52
(1) не пойму как поймать проставленные флажки. Вывожу на табличное поле, флажки проставляю, где их забрать? )) Может я в корне не правильно начал. Как вы это делали?
4 temmy70
 
19.04.13
13:56
может не совсем понято объясняю, вот код

Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ст_СтатусЗаказа.Ссылка,
                  |    ст_СтатусЗаказа.Код
                  |ИЗ
                  |    Справочник.ст_СтатусЗаказа КАК ст_СтатусЗаказа";
   Результат = Запрос.Выполнить().Выгрузить();
   ТЗ = Новый ТаблицаЗначений();
   ТЗ.Колонки.Добавить("Номер");
   Для каждого стр из Результат Цикл
       ТЗ.Колонки.Добавить(Стр.Код);
   КонецЦикла;
   Для каждого стр из Результат Цикл
       Строка = ТЗ.Добавить();
       Строка.Номер =Стр.Код;
   КонецЦикла;
       
   ЭлементыФормы.МатрицаСтатусов.Значение = ТЗ;
   ЭлементыФормы.МатрицаСтатусов.СоздатьКолонки();

   Для каждого Колонка из МатрицаСтатусов.Колонки Цикл
       Если Колонка.Имя <> "Номер" Тогда
           ФлагКол = ЭлементыФормы.МатрицаСтатусов.Колонки.Найти(Колонка.Имя);
           ФлагКол.УстановитьЭлементУправления(Тип("Флажок"));
           ФлагКол.ДанныеФлажка = "флажок";
           ФлагКол.Данные = "";
           ФлагКол.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
       КонецЕсли;
   КонецЦикла;

этим вывожу в табличное поле
5 temmy70
 
19.04.13
13:57
этим отображаю галочки, иначе получалось

Процедура МатрицаСтатусовПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   
   тз = ОформлениеСтроки.Ячейки;
   Для каждого стр из тз цикл
       Если стр.Имя <> "Номер" Тогда
           стр.ОтображатьТекст = Ложь;
           стр.ОтображатьФлажок = Истина;
       КонецЕсли;
   КонецЦикла;
   
КонецПроцедуры

6 iceborn
 
19.04.13
14:05
Задача вообще непонятна ) Где вы хотите хранить эту матрицу? Просто в документу проставили флажки и все?
7 temmy70
 
19.04.13
14:12
))) окей, попробую еще раз.
Нужно сформировать матрицу переходов статусов. Каждый статус(например "в ожидании"), может быть изменен только на определенные (например "в работе", но никак не "отгружен"). Для этого делаю матрицу переходов. Потом эти значения пишутся в регистр сведений с двумя измерениями: "ТекущийСтатус" и "НовыйСтатус". У одного ТекущегоСтатуса может быть несколько НовыхСтатусов. Как вот это все сделать? )))