Необходимо склеить комментарий

1. user817897 2 10.05.19 13:04 Сейчас в теме
Ниже привёл запрос по которому у меня сейчас работает, происходит группировка по контрагенту, но мне необходимо сделать так чтобы при группировке, комментарии которые есть в заказах (если один и тот же контрагент) записывались в одну строку


Запрос = Новый Запрос;
	Запрос.Текст =
		"ВЫБРАТЬ
		|	КурсыВалютСрезПоследних.Курс,
		|	КурсыВалютСрезПоследних.Кратность
		|ИЗ
		|	РегистрСведений.КурсыВалют.СрезПоследних(&НаДату, Валюта = &Валюта) КАК КурсыВалютСрезПоследних";
        Валюта=Справочники.Валюты.НайтиПоКоду("840");
	НаДату=ТекущаяДата();
	Запрос.УстановитьПараметр("Валюта", Валюта);
	Запрос.УстановитьПараметр("НаДату", НаДату);

	Результат = Запрос.Выполнить();

	ВыборкаДетальныеЗаписи = Результат.Выбрать();
	

	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	Курс = ВыборкаДетальныеЗаписи.Курс	
	КонецЦикла;
	
	
	ТЧМаршруты2.Очистить();
СуммаБун = 0; 
СуммаУСД = 0; 
СуммаСтрокиРубляПереведенного = 0;
коммент = "";
контрагент = "";

	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ЗаказПокупателя.Ссылка,
		|	ЗаказПокупателя.ВерсияДанных,
		|	ЗаказПокупателя.ПометкаУдаления,
		|	ЗаказПокупателя.Номер,
		|	ЗаказПокупателя.Дата,
		|	ЗаказПокупателя.Проведен,
		|	ЗаказПокупателя.АдресДоставки,
		|	ЗаказПокупателя.ВалютаДокумента,
		|	ЗаказПокупателя.УдалитьВремяНапоминания,
		|	ЗаказПокупателя.ДатаОплаты,
		|	ЗаказПокупателя.ДатаОтгрузки,
		|	ЗаказПокупателя.ДисконтнаяКарта,
		|	ЗаказПокупателя.ДоговорКонтрагента,
		|	ЗаказПокупателя.ИспользоватьПлановуюСебестоимость,
		|	ЗаказПокупателя.ИтогПлановаяСебестоимость,
		|	ЗаказПокупателя.Комментарий,
		|	ЗаказПокупателя.Контрагент,
		|	ЗаказПокупателя.КратностьВзаиморасчетов,
		|	ЗаказПокупателя.КурсВзаиморасчетов,
		|	ЗаказПокупателя.УдалитьНапомнитьОСобытии,
		|	ЗаказПокупателя.Организация,
		|	ЗаказПокупателя.Ответственный,
		|	ЗаказПокупателя.Подразделение,
		|	ЗаказПокупателя.СтруктурнаяЕдиница,
		|	ЗаказПокупателя.СкладГруппа,
		|	ЗаказПокупателя.СуммаВключаетНДС,
		|	ЗаказПокупателя.СуммаДокумента,
		|	ЗаказПокупателя.ТипЦен,
		|	ЗаказПокупателя.УдалитьКонтактноеЛицо,
		|	ЗаказПокупателя.УчитыватьНДС,
		|	ЗаказПокупателя.Грузополучатель,
		|	ЗаказПокупателя.КонтактноеЛицоКонтрагента,
		|	ЗаказПокупателя.УсловиеПродаж,
		|	ЗаказПокупателя.ДополнениеКАдресуДоставки,
		|	ЗаказПокупателя.ДокументОснование,
		|	ЗаказПокупателя.Грузоотправитель,
		|	ЗаказПокупателя.НомерВходящегоДокументаЭлектронногоОбмена,
		|	ЗаказПокупателя.ДатаВходящегоДокументаЭлектронногоОбмена,
		|	ЗаказПокупателя.Статус,
		|	ЗаказПокупателя.Маршрут,
		|	ЗаказПокупателя.Комплектовщик,
		|	ЗаказПокупателя.ГоловнойКонтрагент,
		|	ЗаказПокупателя.Город,
		|	ЗаказПокупателя.Менеджер,
		|	ЗаказПокупателя.ИзмененСМоментаСоздания,
		|	ЗаказПокупателя.КолВоГрузМест,
		|	ЗаказПокупателя.КлассификацияУпаковки,
		|	ЗаказПокупателя.КолВоОшибок,
		|	ЗаказПокупателя.Печатано,
		|	ЗаказПокупателя.КолВоУстановкиРезервов
		|ИЗ
		|	Документ.ЗаказПокупателя КАК ЗаказПокупателя
		|ГДЕ
		|	ЗаказПокупателя.ДатаОтгрузки = &ДатаМаршрута
		|	И ЗаказПокупателя.Маршрут = &МаршрутГород
		|	И ЗаказПокупателя.Ссылка.Проведен";
	
	Запрос.УстановитьПараметр("ДатаМаршрута", ДатаМаршрута);
	Запрос.УстановитьПараметр("МаршрутГород", МаршрутГород);
	
ТаблицаРезультата = запрос.Выполнить().Выгрузить(); 	
ТаблицаКонтрагентов = ТаблицаРезультата.Скопировать(,"Контрагент"); 
ТаблицаКонтрагентов.Свернуть("Контрагент"); 

НомерПервойСтроки = 1;

Для Каждого СтрокаКонтрагента Из ТаблицаКонтрагентов Цикл
    СтрокиТаблицыРезультата = ТаблицаРезультата.НайтиСтроки(Новый Структура("Контрагент", СтрокаКонтрагента.Контрагент));
	Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл
	СтрокаТабличнойЧасти = ТЧМаршруты2.Добавить();
	
		СтрокаТабличнойЧасти.Контрагент                       = СтрокаРезультата.Контрагент;
		СтрокаТабличнойЧасти.СуммаДокумента                   = СтрокаРезультата.СуммаДокумента;
		СтрокаТабличнойЧасти.КолГрузМест                      = СтрокаРезультата.КолВоГрузМест;
		СтрокаТабличнойЧасти.Имя                              = СтрокаРезультата.Контрагент.ИмяГрузополуч;
		СтрокаТабличнойЧасти.Телефон                          = СтрокаРезультата.Контрагент.ТелПриемки;
		СтрокаТабличнойЧасти.ПунктРазгрузки                   = СтрокаРезультата.Контрагент.ПунктРазгрузки;
		СтрокаТабличнойЧасти.ВалютаДокумента                  = СтрокаРезультата.ВалютаДокумента;
		СтрокаТабличнойЧасти.заявки                           = 1;
		СтрокаТабличнойЧасти.УЕ                               ="";
		СтрокаТабличнойЧасти.Рубли                            ="";
		СтрокаТабличнойЧасти.ТТН                              ="";
		//СтрокаТабличнойЧасти.Примечание                       =СтрокаРезультата.Комментарий;
		
		Если СтрокаТабличнойЧасти.ВалютаДокумента = "BYN" тогда
			СтрокаТабличнойЧасти.ТТН = "ТТН";
			СуммаБун=СуммаБун +  СтрокаТабличнойЧасти.СуммаДокумента;
			СтрокаТабличнойЧасти.рубли = 0;		
		Иначе 
			СуммаУСД = СуммаУСД +  СтрокаТабличнойЧасти.СуммаДокумента;
			СтрокаТабличнойЧасти.ТТН = "";
			СтрокаТабличнойЧасти.УЕ = СтрокаТабличнойЧасти.СуммаДокумента ;
			СтрокаТабличнойЧасти.рубли = СтрокаТабличнойЧасти.СуммаДокумента * Курс ;
			
		  КонецЕсли;
		
	Конеццикла;
	ТЧМаршруты2.Свернуть("Контрагент, Имя, Телефон, ПунктРазгрузки, ВалютаДокумента" , "СуммаДокумента, КолГрузМест, УЕ, рубли, заявки, Примечание");
Конеццикла;
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
2. ishelper 10.05.19 13:27 Сейчас в теме +1.5 $m
(1)
необходимо сделать так чтобы при группировке, комментарии которые есть в заказах (если один и тот же контрагент) записывались в одну строку
И что это за строка? Что предполагается с ней делать? Если записывать в строки ТЧМаршруты2, то придется добавить еще один цикл - ведь при обработке первого заказа по каждому контрагенту все комментарии (кроме первого) еще неизвестны.

Примерно так:
СтрокиТаблицыРезультата = ТаблицаРезультата.НайтиСтроки(Новый Структура("Контрагент", СтрокаКонтрагента.Контрагент));
//----------
СтрокаКомментариев="":
Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл 
   СтрокаКомментариев = СтрокаКомментариев + СтрокаРезультата.Комментарий;
КонецЦикла;
//----------
Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл 
СтрокаТабличнойЧасти = ТЧМаршруты2.Добавить();
Показать


Ну, и потом записываем в ТЧМаршруты2 эту строку:
//СтрокаТабличнойЧасти.Примечание =СтрокаРезультата.Комментарий; 
СтрокаТабличнойЧасти.Примечание = СтрокаКомментариев;

Если все это не так, то потрудитесь поставить задачу яснее.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ishelper 10.05.19 13:27 Сейчас в теме +1.5 $m
(1)
необходимо сделать так чтобы при группировке, комментарии которые есть в заказах (если один и тот же контрагент) записывались в одну строку
И что это за строка? Что предполагается с ней делать? Если записывать в строки ТЧМаршруты2, то придется добавить еще один цикл - ведь при обработке первого заказа по каждому контрагенту все комментарии (кроме первого) еще неизвестны.

Примерно так:
СтрокиТаблицыРезультата = ТаблицаРезультата.НайтиСтроки(Новый Структура("Контрагент", СтрокаКонтрагента.Контрагент));
//----------
СтрокаКомментариев="":
Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл 
   СтрокаКомментариев = СтрокаКомментариев + СтрокаРезультата.Комментарий;
КонецЦикла;
//----------
Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл 
СтрокаТабличнойЧасти = ТЧМаршруты2.Добавить();
Показать


Ну, и потом записываем в ТЧМаршруты2 эту строку:
//СтрокаТабличнойЧасти.Примечание =СтрокаРезультата.Комментарий; 
СтрокаТабличнойЧасти.Примечание = СтрокаКомментариев;

Если все это не так, то потрудитесь поставить задачу яснее.
4. user817897 2 10.05.19 13:35 Сейчас в теме
(2)извините,не в строку,а в Комментарий. накину просто Пример что нужно:
1. Контрагент: Вася, СуммаДокумента: 20 руб, Конмментарий: доставка по ул.Вербная 64
2. Контрагент: Вася, СуммаДокумента: 30 руб, Конмментарий: забрать товар по ул. ул.Вербная 69
3. Контрагент: Дима, СуммаДокумента: 10 руб, Конмментарий: ул.Вербная 10
в итоге получить надо:
1. Контрагент: Вася, СуммаДокумента: 50 руб, Конмментарий: доставка по ул.Вербная 64, забрать товар по ул. ул.Вербная 69
2. Контрагент: Дима, СуммаДокумента: 10 руб, Конмментарий: ул.Вербная 10
5. user817897 2 10.05.19 13:40 Сейчас в теме
(2) написал вот так,не прокатило что-то ,точнее вообще комментарий не отобразился
Запрос.УстановитьПараметр("ДатаМаршрута", ДатаМаршрута);
	Запрос.УстановитьПараметр("МаршрутГород", МаршрутГород);
	
//Рез = Запрос.Выполнить();
//	Выборка = Рез.Выбрать();
ТаблицаРезультата = запрос.Выполнить().Выгрузить(); 
ТаблицаКонтрагентов = ТаблицаРезультата.Скопировать(,"Контрагент"); 
ТаблицаКонтрагентов.Свернуть("Контрагент"); 

НомерПервойСтроки = 1;

Для Каждого СтрокаКонтрагента Из ТаблицаКонтрагентов Цикл
    СтрокиТаблицыРезультата = ТаблицаРезультата.НайтиСтроки(Новый Структура("Контрагент", СтрокаКонтрагента.Контрагент));
		
		
		
		
//----------
СтрокаКомментариев="";
Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл 
   СтрокаКомментариев = СтрокаКомментариев + СтрокаРезультата.Комментарий;
КонецЦикла;
//----------
Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл 
СтрокаТабличнойЧасти = ТЧМаршруты2.Добавить();	

	
		СтрокаТабличнойЧасти.Контрагент                       = СтрокаРезультата.Контрагент;
		СтрокаТабличнойЧасти.СуммаДокумента                   = СтрокаРезультата.СуммаДокумента;
		СтрокаТабличнойЧасти.КолГрузМест                      = СтрокаРезультата.КолВоГрузМест;
		СтрокаТабличнойЧасти.Имя                              = СтрокаРезультата.Контрагент.ИмяГрузополуч;
		СтрокаТабличнойЧасти.Телефон                          = СтрокаРезультата.Контрагент.ТелПриемки;
		СтрокаТабличнойЧасти.ПунктРазгрузки                   = СтрокаРезультата.Контрагент.ПунктРазгрузки;
		СтрокаТабличнойЧасти.ВалютаДокумента                  = СтрокаРезультата.ВалютаДокумента;
		СтрокаТабличнойЧасти.заявки                           = 1;
		СтрокаТабличнойЧасти.УЕ                               ="";
		СтрокаТабличнойЧасти.Рубли                            ="";
		СтрокаТабличнойЧасти.ТТН                              ="";
		СтрокаТабличнойЧасти.Примечание = СтрокаКомментариев;
		//СтрокаТабличнойЧасти.Примечание                       =СтрокаРезультата.Комментарий;
		
		Если СтрокаТабличнойЧасти.ВалютаДокумента = "BYN" тогда
			СтрокаТабличнойЧасти.ТТН = "ТТН";
			СуммаБун=СуммаБун +  СтрокаТабличнойЧасти.СуммаДокумента;
			СтрокаТабличнойЧасти.рубли = 0;		
		Иначе 
			СуммаУСД = СуммаУСД +  СтрокаТабличнойЧасти.СуммаДокумента;
			СтрокаТабличнойЧасти.ТТН = "";
			СтрокаТабличнойЧасти.УЕ = СтрокаТабличнойЧасти.СуммаДокумента ;
			СтрокаТабличнойЧасти.рубли = СтрокаТабличнойЧасти.СуммаДокумента * Курс ;
			

		  КонецЕсли;
		
	Конеццикла;
	ТЧМаршруты2.Свернуть("Контрагент, Имя, Телефон, ПунктРазгрузки, ВалютаДокумента" , "СуммаДокумента, КолГрузМест, УЕ, рубли, заявки, Примечание");
Конеццикла;
Показать
6. user817897 2 10.05.19 13:48 Сейчас в теме
(2)из-за вот этой строки оно не выводит
ТЧМаршруты2.Свернуть("Контрагент, Имя, Телефон, ПунктРазгрузки, ВалютаДокумента" , "СуммаДокумента, КолГрузМест, УЕ, рубли, заявки, Примечание");
Как её переделать?
12. user817897 2 10.05.19 14:34 Сейчас в теме
(2)Спасибо большое,сработало,ловите вознаграждение
3. Xershi 1550 10.05.19 13:34 Сейчас в теме
(1) ну если писать кодом, то делаешь дерево по котрагенту, а далее обходя ветки клеишь комментарии.
7. tusv 212 10.05.19 13:49 Сейчас в теме
(1) Как то очень мудрено.
Не проще с итогами да по
То есть Формируем строку по которой группируем
ВЫБРАТЬ
ЗаказПокупателя.Контрагент.ИНН,+"/"+ЗаказПокупателя.Маршрут.Код+ "/"+ЗаказПокупателя.ВалютаДокумента.Код как Группировка
...
ИТОГИ Сумма(СуммаДокумента), Сумма(КолГрузМест) , Максимум(Контрагент) ///ивтд
ПО Группировка
Далее
ВыборкаПоКонтрагенту = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоКонтрагенту.Следующий() Цикл
	НоваяСтрока = Тз.Добавить();
	ЗаполнитьЗначенияСвойств(НоваяСтрока,ВыборкаПоКонтрагенту);
	ВыборкаПрим = ВыборкаПоКонтрагенту.Выбрать();
	Пока ВыборкаПрим.Следующий() Цикл
		НоваяСтрока.Примечание = НоваяСтрока.Примечание + ВыборкаПрим.Комментарий;
	КонецЦикла;	
КонецЦикла;
Показать
8. user817897 2 10.05.19 13:54 Сейчас в теме
(7)не понимаю вашего запроса,можно подробнее?
у меня уровень ещё слабоват)) извините)
9. tusv 212 10.05.19 14:10 Сейчас в теме
(8)Как то так.
Прикрепленные файлы:
10. tusv 212 10.05.19 14:14 Сейчас в теме +0.5 $m
В консольку запросов введете. Поймете о чем я. Все наглядно будет
11. user817897 2 10.05.19 14:33 Сейчас в теме
(10)Спасибо большое вам за помощь, сработал вариант первой записи,написал вот так и прошло
ТЧМаршруты2.Свернуть("Контрагент, Имя, Телефон, ПунктРазгрузки, ВалютаДокумента, Примечание" , "СуммаДокумента, КолГрузМест, УЕ, рубли, заявки");
14. Xershi 1550 10.05.19 14:36 Сейчас в теме
(11) похоже у вас полная каша в голове! Но на безрыбье и рак рыба.
15. user817897 2 10.05.19 14:50 Сейчас в теме
(14) каша это ещё слабо сказано)))
13. user817897 2 10.05.19 14:35 Сейчас в теме
(10)Спасибо и вам за помощь,ловите вознаграждение тоже)
16. user817897 2 10.05.19 17:28 Сейчас в теме
Ещё нужна помощь,текст тот же вот :
Необходимо как-то сделать чтобы группировка была даже если (Контрагент один и тот же), а в одном стоит ТТН,а во втором нет,чтобы группировало тоже это,но при этом ТТН надпись ставилась. Как сделать можно?

Запрос.УстановитьПараметр("ДатаМаршрута", ДатаМаршрута); 
Запрос.УстановитьПараметр("МаршрутГород", МаршрутГород); 

//Рез = Запрос.Выполнить(); 
//	Выборка = Рез.Выбрать(); 
ТаблицаРезультата = запрос.Выполнить().Выгрузить(); 
ТаблицаКонтрагентов = ТаблицаРезультата.Скопировать(,"Контрагент"); 
ТаблицаКонтрагентов.Свернуть("Контрагент"); 

НомерПервойСтроки = 1; 

Для Каждого СтрокаКонтрагента Из ТаблицаКонтрагентов Цикл 
СтрокиТаблицыРезультата = ТаблицаРезультата.НайтиСтроки(Новый Структура("Контрагент", СтрокаКонтрагента.Контрагент)); 




//---------- 
СтрокаКомментариев=""; 
Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл 
СтрокаКомментариев = СтрокаКомментариев + СтрокаРезультата.Комментарий; 
КонецЦикла; 
//---------- 
Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл 
СтрокаТабличнойЧасти = ТЧМаршруты2.Добавить();	


СтрокаТабличнойЧасти.Контрагент = СтрокаРезультата.Контрагент; 
СтрокаТабличнойЧасти.СуммаДокумента = СтрокаРезультата.СуммаДокумента; 
СтрокаТабличнойЧасти.КолГрузМест = СтрокаРезультата.КолВоГрузМест; 
СтрокаТабличнойЧасти.Имя = СтрокаРезультата.Контрагент.ИмяГрузополуч; 
СтрокаТабличнойЧасти.Телефон = СтрокаРезультата.Контрагент.ТелПриемки; 
СтрокаТабличнойЧасти.ПунктРазгрузки = СтрокаРезультата.Контрагент.ПунктРазгрузки; 
СтрокаТабличнойЧасти.ВалютаДокумента = СтрокаРезультата.ВалютаДокумента; 
СтрокаТабличнойЧасти.заявки = 1; 
СтрокаТабличнойЧасти.УЕ =""; 
СтрокаТабличнойЧасти.Рубли =""; 
СтрокаТабличнойЧасти.ТТН =""; 
СтрокаТабличнойЧасти.Примечание = СтрокаКомментариев; 
//СтрокаТабличнойЧасти.Примечание =СтрокаРезультата.Комментарий; 

Если СтрокаТабличнойЧасти.ВалютаДокумента = "BYN" тогда 
СтрокаТабличнойЧасти.ТТН = "ТТН"; 
СуммаБун=СуммаБун + СтрокаТабличнойЧасти.СуммаДокумента; 
СтрокаТабличнойЧасти.рубли = 0;	
Иначе 
СуммаУСД = СуммаУСД + СтрокаТабличнойЧасти.СуммаДокумента; 
СтрокаТабличнойЧасти.ТТН = ""; 
СтрокаТабличнойЧасти.УЕ = СтрокаТабличнойЧасти.СуммаДокумента ; 
СтрокаТабличнойЧасти.рубли = СтрокаТабличнойЧасти.СуммаДокумента * Курс ; 


КонецЕсли; 

Конеццикла; 
ТЧМаршруты2.Свернуть("Контрагент, Имя, Телефон, ПунктРазгрузки, ВалютаДокумента, Примечание, ТТН" , "СуммаДокумента, КолГрузМест, УЕ, рубли, заявки"); 
Конеццикла;
Показать
17. tusv 212 10.05.19 20:29 Сейчас в теме +0.5 $m
(16)Наверное в Запросе поле ТТН вывести надо
Тогда было бы, приблизительно так
ТаблицаКонтрагентов = ТаблицаРезультата.Скопировать(,"Контрагент,ТТН"); 
ТаблицаКонтрагентов.Свернуть("Контрагент,ТТН");
НомерПервойСтроки = 1; 

