Имя: Пароль:
1C
1С v8
Как изменить описание типов в построителе отчета?
,
0 sanches2
 
20.09.11
13:24
УТ 10.3
В построителе отчета в полях отбора есть поле Контрагент, оно выбирается из поля ПолучательСкидки регистра СкидкиНаценкиНоменклатуры, но поскольку в регистре это поле имеет составной тип, то перед выбором отбора в отчете предлагает выбрать тип значения. Как можно жестко задать в отборе тип значения справочник контрагенты, чтобы выбирать можно было только контрагентов?
1 sanches2
 
20.09.11
14:07
*
2 Жан Пердежон
 
20.09.11
14:12
сделай программно
3 sanches2
 
20.09.11
14:20
Я и хочу знать как это сделать программно?
4 Жан Пердежон
 
20.09.11
14:27
Отбор.Контрагент = Справочники.Контрагенты.ПустаяСсылка();
5 sanches2
 
20.09.11
14:33
Пишу: ПостроительОтчета.Отбор.Контрагент = Справочники.Контрагенты.ПустаяСсылка();
Выходит ошибка:
Поле объекта недоступно для записи (Контрагент)
А в постоителе прямо можно как-то указать тип значения?
Или надо устанавливать тип где-то перед вызовом
ПостроительОтчета.ЗаполнитьНастройки()?
6 Aprobator
 
20.09.11
14:34
.......Контрагент.Значение = .....
7 Aprobator
 
20.09.11
14:35
в запросе можно:
ВЫРАЗИТЬ(Контрагент КАК Справочник.Контрагенты)
8 sanches2
 
20.09.11
14:36
(6) Спасибо. Сработало
(7) Ага, тоже вариант
9 Aprobator
 
20.09.11
14:38
(8) куды оно денется. Различай элемент отбора и его значение.
10 acsent
 
20.09.11
14:38
Можно програмно тип назначить, правда не помню как.
Смотри как в бух назначается тип субконто
11 sanches2
 
20.09.11
14:39
(9) Учусь :)
12 Синий зуб
 
20.09.11
14:53
Типа:
ПолеКонтрагент = ПостроительОтчета.ДоступныеПоля.Найти("Контрагент");
   Если ПолеКонтрагент <> Неопределено Тогда
       ПолеКонтрагент.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Контрагенты");
   КонецЕсли;
13 sanches2
 
20.09.11
14:56
(7) Хочу сделать "красивее" в запросе, но пока не получается.
Я делаю хочу добавить в стандартную печать прайса вывод контрагента и его цен. Добавляю кусок своего запроса к стандартному. У себя в запросе пишу
ВЫРАЗИТЬ(СкидкиНаценкиНоменклатурыСрезПоследних.ПолучательСкидки КАК Справочник.Контрагенты) КАК Контрагент , но тип значения в отборе предлагает сначала выбрать.
Мой запрос состоит из 2-х объединенных запросов из которых еще одним запросом выбираю данные (если надо могу кусок своего запроса выложить). Пробовал на верхнем запросе использовать ВЫРАЗИТЬ, на 2-х объединенных - без результата.
14 Aprobator
 
20.09.11
15:08
(13) может какая специфика построителя - не забивай голову.
Как вариант - посмотри (12).
15 Aprobator
 
20.09.11
15:13
+(14) вообще хронический "улучшайзинг" болезнь, очень сильно ворующая время. Борись с ней в зародыше.
16 acsent
 
20.09.11
15:15
Нужно писать
{ГДЕ
ВЫРАЗИТЬ(СкидкиНаценкиНоменклатурыСрезПоследних.ПолучательСкидки КАК Справочник.Контрагенты).* КАК Контрагент}
17 Aprobator
 
20.09.11
15:17
(16) а точно. Это ж построитель. Там в конструкторе запросов должна быть фенька для построителя. Смотри внимательней.
18 Синий зуб
 
20.09.11
15:22
Попытка № 2 - с расшифровкой. Отчет на базе универсального, Контрагент - Субконто, пишу
   // Инициализация текста запроса построителя отчета
   УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
   
   ПолеКонтрагент = УниверсальныйОтчет.ПостроительОтчета.ДоступныеПоля.Найти("Контрагент");
   Если ПолеКонтрагент <> Неопределено Тогда
       ПолеКонтрагент.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Контрагенты");
   КонецЕсли;
   
   ПолеДоговор = УниверсальныйОтчет.ПостроительОтчета.ДоступныеПоля.Найти("ДоговорКонтрагента");
   Если ПолеДоговор <> Неопределено Тогда
       ПолеДоговор.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.ДоговорыКонтрагентов");
   КонецЕсли;

Все работает.
19 sanches2
 
20.09.11
15:24
Всем спасибо за советы. Проверю все варинаты чтобы знать :)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.