1с скд нумерация строк в отчете
Нумерация строк в запросе
В тестовой конфигурации в журнале документов необходимо реализовать нумерацию строк в динамическом списке. В журнал входит три документа: "Заявка", "Приходный ордер" и "Расходный ордер". Первоначально форма списка журнала документов выглядит следующим образом:
В принципе, задача легко бы решалась, если список документов мы бы получали в отчете. Но тут дела обстоят иначе.
В отчетах - не проблема!
Создав отчет на системе компоновки данных с получением списка документов, задача решалась бы очень просто. В поля отчета нужно было бы всего-навсего добавить специальное поле "Номер по порядку".
В результате пользователь увидит подобный результат формирования отчета:
Но как быть, если нумерацию нужно получить непосредственно в запросе? Например, это может понадобиться для получения порядкового номера записи в динамическом списке.
Нумерация в запросе
Изменим запрос динамического списка журнала документов следующим образом:
При открытии динамического списка в режиме 1С:Предприятия получаем следующий результат:
Примечание: в примере показан лишь принцип нумерации строк непосредственно в запросе. Если Вы обратили внимание, то на скриншоте выше документы в списке, отсортированные по порядковому номеру строки, "идут" в порядке типов (сначала приходные ордера, затем расходные и т.д.). Это происходит, потому что, используя ссылку для соединения, мы не можем гарантировать, что GUID'ы ссылок будут уникальными. Также нельзя сравнивать ссылки разных типов документов - это приведет к некорректному результату. Можно использовать момент времени или другие поля, определяющие конкретное положение документа с общем списке журнала.
Конечно, используя подобный подход мы усложнили бы запрос к базе данных, плюс ко всему, некоторые возможности динамического списка, важные для работы пользователей, стали бы не доступными (динамическое считывание данных, основная таблица и т.д.), но пример был создан лишь для демонстрации возможности нумерации строк в запросах. Используя этот принцип для решения других задач, например для печатных форм, подобных проблем не возникнет.
Нужно понимать, что использование повторного обращения к таблице документа или журнала документов может отрицательно повлиять на производительность. Оптимальным было бы создание временной таблицы всех выбираемых документов, а затем уже работать с ней. Опять же, все зависит от конкретной задачи!
topitop --> topitopНедавно столкнулся с такой задачей:
Заказчик потребовал создать отчет но что бы в нем были пронумерованы все колонки и строки этого отчета.
Как я понял им нужно это для того что бы отчет можно было сложить в печатном виде по этим номерам (отчет выходит довольно большая простыня).
Поскольку в СКД стандартных методов было не обнаружено мной задача была решена таким образом.
Вот что вышло
Еще бы объединить заголовок первой колонки таблицы и покрасить белые ячейки шапки таблицы (если это не специально так задумано, конечно) и можно доставать с полки пирожок.
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".
Еще бы объединить заголовок первой колонки таблицы и покрасить белые ячейки шапки таблицы (если это не специально так задумано, конечно) и можно доставать с полки пирожок.
Допишите в мой код(извините но мне лень) От меня заказчик этого не требует .
Общий смысл этого даяния считаю более чем раскрытым, кто хочет может модернизировать под себя как угодно.
Читайте также: