Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1
Есть маршрутный лист на сегодня выделяеться жирным сколько нужно денег за него, а есть долги до сегодня вот бы их в одну строку а не все накладные с сумами. подскажите как реализовать,уже голову сломил) Если удалить само поле наклданая тогда да будет одна строка. но тут нужно имено которая жырная а остальные уже нет
Запрос = Новый Запрос(); Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов); Запрос.Текст = "ВЫБРАТЬ | МаршрутныйЛистПродажи.Ссылка КАК Ссылка, | МаршрутныйЛистПродажи.Дата КАК ДатаДокумента, | МаршрутныйЛистПродажи.Номер КАК Номер, | МаршрутныйЛистПродажи.ДополнительнаяИнформация КАК ДополнительнаяИнформация, | МаршрутныйЛистПродажи.ГруппаКлиентов КАК ГруппаКлиентов |ИЗ | Документ.МаршрутныйЛистПродажи КАК МаршрутныйЛистПродажи |ГДЕ | МаршрутныйЛистПродажи.Ссылка В(&МассивОбъектов) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | МаршрутныйЛистПродажиЗаказы.Ссылка КАК Ссылка, | МаршрутныйЛистПродажиЗаказы.РасходнаяНакладная КАК РасходнаяНакладная, | МаршрутныйЛистПродажиЗаказы.РасходнаяНакладная.Номер КАК НомерРН, | МаршрутныйЛистПродажиЗаказы.РасходнаяНакладная.Дата КАК ДатаРН, | МаршрутныйЛистПродажиЗаказы.РасходнаяНакладная.Вес КАК Вес, | МаршрутныйЛистПродажиЗаказы.РасходнаяНакладная.Объем КАК Объем, | МаршрутныйЛистПродажиЗаказы.РасходнаяНакладная.Контрагент КАК Контрагент, | 0 КАК СуммаДолга, | 1 КАК ПринадлежитМаршруту, | МаршрутныйЛистПродажиЗаказы.РасходнаяНакладная.СуммаДокумента КАК СуммаОтгрузки, | МаршрутныйЛистПродажиЗаказы.Ссылка.ГруппаКлиентов КАК ГруппаКлиентов |ПОМЕСТИТЬ ВТ_Маршрут |ИЗ | Документ.МаршрутныйЛистПродажи.Заказы КАК МаршрутныйЛистПродажиЗаказы |ГДЕ | МаршрутныйЛистПродажиЗаказы.Ссылка В(&МассивОбъектов) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Контрагенты.Ссылка КАК Контрагент, | МаршрутныйЛистПродажи.Ссылка КАК МЛист |ПОМЕСТИТЬ ВТ_КлиентыМЛиста |ИЗ | Справочник.Контрагенты КАК Контрагенты | ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛистПродажи КАК МаршрутныйЛистПродажи | ПО (МаршрутныйЛистПродажи.ГруппаКлиентов = Контрагенты.Родитель | ИЛИ МаршрутныйЛистПродажи.ГруппаКлиентов = Контрагенты.Родитель.Родитель | ИЛИ МаршрутныйЛистПродажи.ГруппаКлиентов = Контрагенты.Родитель.Родитель.Родитель | ИЛИ МаршрутныйЛистПродажи.ГруппаКлиентов = Контрагенты.Родитель.Родитель.Родитель.Родитель | ИЛИ МаршрутныйЛистПродажи.ГруппаКлиентов = Контрагенты.Родитель.Родитель.Родитель.Родитель.Родитель) |ГДЕ | Контрагенты.ЭтоГруппа = ЛОЖЬ | И МаршрутныйЛистПродажи.Ссылка В(&МассивОбъектов) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | РасчетыСПокупателямиОстатки.Контрагент КАК Контрагент, | РасчетыСПокупателямиОстатки.Документ КАК Документ, | МАКСИМУМ(РасчетыСПокупателямиОстатки.СуммаОстаток) КАК СуммаОстаток, | СУММА(0) КАК Вес, | СУММА(0) КАК Объем, | СУММА(0) КАК ПринадлежитМаршруту, | СУММА(0) КАК СуммаОтгрузки, | ВТ_КлиентыМЛиста.МЛист КАК Ссылка |ПОМЕСТИТЬ ВТ_Долги |ИЗ | ВТ_КлиентыМЛиста КАК ВТ_КлиентыМЛиста | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСПокупателями.Остатки(, ) КАК РасчетыСПокупателямиОстатки | ПО ВТ_КлиентыМЛиста.Контрагент = РасчетыСПокупателямиОстатки.Контрагент | |СГРУППИРОВАТЬ ПО | РасчетыСПокупателямиОстатки.Контрагент, | РасчетыСПокупателямиОстатки.Документ, | ВТ_КлиентыМЛиста.МЛист |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_Маршрут.Ссылка КАК Ссылка, | ВТ_Маршрут.РасходнаяНакладная КАК РасходнаяНакладная, | СУММА(ВТ_Маршрут.Вес) КАК Вес, | СУММА(ВТ_Маршрут.Объем) КАК Объем, | ВТ_Маршрут.СуммаДолга КАК СуммаДолга, | ВТ_Маршрут.Контрагент КАК Контрагент, | ВТ_Маршрут.ПринадлежитМаршруту КАК ПринадлежитМаршруту, | ВТ_Маршрут.СуммаОтгрузки КАК СуммаОтгрузки |ПОМЕСТИТЬ ВТ |ИЗ | ВТ_Маршрут КАК ВТ_Маршрут | |СГРУППИРОВАТЬ ПО | ВТ_Маршрут.Ссылка, | ВТ_Маршрут.РасходнаяНакладная, | ВТ_Маршрут.Контрагент, | ВТ_Маршрут.СуммаДолга, | ВТ_Маршрут.ПринадлежитМаршруту, | ВТ_Маршрут.СуммаОтгрузки | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВТ_Долги.Ссылка, | ВТ_Долги.Документ, | ВТ_Долги.Вес, | ВТ_Долги.Объем, | ВТ_Долги.СуммаОстаток, | ВТ_Долги.Контрагент, | ВТ_Долги.ПринадлежитМаршруту, | ВТ_Долги.СуммаОтгрузки |ИЗ | ВТ_Долги КАК ВТ_Долги |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ.Ссылка КАК Ссылка, | ВТ.Ссылка.Дата КАК ДатаДок, | ВТ.РасходнаяНакладная КАК РасходнаяНакладная, | СУММА(ВТ.Вес) КАК Вес, | СУММА(ВТ.Объем) КАК Объем, | СУММА(ВТ.СуммаДолга) КАК СуммаКОплате, | ВТ.Контрагент КАК Контрагент, | СУММА(ВТ.ПринадлежитМаршруту) КАК ПринадлежитМаршруту, | СУММА(ВТ.СуммаОтгрузки) КАК СуммаОтгрузки // | ВТ.РасходнаяНакладная.Дата КАК ДатаНакладной |ИЗ | ВТ КАК ВТ | |СГРУППИРОВАТЬ ПО | ВТ.Ссылка, | ВТ.РасходнаяНакладная, | ВТ.Контрагент, | ВТ.Ссылка.Дата | |УПОРЯДОЧИТЬ ПО | Ссылка, | Контрагент, // | ДатаНакладной УБЫВ, | РасходнаяНакладная УБЫВ";
Результат = Запрос.ВыполнитьПакет(); ВыборкаДокументов = Результат[0].Выбрать(); ТаблицаЗаказов = Результат[5].Выгрузить();
ТаблицаЗаказов.Колонки.Добавить("ДатаНакладной"); Для каждого СтрокаЗаказ Из ТаблицаЗаказов Цикл Попытка СтрокаЗаказ.ДатаНакладной = СтрокаЗаказ.РасходнаяНакладная.Дата; Исключение СтрокаЗаказ.ДатаНакладной = Дата(2020,01,01); КонецПопытки; КонецЦикла; ТаблицаЗаказов.Сортировать("Ссылка,Контрагент,ДатаНакладной Убыв,РасходнаяНакладная Убыв");
списокВидДок = Новый Соответствие; списокВидДок.Вставить(Тип("ДокументСсылка.РасходнаяНакладная"),"Расх.Накл. №"); списокВидДок.Вставить(Тип("ДокументСсылка.ПоступлениеВКассу"),"Пост. в Кассу №"); списокВидДок.Вставить(Тип("ДокументСсылка.ПоступлениеНаСчет"),"Пост. в Банк №"); списокВидДок.Вставить(Тип("ДокументСсылка.ПриходнаяНакладная"),"Возвр.Накл. №");
Пока ВыборкаДокументов.Следующий() Цикл ТекущийДокумент = ВыборкаДокументов.Ссылка;
Если НЕ ПервыйДокумент Тогда ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ПервыйДокумент = Ложь;
Вес = 0; Объем = 0; СуммаОтгрузки=0; КвоНакладных=0; ЖирныйШрифт = Новый Шрифт(, , Истина); Обычный = Новый Шрифт(, , Ложь); НачКлиент = Справочники.Контрагенты.ПустаяСсылка(); ПерваяСтрока = Истина; Для каждого СтрокаЗаказ Из СтрокиЗаказы Цикл Если НЕ ЗначениеЗаполнено(СтрокаЗаказ.Контрагент) Тогда Продолжить; КонецЕсли; ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("Контрагент", СтрокаЗаказ.Контрагент); ПараметрыОтбора.Вставить("Ссылка",ВыборкаДокументов.Ссылка); НайденныеДолги = ТаблицаДолгиКлиентов.НайтиСтроки(ПараметрыОтбора); ДолгКлиента=0; Для каждого СтрокаДолга Из НайденныеДолги Цикл ДолгКлиента = СтрокаДолга.СуммаКОплате; КонецЦикла; //ДолгКлиента = ТаблицаДолгиКлиентов.Найти(СтрокаЗаказ.Контрагент,"Контрагент").СуммаКОплате; Если НЕ НачКлиент = СтрокаЗаказ.Контрагент И НЕ ПерваяСтрока Тогда ОбластьМакета.Параметры.Заполнить(Новый Структура("печКлиент,НомерНакладной,ДатаНакладной,СуммаКОплате")); ТабличныйДокумент.Вывести(ОбластьМакета);
Если СтрокаЗаказ.ПринадлежитМаршруту = 1 Тогда ОбластьМакета.Область("СтрокаТаблицы").Шрифт = ЖирныйШрифт; Иначе ОбластьМакета.Область("СтрокаТаблицы").Шрифт = Обычный; КонецЕсли;
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1
alex-l1904 @ Вчера, 17:15
,
а если убрать те что серые и оставить только которые жырним что переписать?) чтобы не переписывать так сказать запрос. по сути нужно только жирным которые
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1
alex-l1904 @ Вчера, 17:15
, я не можу згорнути то тип що не ПринадлежитМаршруту там же накладны разные
Сделал так на скд норм а при печати ругаеться на неверное имя колонки ТаблицаЗаказов.Сортировать("Ссылка,Контрагент,ДатаНакладной Убыв,РасходнаяНакладная Убыв");
ВЫБРАТЬ МаршрутныйЛистПродажи.Ссылка КАК Ссылка, МаршрутныйЛистПродажи.Дата КАК ДатаДокумента, МаршрутныйЛистПродажи.Номер КАК Номер, МаршрутныйЛистПродажи.ДополнительнаяИнформация КАК ДополнительнаяИнформация, МаршрутныйЛистПродажи.ГруппаКлиентов КАК ГруппаКлиентов ИЗ Документ.МаршрутныйЛистПродажи КАК МаршрутныйЛистПродажи ГДЕ МаршрутныйЛистПродажи.Ссылка В(&МассивОбъектов) ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МаршрутныйЛистПродажиЗаказы.Ссылка КАК Ссылка, МаршрутныйЛистПродажиЗаказы.РасходнаяНакладная КАК РасходнаяНакладная, МаршрутныйЛистПродажиЗаказы.РасходнаяНакладная.Номер КАК НомерРН, МаршрутныйЛистПродажиЗаказы.РасходнаяНакладная.Дата КАК ДатаРН, МаршрутныйЛистПродажиЗаказы.РасходнаяНакладная.Вес КАК Вес, МаршрутныйЛистПродажиЗаказы.РасходнаяНакладная.Объем КАК Объем, МаршрутныйЛистПродажиЗаказы.РасходнаяНакладная.Контрагент КАК Контрагент, 0 КАК СуммаДолга, 1 КАК ПринадлежитМаршруту, МаршрутныйЛистПродажиЗаказы.РасходнаяНакладная.СуммаДокумента КАК СуммаОтгрузки, МаршрутныйЛистПродажиЗаказы.Ссылка.ГруппаКлиентов КАК ГруппаКлиентов ПОМЕСТИТЬ ВТ_Маршрут ИЗ Документ.МаршрутныйЛистПродажи.Заказы КАК МаршрутныйЛистПродажиЗаказы ГДЕ МаршрутныйЛистПродажиЗаказы.Ссылка В(&МассивОбъектов) ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Контрагенты.Ссылка КАК Контрагент, МаршрутныйЛистПродажи.Ссылка КАК МЛист ПОМЕСТИТЬ ВТ_КлиентыМЛиста ИЗ Справочник.Контрагенты КАК Контрагенты ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛистПродажи КАК МаршрутныйЛистПродажи ПО (МаршрутныйЛистПродажи.ГруппаКлиентов = Контрагенты.Родитель ИЛИ МаршрутныйЛистПродажи.ГруппаКлиентов = Контрагенты.Родитель.Родитель ИЛИ МаршрутныйЛистПродажи.ГруппаКлиентов = Контрагенты.Родитель.Родитель.Родитель ИЛИ МаршрутныйЛистПродажи.ГруппаКлиентов = Контрагенты.Родитель.Родитель.Родитель.Родитель ИЛИ МаршрутныйЛистПродажи.ГруппаКлиентов = Контрагенты.Родитель.Родитель.Родитель.Родитель.Родитель) ГДЕ Контрагенты.ЭтоГруппа = ЛОЖЬ И МаршрутныйЛистПродажи.Ссылка В(&МассивОбъектов) ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РасчетыСПокупателямиОстатки.Контрагент КАК Контрагент, РасчетыСПокупателямиОстатки.Документ КАК Документ, МАКСИМУМ(РасчетыСПокупателямиОстатки.СуммаОстаток) КАК СуммаОстаток, СУММА(0) КАК Вес, СУММА(0) КАК Объем, СУММА(0) КАК ПринадлежитМаршруту, СУММА(0) КАК СуммаОтгрузки, ВТ_КлиентыМЛиста.МЛист КАК Ссылка ПОМЕСТИТЬ ВТ_Долги ИЗ ВТ_КлиентыМЛиста КАК ВТ_КлиентыМЛиста ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСПокупателями.Остатки(, ) КАК РасчетыСПокупателямиОстатки ПО ВТ_КлиентыМЛиста.Контрагент = РасчетыСПокупателямиОстатки.Контрагент
СГРУППИРОВАТЬ ПО РасчетыСПокупателямиОстатки.Контрагент, РасчетыСПокупателямиОстатки.Документ, ВТ_КлиентыМЛиста.МЛист ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Маршрут.Ссылка КАК Ссылка, ВТ_Маршрут.РасходнаяНакладная КАК РасходнаяНакладная, СУММА(ВТ_Маршрут.Вес) КАК Вес, СУММА(ВТ_Маршрут.Объем) КАК Объем, ВТ_Маршрут.СуммаДолга КАК СуммаДолга, ВТ_Маршрут.Контрагент КАК Контрагент, ВТ_Маршрут.ПринадлежитМаршруту КАК ПринадлежитМаршруту, ВТ_Маршрут.СуммаОтгрузки КАК СуммаОтгрузки ПОМЕСТИТЬ ВТ ИЗ ВТ_Маршрут КАК ВТ_Маршрут
СГРУППИРОВАТЬ ПО ВТ_Маршрут.Ссылка, ВТ_Маршрут.РасходнаяНакладная, ВТ_Маршрут.Контрагент, ВТ_Маршрут.СуммаДолга, ВТ_Маршрут.ПринадлежитМаршруту, ВТ_Маршрут.СуммаОтгрузки
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ ВТ_Долги.Ссылка, ВТ_Долги.Документ, ВТ_Долги.Вес, ВТ_Долги.Объем, ВТ_Долги.СуммаОстаток, ВТ_Долги.Контрагент, ВТ_Долги.ПринадлежитМаршруту, ВТ_Долги.СуммаОтгрузки ИЗ ВТ_Долги КАК ВТ_Долги ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Ссылка КАК Ссылка, ВТ.Ссылка.Дата КАК ДатаДок, ВТ.РасходнаяНакладная КАК РасходнаяНакладная, СУММА(ВТ.Вес) КАК Вес, СУММА(ВТ.Объем) КАК Объем, СУММА(ВТ.СуммаДолга) КАК СуммаКОплате, ВТ.Контрагент КАК Контрагент, СУММА(ВТ.ПринадлежитМаршруту) КАК ПринадлежитМаршруту, СУММА(ВТ.СуммаОтгрузки) КАК СуммаОтгрузки ПОМЕСТИТЬ ВТ2 ИЗ ВТ КАК ВТ ГДЕ ВТ.Контрагент = &Контрагент
СГРУППИРОВАТЬ ПО ВТ.Ссылка, ВТ.РасходнаяНакладная, ВТ.Контрагент, ВТ.Ссылка.Дата ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ2.Ссылка КАК Ссылка, ВТ2.ДатаДок КАК ДатаДок, "Старый долг" КАК РасходнаяНакладная, СУММА(ВТ2.Вес) КАК Вес, СУММА(ВТ2.Объем) КАК Объем, СУММА(ВТ2.СуммаКОплате) КАК СуммаКОплате, ВТ2.Контрагент КАК Контрагент, ВТ2.ПринадлежитМаршруту КАК ПринадлежитМаршруту, СУММА(ВТ2.СуммаОтгрузки) КАК СуммаОтгрузки ИЗ ВТ2 КАК ВТ2 ГДЕ ВТ2.ПринадлежитМаршруту = &ПринадлежитМаршруту
СГРУППИРОВАТЬ ПО ВТ2.Ссылка, ВТ2.ДатаДок, ВТ2.Контрагент, ВТ2.ПринадлежитМаршруту
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ ВТ2.Ссылка, ВТ2.ДатаДок, ВТ2.РасходнаяНакладная, ВТ2.Вес, ВТ2.Объем, ВТ2.СуммаКОплате, ВТ2.Контрагент, ВТ2.ПринадлежитМаршруту, ВТ2.СуммаОтгрузки ИЗ ВТ2 КАК ВТ2 ГДЕ ВТ2.ПринадлежитМаршруту = &ПринадлежитМаршруту1
Вес = 0; Объем = 0; СуммаОтгрузки=0; КвоНакладных=0; ЖирныйШрифт = Новый Шрифт(, , Истина); Обычный = Новый Шрифт(, , Ложь); НачКлиент = Справочники.Контрагенты.ПустаяСсылка(); ПерваяСтрока = Истина; Для каждого СтрокаЗаказ Из СтрокиЗаказы Цикл Если НЕ ЗначениеЗаполнено(СтрокаЗаказ.Контрагент) Тогда Продолжить; КонецЕсли; ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("Контрагент", СтрокаЗаказ.Контрагент); ПараметрыОтбора.Вставить("Ссылка",ВыборкаДокументов.Ссылка); НайденныеДолги = ТаблицаДолгиКлиентов.НайтиСтроки(ПараметрыОтбора); ДолгКлиента=0; Для каждого СтрокаДолга Из НайденныеДолги Цикл ДолгКлиента = СтрокаДолга.СуммаКОплате; КонецЦикла; ДолгКлиента = ТаблицаДолгиКлиентов.Найти(СтрокаЗаказ.Контрагент,"Контрагент").СуммаКОплате; Если НЕ НачКлиент = СтрокаЗаказ.Контрагент И НЕ ПерваяСтрока Тогда ОбластьМакета.Параметры.Заполнить(Новый Структура("печКлиент,НомерНакладной,ДатаНакладной,СуммаКОплате")); ТабличныйДокумент.Вывести(ОбластьМакета);
Если СтрокаЗаказ.ПринадлежитМаршруту = 1 Тогда ОбластьМакета.Область("СтрокаТаблицы").Шрифт = ЖирныйШрифт; Иначе ОбластьМакета.Область("СтрокаТаблицы").Шрифт = Обычный; КонецЕсли;
Группа: Пользователи
Сообщений: 67
Спасибо сказали: 11 раз
Рейтинг: 11
Цитата(burza @ 02.06.23, 11:55)
&ПринадлежитМаршруту
це що ? ... в таблиці ВТ_Маршрут вже є всі накладні, які належать до маршруту.
для цих накладних треба отримати залишки. А залишки для всіх інших накладних згорнуть до контрагента. Потім об'єднати, щоб в таблиці були всі які належать до маршруту і одна строка з пустою накладною с залишками для всіх інших.
Группа: Местный
Сообщений: 108
Спасибо сказали: 24 раз
Рейтинг: 22.3
burza @ Вчера, 12:42
, Под отладчиком посмотрите, Я так думаю у Вас 2 условия срабатывает "Если НЕ НачКлиент = СтрокаЗаказ.Контрагент И НЕ ПерваяСтрока Тогда" и "Если ПерваяСтрока Тогда"
Должно быть или в одном условии или вывод после цикла итогового значения.
Условие по Контрагенту должно быть одно.
Сообщение отредактировал andreydv87 - 03.06.23, 11:15
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!