Имя: Пароль:
1C
1С v8
v8: Как программно редактировать ПостроительОтчета
0 LivingStar
 
17.06.13
11:43
В обработке, через меню вызывается одна из её форм. На ней располагается Табличное поле (имя: ПостроительОтчетаКонтрагентыОтбор, данные: ПостроительОтчетаКонтрагенты.Отбор, тип значения: Отбор). Можно ли программно обрабатывать строки в табличном поле и как с ним можно работать? Нужно в частности обработать строку добавленную в это поле с галкой в одном из полей. Добавить новую с переработанными данными.
1 LivingStar
 
17.06.13
11:47
Имеющиеся поля в этом табличном поле:
- Поле
- ТипСравнения
- Значение
2 LivingStar
 
17.06.13
11:49
Пример данных:
Поле:          Контрагент
Тип сравнения: В списке
Значение:      Список значений (Справочник.Контрагенты)
3 LivingStar
 
17.06.13
11:58
Одна из особеннойтей работы с этим табличным полем, в нем нельзя копировать строки...
4 LivingStar
 
17.06.13
12:04
получается мне нужно программно добавить значения в список, который там содержится, эти данные и выводятся в строке, это можно сделать программно?
5 LivingStar
 
17.06.13
12:57
Похоже нужно делать так, ПостроительОтчетаКонтрагенты.ИзмеренияСтроки.Добавить();

Что указывтаь в Добавить?
6 ДенисЧ
 
17.06.13
12:58
ИзмеренияПостроителяОтчета (ReportBuilderDimensions)
Добавить (Add)
Синтаксис:

Добавить(<ПутьКДанным>, <Имя>, <Тип>, <Область>, <ОбластьИерархия>)
Параметры:

<ПутьКДанным> (обязательный)

Тип: Строка.
Путь к данным для измерения.
<Имя> (необязательный)

Тип: Строка.
Имя измерения.
<Тип> (необязательный)

Тип: ТипИзмеренияПостроителяОтчета.
Тип измерения.
<Область> (необязательный)

Тип: ТабличныйДокумент; ПолеТабличногоДокумента.
Область для вывода.
<ОбластьИерархия> (необязательный)

Тип: ТабличныйДокумент; ПолеТабличногоДокумента.
Область для иерархического вывода.
Возвращаемое значение:

Тип: ИзмерениеПостроителяОтчета.

Описание:

Добавляет измерение в коллекцию.

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

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

ПостроительОтчетов.ИзмеренияСтроки.Добавить(Имя, Имя);
7 LivingStar
 
17.06.13
13:03
(6) читал эту справку, все же не понятно как хотя бы что то сделать, вот из этого примера к примеру
ПостроительОтчетов.ИзмеренияСтроки.Добавить(Имя, Имя);

что мне нужно добавлять и как?

если известны значения полей
8 LivingStar
 
17.06.13
13:06
вот к примеру задаю ПостроительОтчетаКонтрагенты.ИзмеренияСтроки.Добавить(Справочники.Контрагенты.НайтиПоНаименованию("Знаычение"));

пишет не найдено такое то измерение, как нужно не пойму?
9 hhhh
 
17.06.13
13:16
имена измерений нужно добавлять а не значения
10 LivingStar
 
17.06.13
13:18
ПостроительОтчетаКонтрагенты.ИзмеренияСтроки.Добавить("Имя") не работает так, первое измерение же имя
11 LivingStar
 
17.06.13
13:27
(9) а где брать названия этих измерений если ничего не подходит?
12 IШаман
 
17.06.13
13:29
(11) Из запроса.
13 LivingStar
 
17.06.13
13:35
(12) А можно каких либо примеров? Я пока создал кнопку и хочу добавить строку.
14 LivingStar
 
17.06.13
13:36
(12) там есть одна строка в этом табличном поле, добавлялась со стороны пользователя, к ней можно получить доступ? как её продублировать? тут нет запроса...
15 LivingStar
 
17.06.13
14:04
пошло!!!

так добавляет строки

Процедура КоманднаяПанельКонтрагентыДействие4(Кнопка)
   ПостроительОтчетаКонтрагенты.Отбор.Добавить("Контрагент");
КонецПроцедуры
16 LivingStar
 
17.06.13
14:05
только тип сравнения "равно" и в "значении" путо, если эта строка добавляет строки как, туда поиещать значения, и устанавливать "в списке"?
17 LivingStar
 
18.06.13
05:16
подскажите есть ли примеры по теме? не могу разобраться
18 goleaff2006
 
18.06.13
05:21
перем=ПостроительОтчетаКонтрагенты.ПолучитьОтбор
перем.Добавить("Контрагент");
перем2=ПостроительОтчетаКонтрагенты.отбор.Найти("Контрагент")
перем.Видсравнени=Видсравнени.список
перем.значение=значение вроде так
19 goleaff2006
 
18.06.13
05:23
перем=ПостроительОтчетаКонтрагенты.ПолучитьОтбор
перем.Добавить("Контрагент");
//так добавляется значение и вид сравнения
перем2=ПостроительОтчетаКонтрагенты.отбор.Найти("Контрагент")
перем2.Видсравнени=Видсравнени.список
перем2.значение=значение вроде так
20 LivingStar
 
18.06.13
05:31
(18) Спасибо посмотрю, в значении у меня можно выбирать список контрагентов.

Скажите а обязательно перем создавать?
21 goleaff2006
 
18.06.13
05:35
можно так ПостроительОтчетаКонтрагенты.отбор.Найти("Контрагент").видсравнения=Видсравнени.список
но лучше сначал проверить условие нашел ли он поле Контрагент или нет
если перем2 <>неопределенно
тогда и т.д
22 goleaff2006
 
18.06.13
05:36
мало ли что бывает =))
23 LivingStar
 
18.06.13
05:37
(22) а перем2.значение=значение, в значение может содержаться непосредственно список контрагентов, предварительно туда добавленных?
24 goleaff2006
 
18.06.13
05:40
если вид сравнения список тогда список значений. отладчиком посмотри.ПостроительОтчетаКонтрагенты.отбор.Найти("Контрагент")какие поля выдает данный результат и их заполняй.
25 LivingStar
 
18.06.13
05:42
(24) Ок! галку Использовать, по умолчанию можно поставить?
26 goleaff2006
 
18.06.13
05:43
Да, если ее не ставить то эта строчка отбора будет игнорироваться запросом.
27 LivingStar
 
18.06.13
05:48
(26) А как её поставить? Видите в чем проблема, в этом табличном поле уже есть одна строка, контрагент, в списке, список контрагентов. Похоже эта процедура:

Процедура КоманднаяПанельКонтрагентыДействие4(Кнопка)
   ПостроительОтчетаКонтрагенты.Отбор.Добавить("Контрагент");
   ПостроительОтчетаКонтрагенты.отбор.Найти("Контрагент").видсравнения=Видсравнения.ВСписке;
КонецПроцедуры

находит её, так как добавляет строку где вид сравнения стоит равно....
28 LivingStar
 
18.06.13
05:50
как бы задать что устанавливать все нужно в новой добавляемой строке
29 goleaff2006
 
18.06.13
05:52
для каждого стр из ПостроительОтчетаКонтрагенты.Отбор цикл

если стр.имя=контрагент тогда
стр.использование =истина
стр.видсравнения
стр.значение.
и т.д
конецесли.

конеццикла
30 goleaff2006
 
18.06.13
05:52
А со старой что делать?
31 goleaff2006
 
18.06.13
05:53
зачем добавлять новую, если можно редактировать старую.
32 goleaff2006
 
18.06.13
05:55
33 LivingStar
 
18.06.13
05:55
(30) видимо оставить её, убрав с неё галку.

(31) необходимость добавлять новую в отличае списка контрагентов содержащихся в значении, мне нужно программно сформировать его по подобию первой строки, занеся туда торговые точки контрагентов.
34 LivingStar
 
18.06.13
05:56
(31) должна остаться видимо и старая и новая, актуальная та у которой стоит галка использовать.
35 LivingStar
 
18.06.13
06:01
(32) да не совсем ясно как статья поможет решить задачу
36 LivingStar
 
18.06.13
06:09
(29) а нумерация строк в этом отборе никак не определяется?
37 LivingStar
 
18.06.13
06:22
(32) Спасибо друг!!! Твоими примерами понял что мне нужно делать!!!