|
Реквизит справочника в ресурсы СКД | ☑ | ||
---|---|---|---|---|
0
chingiz
07.09.11
✎
17:10
|
Делаю отчет, в котором нужно адреса доставки(реквизит справочника) отобразить в двух колонках по разным условиям(конкретно в городе и за городом).
Дак вот я не могу задать Поле с условием, т.к. нет предопределенных элементов и насколько понял без них нельзя применить, так бы я задал условие и после ТОГДА поставил 1, которую мне и нужно отображать в одной из двух колонок. ВЫБОР КОГДА <Выражение> ТОГДА <Выражение> ИНАЧЕ <Выражение> КОНЕЦ Выходит устанавливать поля нужно программно...как? зы если не понятно объяснил - спрашивайте, могу еще путаться в терминах и прочем :) |
|||
1
Рэйв
07.09.11
✎
17:18
|
ВЫБОР
КОГДА Вид=&ЗаГородом ТОГДА Адрес ИНАЧЕ "" КОНЕЦ КАК ЗаГородом, ВЫБОР КОГДА Вид=&ВГороде ТОГДА Адрес ИНАЧЕ "" КОНЕЦ КАК ВГороде А в ресурсы идут только числовые данные. |
|||
2
unregistered
07.09.11
✎
17:19
|
(0) >> отобразить в двух колонках по разным условиям
Условия сформулируй конкретнее. |
|||
3
chingiz
07.09.11
✎
17:26
|
(2) Ну в справочнике есть адреса. В одной колонке нужно отобразить все кроме аэропорта(в городе), в другой только аэропорт(считается за городом).
(1) самое смешное, что нужно выбирать по аэропорту, но его в предопределенных нет и заносить туда запрещено. Так что так не выйдет :\ |
|||
4
unregistered
07.09.11
✎
17:29
|
(3) Сформулируй как определить аэропорт/не аэропорт.
Что такое "аэропорт" - строка, элемент справочника (какого). |
|||
5
chingiz
07.09.11
✎
17:32
|
Строка(заполнено пользователем) справочника ТипыМест(перечень видов адресов - аэропорт, вокзал, автомойка и т.д.)
|
|||
6
chingiz
07.09.11
✎
17:34
|
Ну и чтобы понятнее было - когда документ формируется, там выбирается конкретный адрес и его "ТипыМест". И выводя данные регистра накоплений я беру это поле через регистратор.
|
|||
7
unregistered
07.09.11
✎
17:43
|
В справочнике ТипыМест добавиь реквизит ЗаГородом тип булево. проставить эту галку у всех типов мест, которые загородом.
Стопудово потом кроме аэропорта появятся новые загородные места. |
|||
8
unregistered
07.09.11
✎
17:49
|
Можно конечно попытаться через ТипМеста.Наименование ПОДОБНО "аэропорт", но достаточно будет какому-нибудь пользователь пусть даже случайно поменять наименование типа места, отчет перестанет работать.
|
|||
9
chingiz
07.09.11
✎
17:55
|
(7) в том и соль, что нельзя ничего не менять...это учебное задание. А про (8) это где применять?
|
|||
10
chingiz
07.09.11
✎
17:59
|
Вот наглядно кому лень разбираться. ХарактерПоездок - как раз наше поле, только нужно его разделить как нарисова в пеинте :Р
http://photo.qip.ru/show/3oyyb-1k9ww5/full_image/ |
|||
11
Fragster
гуру
07.09.11
✎
18:08
|
(1) про только числовые ресурсы ты пошутил?
|
|||
12
unregistered
07.09.11
✎
18:13
|
(9) Например:
ВЫБОР КОГДА ТипМеста.Наименование ПОДОБНО "аэропорт" ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ЗаГородом, ВЫБОР КОГДА ТипМеста.Наименование ПОДОБНО "аэропорт" ТОГДА 0 ИНАЧЕ 1 КОНЕЦ КАК Город, |
|||
13
Fragster
гуру
07.09.11
✎
19:13
|
почему бы не сделать то, что хочет автор, пользовательским полем в режиме предприятия?
|
|||
14
chingiz
08.09.11
✎
09:50
|
(12) подобно не работает, пишет неверные параметры...по ходу нужно в скобках, но тогда поле не найдено.
(13) не подскажешь как? Вчера потерял 3 часа на этом и сегодня опять сижу... |
|||
15
asady
08.09.11
✎
09:56
|
(1) в ресурсы идут только числовые выражение - это не так.
|
|||
16
chingiz
09.09.11
✎
09:09
|
Отчет уже практически доделал и остались только эти колонки, так что все еще актуально :\
|
|||
17
chingiz
09.09.11
✎
14:18
|
В принципе разобрался как решить, но поля почему-то не появляются в доступных :\
НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1; Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | ТипыМестПодачи.Ссылка |ИЗ | Справочник.ТипыМестПодачи КАК ТипыМестПодачи"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ПолеНов = Наборданных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); ПолеНов.Поле = Выборка.Ссылка.Наименование; ПолеНов.ПутьКДанным = "ХарактерПоездок."+Выборка.Ссылка; ПолеНов.Заголовок = Выборка.Ссылка.Наименование; КонецЦикла; Настройки = КомпоновщикНастроек.Настройки; КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); |
|||
18
chingiz
12.09.11
✎
11:10
|
Дамы и господа, подкиньте подсказку или линк на подобную тему. до сих пор не решено :\
|
|||
19
PR
15.09.11
✎
10:19
|
Правильный ответ в (1).
|
|||
20
chingiz
15.09.11
✎
10:28
|
(19) отличный ответ. Может тему для начала прочтете, прежде чем глупости писать и закрывать нужную тему?
|
|||
21
PR
15.09.11
✎
10:33
|
(20) Элемент не должен быть предопределенным, чтобы его запихнуть в параметр.
Тему прочел. Пост (17) говорит о том, что текст запроса генерится программно, зачем не понял, что мешает его сделать сразу? Поля не появляются в доступных может из-за неопределенности типа поля. А по поводу закрытия темы прочти https://1cers.ru/rules.php. |
|||
22
chingiz
15.09.11
✎
10:41
|
(21) Извините, с 20 погорячился. Просто вместо советов по алгоритму тут иногда слышишь только подколы 8) Конечно кто-то мог сказать, что для программного добавления ДоступныхПолейВыбора нужно заменить запрос, добавить параметры, поля и поля итога...я потратил 3 дня на выяснение этого, и итоге разобрался сам....но сколько времени убил :(
Генерится программно, ну так сказали сделать. Если пользователь добавит еще элементы, то это все должно автоматически добавляться. ВЫБОР КОГДА ВыполнениеЗаказовБортами.Регистратор.АдресПодачиМестоПодачи.ТипМестаПодачи <> &ТипМеста3 ТОГДА КОЛИЧЕСТВО(ВыполнениеЗаказовБортами.Регистратор.АдресПодачиМестоПодачи.ТипМестаПодачи) КОНЕЦ КАК Город Для истории мб кому пригодится. Запрос не скидывал, там просто вставляются поля выбора\группировки и соединения. НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1; Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | ТипыМестПодачи.Ссылка |ИЗ | Справочник.ТипыМестПодачи КАК ТипыМестПодачи"; Выборка = Запрос.Выполнить().Выбрать(); ВремПоля=""; ВремГрупп=""; ВремЗапрос=""; ВремВыбор=""; НомерТекПеременной = 0; Пока Выборка.Следующий() Цикл НомерТекПеременной = НомерТекПеременной + 1; ТекПеременнаяИмени = "ТипМеста" + НомерТекПеременной; ПараметрыСхемы = СхемаКомпоновкиДанных.Параметры.Добавить(); ПараметрыСхемы.Имя = ТекПеременнаяИмени; ПараметрыСхемы.Заголовок = ТекПеременнаяИмени; ПараметрыСхемы.Значение = Выборка.Ссылка; ПараметрыСхемы.ОграничениеИспользования = Истина; ПараметрыСхемы.ВключатьВДоступныеПоля = Ложь; НовоеПоле = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); НовоеПоле.Поле = ТекПеременнаяИмени + "ТипМеста"; НовоеПоле.ПутьКДанным = "ХарактерПоездок." + ТекПеременнаяИмени; НовоеПоле.Заголовок = Выборка.Ссылка.Наименование; ПолеИтоги =СхемаКомпоновкиДанных.ПоляИтога.Добавить(); ПолеИтоги.ПутьКДанным = "ХарактерПоездок."+ТекПеременнаяИмени; ПолеИтоги.Выражение = "Количество(ХарактерПоездок."+ТекПеременнаяИмени+")"; ВремПоля = ВремПоля + "," + Символы.ПС + ТекПеременнаяИмени + ".ТипМеста КАК " + ТекПеременнаяИмени + "ТипМеста"; ВремГрупп = ВремГрупп + "," + Символы.ПС + ТекПеременнаяИмени + ".ТипМеста"; ВремВыбор= ВремВыбор + "," + Символы.ПС + "ВыполнениеЗаказовБортами."+ ТекПеременнаяИмени + "ТипМеста"; ВремЗапрос=ВремЗапрос+ " | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ВыполнениеЗаказовБортами.Регистратор.АдресПодачиМестоПодачи.ТипМестаПодачи КАК ТипМеста, | ВыполнениеЗаказовБортами.Регистратор.Ссылка КАК РегистраторСсылка | ИЗ | РегистрНакопления.ВыполнениеЗаказовБортами КАК ВыполнениеЗаказовБортами | ГДЕ | ВыполнениеЗаказовБортами.Регистратор.АдресПодачиМестоПодачи.ТипМестаПодачи = &" + ТекПеременнаяИмени + ") КАК " + ТекПеременнаяИмени + " | ПО ВыполнениеЗаказовБортами.Регистратор.Ссылка = " + ТекПеременнаяИмени + ".РегистраторСсылка" ; |
|||
23
PR
15.09.11
✎
10:51
|
(22) >>Если пользователь добавит еще элементы, то это все должно автоматически добавляться
Тогда да, программно. Хотя я бы в справочнике сделал новый реквизит, который при записи заполнялся бы нужным значением. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |