• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

секции в макете 1с 7.7

  • Автор темы Автор темы maxgross
  • Дата начала Дата начала
Еще момент.
В режиме 1с предприятия, делая отчет, получаю то что показано на последнем рисунке.
Запускаю отладчик, ставлю точку останова на строке, например:
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

Прохожу дальше, получаю
ТЗ.КоличествоСтрок() = 0;
и
Запрос.Группировка(1) = 0.

И ошибку:
Пока Запрос.Группировка(2) = 1 Цикл
{Отчет.ПродажиТоваров.Форма.Модуль(43)}: Не было обращения к старшим уровням выборки.

Как такое возможно? Как влияет режим отладки?
 
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

Прохожу дальше, получаю
ТЗ.КоличествоСтрок() = 0;
и
Запрос.Группировка(1) = 0.

И ошибку:
Пока Запрос.Группировка(2) = 1 Цикл

Как такое возможно?

Ну разве что ТЗ.КоличествоСтрок() = 1 и Запрос.Группировка(1) = 1 не были условиями для вхождения внутрь цикла.
В отладчике открыл старую версию отчета.
Глюки 1Ски

Но у меня такого еще не было ни разу. ;)
 
Да, еще одна штука - но это из разряда шаманства.
Запрос.Группировка(1) несомненно правильно, но я никогда так не пишу, я обращаюсь напрямую к названию группировки, т.е.

Запрос.Группировка("Контрагент");
Запрос.Группировка("Товар");

Точно так же написано в хелповке.
И помнится, у меня что-то долго не получалось, а вылечилось простой заменой цифры на название.
 
Попробовал изменить на названия - не получилось.

Вот небольшая база, где пытаюсь всё это сделать.
 

Вложения

Пока Запрос.Группировка(2)=1 Цикл
Для й=1 по ТЗ.КоличествоСтрок() цикл
ТЗ.ПолучитьСтрокуПоНомеру(й);
Если ТЗ.Контрагент = Запрос.Контрагент тогда
Сумма = Запрос.КоличествоСумма;
Иначе Сумма =0;
КонецЕсли;
Таб.присоединитьСекцию("Номенклатура|Контра");
КонецЦикла;
КонецЦикла;

Вот этот кусочек если не можешь пройти в отладчике, возьми пройди на листике бумаги.
Ты обходишь группировку по контрагентам - два раза, внутри обходишь ТЗ - еще два раза, и все четыре выводишь в таблицу.
В общем, здесь нужно подумать, каким образом отсечь контрагентов, которые не должны быть в выводимой колонке.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab