Имя: Пароль:
1C
1С v8
вывод неповторяющихся значений из таб.поля
0 manti
 
14.06.12
20:00
есть 2 табличных поля. Нужно чтобы при нажатии "добавить" добавлялись неповторяющиеся значения(те которые помечены- стр.Использование = истина) из ТЗПользователей в ОтобранноеЗначение.

структура = новый  структура;  

   Для каждого стр Из ТЗПользователей Цикл
       Если стр.Использование = истина Тогда
           Структура.Вставить("Пользователь",Стр.Пользователь);
         
           Если ОтобранноеЗначение.НайтиСтроки(Структура) = Неопределено Тогда
               НоваяСтрока = ОтобранноеЗначение.Добавить();
               НоваяСтрока.Пользователь  = стр.Пользователь;
               НоваяСтрока.Использование  = стр.Использование;
           Иначе
               продолжить
           КонецЕсли;

        КонецЕсли;          
       
   КонецЦикла;

типы совпадают, что не хватает?
1 quest
 
14.06.12
20:05
НайтиСтроки в СП прочитай и подумай
2 Rie
 
14.06.12
20:17
(0) А не проще ли что-нибудь вроде
Помеченные = ТЗПользователей.Выгрузить(ТЗПользователей.НайтиСтроки(Новый Структура("Использование",Истина));
Помеченные.Свернуть("Пользователь");
Помеченные.НоваяКолонка("Использование");
Помеченные.Заполнить(Истина,"Использование");
Отобранные.Загрузить(Помеченные);
3 Rie
 
14.06.12
20:21
+(2) То есть, конечно, не НоваяКолонка, а
Помеченные.Колонки.Добавить("Использование");
4 manti
 
14.06.12
20:42
(2) Метод объекта не обнаружен (Выгрузить)
Помеченные = ТЗПользователей.Выгрузить(ТЗПользователей.НайтиСтроки(Новый Структура("Использование",Истина)));
5 manti
 
14.06.12
20:47
У таб поля не имеется такого метода(((
6 echo77
 
14.06.12
20:57
ВыгрузитьСтроки() смотри или что там есть?
7 manti
 
14.06.12
21:17
(6)
Помеченные = ТЗПользователей.Скопировать(ТЗПользователей.НайтиСтроки(Новый Структура("Использование",Истина)));
Помеченные.Свернуть("Пользователь");
Помеченные.Колонки.Добавить("Использование");
Помеченные.ЗаполнитьЗначения(Истина,"Использование");
ОтобранноеЗначение.Добавить(Помеченные); \\не знаю каким методом добавить- у ТЗ такого нет. да и вообще такой код будет добавлять неповторяющиеся?
8 sergoqwe
 
15.06.12
00:08
(7) -> (2) Помеченные.Свернуть("Пользователь");
9 Rie
 
15.06.12
05:38
(5) У табличного поля есть данные, которое оно отображает. С ними и надо работать. Табличное поле - это всего лишь фиговина, лежащая на форме.
10 Rie
 
15.06.12
05:39
(7) А что такое ОтобранноеЗначение (только не говори, что это - табличное поле, посмотри, что у него в Данные).
11 Мимохожий Однако
 
15.06.12
06:16
(0)Поменяй местами строки
Если ОтобранноеЗначение.НайтиСтроки(Структура) = Неопределено Тогда
Структура.Вставить("Пользователь",Стр.Пользователь);
12 hhhh
 
15.06.12
06:21
(11) Это нужно три литра выпить, чтобы НайтиСтроки вернуло Неопределено.
13 Мимохожий Однако
 
15.06.12
06:56
(12) Согласен. Однако неплохо бы разобраться откуда табличные поля заполнялись.
14 manti
 
15.06.12
08:51
(10) ОтобранноеЗначение это таб поле с типом значений - таблица значений. именно)))
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший