У меня есть обработка,в которой строится отчет с расшифровкой.
Когда нажимаю на выбрать заказ выходит список заказов контрагента.
Как сделать печатную форму,которая будет брать данные из расшифровки тоже. Есть вероятность,что данные в расшифровке могут изменяться пользователем.
Помогите пожалуйста...
-модуль основной формы
-модуль формы расшифровки
Когда нажимаю на выбрать заказ выходит список заказов контрагента.
Как сделать печатную форму,которая будет брать данные из расшифровки тоже. Есть вероятность,что данные в расшифровке могут изменяться пользователем.
Помогите пожалуйста...
Процедура ДействияФормыСформировать(Кнопка)
ПостроительОтчетаОтчет = Новый ПостроительОтчета;
ПостроительОтчетаОтчет.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
| ЗаказПокупателя.Контрагент КАК Контрагент,
| ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
| КОЛИЧЕСТВО(ЗаказПокупателя.Контрагент) КАК Количество
|{ВЫБРАТЬ
| ЗаказПокупателя.*,
| Контрагент.*}
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
| ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
| ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
|ГДЕ
| ЗаказПокупателя.Проведен = ИСТИНА
| И ЗаказПокупателя.ДатаИсполнения МЕЖДУ &ДатаИсполнения И &ГоризонтПланирования
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
| И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
|
|СГРУППИРОВАТЬ ПО
| ЗаказПокупателя.Ссылка,
| ЗаказПокупателя.Контрагент,
| ЗаказПокупателя.ДатаИсполнения
|
|УПОРЯДОЧИТЬ ПО
| Контрагент
|ИТОГИ ПО
| Контрагент,
| ЗаказПокупателя
|АВТОУПОРЯДОЧИВАНИЕ";
ПостроительОтчетаОтчет.Параметры.Вставить("ДатаИсполнения",ДатаИсполнения);
ПостроительОтчетаОтчет.Параметры.Вставить("ГоризонтПланирования",ГоризонтПланирования);
ПостроительОтчетаОтчет.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.Расшифровка;
табДок=ЭлементыФормы.ПолеТабличногоДокумента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ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) Экспорт
Если ТипЗнч(Расшифровка)=Тип("ФиксированнаяСтруктура") Тогда
СтандартнаяОбработка=Ложь;
ПараметрыФормыРасшифровки = Новый Структура(Расшифровка);
ФормаРасшифровки = ПолучитьФорму("РасшифровкаПотребностей");
ФормаРасшифровки.Контрагент = Расшифровка.Контрагент;
ФормаРасшифровки.День=Расшифровка.СчетчикМесяца;
ФормаРасшифровки.ДатаИсполнения= Расшифровка.ДатаИсполнения;
ФормаРасшифровки.Открыть();
КонецЕсли;
КонецПроцедуры
ПоказатьПроцедура ПриОткрытии()Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
| ЗаказПокупателя.Контрагент КАК Контрагент,
| ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
| ЗаказПокупателя.Контрагент КАК Количество,
| СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
| СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
| СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
|{ВЫБРАТЬ
| ЗаказПокупателя.*,
| Контрагент.*}
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
| ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
| ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
| ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
|ГДЕ
| ЗаказПокупателя.Проведен = ИСТИНА
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
| И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
| И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
| И ЗаказПокупателя.Контрагент = &Контрагент
|
|СГРУППИРОВАТЬ ПО
| ЗаказПокупателя.Ссылка,
| ЗаказПокупателя.Контрагент,
| ЗаказПокупателя.ДатаИсполнения,
| ЗаказПокупателя.Контрагент
|АВТОУПОРЯДОЧИВАНИЕ";
Запрос.УстановитьПараметр("СчетчикМесяца",День);
Запрос.УстановитьПараметр("ДатаИсполнения",ДатаИсполнения);
Запрос.УстановитьПараметр("Контрагент",Контрагент);
ЭлементыОтбора=Новый Структура;
_ТаблЗаказы = Запрос.Выполнить().Выгрузить();
Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
СтрокаТЧ = ТЧ.Добавить();
СтрокаТЧ.Документ = СтрокаТаблЗаказы.ЗаказПокупателя;
СтрокаТЧ.Вес=СтрокаТаблЗаказы.Вес;
СтрокаТЧ.Объем=СтрокаТаблЗаказы.Объем;
СтрокаТЧ.Сумма=СтрокаТаблЗаказы.Сумма;
КонецЦикла;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
По теме из базы знаний
- Внешняя печатная форма Т-53 с расшифровкой ФИО для ЗУП 8.2
- Внешние печатные формы для Управления торговлей 11
- Универсальная печатная форма "Анализ объекта" + шаблон подключаемой обработки для 1С на управляемых формах + отладка внешней печатной формы.
- Счет-фактура выданный (внешняя печатная форма) с выбором подписантов и с печатью с грузополучателем или без.
- Переход с 1С:УПП на 1C:ERP: Задача переноса печатных форм в сжатые сроки. Конструктор печати
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Если данные в расшифровке могут изменяться пользователем, значит расшифровка должна открывать ссылку на конкретный документ или выдавать список документов для редактирования.
(8) хорошо, тогда в результате вы что хотите получить. У вас формируется какой - то отчет, по нажатию по полю у вас открывается таблица значений со списком. А хотите что получить, чтобы открылася какой то другой отчет вместо списка значений?
(11) Ну у вас все для этого есть. У вас есть таблица с заказами "ТЧ" куда вы заполняете заказ покупателя, вес, объем и сумма.
Теперь вам эти данные нужно не при расшифровки получить а явно отобразить в поле. В макет вместо "ВЫбрать заказ" добавляете параметр, например, заказ и при выводе отчета заполняете. Заполняете по аналогии как у вас расширофка работает и открывается форма РасшифровкаПотребностей. Возможно там будет несколько заказов, которые можете указать через запятую
Теперь вам эти данные нужно не при расшифровки получить а явно отобразить в поле. В макет вместо "ВЫбрать заказ" добавляете параметр, например, заказ и при выводе отчета заполняете. Заполняете по аналогии как у вас расширофка работает и открывается форма РасшифровкаПотребностей. Возможно там будет несколько заказов, которые можете указать через запятую
(16) Да, ведь как вы получаете эти заказы при расшифровке - передаете туда параметры
А после этого их передаете в форму открытия расшифровки и там что то делается и программа показывает перечень заказов. То есть смысл в том что при передачи пВыб.Контрагент, _Период, ДатаИсполнения вы можете получить заказы. Ну так и вставьте этот код который все это делаете и заполните заказы (если их несколько то через запятую можно) и тогда вам расшифровка не нужна
СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
СтруктураРасшифровки.Вставить("СчетчикМесяца",_Период );
СтруктураРасшифровки.Вставить("ДатаИсполнения", ДатаИсполнения);
А после этого их передаете в форму открытия расшифровки и там что то делается и программа показывает перечень заказов. То есть смысл в том что при передачи пВыб.Контрагент, _Период, ДатаИсполнения вы можете получить заказы. Ну так и вставьте этот код который все это делаете и заполните заказы (если их несколько то через запятую можно) и тогда вам расшифровка не нужна
(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;
КонецЦикла;
КонецЦикла;
табДок.ЗакончитьАвтогруппировкуСтрок();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
| ЗаказПокупателя.Контрагент КАК Контрагент,
| ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
| ЗаказПокупателя.Контрагент КАК Количество,
| СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
| СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
| СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
|{ВЫБРАТЬ
| ЗаказПокупателя.*,
| Контрагент.*}
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
| ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
| ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
| ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
|ГДЕ
| ЗаказПокупателя.Проведен = ИСТИНА
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
| И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
| И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
| И ЗаказПокупателя.Контрагент = &Контрагент
|
|СГРУППИРОВАТЬ ПО
| ЗаказПокупателя.Ссылка,
| ЗаказПокупателя.Контрагент,
| ЗаказПокупателя.ДатаИсполнения,
| ЗаказПокупателя.Контрагент
|АВТОУПОРЯДОЧИВАНИЕ";
КонецПроцедуры
ПоказатьЧто то туплю
(19) смотрите вот код расшифровки
То есть на форме установили параметры и открыли. А при открытии что произошло? какой там код написан? как таблица по заказам фильтруется/получается?
Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) Экспорт
Если ТипЗнч(Расшифровка)=Тип("ФиксированнаяСтруктура") Тогда
СтандартнаяОбработка=Ложь;
ПараметрыФормыРасшифровки = Новый Структура(Расшифровка);
ФормаРасшифровки = ПолучитьФорму("РасшифровкаПотребностей");
ФормаРасшифровки.Контрагент = Расшифровка.Контрагент;
ФормаРасшифровки.День=Расшифровка.СчетчикМесяца;
ФормаРасшифровки.ДатаИсполнения= Расшифровка.ДатаИсполнения;
ФормаРасшифровки.Открыть();
КонецЕсли;
КонецПроцедуры
ПоказатьТо есть на форме установили параметры и открыли. А при открытии что произошло? какой там код написан? как таблица по заказам фильтруется/получается?
(20)
Процедура ПриОткрытии()Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
| ЗаказПокупателя.Контрагент КАК Контрагент,
| ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
| ЗаказПокупателя.Контрагент КАК Количество,
| СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
| СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
| СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
|{ВЫБРАТЬ
| ЗаказПокупателя.*,
| Контрагент.*}
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
| ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
| ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
| ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
|ГДЕ
| ЗаказПокупателя.Проведен = ИСТИНА
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
| И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
| И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
| И ЗаказПокупателя.Контрагент = &Контрагент
|
|СГРУППИРОВАТЬ ПО
| ЗаказПокупателя.Ссылка,
| ЗаказПокупателя.Контрагент,
| ЗаказПокупателя.ДатаИсполнения,
| ЗаказПокупателя.Контрагент
|АВТОУПОРЯДОЧИВАНИЕ";
Запрос.УстановитьПараметр("СчетчикМесяца",День);
Запрос.УстановитьПараметр("ДатаИсполнения",ДатаИсполнения);
Запрос.УстановитьПараметр("Контрагент",Контрагент);
ЭлементыОтбора=Новый Структура;
_ТаблЗаказы = Запрос.Выполнить().Выгрузить();
Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
СтрокаТЧ = ТЧ.Добавить();
СтрокаТЧ.Документ = СтрокаТаблЗаказы.ЗаказПокупателя;
СтрокаТЧ.Вес=СтрокаТаблЗаказы.Вес;
СтрокаТЧ.Объем=СтрокаТаблЗаказы.Объем;
СтрокаТЧ.Сумма=СтрокаТаблЗаказы.Сумма;
КонецЦикла;
КонецПроцедуры
Показать
(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;
КонецЦикла;
КонецЦикла;
табДок.ЗакончитьАвтогруппировкуСтрок();
КонецПроцедуры
Показать
(24) Должно выводится все заказы через запятую, ведь мы же обходим весь результат запроса и значения поля заказ указываем в текстовой строке через запятую. А что касательно объем, вес, сумму - можно для них сделать тоже отдельные процедуры. А лучше сделать чтобы эта функция возвращала не строку а саму таблицу, а далее вы бы ее при формировании отчета обходили и заполняли и заказ и вес и объем. Тут уже на любителя как сделать
(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;
КонецЦикла;
КонецЦикла;
табДок.ЗакончитьАвтогруппировкуСтрок();
КонецПроцедуры
Показать
(27)
Так,все сделала,но только он выводит из всех заказов последний,как это поправить?
Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов Цикл
облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
КонецЦикла;
ПоказатьТак,все сделала,но только он выводит из всех заказов последний,как это поправить?
(29) Да все правильно, будет только последний. Потому что при каждой итерации он перезаписывает значение. Как вариант можно через запятую написать
Такой как бы не много "извращенский вариант"
Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов Цикл
Если ЗначениеЗаполнено(облЗаказ.Параметры.Заказ) Тогда
облЗаказ.Параметры.Заказ = облЗаказ.Параметры.Заказ + ", " + Строка(СтрокаТаблицыЗаказов.ЗаказПокупателя)
Иначе
облЗаказ.Параметры.Заказ = Строка(СтрокаТаблицыЗаказов.ЗаказПокупателя);
Конецесли
Если ЗначениеЗаполнено(облЗаказ.Параметры.Вес) Тогда
облЗаказ.Параметры.Вес = облЗаказ.Параметры.Вес + ", " + Строка(СтрокаТаблицыЗаказов.Вес);
Иначе
облЗаказ.Параметры.Вес = Строка(СтрокаТаблицыЗаказов.Вес)
Конецесли
Если ЗначениеЗаполнено(облЗаказ.Параметры.Объем) Тогда
облЗаказ.Параметры.Объем = облЗаказ.Параметры.Объем + ", " + Строка(СтрокаТаблицыЗаказов.Объем);
Иначе
облЗаказ.Параметры.Объем = Строка(СтрокаТаблицыЗаказов.Объем);
Конецесли
// по аналогии и сумму
КонецЦикла;
ПоказатьТакой как бы не много "извращенский вариант"
(31) конечно можно, даже так лучше будет но тогда вам нужно будет не много код исправить. То есть облЗаказ выводить для каждого заказа - верней в цикле выводить. Вот что то в этом роде
Пока пВыб.Следующий() Цикл
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
ТаблицаЗаказов = ПолучитьТаблицаЗаказов(_Период, ДатаИсполнения, пВыб.Контрагент)
Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов
облКонтрагент.Параметры.Заполнить(пВыб);
табДок.Вывести(облКонтрагент,пВыб.Уровень());
// и тут далее ваш код
Конеццикла
Конеццикла
Пока пВыб.Следующий() Цикл
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
ТаблицаЗаказов = ПолучитьТаблицаЗаказов(_Период, ДатаИсполнения, пВыб.Контрагент)
Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов
облКонтрагент.Параметры.Заполнить(пВыб);
табДок.Вывести(облКонтрагент,пВыб.Уровень());
// и тут далее ваш код
Конеццикла
Конеццикла
(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;
КонецЦикла;
КонецЦикла;
табДок.ЗакончитьАвтогруппировкуСтрок();
ПоказатьТак неправильно выводит,счетчик месяца берет тоже неправильно
(35) вот так получилось
Пока пВыб.Следующий() Цикл
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
ТаблицаЗаказов = ПолучитьТаблицаЗаказов(_Период, ДатаИсполнения, пВыб.Контрагент);
Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов Цикл
СтруктураРасшифровки = Новый Структура;
СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
СтруктураРасшифровки.Вставить("СчетчикМесяца",_Период );
СтруктураРасшифровки.Вставить("ДатаИсполнения", ДатаИсполнения);
облЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);
облКонтрагент.Параметры.Заполнить(пВыб);
табДок.Вывести(облКонтрагент,пВыб.Уровень());
облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
табДок.Присоединить(облЗаказ);
Пока _Период <= _КонПериод Цикл
Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда // прошлый день
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(облЗаказ);
ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда // текущий день
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(облЗаказ);
Иначе
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(облЗаказ);
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
КонецЦикла;
КонецЦикла;
табДок.ЗакончитьАвтогруппировкуСтрок();
ПоказатьПрикрепленные файлы:
(39)Есть допустим контрагент у которого 3 заказа,в первый день он выводит хорошо,а вот во второй день выводит только первый заказ,а потом только 2 пустые строки. А если 1 заказ у контрагента,то все правильно выводит.
Счетчик месяца все равно не правильно берет, берет всегда 1.02.2019
Счетчик месяца все равно не правильно берет, берет всегда 1.02.2019
(41) Вот смотрите. Получили Таблицу контрагентов, далее получили таблицу заказов. Теперь берем обходим таблицу контрагентов, начинаем обходить таблицу заказов, берем первую строку, смотрим значения данного заказа для первого периода, второго и третьего. далее берем следующий заказ и так же смотрим значения для первого периода, второго и третьего и так далее обходим и выводим
(42)Вроде так и делаю
Пока пВыб.Следующий() Цикл
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
ТаблицаЗаказов = ПолучитьТаблицаЗаказов(_Период, ДатаИсполнения, пВыб.Контрагент);
Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов Цикл
СтруктураРасшифровки = Новый Структура;
СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
СтруктураРасшифровки.Вставить("СчетчикМесяца",_Период );
СтруктураРасшифровки.Вставить("ДатаИсполнения", ДатаИсполнения);
облЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);
облКонтрагент.Параметры.Заполнить(пВыб);
табДок.Вывести(облКонтрагент,пВыб.Уровень());
облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
табДок.Присоединить(облЗаказ);
Пока _Период <= _КонПериод Цикл
Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда // прошлый день
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(облЗаказ);
ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда // текущий день
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(облЗаказ);
Иначе
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(облЗаказ);
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
КонецЦикла;
КонецЦикла;
табДок.ЗакончитьАвтогруппировкуСтрок();
Показать
(44) да вроде все так. но мне кажется вам нужно вот этот код
В ставить в цикл где вы периоды делаете, там же где и шапку делаете - вот тут
Пока _Период <= _КонПериод Цикл
Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда // прошлый день
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='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;
КонецЦикла;
(45) либо нужно заказы выводить где вы периоды строите
облКонтрагент.Параметры.Заполнить(пВыб);
табДок.Вывести(облКонтрагент,пВыб.Уровень());
Пока _Период <= _КонПериод Цикл
// вот где то тут
облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
табДок.Присоединить(облЗаказ);
Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда // прошлый день
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(облЗаказ);
ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда // текущий день
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(облЗаказ);
Иначе
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(облЗаказ);
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
КонецЦикла;
Показать
(46)
Если сделать вот так,то выводится правильно,но только первый заказ
Пока пВыб.Следующий() Цикл
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
ТаблицаЗаказов = ПолучитьТаблицаЗаказов(_Период, ДатаИсполнения, пВыб.Контрагент);
Для Каждого СтрокаТаблицыЗаказов Из ТаблицаЗаказов Цикл
облКонтрагент.Параметры.Заполнить(пВыб);
табДок.Вывести(облКонтрагент,пВыб.Уровень());
//облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
//облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
//облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
//облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
//табДок.Присоединить(облЗаказ);
Пока _Период <= _КонПериод Цикл
СтруктураРасшифровки = Новый Структура;
СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
СтруктураРасшифровки.Вставить("СчетчикМесяца",_Период );
СтруктураРасшифровки.Вставить("ДатаИсполнения", ДатаИсполнения);
облЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);
Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда // прошлый день
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
табДок.Присоединить(облЗаказ);
ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда // текущий день
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
табДок.Присоединить(облЗаказ);
Иначе
областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
облЗаказ.Параметры.Заказ=СтрокаТаблицыЗаказов.ЗаказПокупателя;
облЗаказ.Параметры.Вес=СтрокаТаблицыЗаказов.Вес;
облЗаказ.Параметры.Объем=СтрокаТаблицыЗаказов.Объем;
облЗаказ.Параметры.Сумма=СтрокаТаблицыЗаказов.Сумма;
табДок.Присоединить(облЗаказ);
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
КонецЦикла;
КонецЦикла;
табДок.ЗакончитьАвтогруппировкуСтрок();
ПоказатьЕсли сделать вот так,то выводится правильно,но только первый заказ
Прикрепленные файлы:
(52) так, но вот у вас на скрине выведен заказ, далее что то то пустое, затем опять несколько заков, затем опять пусто и опять заказы. Вот эти пустые строки - это правильно так и должно. Вы отладку посмотрите сколько раз в ней обходят заказы
(63) это достаточно просто есть два варианта
1. когда вы обошли всю таблицу заказов то после этого цикла вам нужно вывести итогои - определяете область и выводите итоги. ОбластьИтогов.Параметры.Вес = ТаблицаЗаказов.Итоги("Вес");
2. В цикле на последнем обходе устанавливаете признак, что это последняя строка и делаете тоже самое что и в пункте 1.
Можно другой подход. Перед циклом определить область итогов. а вцикле завести заполнение этих итогов. и после обхода таблицы заказов просто выводите эту область!
Представите что вам нужно вывести еще один заказ но с итогами
1. когда вы обошли всю таблицу заказов то после этого цикла вам нужно вывести итогои - определяете область и выводите итоги. ОбластьИтогов.Параметры.Вес = ТаблицаЗаказов.Итоги("Вес");
2. В цикле на последнем обходе устанавливаете признак, что это последняя строка и делаете тоже самое что и в пункте 1.
Можно другой подход. Перед циклом определить область итогов. а вцикле завести заполнение этих итогов. и после обхода таблицы заказов просто выводите эту область!
Представите что вам нужно вывести еще один заказ но с итогами
(64)так,отмена. Короче так не пойдет все это.((( надо создать документ, который будет при расшифровке заполнять заказы покупателя. Чтобы человек открывая расшифровку видел заказы покупателя,но он мог добавлять и удалять заказы из списка.Потом все это выводить на печатную форму
(70)Вот так на форме расшифровки
Он открывает и все заполняет,просто сейчас не надо открывать форму расшифровки. Я пробовала без нее,ничего не работает
Процедура ПриОткрытии()Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
| ЗаказПокупателя.Контрагент КАК Контрагент,
| ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
| ЗаказПокупателя.Контрагент КАК Количество,
| СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
| СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
| СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
|{ВЫБРАТЬ
| ЗаказПокупателя.*,
| Контрагент.*}
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
| ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
| ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
| ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
|ГДЕ
| ЗаказПокупателя.Проведен = ИСТИНА
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
| И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
| И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
| И ЗаказПокупателя.Контрагент = &Контрагент
|
|СГРУППИРОВАТЬ ПО
| ЗаказПокупателя.Ссылка,
| ЗаказПокупателя.Контрагент,
| ЗаказПокупателя.ДатаИсполнения,
| ЗаказПокупателя.Контрагент
|АВТОУПОРЯДОЧИВАНИЕ";
Запрос.УстановитьПараметр("СчетчикМесяца",День);
Запрос.УстановитьПараметр("ДатаИсполнения",ДатаИсполнения);
Запрос.УстановитьПараметр("Контрагент",Контрагент);
ЭлементыОтбора=Новый Структура;
_ТаблЗаказы = Запрос.Выполнить().Выгрузить();
//Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
// СтрокаТЧ = ТЧ.Добавить();
// СтрокаТЧ.Документ = СтрокаТаблЗаказы.ЗаказПокупателя;
// СтрокаТЧ.Вес=СтрокаТаблЗаказы.Вес;
// СтрокаТЧ.Объем=СтрокаТаблЗаказы.Объем;
// СтрокаТЧ.Сумма=СтрокаТаблЗаказы.Сумма;
//КонецЦикла;
НовДок=Документы.ПС_ЗаказыДляОтгрузки.ПолучитьФормуНовогоДокумента();
НовДок.Дата=ТекущаяДата();
Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
СтрокаТЧ =НовДок.Заказы.Добавить();
СтрокаТЧ.Заказ = СтрокаТаблЗаказы.ЗаказПокупателя;
КонецЦикла;
НовДок.Открыть();
КонецПроцедуры
ПоказатьОн открывает и все заполняет,просто сейчас не надо открывать форму расшифровки. Я пробовала без нее,ничего не работает
Когда я писала подобные запросы к базе, то столкнулась с проблемой. Если при ЛЕВОМ СОЕДИНЕНИИ в запросе появляется условие ГДЕ, то оно автоматически без предупреждений становиться ВНУТРЕННИМ СОЕДИНЕНИЕМ.
хорошо, если правильно. у меня в подобном запросе половина документов выпадало из-за отсутствия записи в регистре сведений, которые бы им соответствовали, потому что соединение внутренним становится :(
Как-то так:
Процедура ПриОткрытии()Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЗаказПокупателя.Ссылка КАК Заказ,
| ЗаказПокупателя.Контрагент КАК Контрагент,
| ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
| ЗаказПокупателя.Контрагент КАК Количество,
| СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
| СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
| СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
|{ВЫБРАТЬ
| ЗаказПокупателя.*,
| Контрагент.*}
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
| ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
| ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
| ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
|ГДЕ
| ЗаказПокупателя.Проведен = ИСТИНА
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
| И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
| И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
| И ЗаказПокупателя.Контрагент = &Контрагент
|
|СГРУППИРОВАТЬ ПО
| ЗаказПокупателя.Ссылка,
| ЗаказПокупателя.Контрагент,
| ЗаказПокупателя.ДатаИсполнения,
| ЗаказПокупателя.Контрагент
|АВТОУПОРЯДОЧИВАНИЕ";
Запрос.УстановитьПараметр("СчетчикМесяца",День);
Запрос.УстановитьПараметр("ДатаИсполнения",ДатаИсполнения);
Запрос.УстановитьПараметр("Контрагент",Контрагент);
ЭлементыОтбора=Новый Структура;
_ТаблЗаказы = Запрос.Выполнить().Выгрузить();
НовДок=Документы.ПС_ЗаказыДляОтгрузки.СоздатьДокумент();
НовДок.Дата=ТекущаяДата();
НовДок.Загрузить(_ТаблЗаказы)
НовДок.Записать(РежимЗаписиДокумента.Проведение,);
КонецПроцедуры
Показать
(72)у меня же это то работает,только надо,чтобы при обработке расшифровки открывалась форма документа.
Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) Экспорт
Если ТипЗнч(Расшифровка)=Тип("ФиксированнаяСтруктура") Тогда
СтандартнаяОбработка=Ложь;
ПараметрыФормыРасшифровки = Новый Структура(Расшифровка);
ФормаРасшифровки = ПолучитьФорму("РасшифровкаПотребностей");
ФормаРасшифровки.Контрагент = Расшифровка.Контрагент;
ФормаРасшифровки.День=Расшифровка.СчетчикМесяца;
ФормаРасшифровки.ДатаИсполнения= Расшифровка.ДатаИсполнения;
ФормаРасшифровки.Открыть();
КонецЕсли;
КонецПроцедуры
Показать
Понял, хотя и не сразу.
Либо замените код в ПолеТабличногоДокумента1ОбработкаРасшифровки():
на код из ПриОткрытии(),
либо добавить в ПриОткрытии(Отказ):
Либо замените код в ПолеТабличногоДокумента1ОбработкаРасшифровки():
ПараметрыФормыРасшифровки = Новый Структура(Расшифровка);
ФормаРасшифровки = ПолучитьФорму("РасшифровкаПотребностей");
ФормаРасшифровки.Контрагент = Расшифровка.Контрагент;
ФормаРасшифровки.День=Расшифровка.СчетчикМесяца;
ФормаРасшифровки.ДатаИсполнения= Расшифровка.ДатаИсполнения;
ФормаРасшифровки.Открыть();
либо добавить в ПриОткрытии(Отказ):
Отказ = Истина;
(75) 1. Значит результат запроса пустой, проверьте в отладчике значения параметров, которые устанавливаете для запроса.
2. Т.е. этот код не работает и форма документа не открывается?
2. Т.е. этот код не работает и форма документа не открывается?
Процедура ПриОткрытии(Отказ) Экспорт
// тут весь ваш код
НовДок.Открыть();
Отказ = Истина;
КонецПроцедуры
Тогда вопрос. Указанная вами процедура:
к чему относится?
Если форме РасшифровкаПотребностей, то строка Отказ = Истина; должна помочь.
Процедура ПриОткрытии()Экспорт
к чему относится?
Если форме РасшифровкаПотребностей, то строка Отказ = Истина; должна помочь.
(79) Тогда скопируйте сюда ваш текущий код из этой процедуры. Потому что это должно работать:
УправляемаяФорма (ManagedForm)
ПриОткрытии (OnOpen)
Синтаксис:
ПриОткрытии(<Отказ>)
Параметры:
<Отказ>
Тип: Булево.
Признак отказа от открытия формы. Если в теле процедуры-обработчика установить данному параметру значение Истина, то открытие формы произведено не будет.
Значение по умолчанию: Ложь.
ПриОткрытии (OnOpen)
Синтаксис:
ПриОткрытии(<Отказ>)
Параметры:
<Отказ>
Тип: Булево.
Признак отказа от открытия формы. Если в теле процедуры-обработчика установить данному параметру значение Истина, то открытие формы произведено не будет.
Значение по умолчанию: Ложь.
(80)Сейчас делаю запрос,который должен получать заказы, которых нет в документе ЗаказыДляОтгрузки. Пытаюсь вот так,но не получается. Выводит все заказы. может найдете ошибку?
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
ЗаказПокупателя.Контрагент КАК Контрагент,
ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
ЗаказПокупателя.Контрагент КАК Количество,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
{ВЫБРАТЬ
ЗаказПокупателя.*,
Контрагент.*}
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
ПС_ЗаказыДляОтгрузки.Контрагент КАК Контрагент
ИЗ
Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка) КАК ЗаказыОтгрузки
ПО ЗаказПокупателя.Ссылка = ЗаказыОтгрузки.Заказ.Ссылка
ГДЕ
ЗаказПокупателя.Проведен = ИСТИНА
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Оформлен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
И ЗаказПокупателя.Контрагент = &Контрагент
И НЕ ЗаказПокупателя.ПометкаУдаления
СГРУППИРОВАТЬ ПО
ЗаказПокупателя.Ссылка,
ЗаказПокупателя.Контрагент,
ЗаказПокупателя.ДатаИсполнения,
ЗаказПокупателя.Контрагент
АВТОУПОРЯДОЧИВАНИЕ
Показать
(84) 1. Смысл этого блока мне не понятен:
Данные из ЗаказыОтгрузки нигде не используются.
2. Использование такой конструкции плохой подход:
Если статус это перечисление, лучше использовать что-то вроде:
3. Судя по тексту запроса, у вас на данный момент должны выбираться все документы заказов с ограничением на условия в блоке ГДЕ, без учета есть ли на них ссылки в документе ЗаказыДляОтгрузки. Это так?
Тогда в блоке ГДЕ:
Блок из пункта 1 можно удалить.
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
ПС_ЗаказыДляОтгрузки.Контрагент КАК Контрагент
ИЗ
Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка) КАК ЗаказыОтгрузки
ПО ЗаказПокупателя.Ссылка = ЗаказыОтгрузки.Заказ.Ссылка
Данные из ЗаказыОтгрузки нигде не используются.
2. Использование такой конструкции плохой подход:
СтатусыВыполненияЗаказов.Статус.Наименование <> "Оформлен"
Если статус это перечисление, лучше использовать что-то вроде:
СтатусыВыполненияЗаказов.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыВыполненияЗаказов.Оформлен)
3. Судя по тексту запроса, у вас на данный момент должны выбираться все документы заказов с ограничением на условия в блоке ГДЕ, без учета есть ли на них ссылки в документе ЗаказыДляОтгрузки. Это так?
Тогда в блоке ГДЕ:
НЕ ЗаказПокупателя.Ссылка В (ВЫБРАТЬ ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка ИЗ Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы ГДЕ ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Проведен = ИСТИНА)
Блок из пункта 1 можно удалить.
(85)
ничего не выводит
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
ЗаказПокупателя.Контрагент КАК Контрагент,
ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
ЗаказПокупателя.Контрагент КАК Количество,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
{ВЫБРАТЬ
ЗаказПокупателя.*,
Контрагент.*}
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
ГДЕ
ЗаказПокупателя.Проведен = ИСТИНА
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Оформлен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
И ЗаказПокупателя.Контрагент = &Контрагент
И НЕ ЗаказПокупателя.ПометкаУдаления
И ЗаказПокупателя.Ссылка НЕ В
(ВЫБРАТЬ
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ
ИЗ
Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы)
СГРУППИРОВАТЬ ПО
ЗаказПокупателя.Ссылка,
ЗаказПокупателя.Контрагент,
ЗаказПокупателя.ДатаИсполнения,
ЗаказПокупателя.Контрагент
АВТОУПОРЯДОЧИВАНИЕ
Показатьничего не выводит
(85) Все получилось,спасибо
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
ЗаказПокупателя.Контрагент КАК Контрагент,
ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
{ВЫБРАТЬ
ЗаказПокупателя.*,
Контрагент.*}
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
ГДЕ
ЗаказПокупателя.Проведен = ИСТИНА
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Оформлен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
И ЗаказПокупателя.Контрагент = &Контрагент
И НЕ ЗаказПокупателя.ПометкаУдаления
И ЗаказПокупателя.Ссылка НЕ В
(ВЫБРАТЬ
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
ИЗ
Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
ГДЕ
НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления
)
СГРУППИРОВАТЬ ПО
ЗаказПокупателя.Ссылка,
ЗаказПокупателя.Контрагент,
ЗаказПокупателя.ДатаИсполнения,
ЗаказПокупателя.Контрагент
АВТОУПОРЯДОЧИВАНИЕ
Показать
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот