Есть рабочая процедура,которая выводит данные Дата,контрагент,заказ,вес,объем,сумма.
мне надо,чтобы заказы выводились через запятую,а не в отдельной строке. Ни как не получается. пробовала вот так
СтрокаЗаказов=СтрокаЗаказов+СокрЛП(ВыборкаЗаказы.Заказ)+",";
ОбластьСтрока.Параметры.Заказ=СтрокаЗаказов;
Помогите пожалуйста...
мне надо,чтобы заказы выводились через запятую,а не в отдельной строке. Ни как не получается. пробовала вот так
СтрокаЗаказов=СтрокаЗаказов+СокрЛП(ВыборкаЗаказы.Заказ)+",";
ОбластьСтрока.Параметры.Заказ=СтрокаЗаказов;
Помогите пожалуйста...
ТабДок=ЭлементыФормы.ПолеТабличногоДокумента1;
МакетПечать=ПолучитьМакет("Печать_Макет");
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
Шапка=МакетПечать.ПолучитьОбласть("Шапка");
Шапка.Параметры.ДатаНач=_Период;
Шапка.Параметры.ДатаКон=_КонПериод;
ТабДок.Вывести(Шапка);
ЗапросЗаказы = Новый Запрос;
ЗапросЗаказы.Текст = "ВЫБРАТЬ
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес КАК Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем КАК Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма КАК Сумма,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Контрагент КАК Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ДеньОтгрузки КАК Дата,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ.Номер КАК Заказ
|ИЗ
| Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
|ГДЕ
| НЕ ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ПометкаУдаления
|
|СГРУППИРОВАТЬ ПО
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ДеньОтгрузки,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ.Номер
|
|УПОРЯДОЧИТЬ ПО
| Дата,
| Контрагент,
| Заказ
|ИТОГИ ПО
| Дата,
| Контрагент";
Заказы = ЗапросЗаказы.Выполнить();
Выборка=Заказы.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
НомерСтрокиДата = 6;
НомерСтрокиКонтрагент = 6;
ОбластьСтрока = МакетПечать.ПолучитьОбласть("Таблица");
СтрокаЗаказов="";
Пока _Период <= _КонПериод Цикл
ЕстьЗаказыЗаДень = Ложь;
Пока Выборка.НайтиСледующий(_Период, "Дата") Цикл
ЕстьЗаказыЗаДень = Истина;
ВыборкаКонтрагенты = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКонтрагенты.Следующий() Цикл
СтрокЗаказов = 0;
ВыборкаЗаказы = ВыборкаКонтрагенты.Выбрать();
Пока ВыборкаЗаказы.Следующий() Цикл
СтрокЗаказов = СтрокЗаказов + 1;
ОбластьСтрока.Параметры.Заполнить(ВыборкаЗаказы);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
ТабДок.Область(НомерСтрокиКонтрагент, 2, НомерСтрокиКонтрагент + СтрокЗаказов - 1, 2).Объединить();
НомерСтрокиКонтрагент = НомерСтрокиКонтрагент + СтрокЗаказов;
ТабДок.Область(НомерСтрокиДата,1, НомерСтрокиДата + СтрокЗаказов - 1, 1).Объединить();
НомерСтрокиДата = НомерСтрокиДата + СтрокЗаказов;
КонецЦикла;
КонецЦикла;
Если Не ЕстьЗаказыЗаДень Тогда
ОбластьСтрока.Параметры.Заполнить(Новый Структура("Дата, Контрагент, Заказ, Вес, Объем, Сумма", _Период, NULL, NULL, NULL, NULL, NULL));
ТабДок.Вывести(ОбластьСтрока);
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
ПоказатьПрикрепленные файлы:
По теме из базы знаний
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2
- Помощник оформления заказов поставщикам
- Снежинка для запроса
- Автоматизация REST интеграций
- Пример пошагового решения проблемы производительности на базе Postgres SQL с картинками
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Как-то так:
ТабДок=ЭлементыФормы.ПолеТабличногоДокумента1;
МакетПечать=ПолучитьМакет("Печать_Макет");
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
Шапка=МакетПечать.ПолучитьОбласть("Шапка");
Шапка.Параметры.ДатаНач=_Период;
Шапка.Параметры.ДатаКон=_КонПериод;
ТабДок.Вывести(Шапка);
ЗапросЗаказы = Новый Запрос;
ЗапросЗаказы.Текст = "ВЫБРАТЬ
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес КАК Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем КАК Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма КАК Сумма,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Контрагент КАК Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ДеньОтгрузки КАК Дата,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ.Номер КАК Заказ
|ИЗ
| Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
|ГДЕ
| НЕ ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ПометкаУдаления
|
|СГРУППИРОВАТЬ ПО
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ДеньОтгрузки,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ.Номер
|
|УПОРЯДОЧИТЬ ПО
| Дата,
| Контрагент,
| Заказ
|ИТОГИ ПО
| Дата,
| Контрагент";
Заказы = ЗапросЗаказы.Выполнить();
Выборка=Заказы.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
НомерСтрокиДата = 6;
НомерСтрокиКонтрагент = 6;
ОбластьСтрока = МакетПечать.ПолучитьОбласть("Таблица");
СтрокаЗаказов="";
Пока _Период <= _КонПериод Цикл
ЕстьЗаказыЗаДень = Ложь;
Пока Выборка.НайтиСледующий(_Период, "Дата") Цикл
ЕстьЗаказыЗаДень = Истина;
ВыборкаКонтрагенты = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКонтрагенты.Следующий() Цикл
ОбластьСтрока.Параметры.Заполнить(ВыборкаКонтрагенты);
ЗаказыСписок = "";
ВыборкаЗаказы = ВыборкаКонтрагенты.Выбрать();
Пока ВыборкаЗаказы.Следующий() Цикл
ЗаказыСписок = ЗаказыСписок + ?(ЗаказыСписок = "", "", "," + Символ.ПС) + ВыборкаЗаказы.Заказ;
КонецЦикла;
ОбластьСтрока.Параметры.Заказ = ЗаказыСписок;
ТабДок.Вывести(ОбластьСтрока);
НомерСтрокиКонтрагент = НомерСтрокиКонтрагент + 1;
НомерСтрокиДата = НомерСтрокиДата + НомерСтрокиКонтрагент;
КонецЦикла;
ТабДок.Область(НомерСтрокиДата,1, НомерСтрокиДата + НомерСтрокиКонтрагент - 1, 1).Объединить();
КонецЦикла;
Если Не ЕстьЗаказыЗаДень Тогда
ОбластьСтрока.Параметры.Заполнить(Новый Структура("Дата, Контрагент, Заказ, Вес, Объем, Сумма", _Период, NULL, NULL, NULL, NULL, NULL));
ТабДок.Вывести(ОбластьСтрока);
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
Показать
Уберите из цикла
И вставьте
перед
ТабДок.Вывести(ОбластьСтрока);
Пока ВыборкаЗаказы.Следующий() Цикл
СтрокЗаказов = СтрокЗаказов + 1;
ОбластьСтрока.Параметры.Заполнить(ВыборкаЗаказы);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
И вставьте
перед
ТабДок.Область(НомерСтрокиКонтрагент, 2, НомерСтрокиКонтрагент + СтрокЗаказов - 1, 2).Объединить();
(5) Во-первых, Вам нужно в итогах добавить итоговые поля: объем, сумма, вес.
а именно сумму по этим полям, тогда сможете получать общий вес и тп по контрагенту.
Дальше параметры строки заполняете в цикле выборки контрагентов (на этом уровне группировки уже будут суммированные данные по всем заказам в полях "Сумма", "Вес" и "Объем"), а в цикле выборки заказов заполняете только строку заказов в том виде, как вам нужно.
Ну как-то так
|ИТОГИ
|Сумма(Вес),
|Сумма(Сумма),
|Сумма(Объем)
|ПО
| Дата,
| Контрагент";
а именно сумму по этим полям, тогда сможете получать общий вес и тп по контрагенту.
Дальше параметры строки заполняете в цикле выборки контрагентов (на этом уровне группировки уже будут суммированные данные по всем заказам в полях "Сумма", "Вес" и "Объем"), а в цикле выборки заказов заполняете только строку заказов в том виде, как вам нужно.
Пока ВыборкаПоконтаргентам.Следующий() Цикл
//заполняем данные строки
СтрокаЗаказов = "";
Пока выборкаПоЗаказам.Следующий() Цикл
СтрокаЗаказов = СтрокаЗаказов + ВыбркаПоЗаказам.Заказ + ","
КонецЦикла;
//Вставляем строку заказов в данные строки
КонецЦикла
Ну как-то так
Да, (9) прав я упустил еще запрос:
ТабДок=ЭлементыФормы.ПолеТабличногоДокумента1;
МакетПечать=ПолучитьМакет("Печать_Макет");
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
Шапка=МакетПечать.ПолучитьОбласть("Шапка");
Шапка.Параметры.ДатаНач=_Период;
Шапка.Параметры.ДатаКон=_КонПериод;
ТабДок.Вывести(Шапка);
ЗапросЗаказы = Новый Запрос;
ЗапросЗаказы.Текст = "ВЫБРАТЬ
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес КАК Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем КАК Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма КАК Сумма,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Контрагент КАК Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ДеньОтгрузки КАК Дата,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ.Номер КАК Заказ
|ИЗ
| Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
|ГДЕ
| НЕ ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ПометкаУдаления
|
|СГРУППИРОВАТЬ ПО
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ДеньОтгрузки,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ.Номер
|
|УПОРЯДОЧИТЬ ПО
| Дата,
| Контрагент,
| Заказ
|ИТОГИ
| Сумма(Вес),
| Сумма(Объем),
| Сумма(Сумма)
|ПО
| Дата,
| Контрагент";
Заказы = ЗапросЗаказы.Выполнить();
Выборка=Заказы.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
НомерСтрокиДата = 6;
НомерСтрокиКонтрагент = 6;
ОбластьСтрока = МакетПечать.ПолучитьОбласть("Таблица");
Пока _Период <= _КонПериод Цикл
ЕстьЗаказыЗаДень = Ложь;
Пока Выборка.НайтиСледующий(_Период, "Дата") Цикл
ЕстьЗаказыЗаДень = Истина;
ВыборкаКонтрагенты = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКонтрагенты.Следующий() Цикл
ОбластьСтрока.Параметры.Заполнить(ВыборкаКонтрагенты);
ЗаказыСписок = "";
ВыборкаЗаказы = ВыборкаКонтрагенты.Выбрать();
Пока ВыборкаЗаказы.Следующий() Цикл
ЗаказыСписок = ЗаказыСписок + ?(ЗаказыСписок = "", "", "," + Символ.ПС) + ВыборкаЗаказы.Заказ;
КонецЦикла;
ОбластьСтрока.Параметры.Заказ = ЗаказыСписок;
ТабДок.Вывести(ОбластьСтрока);
НомерСтрокиКонтрагент = НомерСтрокиКонтрагент + 1;
КонецЦикла;
ТабДок.Область(НомерСтрокиДата,1, НомерСтрокиДата + НомерСтрокиКонтрагент - 1, 1).Объединить();
НомерСтрокиДата = НомерСтрокиДата + НомерСтрокиКонтрагент;
КонецЦикла;
Если Не ЕстьЗаказыЗаДень Тогда
ОбластьСтрока.Параметры.Заполнить(Новый Структура("Дата, Контрагент, Заказ, Вес, Объем, Сумма", _Период, NULL, NULL, NULL, NULL, NULL));
ТабДок.Вывести(ОбластьСтрока);
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
Показать
(15)
ТабДок=ЭлементыФормы.ПолеТабличногоДокумента1;
МакетПечать=ПолучитьМакет("Печать_Макет");
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
Шапка=МакетПечать.ПолучитьОбласть("Шапка");
Шапка.Параметры.ДатаНач=_Период;
Шапка.Параметры.ДатаКон=_КонПериод;
ТабДок.Вывести(Шапка);
ЗапросЗаказы = Новый Запрос;
ЗапросЗаказы.Текст = "ВЫБРАТЬ
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес КАК Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем КАК Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма КАК Сумма,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Контрагент КАК Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ДеньОтгрузки КАК Дата,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ.Номер КАК Заказ
|ИЗ
| Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
|ГДЕ
| НЕ ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ПометкаУдаления
|
|СГРУППИРОВАТЬ ПО
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ДеньОтгрузки,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ.Номер
|
|УПОРЯДОЧИТЬ ПО
| Дата,
| Контрагент,
| Заказ
|ИТОГИ
| Сумма(Вес),
| Сумма(Объем),
| Сумма(Сумма)
|ПО
| Дата,
| Контрагент";
Заказы = ЗапросЗаказы.Выполнить();
Выборка=Заказы.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
НомерСтрокиДата = 6;
НомерСтрокиКонтрагент = 6;
ОбластьСтрока = МакетПечать.ПолучитьОбласть("Таблица");
СтрокаЗаказов="";
Пока _Период <= _КонПериод Цикл
ЕстьЗаказыЗаДень = Ложь;
Пока Выборка.НайтиСледующий(_Период, "Дата") Цикл
ЕстьЗаказыЗаДень = Истина;
ВыборкаКонтрагенты = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКонтрагенты.Следующий() Цикл
ОбластьСтрока.Параметры.Заполнить(ВыборкаКонтрагенты);
ЗаказыСписок = "";
ВыборкаЗаказы = ВыборкаКонтрагенты.Выбрать();
Пока ВыборкаЗаказы.Следующий() Цикл
ЗаказыСписок = ЗаказыСписок + ?(ЗаказыСписок = "", "", "," + Символы.ПС) + ВыборкаЗаказы.Заказ;
КонецЦикла;
ОбластьСтрока.Параметры.Заказ = ЗаказыСписок;
ТабДок.Вывести(ОбластьСтрока);
НомерСтрокиКонтрагент = НомерСтрокиКонтрагент + 1;
НомерСтрокиДата = НомерСтрокиДата + НомерСтрокиКонтрагент;
КонецЦикла;
ТабДок.Область(НомерСтрокиДата,1, НомерСтрокиДата + НомерСтрокиКонтрагент - 1, 1).Объединить();
КонецЦикла;
Если Не ЕстьЗаказыЗаДень Тогда
ОбластьСтрока.Параметры.Заполнить(Новый Структура("Дата, Контрагент, Заказ, Вес, Объем, Сумма", _Период, NULL, NULL, NULL, NULL, NULL));
ТабДок.Вывести(ОбластьСтрока);
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
Показать
(21) Должно быть так:
НомерСтрокиДата = 6;
ОбластьСтрока = МакетПечать.ПолучитьОбласть("Таблица");
Пока _Период <= _КонПериод Цикл
ЕстьЗаказыЗаДень = Ложь;
Пока Выборка.НайтиСледующий(_Период, "Дата") Цикл
ЕстьЗаказыЗаДень = Истина;
ВыборкаКонтрагенты = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
НомерСтрокиКонтрагент = 0;
Пока ВыборкаКонтрагенты.Следующий() Цикл
ОбластьСтрока.Параметры.Заполнить(ВыборкаКонтрагенты);
ЗаказыСписок = "";
ВыборкаЗаказы = ВыборкаКонтрагенты.Выбрать();
Пока ВыборкаЗаказы.Следующий() Цикл
ЗаказыСписок = ЗаказыСписок + ?(ЗаказыСписок = "", "", "," + Символ.ПС) + ВыборкаЗаказы.Заказ;
КонецЦикла;
ОбластьСтрока.Параметры.Заказ = ЗаказыСписок;
ТабДок.Вывести(ОбластьСтрока);
НомерСтрокиКонтрагент = НомерСтрокиКонтрагент + 1;
КонецЦикла;
ТабДок.Область(НомерСтрокиДата,1, НомерСтрокиДата + НомерСтрокиКонтрагент - 1, 1).Объединить();
НомерСтрокиДата = НомерСтрокиДата + НомерСтрокиКонтрагент;
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот