|
Использование нескольких схем в СКД | ☑ | ||
---|---|---|---|---|
0
ChAlex
28.08.12
✎
11:00
|
2-й день бьюсь - не найду как побороть. Нужно в форме использовать несколько схем компоновок. Менять нужно интерактивно (а не в методе "ПриКомпоновкеРезультата") - что бы можно было работать со схемой (например отключить группировки и т.п.) т.е. задать настройки до формирования отчета. Делаю серверную процедуру:
&НаСервере Процедура ИнициализироватьСхему() Если Отчет.Обороты Тогда СхемаКомпоновкиДанных=Отчеты.ОстаткиНоменклатуры.ПолучитьМакет("СхемаКомпановкиДанныхОбороты"); Иначе СхемаКомпоновкиДанных=Отчеты.ОстаткиНоменклатуры.ПолучитьМакет("СхемаКомпоновкиДанныхОстатки"); КонецЕсли; Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек.Основной.Настройки); Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КонецПроцедуры В результатет схема меняется, но! если открыть форму изменения варианта то список доступных полей остается от основной схемы компоновки. Как результат поля текущей схемы недоступны в отчете и отображаются с красным крестом. И как с этим бороться? |
|||
1
Cube
28.08.12
✎
11:02
|
Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
|
|||
2
Web00001
28.08.12
✎
11:05
|
У меня вот работает:
Процедура СменитьСхему(ИмяСхемы) СтруктураСНастройками = СохранитьПараметры("Заказ,НашСклад,СкладПоставщика"); СхемаКомпоновкиДанных = ПолучитьМакет(ИмяСхемы); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); ЗагрузитьПараметры(СтруктураСНастройками); КонецПроцедуры Процедура ДействияФормыСклад(Кнопка) СменитьСхему("Склад"); КонецПроцедуры |
|||
3
Web00001
28.08.12
✎
11:06
|
(1) точно )
|
|||
4
ChAlex
28.08.12
✎
11:08
|
||||
5
Web00001
28.08.12
✎
11:09
|
да чтож за манера скриншоты лить на файлохранилище?
|
|||
6
Cube
28.08.12
✎
11:10
|
(4) Заархивировал? А то неинтересно.
|
|||
7
ChAlex
28.08.12
✎
11:10
|
(2) - у меня в 2-х схемах есть одинаковые названия полей, но есть и разные (в данном случае ресурсы разные, а реквизиты одинаковые). Меняю схему - схема отчета изменяется - в данном случае отчет должен строиться по оборотам - но вот с полями так как на картинке
|
|||
8
ChAlex
28.08.12
✎
11:11
|
(5) - скажите как залить на форум? - буду лить сюда, только не вижу на экрани ну ничего, как это сделать
|
|||
9
ChAlex
28.08.12
✎
11:11
|
(6) - да она не большая
|
|||
10
Cube
28.08.12
✎
11:12
|
(7) Ты (1) читал? Пробовал? Прочитай и попробуй!
|
|||
11
Cube
28.08.12
✎
11:12
|
(8) Заливай сюда: http://itmages.ru а в посты вставляй ссылки.
|
|||
12
Web00001
28.08.12
✎
11:13
|
(6) и паролем закрыл, на всякий, который скажет когда спросят, но только когда стукнут в аську ответив на вопрос антиспам бота
|
|||
13
ChAlex
28.08.12
✎
11:13
|
(10) - Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек.Основной.Настройки) - а это не тоже самое? Если смущает, что не настройки по умолчанию, то сначала были они, это уже попытки хоть как-то это побороть
|
|||
14
Cube
28.08.12
✎
11:13
|
(9) Я к тому, что зачем качать скрин с хостинга файлов, когда можно по-человечачьи выложить скрин на хостинг изображений?
|
|||
15
ChAlex
28.08.12
✎
11:13
|
(11) ок, буду иметь ввиду
|
|||
16
ChAlex
28.08.12
✎
11:14
|
(14) - да не проблема - просто первое что попалось, что у меня работате. Стоит проксик, в нем что-то режется, что-то нет. Времени на поиск не было
|
|||
17
Cube
28.08.12
✎
11:15
|
(13) УФ?
|
|||
18
Web00001
28.08.12
✎
11:16
|
(11) тут уместнее http://goo.gl/z27Oe
|
|||
19
ChAlex
28.08.12
✎
11:18
|
(17) - да УФ
|
|||
20
Cube
28.08.12
✎
11:27
|
(19) Тогда нужно делать так:
МойОтчет = ДанныеФормыВЗначение(Отчет, Тип("ОтчетОбъект")); МойОтчет.СхемаКомпоновкиДанных = ... МойОтчет.КомпоновщикНастроек = ... ... ЗначениеВДанныеФормы(МойОтчет, Отчет); |
|||
21
ChAlex
28.08.12
✎
11:31
|
(2) {Отчет.ОстаткиНоменклатуры.Форма.ФормаОтчета.Форма(26)}: Ошибка при вызове метода контекста (ДанныеФормыВЗначение)
МойОтчет = ДанныеФормыВЗначение(Отчет, Тип("ОтчетОбъект")); по причине: Недопустимое значение параметра (параметр номер '1') |
|||
22
Cube
28.08.12
✎
11:33
|
(21) Текст процедуры-то давай. Или угадать? :)
|
|||
23
ChAlex
28.08.12
✎
11:35
|
(22) - да тот же что и в (0) только с добавлением рекомендаций в (20):
&НаСервере Процедура ИнициализироватьСхему() МойОтчет = ДанныеФормыВЗначение(Отчет,Тип("ОтчетОбъект")); Если Отчет.Обороты Тогда СхемаКомпоновкиДанных=Отчеты.ОстаткиНоменклатуры.ПолучитьМакет("СхемаКомпановкиДанныхОбороты"); Иначе СхемаКомпоновкиДанных=Отчеты.ОстаткиНоменклатуры.ПолучитьМакет("СхемаКомпоновкиДанныхОстатки"); КонецЕсли; МойОтчет.КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); МойОтчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); ЗначениеВДанныеФормы(МойОтчет, Отчет); КонецПроцедуры |
|||
24
ChAlex
28.08.12
✎
11:35
|
ошибка по первой строку процедуры
|
|||
25
Cube
28.08.12
✎
11:39
|
(23) Это в модуле формы? Тип у переменной "Отчет" какой?
|
|||
26
ChAlex
28.08.12
✎
11:40
|
(25) - ДанныеФормыСтруктура
|
|||
27
ChAlex
28.08.12
✎
11:41
|
(+26) Управляемая форма, тонкий клиент. Етественно пока все в модуле формы
|
|||
28
ChAlex
28.08.12
✎
11:42
|
и почему ошибка - тоже вопрос :)
Глобальный контекст (Global context) ДанныеФормыВЗначение (FormDataToValue) Синтаксис: ДанныеФормыВЗначение(<Объект>, <Тип>) Параметры: <Объект> (обязательный) Тип: ДанныеФормыСтруктураСКоллекцией; ДанныеФормыКоллекция; ДанныеФормыСтруктура; ДанныеФормыДерево. Данные формы. <Тип> (обязательный) Тип: Тип. Тип значения, получаемого из данных формы. Возвращаемое значение: Тип: Произвольный. Описание: Преобразует данные формы в объект прикладного типа. Доступность: Сервер, толстый клиент. Примечание: Нельзя преобразовать в объект типа Табличная часть. |
|||
29
ChAlex
28.08.12
✎
11:44
|
с ошибкой разобрался: надо - ДанныеФормыВЗначение(Отчет,Тип("ОтчетОбъект.ОстаткиНоменклатуры"))
|
|||
30
ChAlex
28.08.12
✎
11:45
|
но результат - тот же!
|
|||
31
Cube
28.08.12
✎
11:45
|
(27) у меня работает: http://storage3.static.itmages.ru/i/12/0828/h_1346139901_5071437_27ea93053d.png
|
|||
32
Cube
28.08.12
✎
11:46
|
(30) Где ты схему-то меняешь? Ты пропустил строку:
МойОтчет.СхемаКомпоновкиДанных = ... |
|||
33
ChAlex
28.08.12
✎
11:47
|
(31) - по-моему потому-что внешний отчет. У меня встроенны
|
|||
34
ChAlex
28.08.12
✎
11:49
|
(32) - да пропустил. Изменил
&НаСервере Процедура ИнициализироватьСхему() МойОтчет = ДанныеФормыВЗначение(Отчет,Тип("ОтчетОбъект.ОстаткиНоменклатуры")); Если Отчет.Обороты Тогда СхемаКомпоновкиДанных=Отчеты.ОстаткиНоменклатуры.ПолучитьМакет("СхемаКомпановкиДанныхОбороты"); Иначе СхемаКомпоновкиДанных=Отчеты.ОстаткиНоменклатуры.ПолучитьМакет("СхемаКомпоновкиДанныхОстатки"); КонецЕсли; МойОтчет.СхемаКомпоновкиДанных=СхемаКомпоновкиДанных; МойОтчет.КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); МойОтчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); ЗначениеВДанныеФормы(МойОтчет, Отчет); КонецПроцедуры Результатт тот-же. |
|||
35
Cube
28.08.12
✎
12:13
|
(34) Блин, и у меня не получается))))
|
|||
36
ChAlex
28.08.12
✎
12:37
|
(35) - я уже упростил до минимума и хотел выложить внешний отчет. Смотрю в отладчике - и по-моему трабл в том, что получаемая СхемаКомпоновкиДанных из макета не содержит никаких доступных полей для выбора!!! Схема компоновки данных отчета - содержит, а из макета нет! Даже из макета основной схемы компоновки отчета!!
|
|||
37
ChAlex
28.08.12
✎
12:45
|
(+35) - а так же не содержат доступных полей выбора и основной вариант схемы!! Это как?!! Мега трабл или фича?
|
|||
38
Cube
28.08.12
✎
12:54
|
(37) У меня, после загрузки другой схемы, в Отчет.КомпоновщикНастроек.Настройки есть доступные поля выбора и они именно из загружаемой схемы.
|
|||
39
Cube
28.08.12
✎
13:00
|
Причем, если вместо строки
ЗначениеВДанныеФормы(МойОтчет, Отчет); написать МойОтчет.СкомпоноватьРезультат(Результат); То отчет прекрасно формируется с новыми настройками, только надпись "Отчет не сформирован" не уходит и пользовательские настройки так и не подгружаются... |
|||
40
ChAlex
28.08.12
✎
13:01
|
(38) - я имею ввиду поля не отчета (они действительно остаются теми, что при открытии основной схемы компоновки), а поля в СхемаКомпоновкиДанных=Отчеты.ОстаткиНоменклатуры.ПолучитьМакет("СхемаКомпановкиДанныхОбороты").НастройкиПоУмолчанию.ДоступныеПоляВыбора.Элементы - они пустые.
|
|||
41
Cube
28.08.12
✎
13:03
|
Уоу! Новая фишка: если в отчете не указывать схему по-умолчанию, то после (34) и нажатия на кнопку "Сформировать" получаем ошибку "Схема компоновки данных не установлена". Это зацепка!
|
|||
42
ChAlex
28.08.12
✎
13:04
|
И возникает тогда вопрос: а какими нах настройками тогда инициализируется компоновщик?
|
|||
43
Cube
28.08.12
✎
13:06
|
(42) Это я к тому, что строкой
МойОтчет.СхемаКомпоновкиДанных = ... Схема не меняется... |
|||
44
ChAlex
28.08.12
✎
13:11
|
(43) - отчасти она то меняется - группировки то изменяются. Но то что не полностью - так это точно
|
|||
45
Cube
28.08.12
✎
13:15
|
(44) Может баг платформы?
|
|||
46
ChAlex
28.08.12
✎
13:15
|
(+43) - Схема меняется, но вот по ЗначениеВДанныеФормы(МойОтчет, Отчет) - в форму не передается!!
|
|||
47
ChAlex
28.08.12
✎
13:17
|
(+46) Смотрю по запросу данных: МойОтчет.СхемаКомпоновкиДанных - запрос меняется, но при последующем входе опять же остается тем, что по умолчанияю!!
|
|||
48
ChAlex
28.08.12
✎
13:22
|
(45) - думаю, что до конца чего-то не продумано. Боюсь придется выкручиваться через повторное открытие формы, но так не хочется таким гемором заниматься...
|
|||
49
Cube
28.08.12
✎
13:25
|
(48) Я думаю, что это косяк платформы... Схему-то поменять получается нельзя...
|
|||
50
ChAlex
28.08.12
✎
13:28
|
(49) - я тоже согласен с этим, Получается схему поменять можно только при выполнении отчета, и естественно использовать только предопределенный вариант настройки, определенный в конфигурации. Предполагаю ответ разработчиков 1С : " а никто не обещал кормить в дороге..." :)))
|
|||
51
Cube
28.08.12
✎
13:33
|
(50) А ты всё же напиши им, пусть работают!)))
|
|||
52
ChAlex
28.08.12
✎
13:38
|
(51) - давно бросил... из-за принципа - я работаю на заказчиков, и при обращении с тем что у вас баг - первый вопрос : номер вашей лицензии : мне что каждый раз звонить к заказчику и спрашивать ее или хранить? - неадоело.
А баг вроде получается обойти! :) ЭтаФорма.УстановитьТекущийВариант("Основной"); Сейчас окончательно проверю |
|||
53
Cube
28.08.12
✎
13:39
|
(52) Я пробовал. Не взлетает так...
Ладно, я сам напишу в 1С, коли так :) |
|||
54
ChAlex
28.08.12
✎
13:40
|
Гы - попспешил. Хотя может что и выгорит. Во всяком случае восстанавливается какие-то значения
|
|||
55
ChAlex
28.08.12
✎
13:40
|
(53) - попробую еще поиграться вариантами
|
|||
56
ChAlex
28.08.12
✎
13:42
|
хотя да не взлетит - тут ведь можно передать только ключ, а ключ относительно текущей схемы, а она неизменилась
|
|||
57
Cube
28.08.12
✎
13:50
|
Письмецо в 1С ушло)
|
|||
58
ChAlex
28.08.12
✎
13:52
|
интересно было бы узнать что ответят :) Спасибо за участие!
|
|||
59
Cube
28.08.12
✎
13:56
|
(58) Если ответят пока ветка в архив не уйдет - напишу)) Но, как показывает практика, процент быстрых ответов очень мал...
|
|||
60
inspam
20.09.12
✎
19:55
|
Апну ветку.
Та же проблема. Может кто решил? |
|||
61
Web00001
21.09.12
✎
01:28
|
вот здесь http://www.spec8.ru/kurs-po-skd-besplatno детально рассказано
|
|||
62
Cube
21.09.12
✎
05:03
|
(60) Ответа от 1С пока нет...
|
|||
63
ChAlex
21.09.12
✎
10:16
|
(61) - что вы говорите! И там рассказано? Ну тогда ткните меня конкретно в то место, где приведено как это сделать. (ибо пересмотрел это видео не единожды в поисках решения)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |