Имя: Пароль:
1C
1С v8
Из таблицы значений в список значений
0 manti
 
22.05.13
16:35
ТаблицаДокументов = Новый ТаблицаЗначений;
ТаблицаДокументов.Колонки.Добавить("Документ");
ТаблицаДокументов.Колонки.Добавить("ДатаВремя");

Параметры.ТаблицаДокументов = ТаблицаДокументов;

Если ИмяТипаОбъекта = "Документ" Тогда

   Объект.Записать();

   НоваяСтрока = Параметры.ТаблицаДокументов.Добавить();
   НоваяСтрока.Документ = Объект.Ссылка;
   НоваяСтрока.ДатаВремя = Объект.Дата;

КонецЕсли;

Если Параметры.ТаблицаДокументов.Количество() > 0 Тогда
   Параметры.ТаблицаДокументов.Сортировать("ДатаВремя Возр");
   Ин = 0;
   Для каждого Строка из Параметры.ТаблицаДокументов Цикл
       Объект = Строка.Документ.ПолучитьОбъект();
       Попытка
           Объект.Записать(РежимЗаписиДокумента.Проведение);
           Сообщить("Документ проведен : "+ СокрЛП(Объект));
           Ин = Ин + 1;
       Исключение
           Сообщить("ДОКУМЕНТ НЕ ПРОВЕДЕН : "+ ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
           Сообщить(" "+СокрЛП(Объект));
       КонецПопытки;
   КонецЦикла;
   Сообщить("Из "+СокрЛП(Параметры.ТаблицаДокументов.Количество())+" документов проведено " + СокрЛП(Ин) +" объектов");
   Иначе
       Сообщить("Из "+СокрЛП(Параметры.ТаблицаДокументов.Количество())+" документов проведено 0 объектов");
КонецЕсли;

Переделываю код под СписокЗначений, поскольку он доступен на тонком клиенте. Не могу сделать сртировку и получить объект.
PS код из правил конвертации.

ТаблицаДокументов = Новый СписокЗначений;

ТаблицаДокументов.Добавить("Документ");
ТаблицаДокументов.Добавить("ДатаВремя");

Параметры.ТаблицаДокументов = ТаблицаДокументов;

Если ИмяТипаОбъекта = "Документ" Тогда

   Объект.Записать();

   НоваяСтрока = Параметры.ТаблицаДокументов;
   НоваяСтрока.Добавить("Документ", Объект.Ссылка);
   НоваяСтрока.Добавить("ДатаВремя", Объект.Дата);
   
КонецЕсли;

Если Параметры.ТаблицаДокументов.Количество() > 0 Тогда
   Параметры.ТаблицаДокументов.СортироватьПоЗначению("ДатаВремя Возр");
   Ин = 0;
   Для каждого Строка из Параметры.ТаблицаДокументов Цикл
       //Объект = Строка.Документ.ПолучитьОбъект();
       Объект = Строка.Значение.ПолучитьОбъект();
       Попытка
           Объект.Записать(РежимЗаписиДокумента.Проведение);
           Сообщить("Документ проведен : "+ СокрЛП(Объект));
           Ин = Ин + 1;
       Исключение
           Сообщить("ДОКУМЕНТ НЕ ПРОВЕДЕН : "+ ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
           Сообщить(" "+СокрЛП(Объект));
       КонецПопытки;
   КонецЦикла;
   Сообщить("Из "+СокрЛП(Параметры.ТаблицаДокументов.Количество())+" документов проведено " + СокрЛП(Ин) +" объектов");
   Иначе
       Сообщить("Из "+СокрЛП(Параметры.ТаблицаДокументов.Количество())+" документов проведено 0 объектов");
КонецЕсли;
1 manti
 
22.05.13
17:28
Как можно отсортировать список значений?

ТаблицаДокументов = Новый СписокЗначений;

       НоваяСтрока = ТаблицаДокументов;
       НоваяСтрока.Добавить("Объект 1");
       НоваяСтрока.Добавить("Объект 2");
       НоваяСтрока.Добавить("Объект 3");

   Если ТаблицаДокументов.Количество() > 0 Тогда
ТаблицаДокументов.СортироватьПоПредставлению("Возр");
Ругается так
2 salvator
 
22.05.13
17:29
(1) Цитата из СП:
СортироватьПоПредставлению(<Направление>)
Параметры:

<Направление> (необязательный)

Тип: НаправлениеСортировки.
Способ сортировки - по возрастанию или по убыванию.
Значение по умолчанию: Возр
Описание:

Сортирует список значений по возрастанию или по убыванию в алфавитном порядке представлений входящих в состав списка значений элементов.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Пример:

СписокТиповЦен.СортироватьПоПредставлению(НаправлениеСортировки.Убыв);
3 samozvanec
 
22.05.13
17:39
(1) будь мужиком, сортируй массив блеат!
4 manti
 
22.05.13
17:51
(2) спасибо, разобрался
5 hhhh
 
22.05.13
17:54
вот так правильнее

Если ТаблицаДокументов.Количество() > 1 Тогда
6 Serginio1
 
22.05.13
18:12
Вообще есть в общем модуле УПП например

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

КонецФункции

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