Имя: Пароль:
1C
1С v8
Создание отчета кросс-таблица
0 matthey
 
17.12.24
18:09
Мне нужно создать отчет в конфигураторе 1С: Предприятие 8.3
Я делаю это с помощью внешней обработки. Я создал в форме кнопку и добавил реквизиты НачалоПериода и КонецПериода. Вроде написал код для кнопки "Сформировать", но когда запускаю, то получаю ошибку "Неверное имя колонки"
Вот подробное:
Ошибка при вызове метода контекста (Добавить)
{ВнешняяОбработка.ОтчетПоЗанятостиСпецтехники.Форма.Форма1.Форма(35)}:Таблица.Колонки.Добавить(СтрокаДата); // Добавляем колонку с именем в виде даты
{ВнешняяОбработка.ОтчетПоЗанятостиСпецтехники.Форма.Форма1.Форма(64)}:СформироватьНаСервере();
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Неверное имя колонки
[ОшибкаИспользованияВстроенногоЯзыка]

Участки кода:
Запрос.Текст =
        "ВЫБРАТЬ
        |    Спецтехника,
        |    Период,
        |    Состояние
        |ИЗ
        |    РегистрСведений.ЗанятостьСпецтехники
        |ГДЕ
        |    Период МЕЖДУ &ДатаНачала И &ДатаКонца";


Для Дата = ДатаНачала По ДатаКонца Цикл
        СтрокаДата = Формат(Дата, "ГГГГ-ММ-ДД"); // Заменяем дефисы на подчеркивания
        Таблица.Колонки.Добавить(СтрокаДата); // Добавляем колонку с именем в виде даты
    КонецЦикла;

    // Заполняем таблицу данными
    Для Каждого Строка Из РезультатЗапроса Цикл
        Техника = Строка.Спецтехника;
        Дата = Формат(Строка.Период, "ГГГГ-ММ-ДД");// Форматируем дату как строку // Заменяем дефисы на подчеркивания
        Состояние = Строка.Состояние;
Мне нужно чтобы в отчете в строках были названия спецтехники, в колонках даты в периоде, а поля - состояние
1 Волшебник
 
17.12.24
18:11
Так и не смог заменить дефисы на подчёркивания
2 Волшебник
 
17.12.24
18:12
Это не сработает:
Для Дата = ДатаНачала По ДатаКонца Цикл
3 DrShad
 
17.12.24
18:12
у тебя есть дубли дат, при повторном создании колонки возникает ошибка
4 Волшебник
 
17.12.24
18:12
Параметры запроса не заданы, запрос не выполняется
5 DrShad
 
17.12.24
18:13
ну а вообще все в топку и сделать нормально
6 Волшебник
 
17.12.24
18:14
Неверный обход результата запроса
7 Волшебник
 
17.12.24
18:14
Тупой бот
8 Волшебник
 
17.12.24
18:15
>> реквизиты НачалоПериода и КонецПериода.

А в программном коде они называются по-другому
9 Волшебник
 
17.12.24
18:15
Чушь и враньё
10 matthey
 
17.12.24
18:40
(8)     ДатаНачала = Объект.НачалоПериода;
        ДатаКонца = Объект.КонецПериода;
Я их переопределяю, поэтому с этими переменными все нормально
11 Волшебник
 
17.12.24
18:49
(10) Вы покажите весь программный код, а то мы будем

Вам оставлять участки

ценных комментариев.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший