Имя: Пароль:
1C
1С v8
Вывод отчета в УФ
,
0 Мисти
 
29.11.12
18:25
{Форма.Форма.Форма(36)}: Ошибка при установке значения атрибута контекста (СписокКолонок)
   ОтчетПоОб=ПечатьНаСервере(Объект.ВыбДата,Объект.ВыбОбъект,Объект.ВыбКонтрагент,Объект.ВыбОрганизация,Объект.ОтборАв,Объект.Сортировка,Объект.СписокКолонок);
по причине:
Нельзя изменять поле, содержащее объект данных формы
Нельзя изменять поле, содержащее объект данных формы
Что она от меня хочет? Где ошибка?
Ругается не в процессе вывода, а при передаче значения в форму.
1 Мисти
 
29.11.12
18:31
Мне сегодня надо сдать хоть какой-то вариант!
2 motkot
 
29.11.12
18:33
Объект - это что за тип?
3 Мисти
 
29.11.12
18:37
(2) Это отчет erf расширение.
4 Мисти
 
29.11.12
18:38
НовСписок= Новый ТаблицаЗначений;
   НовСписок = Объект.СписокКолонок.Скопировать();

{Форма.Форма.Форма(35,19)}: Тип не определен (ТаблицаЗначений)
   НовСписок= Новый <<?>>ТаблицаЗначений; (Проверка: Тонкий клиент)
И так ругается!
Я правильно понимаю,проблема в том, что таблиную часть обработки так просто в отчет не запихнуть?
А как?
5 Мисти
 
29.11.12
18:40
При задании параметров отчета у меня есть табличная часть.
В 7 это был список с пометками.
6 motkot
 
29.11.12
18:41
(4) а можно весь кусок кода посмотреть? точнее функция ПечатьНаСервере не интересна
7 motkot
 
29.11.12
18:42
интересна процедура, где идет вызов "ПечатьНаСервере"
8 kosts
 
29.11.12
18:42
(4) Вроде таблицу значений на клиенте нельзя создавать
9 motkot
 
29.11.12
18:44
(0) вообще узнать бы задачу
10 Мисти
 
29.11.12
18:47
Отчет! Собирает разное-всякое, при запуске отчета пользователь ставит галки - что печатать, а что нет в таблице, ее я и пытаюсь передать в модуль.
Загнать данные в массив? В структуру? В список значений?
По сути это 14 значений да/нет.
11 Мисти
 
29.11.12
18:49
Или изначально можно как-то по-другому, без использования табличной части?
12 motkot
 
29.11.12
18:50
(10) хорошо, посмотри в отладке, какой тип данных у "Объект.СписокКолонок" в функции "ПечатьНаСервере"?
13 motkot
 
29.11.12
18:50
(11) без паники
14 motkot
 
29.11.12
18:57
должно быть ДанныеФормыКоллекция
15 Мисти
 
29.11.12
19:35
(14) Так и есть!
16 Мисти
 
29.11.12
19:36
Туда - вроде как передается, потому что пока у меня в печати были ошибки на строчку
ОтчетПоОб=ПечатьНаСервере(Объект.ВыбДата,Объект.ВыбОбъект,Объект.ВыбКонтрагент,Объект.В.....
ругани не было, а теперь там ошибок нет и ругается в момент возврата значения.
17 Мисти
 
29.11.12
19:52
Нашла глобальную ошибку - у меня в модуле не было
   Возврат(ТабДокумент);
Но это не помогло!
18 Дейл
 
29.11.12
19:57
на сервере пробуй так
Объект.СписокКолонок.Загрузить("ТвояТабЧасть")
19 Дейл
 
29.11.12
19:58
а так кури ЗначениеЗаполненияРеквизитаФормы - вроде так ...
20 Мисти
 
29.11.12
19:58
А мне не надо туда ничего возвращать!
Я и не хочу, это ОНО САМО!
21 Мисти
 
29.11.12
19:59
Возврат(ТабДокумент) - у меня только сам табличный документ возвращается, отчет!
22 Дейл
 
29.11.12
19:59
айм сорри не до конца прочитал ветку
23 Мисти
 
29.11.12
20:01
(22) Спасибо всё равно!
24 Дейл
 
29.11.12
20:03
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
   //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
   ТабДок = Новый ТабличныйДокумент;
   Печать(ТабДок, ПараметрКоманды);

   ТабДок.ОтображатьСетку = Ложь;
   ТабДок.Защита = Ложь;
   ТабДок.ТолькоПросмотр = Ложь;
   ТабДок.ОтображатьЗаголовки = Ложь;
   ТабДок.Показать();
   //}}
КонецПроцедуры

&НаСервере
Процедура Печать(ТабДок, ПараметрКоманды)
   Документы.ОказаниеУслуги.Печать(ТабДок, ПараметрКоманды);
КонецПроцедуры


Посмотри пример может поможет
25 Дейл
 
29.11.12
20:05
не помню как через макет выводить СКД- лучше.
26 Дейл
 
29.11.12
20:09
в модуле менеджера
Процедура Печать(ТабДок, Ссылка) Экспорт
   //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
   Макет = Документы.ОказаниеУслуги.ПолучитьМакет("Печать");
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ОказаниеУслуги.Дата,
   |    ОказаниеУслуги.Клиент,
   |    ОказаниеУслуги.Мастер,
   |    ОказаниеУслуги.Номер,
   |    ОказаниеУслуги.Склад,
   |    ОказаниеУслуги.ПереченьНоменклатуры.(
   |        НомерСтроки,
   |        Номенклатура,
   |        Количество,
   |        Цена,
   |        Сумма
   |    )
   |ИЗ
   |    Документ.ОказаниеУслуги КАК ОказаниеУслуги
   |ГДЕ
   |    ОказаниеУслуги.Ссылка В (&Ссылка)";
   Запрос.Параметры.Вставить("Ссылка", Ссылка);
   Выборка = Запрос.Выполнить().Выбрать();
   

   ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   Шапка = Макет.ПолучитьОбласть("Шапка");
   ОбластьПереченьНоменклатурыШапка = Макет.ПолучитьОбласть("ПереченьНоменклатурыШапка");
   ОбластьПереченьНоменклатуры = Макет.ПолучитьОбласть("ПереченьНоменклатуры");
   ОбластьИтог = Макет.ПолучитьОбласть("Всего");
   ТабДок.Очистить();

   ВставлятьРазделительСтраниц = Ложь;
   Пока Выборка.Следующий() Цикл
       Если ВставлятьРазделительСтраниц Тогда
           ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
       КонецЕсли;

       ТабДок.Вывести(ОбластьЗаголовок);

       Шапка.Параметры.Заполнить(Выборка);
       ТабДок.Вывести(Шапка, Выборка.Уровень());

       ТабДок.Вывести(ОбластьПереченьНоменклатурыШапка);
       ВыборкаПереченьНоменклатуры = Выборка.ПереченьНоменклатуры.Выбрать();
       СуммаИтог = 0;
       Пока ВыборкаПереченьНоменклатуры.Следующий() Цикл
           ОбластьПереченьНоменклатуры.Параметры.Заполнить(ВыборкаПереченьНоменклатуры);
           ТабДок.Вывести(ОбластьПереченьНоменклатуры, ВыборкаПереченьНоменклатуры.Уровень());
           СуммаИтог = СуммаИтог + ВыборкаПереченьНоменклатуры.Сумма;
       КонецЦикла;

       ОбластьИтог.Параметры.ВсегоПоДокументу = СуммаИтог;
       ТабДок.Вывести(ОбластьИтог);

       ВставлятьРазделительСтраниц = Истина;
   КонецЦикла;
   //}}
КонецПроцедуры
27 Мисти
 
29.11.12
20:11
У меня в целом-то получается!
Она мой список колонок есть не хочет.
Буду пока без списка колонок печатать всё подряд - у меня с этим отчетом еще прочих проблем хватает.
28 Мисти
 
29.11.12
20:32
Как быть с колонками-то?
Как нынче (в УФ) множественный отбор изображают?
29 Мисти
 
29.11.12
22:22
ау?
30 Мисти
 
01.12.12
16:19
Как всё-таки список колонок передать в модуль?
Что я сделала не так? Я придумала, как выкрутится, мне по сути нужна только последовательность да-нет-нет-да, так что я передам текст абба..., но хотелось бы знать, как надо-то?
31 Мисти
 
03.12.12
12:27
Так как быть со списком-то, при передаче в модуль объекта?
32 Конфигуратор1с
 
03.12.12
12:30
А чем Вам  СКД не угодил? там можно выбирать колонки и отборы и прочую фигню в быстром доступе
33 Мисти
 
03.12.12
12:31
Уже всё сделано без СКД, тем более, что СКД я и не знаю.
34 Конфигуратор1с
 
03.12.12
12:32
(33)На скд этот отчет занимает пару минут
35 Мисти
 
03.12.12
12:40
(33) Какой такой этот? Там берутся данные из разных регистров, справочников, куча разных условий и т.д.
36 Конфигуратор1с
 
03.12.12
12:42
Ну я о (26)
37 Конфигуратор1с
 
03.12.12
12:44
Ладно. Список колонок это табличная часть этого же отчета?
38 Мисти
 
03.12.12
12:46
Да!
39 Конфигуратор1с
 
03.12.12
12:47
(38)И Вы хотите его получить на сервере?
40 Мисти
 
03.12.12
12:57
Да, а что? Может, эту таблицу значений, которая список колонок нужно во что-то преобразовать (автоматически), а на сервере - обратно развернуть? Или тип изначально нужно было другой задавать? В 7 это было - "список с пометками".
41 Конфигуратор1с
 
03.12.12
13:10
(40)Так на сервере просто пишете для каждого стр из Объект.СПисокКОлонок цикл. Зачем его передавать?
42 Мисти
 
03.12.12
13:32
(41) Не просто на сервере, а в модуле объекта.
У меня как-то там реквизитов формы было не видно, я все как переменные туда передавала! А должно быть видно??
43 Конфигуратор1с
 
03.12.12
13:56
(42)Модуль это дело другое
44 Конфигуратор1с
 
03.12.12
13:57
(42)Ну если вы с клиента вызываете сразу модуль, минуя сервер, тогда через структуру - ключь - имя колонки, значение - булево
45 Конфигуратор1с
 
03.12.12
13:58
(42)Если же с клиента зовете сервере а с него уже модуль объекта, то там можно и через тз
46 Мисти
 
04.12.12
17:21
(45) С клиента - сервер, оттуда - модуль, но не ест!
Может, это заведомо не должна быть таблица значений?