Задача: разработать отчет по остаткам

1. G.P. 11 03.06.20 11:04 Сейчас в теме +5 $m
По любому счету (или регистру) в конфигурации, по которому ведется учет по двум аналитикам (например, материалы и склады), необходимо разработать отчет по остаткам. Вниз должны идти материалы, а вправо склады. Отчет должен формироваться на указанную пользователем дату, с возможностью отбора по материалам и складам. Остатки выводить только по количеству. Если по какому-то из складов нет остатка по выбранному пользователем материалу, то и колонка с наименованием склада не должна выводиться

Отчет должен быть разработан БЕЗ использования СКД (системы компоновки данных), БЕЗ построителя отчета, БЕЗ построителя запроса.
Высылать для проверки можно только отчет (erf), можно добавить несколько скриншотов с результатом работы отчета.

Есть идеи по реализации?
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
16. dhurricane 03.06.20 11:46 Сейчас в теме
(1) Решение задачи Вы можете найти в книге "Язык запросов 1С:Предприятия 8" (Е.Ю.Хрусталева) в "Главе 2. Работа с запросами во встроенном языке", часть "Создание кросс-отчета" (стр. 194). Замените только виртуальную таблицу оборотов остатками.
22. Doreng 27 03.06.20 16:14 Сейчас в теме
(1) Ввести название регистра накопления как в конфигураторе, например - "ТоварыНаСкладах"
Прикрепленные файлы:
ОстатакиХ.epf
31. Ivanov_OM 38 04.06.20 20:16 Сейчас в теме
(1)Отчет получил, где СМ? Что за кидалово?
2. herfis 498 03.06.20 11:08 Сейчас в теме
Дать эту задачу программисту 1С - он сделает.
А если серьезно - то в чем затык, собственно? В СКД на 5 минут работы.
4. ZergKRSK 129 03.06.20 11:16 Сейчас в теме
(2) смахивает на задачу при устройстве на работу....
36. G_106615931735775619725 13.10.23 12:07 Сейчас в теме
(4) Она и есть, мне тоже её сейчас дали )))
3. G.P. 11 03.06.20 11:13 Сейчас в теме +2 $m
Там есть уточнение:
Отчет должен быть разработан БЕЗ использования СКД (системы компоновки данных), БЕЗ построителя отчета, БЕЗ построителя запроса.
6. user856012 13 03.06.20 11:20 Сейчас в теме
(3)
Отчет должен быть разработан БЕЗ использования СКД (системы компоновки данных), БЕЗ построителя отчета, БЕЗ построителя запроса.
...на платформе 7.7?
8. herfis 498 03.06.20 11:25 Сейчас в теме
(3) Значит это проверка элементарных навыков алгоритмизации, работы с запросами и табличным документом.
Рисуешь на форме нужные отборы и параметры, передаешь их в запрос, выгружаешь результат в таблицу значений, получаешь из нее наборы номенклатуры и складов, идешь по ним в цикле (по складам - вложенный), находишь нужные данные на пересечении в ТЗ и формируешь табличный документ слева-направо, сверху-вниз построчно. Кому-то проще сначала транспонировать таблицу значений, чтобы упростить блок вывода в табличный документ. Но как по мне - это лишние телодвижения.
9. G.P. 11 03.06.20 11:36 Сейчас в теме
(8) я не силен в навыках алгоритмизации.
Тому, кто это сделает, и пришлет мне erf, я отдам вознаграждение
15. herfis 498 03.06.20 11:45 Сейчас в теме
(9) Мне это не интересно. Может, кому другому...
(14) Есть такой объект. ПостроительЗапроса. Сейчас редко используется. Но иногда полезен, так как может работать с разными интересными источниками данных.
17. starjevschik 03.06.20 12:27 Сейчас в теме
(9) это не такая маленькая работа, аккуратно сделать вряд ли меньше целого дня работы. Сколько платят?
18. user856012 13 03.06.20 12:53 Сейчас в теме
(17)
Сколько платят?
Дык, 7 $m - видно же. Поторопитесь заработать хотя бы 3 $m, а то потом станет еще меньше. ;)
20. nomad_irk 72 03.06.20 13:10 Сейчас в теме
(9)Зачем браться за задачу, если вы не знаете как она решается и не хотите разбираться, чтобы найти решение?
5sm за все - у кого час работы 2.5sm(150рублей ) - ну пусть делает......
11. G.P. 11 03.06.20 11:39 Сейчас в теме
(8) Номенклатура и склады приведены для примера, задание подразумевает отчет по любым двум аналитикам плана счетов либо регистра
13. G.P. 11 03.06.20 11:40 Сейчас в теме
(11) задание запрещает пользоваться построителем запросов, но не запросами
14. karamazoff 96 03.06.20 11:42 Сейчас в теме
(13)что есть построитель запроса? конструктор? как вы в готовом запросе (тексте) проверите написали -ли его руками или создали конструктором?
Результат в виде табличного документа подойдет?
19. nomad_irk 72 03.06.20 13:04 Сейчас в теме
(14)Построитель запроса - это ПостроительЗапроса <> КонструкторЗапроса.
10. karamazoff 96 03.06.20 11:38 Сейчас в теме
(3)т.е. запросами вообще пользоваться нельзя?
5. пользователь 03.06.20 11:18
Сообщение было скрыто модератором.
...
7. пользователь 03.06.20 11:24
Сообщение было скрыто модератором.
...
12. herfis 498 03.06.20 11:40 Сейчас в теме
Еще встречал интересный вариант, когда формируется две выборки. Одна с итогами по номенклатуре, другая с итогами сначала по складам, а потом по номенклатуре. Тогда можно обойтись только обходом выборок. Вывод строк идет при обходе первой выборки, а вывод колонок - поиском во второй.
Но это было удобно при построении универсальных отчетов на 7.7, где шахматка была одна из опций. А иначе накладно. Все-таки два запроса.
21. Ivanov_OM 38 03.06.20 14:36 Сейчас в теме
Попробуй вот так. Для примера взял регистр накопления ТоварыНаСкладах
Макет рисовать не стал, я думаю знаешь как выводить и присоединять области.
Отбор = Новый Структура;
Отбор.Вставить("Склад",СписокСкладов);
Отбор.Вставить("Номенклатура",СписокНоменклатуры);
ТаблицаОстатков = РегистрыНакопления.ТоварыНаСкладах.Остатки(НаДату,Отбор,"Склад,Номенклатура","Количество");
ТаблицаОстатков.Сортировать("Номенклатура,Склад");
ТаблицаОстатков.Скопировать(ВремТаблица,"Склад");
ВремТаблица.Свернуть("Склад","Количество");
МассивСкладов = ВремТаблица.ВыгрузитьКолонку("Склад");

Таб = Новый ТабличныйДокумент;
//Заполнение шапки
//Выводим область шапки первой колонки (Номенклатура)
Для Сч=1 по МассивСкладов.Количество() Цикл
	//Присоединяем область шапки других колонок (Названия складов)
КонецЦикла;	

ТекущаяНоменклатура = "";
Для Сч=1 По ТаблицаОстатков.Количество() Цикл
	СтрокаТаблицы = ТаблицаОстатков.Получить(Сч);
	Если НЕ СтрокаТаблицы.Номенклатура = ТекущаяНоменклатура Тогда
		//Тут выводим область (Номенклатура)
	Иначе
		//Тут присоединяем область (Количество)
	КонецЕсли;	
        ТекущаяНоменклатура = СтрокаТаблицы.Номенклатура;
КонецЦикла;	
Показать
23. G.P. 11 03.06.20 17:11 Сейчас в теме
(21)
я думаю знаешь как выводить и присоединять области

Спасибо за код. Я нашел пример кода, где выводятся и присоединяются области макета
Но не понятно, как настраивать форму обработки, чтобы на ней появились поля для отбора и кнопки для управления отчетом
Поэтому желательно все таки представить решение в виде erf модуля. За это я готов рассчитаться ;)
24. Ivanov_OM 38 03.06.20 18:08 Сейчас в теме
(23)Налепил на скорую руку, проверить некогда, бегу домой с работы.
Если не заработает - завтра доделаю.
Делал на конфигурации Розница 2.3 УФ
Но в УТ 11.3 такие же регистры. должно заработать
Прикрепленные файлы:
РаспределениеОстатковПоСкладам.erf
25. G.P. 11 04.06.20 13:22 Сейчас в теме
(24)
Налепил на скорую руку

Огромное спасибо!
Адаптировал отчет для использования в УТ, добавил отборы по складу и номенклатуре
Получилось следующее:
Прикрепленные файлы:
РаспределениеОстатковПоСкладам.erf
26. AndroidRu 3 04.06.20 14:10 Сейчас в теме
(25)
ия в УТ, добавил отборы по складу и

(25) Ну во первых строки задвоены, а во вторых не учитывается остаток к отгрузке. Отчет не правильно пока работает. Продолжаем наблюдение)
p/s Предлагаю запрос :)

ВЫБРАТЬ
	|	ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
	|	ТоварыНаСкладахОстатки.Склад КАК Склад,
	|	СУММА(ТоварыНаСкладахОстатки.ВНаличииОстаток) - СУММА(ТоварыНаСкладахОстатки.КОтгрузкеОстаток) КАК Количество
	|ИЗ
	|	РегистрНакопления.ТоварыНаСкладах.Остатки(
	|			&Дата,
	|			ВЫБОР
	|					КОГДА НЕ &Номенклатура = &НоменклатураПустойМассив
	|						ТОГДА Номенклатура В (&Номенклатура)
	|					ИНАЧЕ ИСТИНА
	|				КОНЕЦ
	|				И ВЫБОР
	|					КОГДА НЕ &МассивСкладов = &СкладыПустойМассив
	|						ТОГДА Склад В (&МассивСкладов)
	|					ИНАЧЕ ИСТИНА
	|				КОНЕЦ) КАК ТоварыНаСкладахОстатки
	|
	|СГРУППИРОВАТЬ ПО
	|	ТоварыНаСкладахОстатки.Номенклатура,
	|	ТоварыНаСкладахОстатки.Склад
	|
	|УПОРЯДОЧИТЬ ПО
	|	ТоварыНаСкладахОстатки.Номенклатура,
	|	ТоварыНаСкладахОстатки.Склад;
Показать
27. Ivanov_OM 38 04.06.20 14:57 Сейчас в теме
(26)Так в том то и дело, что нельзя использовать запросы. Так бы в СКД это за минуту лепится.
28. AndroidRu 3 04.06.20 15:18 Сейчас в теме
1. (27) Автор не писал что нельзя использовать запросы.
2. Исправил вашу обработку и все работает правильно. Добавил обработку.
Прикрепленные файлы:
РаспределениеОстатковПоСкладам.erf
29. Ivanov_OM 38 04.06.20 15:38 Сейчас в теме
Вот поправил, все корректно работает
Прикрепленные файлы:
РаспределениеОстатковПоСкладам.erf
30. AndroidRu 3 04.06.20 15:43 Сейчас в теме
32. Arabo_xv 5 05.06.20 11:18 Сейчас в теме
Опять он сам себе заплатил :)
По ходу я оказался прав и не зря не прислал обработку
33. AndroidRu 3 05.06.20 14:19 Сейчас в теме
(32)
е прислал обработк
Это развод какой-то. Иванов за обработку только спасибо получил.
34. Ivanov_OM 38 05.06.20 15:23 Сейчас в теме
(33)Да пусть подавится. Таких гнать надо с инфостарта!!!
35. Arabo_xv 5 05.06.20 19:26 Сейчас в теме
Там есть кнопочка пожаловаться.
Я уже отправил жалобу.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот