Имя: Пароль:
1C
1С v8
Внешний отчет без написания кода
0 badboychik
 
02.02.12
10:48
Не знаю фича это или косяк, но когда пишешь внешний отчет на СКД и используешь параметры, их естественно нельзя задать в конфигураторе. Получается надо делать вместо параметра - отбор. Но при этом вроде как падает производительность.
Или делать параметр доступным для редактирования пользователя, потом в Предприятии делать "Изменить вариант" и заполнять этот параметр вручную, сохранять новый вариант отчета и использовать ЕГО. А еще я так понял эти варианты привязаны к пользователю и все это надо проделать ВСЕМ, кому нужен отчет!

Я хочу чтоб у отчета не было форм и кода в модуле, и чтоб отчет запускался у всех сразу с заполненными параметрами.
Это невозможно или ЧЯДНТ???
1 Maxus43
 
02.02.12
10:49
параметры надо жёсткие задать чтоли? в СКД на закладке параметры указывай жёстко, где трабл?
2 Defender aka LINN
 
02.02.12
10:50
"когда пишешь внешний отчет на СКД и используешь параметры, их естественно нельзя задать в конфигураторе" - бред
"Получается надо делать вместо параметра - отбор. Но при этом вроде как падает производительность" - когда кажется - креститься надо. Атомный бред, в общем.
3 badboychik
 
02.02.12
10:52
да нельзя в конфигураторе выбрать значения из базы - вот трабл! Если заполнить настройки в Предприятии потом сохранить настройки в XML, потом загрузить в СКД в конфигураторе - там видно только GUIDы в поле "Значение"
4 ssh2006
 
02.02.12
10:52
(0) > Я хочу чтоб у отчета не было форм и кода в модуле, и чтоб отчет запускался у всех сразу...

похоже на просьбу к деду морозу
5 Зеленый Кот
 
02.02.12
10:53
:)
6 Defender aka LINN
 
02.02.12
10:53
(3) А при запуске в другой базе что будет - ты, видимо, не потрудился подумать по традиции, да?
В конфигураторе - предопределенные данные, в предприятии - пользовательские. Проще этого я даже не знаю что может быть, но средний одинэснег чего-то такую логику никак не осиливает.
7 badboychik
 
02.02.12
10:54
вы не писали на СКД что ли? В значении параметра можно выбрать только предопределенные значения справочников
8 Defender aka LINN
 
02.02.12
10:54
(7) И это правильно.
9 Зеленый Кот
 
02.02.12
10:55
>> В значении параметра можно выбрать только предопределенные значения справочников

я так и хнал - где-то нае...
10 badboychik
 
02.02.12
10:57
Значит клепаем отчеты в наполовину в конфигураторе, наполовину в пользовательском режиме?
11 mzelensky
 
02.02.12
10:58
(7) ну если ты хочешь применять "параметры" определенные ВСЕГДА и ты заранее знаешь какие именно, то в чем проблема подставить их ПРОГРАММНО скажем при открытии отчета???
12 badboychik
 
02.02.12
10:59
(11) так я этого и хочу избежать
13 Maxus43
 
02.02.12
10:59
да, с чем связано дикое желание "ни одной строчки кода"?
14 mzelensky
 
02.02.12
11:01
(12) ты видимо меня не понял - не ручками в "отборе", а ПРОГРАММНО в "параметры" при открытии отчета пользователем.
15 badboychik
 
02.02.12
11:02
(14) все я понял, я так и делаю
(13) если начинать рулить руками, тогда приходится создавать две формы - управляемую и обычную, в них писать простыню кода

СхемаКомпоновки = ПолучитьМакет("Макет");
Настройки = СхемаКомпоновки.НастройкиПоУмолчанию;
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки));
// Предварительная установка параметров
ПВидыНомДвери    = Новый ПараметрКомпоновкиДанных("ВидыНоменклатурыДвери");
ПДоставка    = Новый ПараметрКомпоновкиДанных("Доставка");
ПРазгрузка    = Новый ПараметрКомпоновкиДанных("Разгрузка");

ЗначениеПараметра = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПВидыНомДвери);
ЗначениеПараметра.Значение = Справочники.ВидыНоменклатуры.НайтиПоКоду("АБЦ000002");
   
ЗначениеПараметра = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПДоставка);
ЗначениеПараметра.Значение = Справочники.Номенклатура.НайтиПоКоду("АБЦ00001545");
   
ЗначениеПараметра = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПРазгрузка);
ЗначениеПараметра.Значение = Справочники.Номенклатура.НайтиПоКоду("АБЦ00001548");
// Теперь зададим отборы
СписокСкладов = Новый СписокЗначений();
СписокСкладов.Добавить(Справочники.Склады.НайтиПоКоду("АБ1000002"));
Настройки.Отбор.Элементы.Очистить();
ОтборПоСкладу = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
  ОтборПоСкладу.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ОтборПоСкладу.ЛевоеЗначение = НОвый ПолеКомпоновкиДанных("Склад");
ОтборПоСкладу.ПравоеЗначение = СписокСкладов;
   
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
16 Maxus43
 
02.02.12
11:02
(14) а ты не прочитал "Я хочу чтоб у отчета не было форм и кода в модуле"
17 Maxus43
 
02.02.12
11:04
кстати, (3) же работает, пофиг что в конфигураторе ты Гуиды видиш, в предприятии то всё норм становится. чем не устраивает?
18 mzelensky
 
02.02.12
11:04
(16) а я хочу чтобы ничего не делать, но все работало само и деньги за это отсыпали лопатой!
19 Maxus43
 
02.02.12
11:05
(18) это другой вопрос уже)
20 Asmody
 
02.02.12
11:06
я один думаю, что за НайтиПоКоду() нужно отрывать руки по ж*пу?
21 badboychik
 
02.02.12
11:07
если параметры сделать открытыми и задавать в Предприятии то все формы создаются сами и отчет можно сделать за 10 минут - надо только схему СКД настроить.
А если писать руками, резко возрастает время создания отчета и снижается гибкость форм
22 mzelensky
 
02.02.12
11:08
(20) а есть другие варианты?
23 mzelensky
 
02.02.12
11:08
(22) + предлагаешь по ГУИДУ искать?!
24 badboychik
 
02.02.12
11:08
(20) а есть альтернатива ? на форму поле выводить все равно не надо чтоб юзера не пугать
25 mzelensky
 
02.02.12
11:09
(21) и как ты себе это представляешь? Данные БАЗЫ в конфигураторе?
26 badboychik
 
02.02.12
11:10
+(24)по коду это еще куда ни шло, я в нашей конфиге видел вообще привязку к наименованию
27 Asmody
 
02.02.12
11:10
(24) завтра какая-нить "умная" голова придумает перекодировать справочники или РБД появится какая-нибудь. И что будет делать твой отчет?
28 Asmody
 
02.02.12
11:11
(23) это без комментариев
29 badboychik
 
02.02.12
11:12
(27) РБД есть, а у справочников вроде бы коды по всем узлам РБД совпадают, не?
30 badboychik
 
02.02.12
11:12
+ в коде всегда можно выкинуть исключение
31 teapot123
 
02.02.12
11:13
(15) в СКД на вкладке Параметры поле Выражение: Справочники.ВидыНоменклатуры.НайтиПоКоду("АБЦ000002")
32 badboychik
 
02.02.12
11:14
(31) хммм... ща проверю!! ))
33 mzelensky
 
02.02.12
11:14
(28) ну как это бе коментариев?! ТЫ сказал ,что НЕЛЬЗЯ искать по коды - за это ты отрываешь руки, а как тогда нужно?!?!?!
34 Asmody
 
02.02.12
11:15
(33) по ссылке
35 Maxus43
 
02.02.12
11:16
(33) это неправильно с точки зрения стандартов разработки 1с. в типовых найди такой код попробуй,
всё должно быть гибче, код элемента - не показатель, может меняться, должны быть более четкие критерии характеризующие данный элемент
36 mzelensky
 
02.02.12
11:17
(34) так тебе же эту самую ссылку найти нужно.

Вот нужно мне в справочнике номенклатуры найти позицию с параметрами:
Наименование - Наим1
Код - Кр09898
Артикул - РАВ987У

Как мне получить ссылку на этот элемент?!
37 teapot123
 
02.02.12
11:17
(35) если это редко изменяемый элемент, организация например, и программист всегда под рукой, почему бы и нет?
38 badboychik
 
02.02.12
11:18
(31) работает! ))) пасиб, умный человек ))
я выражения использую для задания границ периода, мог бы сам догадаться запихать функцию ((
39 Дядя Васька
 
02.02.12
11:18
(33) Ты выше сам писал что в конфигураторе можешь выбрать только предопределенные элементы. Как говорил товарищ Винни - это неспроста...
40 mzelensky
 
02.02.12
11:18
(35) ну я не против, ради бога...в этом случает ответь на (36)
41 Asmody
 
02.02.12
11:18
(36) ссылку не надо искать, ссылку надо хранить! либо см.(35)
42 badboychik
 
02.02.12
11:20
+(38) наверно можно и список значений передавать, если в модуле функцию свою описать, которая ищет и возвращает список номенклатур. Буду теперь так всегда делать )
43 Maxus43
 
02.02.12
11:20
(40) НайтиПоРеквизиту, Артикул. Куда более гуманно чем найти по коду
44 Дядя Васька
 
02.02.12
11:21
(40) Никак не получать. Искать руками в предприятии и сохранять настройку. Когда на основании того же cf сделать новую базу, она у тебя мягко говоря не будет работать.
45 mzelensky
 
02.02.12
11:21
(41) где ты собираешься ее хранить???? Пришел прайс от поставщика вида:

Артикул Наименование

Мне нужно проверить есть ли такие позиции у нас в базе и отсутствующие создать (ну как вариант задачка). Как ты предлагаешь искать позиции??? ПО ССЫЛКЕ - ПО КАКОЙ ССЫЛКЕ??? или ты всем поставщикам будешь рассылать ссылки элементов своего справочника???
46 Дядя Васька
 
02.02.12
11:21
(43) Те же яйца, только в профиль.
47 Дядя Васька
 
02.02.12
11:22
(45) Это не та задача. По сабжу конкретный код элемента в модуле прописан, это и неправильно.
48 Asmody
 
02.02.12
11:23
(45) как твоя истерика коррелирует с задачей ТС? я в (20) говорил про установку параметров запроса (и вообще, чего-либо), а не про поиск данных вообще
49 Maxus43
 
02.02.12
11:23
(46) артикул - условно-постоянная величина вобще, при задаче по прайсам - самое оно.
50 badboychik
 
02.02.12
11:24
До меня тут вообще кто-то понаписал несколько отчетов и ВСТРОИЛ ИХ В ИНТЕРФЕЙС О_О
вместо помещения в "доп. обработки", хотя многие отчеты вообще через типовые можно получить, вот за такое я б карал
51 Дядя Васька
 
02.02.12
11:26
(49) Речь о том что это данные, а не метаданные. Если это загрузка или поиск кода/артикула который ввел пользователь, то все нормально. Но явно в коде его прописывать нельзя. Не будет работать когда сделаешь новую базу.
52 Дядя Васька
 
02.02.12
11:27
(50) В этом как раз ничего страшного. При объединении они никуда не денутся, даже если втупую накатывать.
53 Maxus43
 
02.02.12
11:28
(51) да я понимаю это всё, в (35) ещё писал)
54 badboychik
 
02.02.12
11:48
(52) а когда надо их поменять, приходится обновлять базу, что крайне нежелательно
55 badboychik
 
02.02.12
11:49
кстати ГУИДы не работают - в Предприятии заменяются пустыми значениями
56 Дядя Васька
 
02.02.12
12:00
(54) Почему нежелательно-то? Они что внешние, что в конфе, все равно отдельный объект, который с типовыми не пересекается.
57 Maxus43
 
02.02.12
12:01
(56) наверно потому что РБД, не хочется им лишний раз обновлять впринципе
58 badboychik
 
02.02.12
12:14
(56) эээ... как это все равно?? если внешняя я файлик закинул новый и все, никаких обновлений
59 Maxus43
 
02.02.12
12:16
(58) только непонятно что мешает выгрузить его из конфы и как внешний отчет прикрепить. и из меню убрать. 1 раз обновиш - и радуйся потом что они внешними стали
60 badboychik
 
02.02.12
12:29
(59) воот, так и делаем )
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн