1. user1008893 12.02.19 12:51 Сейчас в теме

Печатная форма отчета с расшифровкой

У меня есть обработка,в которой строится отчет с расшифровкой.
Когда нажимаю на выбрать заказ выходит список заказов контрагента.
Как сделать печатную форму,которая будет брать данные из расшифровки тоже. Есть вероятность,что данные в расшифровке могут изменяться пользователем.
Помогите пожалуйста...
Процедура ДействияФормыСформировать(Кнопка)
    
    ПостроительОтчетаОтчет = Новый ПостроительОтчета; 
    ПостроительОтчетаОтчет.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |   ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
    |   ЗаказПокупателя.Контрагент КАК Контрагент,
    |   ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
    |   КОЛИЧЕСТВО(ЗаказПокупателя.Контрагент) КАК Количество
    |{ВЫБРАТЬ
    |   ЗаказПокупателя.*,
    |   Контрагент.*}
    |ИЗ
    |   Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
    |       ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
    |       ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
    |ГДЕ
    |   ЗаказПокупателя.Проведен = ИСТИНА
    |   И ЗаказПокупателя.ДатаИсполнения МЕЖДУ &ДатаИсполнения И &ГоризонтПланирования
    |   И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
    |   И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
    |   И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
    |   И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
    |
    |СГРУППИРОВАТЬ ПО
    |   ЗаказПокупателя.Ссылка,
    |   ЗаказПокупателя.Контрагент,
    |   ЗаказПокупателя.ДатаИсполнения
    |
    |УПОРЯДОЧИТЬ ПО
    |   Контрагент
    |ИТОГИ ПО
    |   Контрагент,
    |   ЗаказПокупателя
    |АВТОУПОРЯДОЧИВАНИЕ";
    ПостроительОтчетаОтчет.Параметры.Вставить("ДатаИсполнения",ДатаИсполнения);
    ПостроительОтчетаОтчет.Параметры.Вставить("ГоризонтПланирования",ГоризонтПланирования);
    ПостроительОтчетаОтчет.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.Расшифровка;
    табДок=ЭлементыФормы.ПолеТабличногоДокумента1;
    табДок.Очистить();
    табДок.ТолькоПросмотр=Истина;
    ПостроительОтчетаОтчет.Выполнить();
    МойМакет=ПолучитьМакет("Макет");
    побл=МойМакет.ПолучитьОбласть("Заголовок");
    ПостроительОтчетаОтчет.МакетЗаголовкаОтчета=побл;
    табДок.Вывести(побл);
    ОбластьШапка = МойМакет.ПолучитьОбласть("Шапка|Контрагент"); 
    табДок.Вывести(ОбластьШапка);
    областьЗаказШапка=МойМакет.ПолучитьОбласть("Шапка|ЗаказыПокупателя");
        
    ТекущийПериод  = НачалоДня(ТекущаяДата());
    Горизонт = КонецМесяца(ГоризонтПланирования);
    _Период     = НачалоМесяца(ТекущийПериод);
    _КонПериод  = КонецДня(Горизонт);
    
    Пока _Период <= _КонПериод Цикл
        Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
            областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
            табДок.Присоединить(областьЗаказШапка);
            
        ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день              
            областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
            табДок.Присоединить(областьЗаказШапка);
        Иначе 
            областьЗаказШапка.Параметры.СчетчикМесяца  = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
            табДок.Присоединить(областьЗаказШапка); 
        КонецЕсли;      
        _Период  = КонецДня(_Период) + 1;
    КонецЦикла;     
    
    облКонтрагент=МойМакет.ПолучитьОбласть("Таблица|Контрагент");
    облЗаказ=МойМакет.ПолучитьОбласть("Таблица|ЗаказыПокупателя");
    табДок.НачатьАвтогруппировкуСтрок();
    пВыб = ПостроительОтчетаОтчет.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); 
    
    Пока пВыб.Следующий() Цикл 
        
        облКонтрагент.Параметры.Заполнить(пВыб);
        табДок.Вывести(облКонтрагент,пВыб.Уровень()); 
            ТекущийПериод  = НачалоДня(ТекущаяДата());
    Горизонт = КонецМесяца(ГоризонтПланирования);
    _Период     = НачалоМесяца(ТекущийПериод);
    _КонПериод  = КонецДня(Горизонт);
 
    Пока _Период <= _КонПериод Цикл
            
        СтруктураРасшифровки = Новый Структура;
    СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
    СтруктураРасшифровки.Вставить("СчетчикМесяца",_Период );
    СтруктураРасшифровки.Вставить("ДатаИсполнения", ДатаИсполнения);
    
    облЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);
    
        Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
                областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                табДок.Присоединить(облЗаказ);
            ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день              
                областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                табДок.Присоединить(облЗаказ);
            Иначе 
                областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                табДок.Присоединить(облЗаказ);
            КонецЕсли;      
            _Период  = КонецДня(_Период) + 1;
                
        КонецЦикла; 
        
    КонецЦикла;
    табДок.ЗакончитьАвтогруппировкуСтрок();
    
КонецПроцедуры
 
Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) Экспорт 
    
    Если ТипЗнч(Расшифровка)=Тип("ФиксированнаяСтруктура") Тогда
        СтандартнаяОбработка=Ложь;
        ПараметрыФормыРасшифровки = Новый Структура(Расшифровка);
        ФормаРасшифровки = ПолучитьФорму("РасшифровкаПотребностей");
ФормаРасшифровки.Контрагент = Расшифровка.Контрагент;
ФормаРасшифровки.День=Расшифровка.СчетчикМесяца;
ФормаРасшифровки.ДатаИсполнения= Расшифровка.ДатаИсполнения;
ФормаРасшифровки.Открыть();
            
    КонецЕсли;
КонецПроцедуры
Показать
-модуль основной формы


Процедура ПриОткрытии()Экспорт 
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |   ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
    |   ЗаказПокупателя.Контрагент КАК Контрагент,
    |   ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
    |   ЗаказПокупателя.Контрагент КАК Количество,
    |   СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
    |   СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
    |   СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
    |{ВЫБРАТЬ
    |   ЗаказПокупателя.*,
    |   Контрагент.*}
    |ИЗ
    |   Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
    |       ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
    |       ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
    |       ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
    |       ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
    |ГДЕ
    |   ЗаказПокупателя.Проведен = ИСТИНА
    |   И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
    |   И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
    |   И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
    |   И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
    |   И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
    |   И ЗаказПокупателя.Контрагент = &Контрагент
    |
    |СГРУППИРОВАТЬ ПО
    |   ЗаказПокупателя.Ссылка,
    |   ЗаказПокупателя.Контрагент,
    |   ЗаказПокупателя.ДатаИсполнения,
    |   ЗаказПокупателя.Контрагент
    |АВТОУПОРЯДОЧИВАНИЕ";
    Запрос.УстановитьПараметр("СчетчикМесяца",День);
    Запрос.УстановитьПараметр("ДатаИсполнения",ДатаИсполнения);
    Запрос.УстановитьПараметр("Контрагент",Контрагент);
    ЭлементыОтбора=Новый Структура;
    _ТаблЗаказы = Запрос.Выполнить().Выгрузить();
    
    Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
        СтрокаТЧ = ТЧ.Добавить();
        СтрокаТЧ.Документ  = СтрокаТаблЗаказы.ЗаказПокупателя;
        СтрокаТЧ.Вес=СтрокаТаблЗаказы.Вес;  
        СтрокаТЧ.Объем=СтрокаТаблЗаказы.Объем;
        СтрокаТЧ.Сумма=СтрокаТаблЗаказы.Сумма;
    КонецЦикла; 
    
КонецПроцедуры
Показать
-модуль формы расшифровки
Прикрепленные файлы:
Вознаграждение за ответ
Показать полностью
Ответы
Избранное Подписка Сортировка: Древо
2. user1008893 12.02.19 15:45 Сейчас в теме
Ну неужели никто не сталкивался(((
3. acanta 47 12.02.19 15:49 Сейчас в теме
Если данные в расшифровке могут изменяться пользователем, значит расшифровка должна открывать ссылку на конкретный документ или выдавать список документов для редактирования.
user1008893; +1 Ответить
4. user1008893 12.02.19 15:52 Сейчас в теме
(3)расшифровка выдает список документов в тз
5. acanta 47 12.02.19 15:58 Сейчас в теме
При выборе строки таблицы значений открывается сам выбранный документ?
user1008893; +1 Ответить
6. user1008893 12.02.19 15:58 Сейчас в теме
7. SedovSU@mail.ru 292 13.02.19 08:59 Сейчас в теме
Вы решили свою проблему?
8. user1008893 13.02.19 09:30 Сейчас в теме
9. EVKash 13.02.19 09:32 Сейчас в теме
(8) после записи документа оповещать форму отчета и формировать отчет снова. других вариантов не вижу.
12. user1008893 13.02.19 09:38 Сейчас в теме
(9)Никакие документы не записываю,просто пользователь может поменять список документов
10. SedovSU@mail.ru 292 13.02.19 09:32 Сейчас в теме
(8) хорошо, тогда в результате вы что хотите получить. У вас формируется какой - то отчет, по нажатию по полю у вас открывается таблица значений со списком. А хотите что получить, чтобы открылася какой то другой отчет вместо списка значений?
11. user1008893 13.02.19 09:35 Сейчас в теме
(10)Хочу чтобы,в основной форме по нажатию кнопки Печать,открывалась печатная форма в виде Дата(СчетчикМесяца),Контрагент,Заказы,Вес,Объем,сумма.
Короче тоже самое ,что и в основной форме,но +заказы
14. SedovSU@mail.ru 292 13.02.19 10:16 Сейчас в теме
(11) Ну у вас все для этого есть. У вас есть таблица с заказами "ТЧ" куда вы заполняете заказ покупателя, вес, объем и сумма.
Теперь вам эти данные нужно не при расшифровки получить а явно отобразить в поле. В макет вместо "ВЫбрать заказ" добавляете параметр, например, заказ и при выводе отчета заполняете. Заполняете по аналогии как у вас расширофка работает и открывается форма РасшифровкаПотребностей. Возможно там будет несколько заказов, которые можете указать через запятую
user1008893; +1 Ответить
16. user1008893 13.02.19 10:28 Сейчас в теме
(14)т.е. В процедуру сформировать переношу мой запрос из расшифровки и этими данными заполняю параметр заказ?
17. SedovSU@mail.ru 292 13.02.19 10:32 Сейчас в теме
(16) Да, ведь как вы получаете эти заказы при расшифровке - передаете туда параметры

СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
СтруктураРасшифровки.Вставить("СчетчикМесяца",_Период );
СтруктураРасшифровки.Вставить("ДатаИсполнения", ДатаИсполнения);


А после этого их передаете в форму открытия расшифровки и там что то делается и программа показывает перечень заказов. То есть смысл в том что при передачи пВыб.Контрагент, _Период, ДатаИсполнения вы можете получить заказы. Ну так и вставьте этот код который все это делаете и заполните заказы (если их несколько то через запятую можно) и тогда вам расшифровка не нужна
user1008893; +1 Ответить
19. user1008893 13.02.19 10:40 Сейчас в теме
(17)
Процедура ДействияФормыСформировать(Кнопка)
	
	ПостроительОтчетаОтчет = Новый ПостроительОтчета; 
	ПостроительОтчетаОтчет.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
	|	ЗаказПокупателя.Контрагент КАК Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
	|	КОЛИЧЕСТВО(ЗаказПокупателя.Контрагент) КАК Количество
	|{ВЫБРАТЬ
	|	ЗаказПокупателя.*,
	|	Контрагент.*}
	|ИЗ
	|	Документ.ЗаказПокупателя КАК ЗаказПокупателя
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
	|		ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
	|		ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|ГДЕ
	|	ЗаказПокупателя.Проведен = ИСТИНА
	|	И ЗаказПокупателя.ДатаИсполнения МЕЖДУ &ДатаИсполнения И &ГоризонтПланирования
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
	|	И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
	|
	|СГРУППИРОВАТЬ ПО
	|	ЗаказПокупателя.Ссылка,
	|	ЗаказПокупателя.Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения
	|
	|УПОРЯДОЧИТЬ ПО
	|	Контрагент
	|ИТОГИ ПО
	|	Контрагент,
	|	ЗаказПокупателя
	|АВТОУПОРЯДОЧИВАНИЕ";
	ПостроительОтчетаОтчет.Параметры.Вставить("ДатаИсполнения",ДатаИсполнения);
	ПостроительОтчетаОтчет.Параметры.Вставить("ГоризонтПланирования",ГоризонтПланирования);
	ПостроительОтчетаОтчет.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.Расшифровка;
	табДок=ЭлементыФормы.ПолеТабличногоДокумента1;
	табДок.Очистить();
	табДок.ТолькоПросмотр=Истина;
	ПостроительОтчетаОтчет.Выполнить();
	МойМакет=ПолучитьМакет("Макет");
	побл=МойМакет.ПолучитьОбласть("Заголовок");
	ПостроительОтчетаОтчет.МакетЗаголовкаОтчета=побл;
	табДок.Вывести(побл);
	ОбластьШапка = МойМакет.ПолучитьОбласть("Шапка|Контрагент"); 
	табДок.Вывести(ОбластьШапка);
	областьЗаказШапка=МойМакет.ПолучитьОбласть("Шапка|ЗаказыПокупателя");
	
	ТекущийПериод  = НачалоДня(ТекущаяДата());
	Горизонт = КонецМесяца(ГоризонтПланирования);
	_Период     = НачалоМесяца(ТекущийПериод);
	_КонПериод  = КонецДня(Горизонт);
	
	Пока _Период <= _КонПериод Цикл
		Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
			областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
			табДок.Присоединить(областьЗаказШапка);
			
		ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
			областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
			табДок.Присоединить(областьЗаказШапка);
		Иначе 
			областьЗаказШапка.Параметры.СчетчикМесяца  = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
			табДок.Присоединить(областьЗаказШапка);	
		КонецЕсли; 		
		_Период  = КонецДня(_Период) + 1;
	КонецЦикла;		
	
	облКонтрагент=МойМакет.ПолучитьОбласть("Таблица|Контрагент");
	облЗаказ=МойМакет.ПолучитьОбласть("Таблица|ЗаказыПокупателя");
	табДок.НачатьАвтогруппировкуСтрок();
	пВыб = ПостроительОтчетаОтчет.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);	
	
	Пока пВыб.Следующий() Цикл 
		
		облКонтрагент.Параметры.Заполнить(пВыб);
		табДок.Вывести(облКонтрагент,пВыб.Уровень()); 
		ТекущийПериод  = НачалоДня(ТекущаяДата());
		Горизонт = КонецМесяца(ГоризонтПланирования);
		_Период     = НачалоМесяца(ТекущийПериод);
		_КонПериод  = КонецДня(Горизонт);
		
		Пока _Период <= _КонПериод Цикл
			
			СтруктураРасшифровки = Новый Структура;
			СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
			СтруктураРасшифровки.Вставить("СчетчикМесяца",_Период );
			СтруктураРасшифровки.Вставить("ДатаИсполнения", ДатаИсполнения);
			
			облЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);
			 
			Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
				областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(облЗаказ);
			ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
				областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(облЗаказ);
			Иначе 
				областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(облЗаказ);
			КонецЕсли; 		
			_Период  = КонецДня(_Период) + 1;
		КонецЦикла;	
	КонецЦикла;
	табДок.ЗакончитьАвтогруппировкуСтрок();
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
	|	ЗаказПокупателя.Контрагент КАК Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
	|	ЗаказПокупателя.Контрагент КАК Количество,
	|	СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
	|	СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
	|	СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
	|{ВЫБРАТЬ
	|	ЗаказПокупателя.*,
	|	Контрагент.*}
	|ИЗ
	|	Документ.ЗаказПокупателя КАК ЗаказПокупателя
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
	|		ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
	|		ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
	|		ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
	|ГДЕ
	|	ЗаказПокупателя.Проведен = ИСТИНА
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
	|	И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
	|	И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
	|	И ЗаказПокупателя.Контрагент = &Контрагент
	|
	|СГРУППИРОВАТЬ ПО
	|	ЗаказПокупателя.Ссылка,
	|	ЗаказПокупателя.Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения,
	|	ЗаказПокупателя.Контрагент
	|АВТОУПОРЯДОЧИВАНИЕ";
	
КонецПроцедуры
Показать

Что то туплю
20. SedovSU@mail.ru 292 13.02.19 10:46 Сейчас в теме
(19) смотрите вот код расшифровки

Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) Экспорт 
    
    Если ТипЗнч(Расшифровка)=Тип("ФиксированнаяСтруктура") Тогда
        СтандартнаяОбработка=Ложь;
        ПараметрыФормыРасшифровки = Новый Структура(Расшифровка);
        ФормаРасшифровки = ПолучитьФорму("РасшифровкаПотребностей");
ФормаРасшифровки.Контрагент = Расшифровка.Контрагент;
ФормаРасшифровки.День=Расшифровка.СчетчикМесяца;
ФормаРасшифровки.ДатаИсполнения= Расшифровка.ДатаИсполнения;
ФормаРасшифровки.Открыть();
            
    КонецЕсли;
КонецПроцедуры
Показать


То есть на форме установили параметры и открыли. А при открытии что произошло? какой там код написан? как таблица по заказам фильтруется/получается?
21. user1008893 13.02.19 10:46 Сейчас в теме
(20)
Процедура ПриОткрытии()Экспорт 
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
	|	ЗаказПокупателя.Контрагент КАК Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
	|	ЗаказПокупателя.Контрагент КАК Количество,
	|	СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
	|	СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
	|	СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
	|{ВЫБРАТЬ
	|	ЗаказПокупателя.*,
	|	Контрагент.*}
	|ИЗ
	|	Документ.ЗаказПокупателя КАК ЗаказПокупателя
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
	|		ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
	|		ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
	|		ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
	|ГДЕ
	|	ЗаказПокупателя.Проведен = ИСТИНА
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
	|	И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
	|	И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
	|	И ЗаказПокупателя.Контрагент = &Контрагент
	|
	|СГРУППИРОВАТЬ ПО
	|	ЗаказПокупателя.Ссылка,
	|	ЗаказПокупателя.Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения,
	|	ЗаказПокупателя.Контрагент
	|АВТОУПОРЯДОЧИВАНИЕ";
	Запрос.УстановитьПараметр("СчетчикМесяца",День);
	Запрос.УстановитьПараметр("ДатаИсполнения",ДатаИсполнения);
	Запрос.УстановитьПараметр("Контрагент",Контрагент);
	ЭлементыОтбора=Новый Структура;
	_ТаблЗаказы = Запрос.Выполнить().Выгрузить();
	
	Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
		СтрокаТЧ = ТЧ.Добавить();
		СтрокаТЧ.Документ  = СтрокаТаблЗаказы.ЗаказПокупателя;
		СтрокаТЧ.Вес=СтрокаТаблЗаказы.Вес;	
		СтрокаТЧ.Объем=СтрокаТаблЗаказы.Объем;
		СтрокаТЧ.Сумма=СтрокаТаблЗаказы.Сумма;
	КонецЦикла;	

КонецПроцедуры

Показать
22. SedovSU@mail.ru 292 13.02.19 10:55 Сейчас в теме
(21) А блин точно. Ну смотрите делаете функцию которая вам вернет номера заказов

Например:

Процедура ПолучитьНомераЗаказов(День, ДатаИсполнения, Контрагент)
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
    |    ЗаказПокупателя.Контрагент КАК Контрагент,
    |    ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
    |    ЗаказПокупателя.Контрагент КАК Количество,
    |    СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
    |    СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
    |    СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
    |{ВЫБРАТЬ
    |    ЗаказПокупателя.*,
    |    Контрагент.*}
    |ИЗ
    |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
    |        ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
    |        ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
    |        ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
    |ГДЕ
    |    ЗаказПокупателя.Проведен = ИСТИНА
    |    И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
    |    И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
    |    И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
    |    И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
    |    И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
    |    И ЗаказПокупателя.Контрагент = &Контрагент
    |
    |СГРУППИРОВАТЬ ПО
    |    ЗаказПокупателя.Ссылка,
    |    ЗаказПокупателя.Контрагент,
    |    ЗаказПокупателя.ДатаИсполнения,
    |    ЗаказПокупателя.Контрагент
    |АВТОУПОРЯДОЧИВАНИЕ";
    Запрос.УстановитьПараметр("СчетчикМесяца",День);
    Запрос.УстановитьПараметр("ДатаИсполнения",ДатаИсполнения);
    Запрос.УстановитьПараметр("Контрагент",Контрагент);
    ЭлементыОтбора=Новый Структура;
    _ТаблЗаказы = Запрос.Выполнить().Выгрузить();
    
СтрокаЗаказ = "";

Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
       Если ЗначениеЗаполнено(СтрокаЗаказ) Тогда
              СтрокаЗаказ  = Строка(СтрокаТаблЗаказы.ЗаказПокупателя)
       Иначе
          СтрокаЗаказ  = СтрокаЗаказ + ", " + Строка(СтрокаТаблЗаказы.ЗаказПокупателя)               
КонецЦикла;    

Возварт СтрокаЗаказ

КонецФункции
Показать


Далле добавляете в макет вместо слова "Выберите заказ" параметр "Заказ" и заполняете его в формировании отчета, обращаясь к функции

Процедура ДействияФормыСформировать(Кнопка)
    
    ПостроительОтчетаОтчет = Новый ПостроительОтчета; 
    ПостроительОтчетаОтчет.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |   ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
    |   ЗаказПокупателя.Контрагент КАК Контрагент,
    |   ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
    |   КОЛИЧЕСТВО(ЗаказПокупателя.Контрагент) КАК Количество
    |{ВЫБРАТЬ
    |   ЗаказПокупателя.*,
    |   Контрагент.*}
    |ИЗ
    |   Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
    |       ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
    |       ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
    |ГДЕ
    |   ЗаказПокупателя.Проведен = ИСТИНА
    |   И ЗаказПокупателя.ДатаИсполнения МЕЖДУ &ДатаИсполнения И &ГоризонтПланирования
    |   И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
    |   И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
    |   И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
    |   И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
    |
    |СГРУППИРОВАТЬ ПО
    |   ЗаказПокупателя.Ссылка,
    |   ЗаказПокупателя.Контрагент,
    |   ЗаказПокупателя.ДатаИсполнения
    |
    |УПОРЯДОЧИТЬ ПО
    |   Контрагент
    |ИТОГИ ПО
    |   Контрагент,
    |   ЗаказПокупателя
    |АВТОУПОРЯДОЧИВАНИЕ";
    ПостроительОтчетаОтчет.Параметры.Вставить("ДатаИсполнения",ДатаИсполнения);
    ПостроительОтчетаОтчет.Параметры.Вставить("ГоризонтПланирования",ГоризонтПланирования);
    ПостроительОтчетаОтчет.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.Расшифровка;
    табДок=ЭлементыФормы.ПолеТабличногоДокумента1;
    табДок.Очистить();
    табДок.ТолькоПросмотр=Истина;
    ПостроительОтчетаОтчет.Выполнить();
    МойМакет=ПолучитьМакет("Макет");
    побл=МойМакет.ПолучитьОбласть("Заголовок");
    ПостроительОтчетаОтчет.МакетЗаголовкаОтчета=побл;
    табДок.Вывести(побл);
    ОбластьШапка = МойМакет.ПолучитьОбласть("Шапка|Контрагент"); 
    табДок.Вывести(ОбластьШапка);
    областьЗаказШапка=МойМакет.ПолучитьОбласть("Шапка|ЗаказыПокупателя");
        
    ТекущийПериод  = НачалоДня(ТекущаяДата());
    Горизонт = КонецМесяца(ГоризонтПланирования);
    _Период     = НачалоМесяца(ТекущийПериод);
    _КонПериод  = КонецДня(Горизонт);
    
    Пока _Период <= _КонПериод Цикл
        Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
            областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
            табДок.Присоединить(областьЗаказШапка);
            
        ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день              
            областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
            табДок.Присоединить(областьЗаказШапка);
        Иначе 
            областьЗаказШапка.Параметры.СчетчикМесяца  = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
            табДок.Присоединить(областьЗаказШапка); 
        КонецЕсли;      
        _Период  = КонецДня(_Период) + 1;
    КонецЦикла;     
    
    облКонтрагент=МойМакет.ПолучитьОбласть("Таблица|Контрагент");
    облЗаказ=МойМакет.ПолучитьОбласть("Таблица|ЗаказыПокупателя");
    табДок.НачатьАвтогруппировкуСтрок();
    пВыб = ПостроительОтчетаОтчет.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); 
    
    Пока пВыб.Следующий() Цикл 
        
        облКонтрагент.Параметры.Заполнить(пВыб);
        табДок.Вывести(облКонтрагент,пВыб.Уровень()); 
            ТекущийПериод  = НачалоДня(ТекущаяДата());
    Горизонт = КонецМесяца(ГоризонтПланирования);
    _Период     = НачалоМесяца(ТекущийПериод);
    _КонПериод  = КонецДня(Горизонт);
 
    Пока _Период <= _КонПериод Цикл
            
        СтруктураРасшифровки = Новый Структура;
    СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
    СтруктураРасшифровки.Вставить("СчетчикМесяца",_Период );
    СтруктураРасшифровки.Вставить("ДатаИсполнения", ДатаИсполнения);
    
    облЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);

   // ВОТ СЮДА ДОПИШИТЕ ВЫЗОВ ПРОЦЕДУРЫ
   облЗаказ.Параметры.Заказ = ПолучитьНомераЗаказов(_Период, ДатаИсполнения, пВыб.Контрагент)
    
        Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
                областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                табДок.Присоединить(облЗаказ);
            ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день              
                областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                табДок.Присоединить(облЗаказ);
            Иначе 
                областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                табДок.Присоединить(облЗаказ);
            КонецЕсли;      
            _Период  = КонецДня(_Период) + 1;
                
        КонецЦикла; 
        
    КонецЦикла;
    табДок.ЗакончитьАвтогруппировкуСтрок();
    
КонецПроцедуры
Показать
user1008893; +1 Ответить
23. user1008893 13.02.19 11:03 Сейчас в теме
(22) Так,все отлично,но выводит только один заказ,хотя их несколько
24. user1008893 13.02.19 11:15 Сейчас в теме
(22)И еще хотелось бы добавить Вес,объем и сумму. Я добавила параметры,но не знаю как вывести. Опять делать в отдельной функции или в этой же можно?
25. SedovSU@mail.ru 292 13.02.19 11:21 Сейчас в теме
(24) Должно выводится все заказы через запятую, ведь мы же обходим весь результат запроса и значения поля заказ указываем в текстовой строке через запятую. А что касательно объем, вес, сумму - можно для них сделать тоже отдельные процедуры. А лучше сделать чтобы эта функция возвращала не строку а саму таблицу, а далее вы бы ее при формировании отчета обходили и заполняли и заказ и вес и объем. Тут уже на любителя как сделать
user1008893; +1 Ответить
26. user1008893 13.02.19 11:22 Сейчас в теме
(25)
А лучше сделать чтобы эта функция возвращала не строку а саму таблицу, а далее вы бы ее при формировании отчета обходили и заполняли и заказ и вес и объем.

Нет примера?
27. SedovSU@mail.ru 292 13.02.19 11:28 Сейчас в теме
(26) Примера нету, но вот на вашем можно вот так сделать

Процедура ПолучитьТаблицуЗаказов(День, ДатаИсполнения, Контрагент)
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
    |    ЗаказПокупателя.Контрагент КАК Контрагент,
    |    ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
    |    ЗаказПокупателя.Контрагент КАК Количество,
    |    СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
    |    СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
    |    СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
    |{ВЫБРАТЬ
    |    ЗаказПокупателя.*,
    |    Контрагент.*}
    |ИЗ
    |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
    |        ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
    |        ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
    |        ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
    |ГДЕ
    |    ЗаказПокупателя.Проведен = ИСТИНА
    |    И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
    |    И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
    |    И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
    |    И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
    |    И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
    |    И ЗаказПокупателя.Контрагент = &Контрагент
    |
    |СГРУППИРОВАТЬ ПО
    |    ЗаказПокупателя.Ссылка,
    |    ЗаказПокупателя.Контрагент,
    |    ЗаказПокупателя.ДатаИсполнения,
    |    ЗаказПокупателя.Контрагент
    |АВТОУПОРЯДОЧИВАНИЕ";
    Запрос.УстановитьПараметр("СчетчикМесяца",День);
    Запрос.УстановитьПараметр("ДатаИсполнения",ДатаИсполнения);
    Запрос.УстановитьПараметр("Контрагент",Контрагент);
    ЭлементыОтбора=Новый Структура;
    _ТаблЗаказы = Запрос.Выполнить().Выгрузить();
    
Возврат _ТаблЗаказы

КонецФункции
Показать


Далее при формировании вам нужно вставить код по обходу и выводу данной таблицу

Процедура ДействияФормыСформировать(Кнопка)
    
    ПостроительОтчетаОтчет = Новый ПостроительОтчета; 
    ПостроительОтчетаОтчет.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |   ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
    |   ЗаказПокупателя.Контрагент КАК Контрагент,
    |   ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
    |   КОЛИЧЕСТВО(ЗаказПокупателя.Контрагент) КАК Количество
    |{ВЫБРАТЬ
    |   ЗаказПокупателя.*,
    |   Контрагент.*}
    |ИЗ
    |   Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
    |       ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
    |       ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
    |ГДЕ
    |   ЗаказПокупателя.Проведен = ИСТИНА
    |   И ЗаказПокупателя.ДатаИсполнения МЕЖДУ &ДатаИсполнения И &ГоризонтПланирования
    |   И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
    |   И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
    |   И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
    |   И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
    |
    |СГРУППИРОВАТЬ ПО
    |   ЗаказПокупателя.Ссылка,
    |   ЗаказПокупателя.Контрагент,
    |   ЗаказПокупателя.ДатаИсполнения
    |
    |УПОРЯДОЧИТЬ ПО
    |   Контрагент
    |ИТОГИ ПО
    |   Контрагент,
    |   ЗаказПокупателя
    |АВТОУПОРЯДОЧИВАНИЕ";
    ПостроительОтчетаОтчет.Параметры.Вставить("ДатаИсполнения",ДатаИсполнения);
    ПостроительОтчетаОтчет.Параметры.Вставить("ГоризонтПланирования",ГоризонтПланирования);
    ПостроительОтчетаОтчет.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.Расшифровка;
    табДок=ЭлементыФормы.ПолеТабличногоДокумента1;
    табДок.Очистить();
    табДок.ТолькоПросмотр=Истина;
    ПостроительОтчетаОтчет.Выполнить();
    МойМакет=ПолучитьМакет("Макет");
    побл=МойМакет.ПолучитьОбласть("Заголовок");
    ПостроительОтчетаОтчет.МакетЗаголовкаОтчета=побл;
    табДок.Вывести(побл);
    ОбластьШапка = МойМакет.ПолучитьОбласть("Шапка|Контрагент"); 
    табДок.Вывести(ОбластьШапка);
    областьЗаказШапка=МойМакет.ПолучитьОбласть("Шапка|ЗаказыПокупателя");
        
    ТекущийПериод  = НачалоДня(ТекущаяДата());
    Горизонт = КонецМесяца(ГоризонтПланирования);
    _Период     = НачалоМесяца(ТекущийПериод);
    _КонПериод  = КонецДня(Горизонт);
    
    Пока _Период <= _КонПериод Цикл
        Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
            областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
            табДок.Присоединить(областьЗаказШапка);
            
        ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день              
            областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
            табДок.Присоединить(областьЗаказШапка);
        Иначе 
            областьЗаказШапка.Параметры.СчетчикМесяца  = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
            табДок.Присоединить(областьЗаказШапка); 
        КонецЕсли;      
        _Период  = КонецДня(_Период) + 1;
    КонецЦикла;     
    
    облКонтрагент=МойМакет.ПолучитьОбласть("Таблица|Контрагент");
    облЗаказ=МойМакет.ПолучитьОбласть("Таблица|ЗаказыПокупателя");
    табДок.НачатьАвтогруппировкуСтрок();
    пВыб = ПостроительОтчетаОтчет.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); 
    
    Пока пВыб.Следующий() Цикл 
        
        облКонтрагент.Параметры.Заполнить(пВыб);
        табДок.Вывести(облКонтрагент,пВыб.Уровень()); 
            ТекущийПериод  = НачалоДня(ТекущаяДата());
    Горизонт = КонецМесяца(ГоризонтПланирования);
    _Период     = НачалоМесяца(ТекущийПериод);
    _КонПериод  = КонецДня(Горизонт);
 
    Пока _Период <= _КонПериод Цикл
            
        СтруктураРасшифровки = Новый Структура;
    СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
    СтруктураРасшифровки.Вставить("СчетчикМесяца",_Период );
    СтруктураРасшифровки.Вставить("ДатаИсполнения", ДатаИсполнения);
    
    облЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);

   // ВОТ ТУТ ПОЛУЧИТЕ ТАБЛИЦУ ЗАКАЗОВ
   ТаблицаЗаказов = ПолучитьТаблицаЗаказов(_Период, ДатаИсполнения, пВыб.Контрагент)
   Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов
       /////////////// вот тут дописать куда заполнять параметры, через запятую их делать или как то по другому
   Конеццикла

    
        Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
                областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                табДок.Присоединить(облЗаказ);
            ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день              
                областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                табДок.Присоединить(облЗаказ);
            Иначе 
                областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                табДок.Присоединить(облЗаказ);
            КонецЕсли;      
            _Период  = КонецДня(_Период) + 1;
                
        КонецЦикла; 
        
    КонецЦикла;
    табДок.ЗакончитьАвтогруппировкуСтрок();
    
КонецПроцедуры
Показать
user1008893; +1 Ответить
28. user1008893 13.02.19 11:36 Сейчас в теме
29. user1008893 13.02.19 15:05 Сейчас в теме
(27)
Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов Цикл
	   
	 облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
	  облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
	  облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
	  облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
	  
   КонецЦикла;
 
Показать

Так,все сделала,но только он выводит из всех заказов последний,как это поправить?
30. SedovSU@mail.ru 292 13.02.19 15:17 Сейчас в теме
(29) Да все правильно, будет только последний. Потому что при каждой итерации он перезаписывает значение. Как вариант можно через запятую написать

Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов Цикл
        
     Если ЗначениеЗаполнено(облЗаказ.Параметры.Заказ) Тогда
         облЗаказ.Параметры.Заказ = облЗаказ.Параметры.Заказ + ", " + Строка(СтрокаТаблицыЗаказов.ЗаказПокупателя)
     Иначе
         облЗаказ.Параметры.Заказ = Строка(СтрокаТаблицыЗаказов.ЗаказПокупателя);
     Конецесли

     Если ЗначениеЗаполнено(облЗаказ.Параметры.Вес) Тогда
         облЗаказ.Параметры.Вес = облЗаказ.Параметры.Вес + ", " + Строка(СтрокаТаблицыЗаказов.Вес);
     Иначе
         облЗаказ.Параметры.Вес = Строка(СтрокаТаблицыЗаказов.Вес)
     Конецесли

     Если ЗначениеЗаполнено(облЗаказ.Параметры.Объем) Тогда
         облЗаказ.Параметры.Объем = облЗаказ.Параметры.Объем + ", " + Строка(СтрокаТаблицыЗаказов.Объем);
     Иначе
         облЗаказ.Параметры.Объем = Строка(СтрокаТаблицыЗаказов.Объем);     
     Конецесли

// по аналогии и сумму
      
   КонецЦикла;
Показать


Такой как бы не много "извращенский вариант"
user1008893; +1 Ответить
31. user1008893 13.02.19 15:20 Сейчас в теме
(30)а нельзя просто строчки выводить? Думаю ,что так лучше было бы и понятнее,тем более все цифры
32. SedovSU@mail.ru 292 13.02.19 15:30 Сейчас в теме
(31) конечно можно, даже так лучше будет но тогда вам нужно будет не много код исправить. То есть облЗаказ выводить для каждого заказа - верней в цикле выводить. Вот что то в этом роде

Пока пВыб.Следующий() Цикл

ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);

ТаблицаЗаказов = ПолучитьТаблицаЗаказов(_Период, ДатаИсполнения, пВыб.Контрагент)
Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов

облКонтрагент.Параметры.Заполнить(пВыб);
табДок.Вывести(облКонтрагент,пВыб.Уровень());

// и тут далее ваш код

Конеццикла
Конеццикла
user1008893; +1 Ответить
33. user1008893 13.02.19 15:39 Сейчас в теме
(32)
	
	ПостроительОтчетаОтчет = Новый ПостроительОтчета; 
	ПостроительОтчетаОтчет.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
	|	ЗаказПокупателя.Контрагент КАК Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
	|	КОЛИЧЕСТВО(ЗаказПокупателя.Контрагент) КАК Количество
	|{ВЫБРАТЬ
	|	ЗаказПокупателя.*,
	|	Контрагент.*}
	|ИЗ
	|	Документ.ЗаказПокупателя КАК ЗаказПокупателя
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
	|		ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
	|		ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|ГДЕ
	|	ЗаказПокупателя.Проведен = ИСТИНА
	|	И ЗаказПокупателя.ДатаИсполнения МЕЖДУ &ДатаИсполнения И &ГоризонтПланирования
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
	|	И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
	|
	|СГРУППИРОВАТЬ ПО
	|	ЗаказПокупателя.Ссылка,
	|	ЗаказПокупателя.Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения
	|
	|УПОРЯДОЧИТЬ ПО
	|	Контрагент
	|ИТОГИ ПО
	|	Контрагент,
	|	ЗаказПокупателя
	|АВТОУПОРЯДОЧИВАНИЕ";
	ПостроительОтчетаОтчет.Параметры.Вставить("ДатаИсполнения",ДатаИсполнения);
	ПостроительОтчетаОтчет.Параметры.Вставить("ГоризонтПланирования",ГоризонтПланирования);
	ПостроительОтчетаОтчет.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.Расшифровка;
	табДок=ЭлементыФормы.ПолеТабличногоДокумента1;
	табДок.Очистить();
	табДок.ТолькоПросмотр=Истина;
	ПостроительОтчетаОтчет.Выполнить();
	МойМакет=ПолучитьМакет("Макет");
	побл=МойМакет.ПолучитьОбласть("Заголовок");
	ПостроительОтчетаОтчет.МакетЗаголовкаОтчета=побл;
	табДок.Вывести(побл);
	ОбластьШапка = МойМакет.ПолучитьОбласть("Шапка|Контрагент"); 
	табДок.Вывести(ОбластьШапка);
	областьЗаказШапка=МойМакет.ПолучитьОбласть("Шапка|ЗаказыПокупателя");
	
	ТекущийПериод  = НачалоДня(ТекущаяДата());
	Горизонт = КонецМесяца(ГоризонтПланирования);
	_Период     = НачалоМесяца(ТекущийПериод);
	_КонПериод  = КонецДня(Горизонт);
	
	Пока _Период <= _КонПериод Цикл
		Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
			областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
			табДок.Присоединить(областьЗаказШапка);
			
		ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
			областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
			табДок.Присоединить(областьЗаказШапка);
		Иначе 
			областьЗаказШапка.Параметры.СчетчикМесяца  = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
			табДок.Присоединить(областьЗаказШапка);	
		КонецЕсли; 		
		_Период  = КонецДня(_Период) + 1;
	КонецЦикла;		
	
	облКонтрагент=МойМакет.ПолучитьОбласть("Таблица|Контрагент");
	облЗаказ=МойМакет.ПолучитьОбласть("Таблица|ЗаказыПокупателя");
	табДок.НачатьАвтогруппировкуСтрок();
	пВыб = ПостроительОтчетаОтчет.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);	
	
	Пока пВыб.Следующий() Цикл 
		
		 
		ТекущийПериод  = НачалоДня(ТекущаяДата());
		Горизонт = КонецМесяца(ГоризонтПланирования);
		_Период     = НачалоМесяца(ТекущийПериод);
		_КонПериод  = КонецДня(Горизонт);
		 ТаблицаЗаказов = ПолучитьТаблицаЗаказов(_Период, ДатаИсполнения, пВыб.Контрагент);
 Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов Цикл
	    облКонтрагент.Параметры.Заполнить(пВыб);
		табДок.Вывести(облКонтрагент,пВыб.Уровень());
	 облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
	  облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
	  облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
	  облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
	   табДок.Присоединить(облЗаказ); 
	   

   КонецЦикла;  
		Пока _Период <= _КонПериод Цикл
			
			СтруктураРасшифровки = Новый Структура;
			СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
			СтруктураРасшифровки.Вставить("СчетчикМесяца",_Период );
			СтруктураРасшифровки.Вставить("ДатаИсполнения", ДатаИсполнения);
			
			облЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);
			
			     
						  
			Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
				областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(облЗаказ);
			ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
				областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(облЗаказ);
			Иначе 
				областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(облЗаказ);
			КонецЕсли; 		
			_Период  = КонецДня(_Период) + 1;
		КонецЦикла;	
	КонецЦикла;
	табДок.ЗакончитьАвтогруппировкуСтрок();
	
	
	
Показать

Так неправильно выводит,счетчик месяца берет тоже неправильно
34. user1008893 13.02.19 16:01 Сейчас в теме
(33)перенесла еще в цикл структуру и выводит первый день нормально,а второй с пробелами и берет счетчик месяца дату 1.02.2019
35. SedovSU@mail.ru 292 14.02.19 06:21 Сейчас в теме
(34) у вас цикл должен закончиться позже после цикла Пока _Период <= _КонПериод Цикл. В противном случае у вас не красиво будет вывод делаться и не верно
36. user1008893 14.02.19 07:58 Сейчас в теме
(35)
Пока пВыб.Следующий() Цикл 
		
		 
		ТекущийПериод  = НачалоДня(ТекущаяДата());
		Горизонт = КонецМесяца(ГоризонтПланирования);
		_Период     = НачалоМесяца(ТекущийПериод);
		_КонПериод  = КонецДня(Горизонт);
		 ТаблицаЗаказов = ПолучитьТаблицаЗаказов(_Период, ДатаИсполнения, пВыб.Контрагент);
		 Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов Цикл 
			 СтруктураРасшифровки = Новый Структура;
			СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
			СтруктураРасшифровки.Вставить("СчетчикМесяца",_Период );
			СтруктураРасшифровки.Вставить("ДатаИсполнения", ДатаИсполнения);
			
			облЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);
	    облКонтрагент.Параметры.Заполнить(пВыб);
		табДок.Вывести(облКонтрагент,пВыб.Уровень());
	 облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
	  облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
	  облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
	  облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
	   табДок.Присоединить(облЗаказ); 
	     
	Пока _Период <= _КонПериод Цикл
			 		  
			Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
				областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(облЗаказ);
			ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
				областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(облЗаказ);
			Иначе 
				областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(облЗаказ);
			КонецЕсли; 		
			_Период  = КонецДня(_Период) + 1;
		КонецЦикла;
  
	КонецЦикла; 	
	КонецЦикла;
	табДок.ЗакончитьАвтогруппировкуСтрок();
	
Показать
вот так получилось
Прикрепленные файлы:
37. SedovSU@mail.ru 292 14.02.19 08:01 Сейчас в теме
(36) У вас правильно получилось или нет?
38. user1008893 14.02.19 08:22 Сейчас в теме
(37)нет,второй день и следующие с пробелами выводит
39. SedovSU@mail.ru 292 14.02.19 08:26 Сейчас в теме
(37) ну тут как бы только определиться с циклами и выводами. где и в каком порядке должно выходить
user1008893; +1 Ответить
40. user1008893 14.02.19 08:37 Сейчас в теме
41. user1008893 14.02.19 09:08 Сейчас в теме
(39)Есть допустим контрагент у которого 3 заказа,в первый день он выводит хорошо,а вот во второй день выводит только первый заказ,а потом только 2 пустые строки. А если 1 заказ у контрагента,то все правильно выводит.
Счетчик месяца все равно не правильно берет, берет всегда 1.02.2019
42. SedovSU@mail.ru 292 14.02.19 09:50 Сейчас в теме
(41) Вот смотрите. Получили Таблицу контрагентов, далее получили таблицу заказов. Теперь берем обходим таблицу контрагентов, начинаем обходить таблицу заказов, берем первую строку, смотрим значения данного заказа для первого периода, второго и третьего. далее берем следующий заказ и так же смотрим значения для первого периода, второго и третьего и так далее обходим и выводим
user1008893; +1 Ответить
44. user1008893 14.02.19 10:17 Сейчас в теме
(42)Вроде так и делаю
Пока пВыб.Следующий() Цикл 
		
		
		ТекущийПериод  = НачалоДня(ТекущаяДата());
		Горизонт = КонецМесяца(ГоризонтПланирования);
		_Период     = НачалоМесяца(ТекущийПериод);
		_КонПериод  = КонецДня(Горизонт);
		ТаблицаЗаказов = ПолучитьТаблицаЗаказов(_Период, ДатаИсполнения, пВыб.Контрагент);
		
		
		Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов Цикл 
			СтруктураРасшифровки = Новый Структура;
				СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
				СтруктураРасшифровки.Вставить("СчетчикМесяца",_Период );
				СтруктураРасшифровки.Вставить("ДатаИсполнения", ДатаИсполнения);
				облЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);
				
			облКонтрагент.Параметры.Заполнить(пВыб);
			табДок.Вывести(облКонтрагент,пВыб.Уровень());
			облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
			облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
			облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
			облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
			табДок.Присоединить(облЗаказ); 
			 
			Пока _Период <= _КонПериод Цикл
					
				Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
					областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
					табДок.Присоединить(облЗаказ);
				ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
					областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
					табДок.Присоединить(облЗаказ);
				Иначе 
					областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
					табДок.Присоединить(облЗаказ);
				КонецЕсли; 		
				_Период  = КонецДня(_Период) + 1;
			КонецЦикла;
		КонецЦикла;
		
	КонецЦикла;
	табДок.ЗакончитьАвтогруппировкуСтрок();
Показать
45. SedovSU@mail.ru 292 14.02.19 10:29 Сейчас в теме
(44) да вроде все так. но мне кажется вам нужно вот этот код

              облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
            облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
            облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
            облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
            табДок.Присоединить(облЗаказ); 


В ставить в цикл где вы периоды делаете, там же где и шапку делаете - вот тут

Пока _Период <= _КонПериод Цикл

Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда // прошлый день
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(облЗаказ);
ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда // текущий день
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(облЗаказ);
Иначе
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(облЗаказ);
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
46. SedovSU@mail.ru 292 14.02.19 10:31 Сейчас в теме
(45) либо нужно заказы выводить где вы периоды строите

облКонтрагент.Параметры.Заполнить(пВыб);
 табДок.Вывести(облКонтрагент,пВыб.Уровень());
             
            Пока _Период <= _КонПериод Цикл
                 
               // вот где то тут
               облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
               облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
               облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
              облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
              табДок.Присоединить(облЗаказ); 


   
                Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
                    областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                    табДок.Присоединить(облЗаказ);
                ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день                
                    областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                    табДок.Присоединить(облЗаказ);
                Иначе 
                    областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                    табДок.Присоединить(облЗаказ);
                КонецЕсли;         
                _Период  = КонецДня(_Период) + 1;
            КонецЦикла;
        КонецЦикла;
Показать
47. user1008893 14.02.19 10:51 Сейчас в теме
(46)сделала вообще везде и все равно также
48. user1008893 14.02.19 11:57 Сейчас в теме
(46)
Пока пВыб.Следующий() Цикл 
		
		ТекущийПериод  = НачалоДня(ТекущаяДата());
		Горизонт = КонецМесяца(ГоризонтПланирования);
		_Период     = НачалоМесяца(ТекущийПериод);
		_КонПериод  = КонецДня(Горизонт);
		ТаблицаЗаказов = ПолучитьТаблицаЗаказов(_Период, ДатаИсполнения, пВыб.Контрагент);
		
		Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов Цикл 
			
			облКонтрагент.Параметры.Заполнить(пВыб);
			табДок.Вывести(облКонтрагент,пВыб.Уровень());
			
			//облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
			//облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
			//облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
			//облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
			//табДок.Присоединить(облЗаказ);
			
			Пока _Период <= _КонПериод Цикл
				СтруктураРасшифровки = Новый Структура;
				СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
				СтруктураРасшифровки.Вставить("СчетчикМесяца",_Период );
				СтруктураРасшифровки.Вставить("ДатаИсполнения", ДатаИсполнения);
				облЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);
				
				
				
				
				Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
					областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
					облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
					облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
					облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
					облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
					табДок.Присоединить(облЗаказ);
					
				ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
					областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
					облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
					облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
					облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
					облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
					табДок.Присоединить(облЗаказ);
					
				Иначе 
					областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
					облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
					облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
					облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
					облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
					табДок.Присоединить(облЗаказ);
					
				КонецЕсли; 		
				_Период  = КонецДня(_Период) + 1;
			КонецЦикла;
		КонецЦикла;
	КонецЦикла;
	табДок.ЗакончитьАвтогруппировкуСтрок();
	
Показать

Если сделать вот так,то выводится правильно,но только первый заказ
Прикрепленные файлы:
49. user1008893 14.02.19 15:50 Сейчас в теме
50. user1008893 15.02.19 07:52 Сейчас в теме
(46)Почему только 1 заказ выводится?
51. SedovSU@mail.ru 292 15.02.19 08:27 Сейчас в теме
(50) а в таблице заказов сколько строк получается? ТаблицаЗаказов = ПолучитьТаблицаЗаказов(_Период, ДатаИсполнения, пВыб.Контрагент); - вот в этом месте сколько заказов?
52. user1008893 15.02.19 08:34 Сейчас в теме
(51)Похоже ,что 7.
ТаблицаЗаказов = ПолучитьТаблицаЗаказов(_Период, ДатаИсполнения, пВыб.Контрагент);
		Сообщить("Заказы"+ТаблицаЗаказов);

Вот так 7 строк выводит
53. SedovSU@mail.ru 292 15.02.19 08:45 Сейчас в теме
(52) так, но вот у вас на скрине выведен заказ, далее что то то пустое, затем опять несколько заков, затем опять пусто и опять заказы. Вот эти пустые строки - это правильно так и должно. Вы отладку посмотрите сколько раз в ней обходят заказы
54. user1008893 15.02.19 08:47 Сейчас в теме
(53)На этом пустом месте должны быть заказы этого контрагента. Вот у контрагента 5 заказов,а он выводит только первый заказ.
55. SedovSU@mail.ru 292 15.02.19 08:48 Сейчас в теме
(53) и еще попробуйте определять область не до цикла.а в цикле.

облКонтрагент=МойМакет.ПолучитьОбласть("Таблица|Контрагент");


Поставьте этот код в цикле, а не перед циклом
56. user1008893 15.02.19 08:52 Сейчас в теме
57. SedovSU@mail.ru 292 15.02.19 08:53 Сейчас в теме
(56) скажите вот эти пустые строки, которые получаются, теоритически это похоже на ваши заказы, по количество? это они - просто не заполнены
58. user1008893 15.02.19 08:54 Сейчас в теме
(57)все получилось,спасибо за помощь. Инициализировала переменную период в цикле))
60. SedovSU@mail.ru 292 15.02.19 08:56 Сейчас в теме
(58) ну и здорово!!!! не зачто!
61. user1008893 15.02.19 09:05 Сейчас в теме
(60)можно ли считать общий вес,объем,сумму за одного контрагента?
62. SedovSU@mail.ru 292 15.02.19 09:07 Сейчас в теме
(61) Вы хотите итоги вывести этих показателей по каждому контрагенту??
63. user1008893 15.02.19 09:07 Сейчас в теме
64. SedovSU@mail.ru 292 15.02.19 09:40 Сейчас в теме
(63) это достаточно просто есть два варианта

1. когда вы обошли всю таблицу заказов то после этого цикла вам нужно вывести итогои - определяете область и выводите итоги. ОбластьИтогов.Параметры.Вес = ТаблицаЗаказов.Итоги("Вес");
2. В цикле на последнем обходе устанавливаете признак, что это последняя строка и делаете тоже самое что и в пункте 1.

Можно другой подход. Перед циклом определить область итогов. а вцикле завести заполнение этих итогов. и после обхода таблицы заказов просто выводите эту область!

Представите что вам нужно вывести еще один заказ но с итогами
65. user1008893 15.02.19 09:58 Сейчас в теме
(64)так,отмена. Короче так не пойдет все это.((( надо создать документ, который будет при расшифровке заполнять заказы покупателя. Чтобы человек открывая расшифровку видел заказы покупателя,но он мог добавлять и удалять заказы из списка.Потом все это выводить на печатную форму
66. SedovSU@mail.ru 292 15.02.19 10:19 Сейчас в теме
(65) ну это тоже возможно реализовать. В принципе не много вернуться назад
67. user1008893 15.02.19 10:21 Сейчас в теме
(66)я не знаю как это сделать,никогда не делала подобного((
68. Release 15.02.19 11:25 Сейчас в теме
(65)
надо создать документ, который будет при расшифровке заполнять заказы покупателя

Это какой-то существующий в конфигурации документ или новый?
69. user1008893 15.02.19 11:30 Сейчас в теме
(68)новый,я уже создала его. получилось заполнить его.Не знаю как при нажатии на ячейку,чтобы открывалась форма документа,а не форма расшифровки.
70. Release 15.02.19 11:48 Сейчас в теме
(69)тогда покажите, что у вас уже получилось и что нужно доделать.
71. user1008893 15.02.19 11:52 Сейчас в теме
(70)Вот так на форме расшифровки
Процедура ПриОткрытии()Экспорт 
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
	|	ЗаказПокупателя.Контрагент КАК Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
	|	ЗаказПокупателя.Контрагент КАК Количество,
	|	СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
	|	СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
	|	СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
	|{ВЫБРАТЬ
	|	ЗаказПокупателя.*,
	|	Контрагент.*}
	|ИЗ
	|	Документ.ЗаказПокупателя КАК ЗаказПокупателя
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
	|		ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
	|		ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
	|		ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
	|ГДЕ
	|	ЗаказПокупателя.Проведен = ИСТИНА
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
	|	И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
	|	И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
	|	И ЗаказПокупателя.Контрагент = &Контрагент
	|
	|СГРУППИРОВАТЬ ПО
	|	ЗаказПокупателя.Ссылка,
	|	ЗаказПокупателя.Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения,
	|	ЗаказПокупателя.Контрагент
	|АВТОУПОРЯДОЧИВАНИЕ";
	Запрос.УстановитьПараметр("СчетчикМесяца",День);
	Запрос.УстановитьПараметр("ДатаИсполнения",ДатаИсполнения);
	Запрос.УстановитьПараметр("Контрагент",Контрагент);
	ЭлементыОтбора=Новый Структура;
	_ТаблЗаказы = Запрос.Выполнить().Выгрузить();
	
	//Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
	//	СтрокаТЧ = ТЧ.Добавить();
	//	СтрокаТЧ.Документ  = СтрокаТаблЗаказы.ЗаказПокупателя;
	//	СтрокаТЧ.Вес=СтрокаТаблЗаказы.Вес;	
	//	СтрокаТЧ.Объем=СтрокаТаблЗаказы.Объем;
	//	СтрокаТЧ.Сумма=СтрокаТаблЗаказы.Сумма;
	//КонецЦикла;	
НовДок=Документы.ПС_ЗаказыДляОтгрузки.ПолучитьФормуНовогоДокумента();
НовДок.Дата=ТекущаяДата();
	Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
		СтрокаТЧ =НовДок.Заказы.Добавить();
		СтрокаТЧ.Заказ  = СтрокаТаблЗаказы.ЗаказПокупателя;
	КонецЦикла;
	НовДок.Открыть();
КонецПроцедуры
Показать

Он открывает и все заполняет,просто сейчас не надо открывать форму расшифровки. Я пробовала без нее,ничего не работает
59. SedovSU@mail.ru 292 15.02.19 08:55 Сейчас в теме +1 $m
(56) проблема мне кажется в этом табДок.Вывести(облКонтрагент,пВыб.Уровень());

напишите без уровня

табДок.Вывести(облКонтрагент);

и вас скорее всего получиться
13. ogerofeeva 13.02.19 09:58 Сейчас в теме
Когда я писала подобные запросы к базе, то столкнулась с проблемой. Если при ЛЕВОМ СОЕДИНЕНИИ в запросе появляется условие ГДЕ, то оно автоматически без предупреждений становиться ВНУТРЕННИМ СОЕДИНЕНИЕМ.
15. user1008893 13.02.19 10:16 Сейчас в теме
(13)это здесь при чем? Запрос правильно работает
18. ogerofeeva 13.02.19 10:37 Сейчас в теме
хорошо, если правильно. у меня в подобном запросе половина документов выпадало из-за отсутствия записи в регистре сведений, которые бы им соответствовали, потому что соединение внутренним становится :(
43. user970589 14.02.19 09:54 Сейчас в теме
(18)ну так не используйте ГДЕ. Постройте по другому запрос. Запрос действительно правильно работает..
72. Release 15.02.19 12:05 Сейчас в теме
Как-то так:
Процедура ПриОткрытии()Экспорт 
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ЗаказПокупателя.Ссылка КАК Заказ,
    |    ЗаказПокупателя.Контрагент КАК Контрагент,
    |    ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
    |    ЗаказПокупателя.Контрагент КАК Количество,
    |    СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
    |    СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
    |    СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
    |{ВЫБРАТЬ
    |    ЗаказПокупателя.*,
    |    Контрагент.*}
    |ИЗ
    |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
    |        ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
    |        ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
    |        ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
    |ГДЕ
    |    ЗаказПокупателя.Проведен = ИСТИНА
    |    И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
    |    И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
    |    И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
    |    И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
    |    И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
    |    И ЗаказПокупателя.Контрагент = &Контрагент
    |
    |СГРУППИРОВАТЬ ПО
    |    ЗаказПокупателя.Ссылка,
    |    ЗаказПокупателя.Контрагент,
    |    ЗаказПокупателя.ДатаИсполнения,
    |    ЗаказПокупателя.Контрагент
    |АВТОУПОРЯДОЧИВАНИЕ";
    Запрос.УстановитьПараметр("СчетчикМесяца",День);
    Запрос.УстановитьПараметр("ДатаИсполнения",ДатаИсполнения);
    Запрос.УстановитьПараметр("Контрагент",Контрагент);
    ЭлементыОтбора=Новый Структура;
    _ТаблЗаказы = Запрос.Выполнить().Выгрузить();
    
   НовДок=Документы.ПС_ЗаказыДляОтгрузки.СоздатьДокумент();
   НовДок.Дата=ТекущаяДата();
   НовДок.Загрузить(_ТаблЗаказы)
   НовДок.Записать(РежимЗаписиДокумента.Проведение,);
КонецПроцедуры
Показать
73. user1008893 15.02.19 12:08 Сейчас в теме
(72)у меня же это то работает,только надо,чтобы при обработке расшифровки открывалась форма документа.
Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) Экспорт 
	
	Если ТипЗнч(Расшифровка)=Тип("ФиксированнаяСтруктура") Тогда
		СтандартнаяОбработка=Ложь;
		ПараметрыФормыРасшифровки = Новый Структура(Расшифровка);
		ФормаРасшифровки = ПолучитьФорму("РасшифровкаПотребностей");
		ФормаРасшифровки.Контрагент = Расшифровка.Контрагент;
		ФормаРасшифровки.День=Расшифровка.СчетчикМесяца;
		ФормаРасшифровки.ДатаИсполнения= Расшифровка.ДатаИсполнения;
		ФормаРасшифровки.Открыть();	
		 
	КонецЕсли;
КонецПроцедуры
Показать
74. Release 15.02.19 12:17 Сейчас в теме
Понял, хотя и не сразу.
Либо замените код в ПолеТабличногоДокумента1ОбработкаРасшифровки():
		ПараметрыФормыРасшифровки = Новый Структура(Расшифровка);
		ФормаРасшифровки = ПолучитьФорму("РасшифровкаПотребностей");
		ФормаРасшифровки.Контрагент = Расшифровка.Контрагент;
		ФормаРасшифровки.День=Расшифровка.СчетчикМесяца;
		ФормаРасшифровки.ДатаИсполнения= Расшифровка.ДатаИсполнения;
		ФормаРасшифровки.Открыть();	
на код из ПриОткрытии(),
либо добавить в ПриОткрытии(Отказ):
Отказ = Истина;
75. user1008893 15.02.19 13:08 Сейчас в теме
(74)Если поменять,то заполняется пустой документ,а отказ что то ничего не срабатывает
76. Release 15.02.19 13:18 Сейчас в теме
(75) 1. Значит результат запроса пустой, проверьте в отладчике значения параметров, которые устанавливаете для запроса.
2. Т.е. этот код не работает и форма документа не открывается?
Процедура ПриОткрытии(Отказ) Экспорт 
    // тут весь ваш код
   НовДок.Открыть();

   Отказ = Истина;
КонецПроцедуры
77. user1008893 15.02.19 13:22 Сейчас в теме
(76)2. Форма документа открывается правильно все,но не надо открывать форму расшифровки
78. Release 15.02.19 13:35 Сейчас в теме
Тогда вопрос. Указанная вами процедура:
Процедура ПриОткрытии()Экспорт

к чему относится?
Если форме РасшифровкаПотребностей, то строка Отказ = Истина; должна помочь.
79. user1008893 15.02.19 13:38 Сейчас в теме
(78)да,все так. Но не получается. Не срабатывает
80. Release 15.02.19 13:46 Сейчас в теме +1 $m
(79) Тогда скопируйте сюда ваш текущий код из этой процедуры. Потому что это должно работать:
УправляемаяФорма (ManagedForm)
ПриОткрытии (OnOpen)
Синтаксис:

ПриОткрытии(<Отказ>)
Параметры:

<Отказ>

Тип: Булево.
Признак отказа от открытия формы. Если в теле процедуры-обработчика установить данному параметру значение Истина, то открытие формы произведено не будет.
Значение по умолчанию: Ложь.
81. user1008893 15.02.19 13:48 Сейчас в теме
(80)у меня не управляемая форма,а обычная форма
82. user1008893 15.02.19 14:02 Сейчас в теме
(80)Все получилось,перенесла в процедуру перед открытием и отказ=истина сработал)
84. user1008893 18.02.19 11:37 Сейчас в теме
(80)Сейчас делаю запрос,который должен получать заказы, которых нет в документе ЗаказыДляОтгрузки. Пытаюсь вот так,но не получается. Выводит все заказы. может найдете ошибку?
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
	ЗаказПокупателя.Контрагент КАК Контрагент,
	ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
	ЗаказПокупателя.Контрагент КАК Количество,
	СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
	СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
	СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
{ВЫБРАТЬ
	ЗаказПокупателя.*,
	Контрагент.*}
ИЗ
	Документ.ЗаказПокупателя КАК ЗаказПокупателя
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
		ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
		ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
		ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
			ПС_ЗаказыДляОтгрузки.Контрагент КАК Контрагент
		ИЗ
			Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
				ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
				ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка) КАК ЗаказыОтгрузки
		ПО ЗаказПокупателя.Ссылка = ЗаказыОтгрузки.Заказ.Ссылка
ГДЕ
	ЗаказПокупателя.Проведен = ИСТИНА
	И СтатусыВыполненияЗаказов.Статус.Наименование <> "Оформлен"
	И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
	И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
	И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
	И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
	И ЗаказПокупателя.Контрагент = &Контрагент
	И НЕ ЗаказПокупателя.ПометкаУдаления

СГРУППИРОВАТЬ ПО
	ЗаказПокупателя.Ссылка,
	ЗаказПокупателя.Контрагент,
	ЗаказПокупателя.ДатаИсполнения,
	ЗаказПокупателя.Контрагент
АВТОУПОРЯДОЧИВАНИЕ
Показать
85. Release 18.02.19 12:05 Сейчас в теме
(84) 1. Смысл этого блока мне не понятен:
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
            ПС_ЗаказыДляОтгрузки.Контрагент КАК Контрагент
        ИЗ
            Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
                ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
                ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка) КАК ЗаказыОтгрузки
        ПО ЗаказПокупателя.Ссылка = ЗаказыОтгрузки.Заказ.Ссылка

Данные из ЗаказыОтгрузки нигде не используются.
2. Использование такой конструкции плохой подход:
СтатусыВыполненияЗаказов.Статус.Наименование <> "Оформлен"

Если статус это перечисление, лучше использовать что-то вроде:
СтатусыВыполненияЗаказов.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыВыполненияЗаказов.Оформлен)

3. Судя по тексту запроса, у вас на данный момент должны выбираться все документы заказов с ограничением на условия в блоке ГДЕ, без учета есть ли на них ссылки в документе ЗаказыДляОтгрузки. Это так?
Тогда в блоке ГДЕ:
НЕ ЗаказПокупателя.Ссылка  В (ВЫБРАТЬ ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка ИЗ Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы ГДЕ ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Проведен = ИСТИНА)

Блок из пункта 1 можно удалить.
87. user1008893 18.02.19 12:52 Сейчас в теме
(85)
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
	ЗаказПокупателя.Контрагент КАК Контрагент,
	ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
	ЗаказПокупателя.Контрагент КАК Количество,
	СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
	СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
	СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
{ВЫБРАТЬ
	ЗаказПокупателя.*,
	Контрагент.*}
ИЗ
	Документ.ЗаказПокупателя КАК ЗаказПокупателя
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
		ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
		ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
		ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
ГДЕ
	ЗаказПокупателя.Проведен = ИСТИНА
	И СтатусыВыполненияЗаказов.Статус.Наименование <> "Оформлен"
	И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
	И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
	И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
	И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
	И ЗаказПокупателя.Контрагент = &Контрагент
	И НЕ ЗаказПокупателя.ПометкаУдаления
	И ЗаказПокупателя.Ссылка НЕ В
				(ВЫБРАТЬ
					ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ
				ИЗ
					Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы)

СГРУППИРОВАТЬ ПО
	ЗаказПокупателя.Ссылка,
	ЗаказПокупателя.Контрагент,
	ЗаказПокупателя.ДатаИсполнения,
	ЗаказПокупателя.Контрагент
АВТОУПОРЯДОЧИВАНИЕ
Показать

ничего не выводит
88. user1008893 18.02.19 13:10 Сейчас в теме
(85) Все получилось,спасибо
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
    ЗаказПокупателя.Контрагент КАК Контрагент,
    ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
       СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
    СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
    СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
{ВЫБРАТЬ
    ЗаказПокупателя.*,
    Контрагент.*}
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказПокупателя
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
        ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
        ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
        ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
ГДЕ
    ЗаказПокупателя.Проведен = ИСТИНА
    И СтатусыВыполненияЗаказов.Статус.Наименование <> "Оформлен"
    И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
    И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
    И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
    И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
    И ЗаказПокупателя.Контрагент = &Контрагент
    И НЕ ЗаказПокупателя.ПометкаУдаления
    И ЗаказПокупателя.Ссылка НЕ В
                (ВЫБРАТЬ
	ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
	ИЗ
	Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
		ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
ГДЕ
	НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления
	)

СГРУППИРОВАТЬ ПО
    ЗаказПокупателя.Ссылка,
    ЗаказПокупателя.Контрагент,
    ЗаказПокупателя.ДатаИсполнения,
    ЗаказПокупателя.Контрагент
АВТОУПОРЯДОЧИВАНИЕ
Показать
83. meriferi 18.02.19 11:03 Сейчас в теме
тот же параметр поставьте в расшифровке
86. 988599 18.02.19 12:06 Сейчас в теме
Как идет расшифровка? Нажимаете потом или как , что вы хотите?
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
Полный день

Программист 1С
Москва
зарплата от 100 000 руб. до 130 000 руб.
Полный день

Бизнес-аналитик 1С ERP
Пермь
зарплата от 80 000 руб.
Полный день

Программист 1С УТ 11
Омск
зарплата от 60 000 руб.
Полный день

Бизнес-аналитик 1С УТ 11
Омск
зарплата от 60 000 руб.
Полный день