Для Каждого СтрокаКонтрагента Из ТаблицаКонтрагентов Цикл 
СтрокиТаблицыРезультата = ТаблицаРезультата.НайтиСтроки(Новый Структура("Контрагент,ТТН", СтрокаКонтрагента.Контрагент,СтрокаКонтрагента.ТТН)); 
//....
КонецЦикла; 
19. user817897 2 11.05.19 09:46 Сейчас в теме
(17)спасибо,лови вознаграждение ещё)
18. ishelper 10.05.19 21:13 Сейчас в теме +0.5 $m
(16)
Необходимо как-то сделать чтобы группировка была даже если (Контрагент один и тот же), а в одном стоит ТТН,а во втором нет,чтобы группировало тоже это,но при этом ТТН надпись ставилась. Как сделать можно?
Аналогично:
//----------
СтрокаКомментариев="";
СтрокаТТН="";
Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл 
   СтрокаКомментариев = СтрокаКомментариев + СтрокаРезультата.Комментарий;
   Если СтрокаРезультата.ВалютаДокумента = "BYN" Тогда
      СтрокаТТН = "ТТН";
   КонецЕсли;
КонецЦикла;
//----------
Показать


И дальше:
//Если СтрокаТабличнойЧасти.ВалютаДокумента = "BYN" тогда
СтрокаТабличнойЧасти.ТТН = СтрокаТТН;  
Если СтрокаТТН = "ТТН" Тогда
//   СтрокаТабличнойЧасти.ТТН = "ТТН"; 
   СуммаБун=СуммаБун + СтрокаТабличнойЧасти.СуммаДокумента; 
   СтрокаТабличнойЧасти.рубли = 0;	
Иначе 
   СуммаУСД = СуммаУСД + СтрокаТабличнойЧасти.СуммаДокумента; 
//   СтрокаТабличнойЧасти.ТТН = ""; 
   СтрокаТабличнойЧасти.УЕ = СтрокаТабличнойЧасти.СуммаДокумента ; 
   СтрокаТабличнойЧасти.рубли = СтрокаТабличнойЧасти.СуммаДокумента * Курс ; 
КонецЕсли;
Показать
20. user817897 2 11.05.19 09:46 Сейчас в теме
(18)спасибо огромное,сделал на твоём методе,лови вознаграждение ещё)
21. user817897 2 11.05.19 09:59 Сейчас в теме
(18)сработало всё как нужно! супер!. Ещё вопрос,последний уже. Код ниже.
Необходимо на основе последнего, если (Контрагент один и тот же), а в одном стоит ТТН,а во втором нет,чтобы группировало тоже это,но при этом ТТН надпись ставилась.(Это мы сделали),но где не было надписи ТТН и оно сгруппировало,то сумму этого заказа закинуть в СтрокаТабличнойЧасти.УЕ


Запрос.УстановитьПараметр("ДатаМаршрута", ДатаМаршрута);
	Запрос.УстановитьПараметр("МаршрутГород", МаршрутГород);
	
	ТаблицаРезультата = запрос.Выполнить().Выгрузить(); 
ТаблицаКонтрагентов = ТаблицаРезультата.Скопировать(,"Контрагент"); 
ТаблицаКонтрагентов.Свернуть("Контрагент"); 

НомерПервойСтроки = 1;

Для Каждого СтрокаКонтрагента Из ТаблицаКонтрагентов Цикл
    СтрокиТаблицыРезультата = ТаблицаРезультата.НайтиСтроки(Новый Структура("Контрагент", СтрокаКонтрагента.Контрагент));	
	
	//----------
СтрокаКомментариев="";
СтрокаТТН="";
Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл 
   СтрокаКомментариев = СтрокаКомментариев + СтрокаРезультата.Комментарий;
   Если СтрокаРезультата.ВалютаДокумента.Наименование = "BYN" Тогда
      СтрокаТТН = "ТТН";
   КонецЕсли;
КонецЦикла;
//----------
	
	
Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл 
СтрокаТабличнойЧасти = ТЧМаршруты1.Добавить();	

	
		СтрокаТабличнойЧасти.Контрагент                       = СтрокаРезультата.Контрагент;
		СтрокаТабличнойЧасти.СуммаДокумента                   = СтрокаРезультата.СуммаДокумента;
		СтрокаТабличнойЧасти.КолГрузМест                      = СтрокаРезультата.КолВоГрузМест;
		СтрокаТабличнойЧасти.Имя                              = СтрокаРезультата.Контрагент.ИмяГрузополуч;
		СтрокаТабличнойЧасти.Телефон                          = СтрокаРезультата.Контрагент.ТелПриемки;
		СтрокаТабличнойЧасти.ПунктРазгрузки                   = СтрокаРезультата.Контрагент.ПунктРазгрузки;
		СтрокаТабличнойЧасти.ВалютаДокумента                  = СтрокаРезультата.ВалютаДокумента;
		СтрокаТабличнойЧасти.заявки                           = 1;
		СтрокаТабличнойЧасти.УЕ                               ="";
		СтрокаТабличнойЧасти.Рубли                            ="";
		СтрокаТабличнойЧасти.Примечание = СтрокаКомментариев;
		СтрокаТабличнойЧасти.ТТН = СтрокаТТН; 
 
Если СтрокаТТН = "ТТН" Тогда
   СуммаБун=СуммаБун + СтрокаТабличнойЧасти.СуммаДокумента; 
   СтрокаТабличнойЧасти.рубли = 0;    
Иначе 
   СуммаУСД = СуммаУСД + СтрокаТабличнойЧасти.СуммаДокумента; 
   СтрокаТабличнойЧасти.УЕ = СтрокаТабличнойЧасти.СуммаДокумента ; 
   СтрокаТабличнойЧасти.рубли = СтрокаТабличнойЧасти.СуммаДокумента * Курс ; 
КонецЕсли;
		

Конеццикла;
	ТЧМаршруты1.Свернуть("Контрагент, Имя, Телефон, ПунктРазгрузки,Примечание, ТТН" , "СуммаДокумента, КолГрузМест, УЕ, рубли, заявки");
Конеццикла;
Показать
24. tusv 212 11.05.19 15:21 Сейчас в теме +0.5 $m
(21) Ваша задача легко решается, через СКД. Я так понял у Вас УТ 10.3. Вот набросал побыренькому. пример для типовой. доработайте под себя и пользуйтесь.
Прикрепленные файлы:
ПримерСКД.epf
26. user817897 2 11.05.19 17:34 Сейчас в теме
(24)Спасибо большое,посмотрю после выходных уже.накинул бонуса вам,спасибо ещё раз и вам)
22. user817897 2 11.05.19 12:24 Сейчас в теме
(18)сделал так,правильно ли?
Запрос.УстановитьПараметр("ДатаМаршрута", ДатаМаршрута);
	Запрос.УстановитьПараметр("МаршрутГород", МаршрутГород);
	
	ТаблицаРезультата = запрос.Выполнить().Выгрузить(); 
ТаблицаКонтрагентов = ТаблицаРезультата.Скопировать(,"Контрагент"); 
ТаблицаКонтрагентов.Свернуть("Контрагент"); 

НомерПервойСтроки = 1;

Для Каждого СтрокаКонтрагента Из ТаблицаКонтрагентов Цикл
    СтрокиТаблицыРезультата = ТаблицаРезультата.НайтиСтроки(Новый Структура("Контрагент", СтрокаКонтрагента.Контрагент));	
	
	//----------
СтрокаКомментариев="";
СтрокаТТН="";
СтрокаУЕ = 0;
Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл 
   СтрокаКомментариев = СтрокаКомментариев +" "+ СтрокаРезультата.Комментарий;
   
   Если СтрокаРезультата.ВалютаДокумента.Наименование = "BYN" Тогда
    СтрокаТТН = "ТТН";
  КонецЕсли;
  
КонецЦикла;
//----------
	
	
Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл 
СтрокаТабличнойЧасти = ТЧМаршруты1.Добавить();	

	
		СтрокаТабличнойЧасти.Контрагент                       = СтрокаРезультата.Контрагент;
		СтрокаТабличнойЧасти.СуммаДокумента                   = СтрокаРезультата.СуммаДокумента;
		СтрокаТабличнойЧасти.КолГрузМест                      = СтрокаРезультата.КолВоГрузМест;
		СтрокаТабличнойЧасти.Имя                              = СтрокаРезультата.Контрагент.ИмяГрузополуч;
		СтрокаТабличнойЧасти.Телефон                          = СтрокаРезультата.Контрагент.ТелПриемки;
		СтрокаТабличнойЧасти.ПунктРазгрузки                   = СтрокаРезультата.Контрагент.ПунктРазгрузки;
		СтрокаТабличнойЧасти.ВалютаДокумента                  = СтрокаРезультата.ВалютаДокумента;
		СтрокаТабличнойЧасти.заявки                           = 1;
		СтрокаТабличнойЧасти.УЕ                               ="";
		СтрокаТабличнойЧасти.Рубли                            ="";
		СтрокаТабличнойЧасти.Примечание = СтрокаКомментариев;
		СтрокаТабличнойЧасти.ТТН = СтрокаТТН; 
		
		Если СтрокаРезультата.ВалютаДокумента.Наименование = "USD" Тогда
			СтрокаУЕ = СтрокаРезультата.СуммаДокумента;
			СтрокаТабличнойЧасти.УЕ = СтрокаУЕ;
		КонецЕсли;
		
		
		
		Если СтрокаТТН = "ТТН" Тогда
			СуммаБун=СуммаБун + СтрокаТабличнойЧасти.СуммаДокумента; 
			// СтрокаТабличнойЧасти.рубли = 0;    
		Иначе 
			СуммаУСД = СуммаУСД + СтрокаТабличнойЧасти.СуммаДокумента; 
			СтрокаТабличнойЧасти.УЕ = СтрокаТабличнойЧасти.СуммаДокумента ; 
			СтрокаТабличнойЧасти.рубли = СтрокаТабличнойЧасти.СуммаДокумента * Курс ; 
		КонецЕсли;
		

Конеццикла;
	ТЧМаршруты1.Свернуть("Контрагент, Имя, Телефон, ПунктРазгрузки,Примечание, ТТН" , "СуммаДокумента, КолГрузМест, УЕ, рубли, заявки");
Конеццикла;
Показать
23. ishelper 11.05.19 13:56 Сейчас в теме +0.5 $m
(22)
сделал так,правильно ли?
Вряд ли: СтрокаУЕ у вас обнуляется в первом цикле и больше никак не меняется до второго. А во втором цикле она получает значение СтрокаРезультата.СуммаДокумента и тут же переносится в СтрокаТабличнойЧасти.УЕ, безо всяких условий и проверок. То есть, по сути, не используется, ее можно вообще безболезненно исключить:
//СтрокаУЕ = СтрокаРезультата.СуммаДокумента; 
//СтрокаТабличнойЧасти.УЕ = СтрокаУЕ;
СтрокаТабличнойЧасти.УЕ = СтрокаРезультата.СуммаДокумента;


К сожалению, основу программирования - построение алгоритма, вы не понимаете.

Раз у вас надпись "ТТН" и заполнение СтрокаТабличнойЧасти.УЕ должны выполняться по разным условиям, то надо формировать две переменных. Приблизительно так:
СтрокаКомментариев="";
СтрокаТТН="";
СтрокаУЕ="";
Для Каждого СтрокаРезультата Из СтрокиТаблицыРезультата Цикл 
   СтрокаКомментариев = СтрокаКомментариев + " " + СтрокаРезультата.Комментарий;
   Если СтрокаРезультата.ВалютаДокумента.Наименование = "BYN" Тогда
      СтрокаТТН = "ТТН";
   ИначеЕсли СтрокаРезультата.ВалютаДокумента.Наименование = "USD" Тогда
      СтрокаУЕ = "USD";
   КонецЕсли;
КонецЦикла;
Показать
А во втором цикле - проверять обе переменные:
Если СтрокаУЕ = "USD" Тогда
   СуммаУСД = СуммаУСД + СтрокаТабличнойЧасти.СуммаДокумента; 
   СтрокаТабличнойЧасти.УЕ = СтрокаТабличнойЧасти.СуммаДокумента ; 
   СтрокаТабличнойЧасти.рубли = СтрокаТабличнойЧасти.СуммаДокумента * Курс ; 
ИначеЕсли СтрокаТТН = "ТТН" Тогда 
   СуммаБун=СуммаБун + СтрокаТабличнойЧасти.СуммаДокумента; 
// СтрокаТабличнойЧасти.рубли = 0; 
Иначе 
   СуммаУСД = СуммаУСД + СтрокаТабличнойЧасти.СуммаДокумента; 
   СтрокаТабличнойЧасти.УЕ = СтрокаТабличнойЧасти.СуммаДокумента ; 
   СтрокаТабличнойЧасти.рубли = СтрокаТабличнойЧасти.СуммаДокумента * Курс ; 
КонецЕсли;
Показать

Очень может быть, что вторую часть я написал неправильно - голова сегодня трещит и трудно понять - что именно вам нужно. Но, надеюсь, вы поймете идею и переделаете под свои условия.
25. user817897 2 11.05.19 17:34 Сейчас в теме
(23)Спасибо большое,посмотрю после выходных уже и разберусь во всём этом подробнее.накинул бонуса вам,спасибо ещё раз)
27. пользователь 11.05.19 20:51
Сообщение было скрыто модератором.
...
28. user817897 2 10.11.20 13:36 Сейчас в теме
Спасибо всем, Тема закрыта.
Оставьте свое сообщение

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