Проверка данные при создании нового документа
Так,у меня есть расписание отгрузок. Когда нажимаю на пересечение контрагента и день,то выводится новый документ с заказами,которые поедут в этот день. А если пользователь удалил какой либо документ,то этот заказ должен выпадать на следующий день и тд. Подскажите,как перебирать заказы.
сейчас вот так
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
| ЗаказПокупателя.Контрагент КАК Контрагент,
| ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
| ЗаказПокупателя.Контрагент КАК Количество,
| СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
| СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
| СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
|{ВЫБРАТЬ
| ЗаказПокупателя.*,
| Контрагент.*}
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
| ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
| ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
| ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
|ГДЕ
| ЗаказПокупателя.Проведен = ИСТИНА
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
| И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
| И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
| И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
| И ЗаказПокупателя.Контрагент = &Контрагент
|
|СГРУППИРОВАТЬ ПО
| ЗаказПокупателя.Ссылка,
| ЗаказПокупателя.Контрагент,
| ЗаказПокупателя.ДатаИсполнения,
| ЗаказПокупателя.Контрагент
|АВТОУПОРЯДОЧИВАНИЕ";
Запрос.УстановитьПараметр("СчетчикМесяца",День);
Запрос.УстановитьПараметр("ДатаИсполнения",ДатаИсполнения);
Запрос.УстановитьПараметр("Контрагент",Контрагент);
ЭлементыОтбора=Новый Структура;
_ТаблЗаказы = Запрос.Выполнить().Выгрузить();
ДокумОтгрузок=Документы.ПС_ЗаказыДляОтгрузки;
ЗапросДокум = Новый Запрос;
ЗапросДокум.Текст = "ВЫБРАТЬ
| ПС_ЗаказыДляОтгрузки.Ссылка
|ИЗ
| Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
|ГДЕ
| ПС_ЗаказыДляОтгрузки.ДеньОтгрузки = &День
| И ПС_ЗаказыДляОтгрузки.Контрагент = &Контрагент
| И НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления";
ЗапросДокум.УстановитьПараметр("День",День);
ЗапросДокум.УстановитьПараметр("Контрагент",Контрагент);
РезультатЗапроса = ЗапросДокум.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Количество()>0 Тогда
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
док=ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
Форма = Док.ПолучитьФорму("ФормаДокумента",Док);
Форма.Открыть();
КонецЦикла;
Иначе
НовДок=Документы.ПС_ЗаказыДляОтгрузки.ПолучитьФормуНовогоДокумента();
НовДок.Дата=ТекущаяДата();
НовДок.ДеньОтгрузки=День;
НовДок.Контрагент=Контрагент;
Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
СтрокаТЧ =НовДок.Заказы.Добавить();
СтрокаТЧ.Заказ = СтрокаТаблЗаказы.ЗаказПокупателя;
СтрокаТЧ.Вес=СтрокаТаблЗаказы.Вес;
СтрокаТЧ.Объем=СтрокаТаблЗаказы.Объем;
СтрокаТЧ.Сумма=СтрокаТаблЗаказы.Сумма;
КонецЦикла;
НовДок.Открыть();
КонецЕсли;
Отказ=Истина;
КонецПроцедуры
Показатьсейчас вот так
По теме из базы знаний
- Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Разработка и сценарное тестирование с Vanessa-ADD. Концепция, теория и сквозной пример создания сценария
- Добавление нового документа в формат обмена EnterpriseData (отправка)
- Универсальный отчет как инструмент создания новых отчетов на основании данных системы 1С
- Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
А если пользователь удалил какой либо документ,то этот заказ должен выпадать на следующий день и тд. Подскажите,как перебирать заказы.
какой документ удалил - заказ или отгрузку? начать с того, что получить запросом все заказы, которые не привязаны к отгрузке...
(2)
Так получила заказы,которые есть в документе отгрузки,а как получить те которых нет??
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
ЗаказПокупателя.Контрагент КАК Контрагент,
ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
ЗаказПокупателя.Контрагент КАК Количество,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
{ВЫБРАТЬ
ЗаказПокупателя.*,
Контрагент.*}
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
ПО ПС_ЗаказыДляОтгрузкиЗаказы.Заказ = ЗаказПокупателя.Ссылка
ГДЕ
ЗаказПокупателя.Проведен = ИСТИНА
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Оформлен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
И ЗаказПокупателя.Контрагент = &Контрагент
И ПС_ЗаказыДляОтгрузки.Контрагент = &Контрагент
И НЕ ЗаказПокупателя.ПометкаУдаления
СГРУППИРОВАТЬ ПО
ЗаказПокупателя.Ссылка,
ЗаказПокупателя.Контрагент,
ЗаказПокупателя.ДатаИсполнения,
ЗаказПокупателя.Контрагент
АВТОУПОРЯДОЧИВАНИЕ
ПоказатьТак получила заказы,которые есть в документе отгрузки,а как получить те которых нет??
(5)
Что то не получается,выводит все заказы
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
ЗаказПокупателя.Контрагент КАК Контрагент,
ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
ЗаказПокупателя.Контрагент КАК Количество,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
{ВЫБРАТЬ
ЗаказПокупателя.*,
Контрагент.*}
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка,
(ВЫБРАТЬ
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
ПС_ЗаказыДляОтгрузки.Контрагент КАК Контрагент
ИЗ
Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка) КАК ЗаказыОтгрузки
ГДЕ
ЗаказПокупателя.Проведен = ИСТИНА
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Оформлен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
И ЗаказПокупателя.Контрагент = &Контрагент
И НЕ ЗаказПокупателя.ПометкаУдаления
И ЗаказПокупателя.Ссылка НЕ В (ЗаказыОтгрузки.Заказ)
СГРУППИРОВАТЬ ПО
ЗаказПокупателя.Ссылка,
ЗаказПокупателя.Контрагент,
ЗаказПокупателя.ДатаИсполнения,
ЗаказПокупателя.Контрагент
АВТОУПОРЯДОЧИВАНИЕ
ПоказатьЧто то не получается,выводит все заказы
(6) потому что не правильный запрос....
ВЫБРАТЬ
ЗаказПокупателя.Ссылка
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ГДЕ
ЗаказПокупателя.Ссылка НЕ В (
ВЫБРАТЬ
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
ИЗ
Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы)
Показать
(7)вообще ничего не выводит
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
ЗаказПокупателя.Контрагент КАК Контрагент,
ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
ЗаказПокупателя.Контрагент КАК Количество,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
{ВЫБРАТЬ
ЗаказПокупателя.*,
Контрагент.*}
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
ГДЕ
ЗаказПокупателя.Проведен = ИСТИНА
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Оформлен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
И ЗаказПокупателя.Контрагент = &Контрагент
И НЕ ЗаказПокупателя.ПометкаУдаления
И ЗаказПокупателя.Ссылка НЕ В
(ВЫБРАТЬ
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ
ИЗ
Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы)
СГРУППИРОВАТЬ ПО
ЗаказПокупателя.Ссылка,
ЗаказПокупателя.Контрагент,
ЗаказПокупателя.ДатаИсполнения,
ЗаказПокупателя.Контрагент
АВТОУПОРЯДОЧИВАНИЕ
Показать
(8) Закоментируйте эти строки:
и проверьте результат.
Лучше всего для отладки запросов и использовать "Консоль запросов".
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Оформлен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
И ЗаказПокупателя.Контрагент = &Контрагент
И НЕ ЗаказПокупателя.ПометкаУдаления
и проверьте результат.
Лучше всего для отладки запросов и использовать "Консоль запросов".
(9)я через консоль и делаю
все получилось,спасибо
все получилось,спасибо
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
ЗаказПокупателя.Контрагент КАК Контрагент,
ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
{ВЫБРАТЬ
ЗаказПокупателя.*,
Контрагент.*}
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
ГДЕ
ЗаказПокупателя.Проведен = ИСТИНА
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Оформлен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
И ЗаказПокупателя.Контрагент = &Контрагент
И НЕ ЗаказПокупателя.ПометкаУдаления
И ЗаказПокупателя.Ссылка НЕ В
(ВЫБРАТЬ
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
ИЗ
Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
ГДЕ
НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления
)
СГРУППИРОВАТЬ ПО
ЗаказПокупателя.Ссылка,
ЗаказПокупателя.Контрагент,
ЗаказПокупателя.ДатаИсполнения,
ЗаказПокупателя.Контрагент
АВТОУПОРЯДОЧИВАНИЕ
Показать
(10) Не понимаю, зачем вам левое соединение в условии?
Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
(12)Можно еще вопрос?
Вот у меня есть форма документа ЗаказыДляОтгрузки. Вот если я ее открываю,то выводятся заказы со всеми данными. А вот если я поменяю заказ покупателя,то данные Вес,Объем и сумма не подставляются. Как это сделать? Думаю в процедуре ЗаказПриИзменении,но как получить заказ который сейчас стоит
Вот у меня есть форма документа ЗаказыДляОтгрузки. Вот если я ее открываю,то выводятся заказы со всеми данными. А вот если я поменяю заказ покупателя,то данные Вес,Объем и сумма не подставляются. Как это сделать? Думаю в процедуре ЗаказПриИзменении,но как получить заказ который сейчас стоит
Прикрепленные файлы:
(16)В заказе который получила,надо из тч вывести вес и объем
вот как в этом запросе
СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
вот как в этом запросе
(19)
что то не пойму
текЗаказ=ЭлементыФормы.Заказы.ТекущиеДанные.Заказ;
ЭлементыФормы.Заказы.ТекущиеДанные.Сумма= текЗаказ.СуммаДок;
ЗапросДанных=Новый Запрос;
ЗапросДанных="ВЫБРАТЬ
| ЗаказПокупателяТЧ.Ссылка,
| СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
| СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
| СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
|ИЗ
| Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
|ГДЕ
| ЗаказПокупателяТЧ.Ссылка = &текЗаказ
|
|СГРУППИРОВАТЬ ПО
| ЗаказПокупателяТЧ.Ссылка";
ЗапросДанных.УстановитьПараметр("текЗаказ",текЗаказ);
РезультатЗапроса = ЗапросДанных.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ЭлементыФормы.Заказы.ТекущиеДанные.Вес=ВыборкаДетальныеЗаписи.Вес;
ЭлементыФормы.Заказы.ТекущиеДанные.Объем=ВыборкаДетальныеЗаписи.Объем;
КонецЦикла;
Показатьчто то не пойму
(8) видимо нет заказов которые не входят в документы отгрузки и со списком ограничений...
а какой же должен быть статус если с указанными статусами заказы не интересуют?
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Оформлен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
а какой же должен быть статус если с указанными статусами заказы не интересуют?
(47) добавьте две строки
Пока _Период <= _КонПериод Цикл
Пока Выборка.Следующий() Цикл
Если НачалоДня(Выборка.Дата) = _Период Тогда
ВыборкаКонтрагенты = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКонтрагенты.Следующий() Цикл
СтрокЗаказов = 0;
ВыборкаЗаказы = ВыборкаКонтрагенты.Выбрать();
Пока ВыборкаЗаказы.Следующий() Цикл
СтрокЗаказов = СтрокЗаказов + 1;
ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, ВыборкаЗаказы);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
КонецЦикла;
Иначе
ОбластьСтрока.Параметры.Дата = _Период;
ТабДок.Вывести(ОбластьСтрока);
Выборка.Сбросить(); // Добавьте эти строки
Прервать;
КонецЕсли;
КонецЦикла;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
Показать
(49) Попробуйте так:
Пока _Период <= _КонПериод Цикл
ЕстьЗаказыЗаДень = Ложь;
Пока Выборка.НайтиСледующий(_Период, "Дата") Цикл
ЕстьЗаказыЗаДень = Истина;
ВыборкаКонтрагенты = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКонтрагенты.Следующий() Цикл
СтрокЗаказов = 0;
ВыборкаЗаказы = ВыборкаКонтрагенты.Выбрать();
Пока ВыборкаЗаказы.Следующий() Цикл
СтрокЗаказов = СтрокЗаказов + 1;
ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, ВыборкаЗаказы);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
КонецЦикла;
КонецЦикла;
Если Не ЕстьЗаказыЗаДень Тогда
ОбластьСтрока.Параметры.Дата = _Период;
ТабДок.Вывести(ОбластьСтрока);
КонецЕсли;
Выборка.Сбросить();
_Период = КонецДня(_Период) + 1;
КонецЦикла;
Показать
(54)
ВЫБРАТЬ
ПС_ЗаказыДляОтгрузки.Контрагент КАК Контрагент,
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
ПС_ЗаказыДляОтгрузкиЗаказы.Вес КАК Вес,
ПС_ЗаказыДляОтгрузкиЗаказы.Объем КАК Объем,
ПС_ЗаказыДляОтгрузкиЗаказы.Сумма КАК Сумма,
ПС_ЗаказыДляОтгрузки.ДеньОтгрузки КАК Дата
ИЗ
Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
ГДЕ
НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления
СГРУППИРОВАТЬ ПО
ПС_ЗаказыДляОтгрузки.Контрагент,
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ,
ПС_ЗаказыДляОтгрузкиЗаказы.Вес,
ПС_ЗаказыДляОтгрузкиЗаказы.Объем,
ПС_ЗаказыДляОтгрузкиЗаказы.Сумма,
ПС_ЗаказыДляОтгрузки.ДеньОтгрузки
УПОРЯДОЧИТЬ ПО
ПС_ЗаказыДляОтгрузки.ДеньОтгрузки,
ПС_ЗаказыДляОтгрузки.Контрагент,
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
ИТОГИ ПО
Дата,
Контрагент
ПоказатьПрикрепленные файлы:
(55) Похоже с запросом более менее нормально, хотя я бы переписал без соединения
Измените на этот код:
ВЫБРАТЬ
ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.Контрагент КАК Контрагент,
ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
ПС_ЗаказыДляОтгрузкиЗаказы.Вес КАК Вес,
ПС_ЗаказыДляОтгрузкиЗаказы.Объем КАК Объем,
ПС_ЗаказыДляОтгрузкиЗаказы.Сумма КАК Сумма,
ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ДеньОтгрузки КАК Дата
ИЗ
Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
ГДЕ
НЕ ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка.ПометкаУдаления
ПоказатьИзмените на этот код:
Если Не ЕстьЗаказыЗаДень Тогда
ОбластьСтрока.Параметры.Заполнить(Новый Структура("Дата, Контрагент, Заказ, Вес, Объем, Сумма", _Период, NULL, NULL, NULL, NULL, NULL));
ТабДок.Вывести(ОбластьСтрока);
КонецЕсли;
(58)
Пока _Период <= _КонПериод Цикл
ЕстьЗаказыЗаДень = Ложь;
Пока Выборка.НайтиСледующий(_Период, "Дата") Цикл
ЕстьЗаказыЗаДень = Ложь;
ВыборкаКонтрагенты = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКонтрагенты.Следующий() Цикл
СтрокЗаказов = 0;
ВыборкаЗаказы = ВыборкаКонтрагенты.Выбрать();
Пока ВыборкаЗаказы.Следующий() Цикл
СтрокЗаказов = СтрокЗаказов + 1;
ОбластьСтрока.Параметры.Заполнить(ВыборкаЗаказы);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
КонецЦикла;
КонецЦикла;
Если Не ЕстьЗаказыЗаДень Тогда
ОбластьСтрока.Параметры.Заполнить(Новый Структура("Дата, Контрагент, Заказ, Вес, Объем, Сумма", _Период, NULL, NULL, NULL, NULL, NULL));
ТабДок.Вывести(ОбластьСтрока);
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
Показать
(26)Я теперь делаю печатную форму,данные получаю ,Даты выводятся,но контрагент,заказ и тд просто выводятся столько раз,сколько дней в месяце. Как можно подправить,может заметите что то
Процедура КнопкаВыполнитьНажатие(Кнопка)
ТабДок=ЭлементыФормы.ПолеТабличногоДокумента1;
МакетПечать=ПолучитьМакет("Печать_Макет");
Шапка=МакетПечать.ПолучитьОбласть("Шапка");
ТабДок.Вывести(Шапка);
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
ЗапросЗаказы=Новый Запрос;
ЗапросЗаказы.Текст="ВЫБРАТЬ
| ПС_ЗаказыДляОтгрузки.Контрагент КАК Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес КАК Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем КАК Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма КАК Сумма
|ИЗ
| Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
| ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
|ГДЕ
| НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления
| И ПС_ЗаказыДляОтгрузки.ДеньОтгрузки = &Дата
|
|СГРУППИРОВАТЬ ПО
| ПС_ЗаказыДляОтгрузки.Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ,
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма";
ЗапросЗаказы.Параметры.Вставить("Дата",_Период);
Заказы = ЗапросЗаказы.Выполнить();
выборка=Заказы.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока выборка.Следующий() Цикл
Таблица=МакетПечать.ПолучитьОбласть("Таблица|Дата");
ОбластьЗаказы=МакетПечать.ПолучитьОбласть("Таблица|Заказы");
ОбластьЗаказы.Параметры.Заполнить(выборка);
//ТабДок.Вывести(ОбластьЗаказы);
//ТабДок.Вывести(Таблица);
Пока _Период <= _КонПериод Цикл
Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда // прошлый день
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
табДок.Присоединить(ОбластьЗаказы);
ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда // текущий день
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
табДок.Присоединить(ОбластьЗаказы);
Иначе
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
табДок.Присоединить(ОбластьЗаказы);
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
(30)
не получается((
ТабДок=ЭлементыФормы.ПолеТабличногоДокумента1;
МакетПечать=ПолучитьМакет("Печать_Макет");
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
Шапка=МакетПечать.ПолучитьОбласть("Шапка");
Шапка.Параметры.ДатаНач=_Период;
Шапка.Параметры.ДатаКон=_КонПериод;
ТабДок.Вывести(Шапка);
ЗапросЗаказы=Новый Запрос;
ЗапросЗаказы.Текст="ВЫБРАТЬ
| ПС_ЗаказыДляОтгрузки.Контрагент КАК Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес КАК Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем КАК Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма КАК Сумма,
| ПС_ЗаказыДляОтгрузки.ДеньОтгрузки КАК Дата
|ИЗ
| Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
| ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
|ГДЕ
| НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления
| И ПС_ЗаказыДляОтгрузки.ДеньОтгрузки = &Дата
|
|СГРУППИРОВАТЬ ПО
| ПС_ЗаказыДляОтгрузки.Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ,
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма,
| ПС_ЗаказыДляОтгрузки.ДеньОтгрузки";
ЗапросЗаказы.Параметры.Вставить("Дата",_Период);
Заказы = ЗапросЗаказы.Выполнить();
выборка=Заказы.Выбрать();
Пока выборка.Следующий() Цикл
Таблица=МакетПечать.ПолучитьОбласть("Таблица|Дата");
ОбластьЗаказы=МакетПечать.ПолучитьОбласть("Таблица|Заказы");
ОбластьЗаказы.Параметры.Заполнить(выборка);
//ТабДок.Присоединить(ОбластьЗаказы);
//ТабДок.Вывести(Таблица);
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
Пока _Период <= _КонПериод Цикл
Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда // прошлый день
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
табДок.Присоединить(ОбластьЗаказы);
ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда // текущий день
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
табДок.Присоединить(ОбластьЗаказы);
Иначе
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
табДок.Присоединить(ОбластьЗаказы);
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
КонецЦикла;
Показатьне получается((
1. Перебор выборки перенести в цикл:
2. Перед выводом добавить условие на соответствие _Период = выборка.Дата.
3. Хотя мне непонятен смысл этого блока:
При любом условии выполняется одно и тоже.
Пока _Период <= _КонПериод Цикл
2. Перед выводом добавить условие на соответствие _Период = выборка.Дата.
3. Хотя мне непонятен смысл этого блока:
Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда // прошлый день
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
табДок.Присоединить(ОбластьЗаказы);
ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда // текущий день
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
табДок.Присоединить(ОбластьЗаказы);
Иначе
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
табДок.Присоединить(ОбластьЗаказы);
КонецЕсли;
ПоказатьПри любом условии выполняется одно и тоже.
(33) Это понятно. Я имел ввиду, что независимо от этого:
код внутри один и тот же:
т.е. условие просто лишнее.
Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда
...
ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод)
...
Иначе
код внутри один и тот же:
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
табДок.Присоединить(ОбластьЗаказы);
т.е. условие просто лишнее.
(34)
Если цикл выборки перенести в цикл с периодом,то просто подвисает и долго грузит.
А если не вносить,то с условием выводит только за 1.02.2019. В отладчике Дата всегда 1.02.2019
выборка=Заказы.Выбрать();
Пока _Период <= _КонПериод Цикл
Пока выборка.Следующий() Цикл
Таблица=МакетПечать.ПолучитьОбласть("Таблица|Дата");
ОбластьЗаказы=МакетПечать.ПолучитьОбласть("Таблица|Заказы");
ОбластьЗаказы.Параметры.Заполнить(выборка);
//ТабДок.Присоединить(ОбластьЗаказы);
//ТабДок.Вывести(Таблица);
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда // прошлый день
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
Если _Период = выборка.Дата Тогда
табДок.Присоединить(ОбластьЗаказы);
КонецЕсли;
ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда // текущий день
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
Если _Период = выборка.Дата Тогда
табДок.Присоединить(ОбластьЗаказы);
КонецЕсли;
Иначе
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
Если _Период = выборка.Дата Тогда
табДок.Присоединить(ОбластьЗаказы);
КонецЕсли;
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
ПоказатьЕсли цикл выборки перенести в цикл с периодом,то просто подвисает и долго грузит.
А если не вносить,то с условием выводит только за 1.02.2019. В отладчике Дата всегда 1.02.2019
(34)
Поменяла запрос,но теперь выводится начиная с 3.02.2019.Как подправить? Помогите пожалуйста..
ТабДок=ЭлементыФормы.ПолеТабличногоДокумента1;
МакетПечать=ПолучитьМакет("Печать_Макет");
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
Шапка=МакетПечать.ПолучитьОбласть("Шапка");
Шапка.Параметры.ДатаНач=_Период;
Шапка.Параметры.ДатаКон=_КонПериод;
ТабДок.Вывести(Шапка);
ЗапросЗаказы=Новый Запрос;
ЗапросЗаказы.Текст="ВЫБРАТЬ
| ПС_ЗаказыДляОтгрузки.Контрагент КАК Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес КАК Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем КАК Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма КАК Сумма,
| ПС_ЗаказыДляОтгрузки.ДеньОтгрузки КАК Дата
|ИЗ
| Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
| ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
|ГДЕ
| НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления
|
|СГРУППИРОВАТЬ ПО
| ПС_ЗаказыДляОтгрузки.Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ,
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма,
| ПС_ЗаказыДляОтгрузки.ДеньОтгрузки";
Заказы = ЗапросЗаказы.Выполнить();
выборка=Заказы.Выбрать();
Пока выборка.Следующий() Цикл
Таблица=МакетПечать.ПолучитьОбласть("Таблица|Дата");
ОбластьЗаказы=МакетПечать.ПолучитьОбласть("Таблица|Заказы");
ОбластьЗаказы.Параметры.Заполнить(выборка);
//ТекущийПериод = НачалоДня(ТекущаяДата());
//Горизонт = КонецМесяца(ГоризонтПланирования);
//_Период = НачалоМесяца(ТекущийПериод);
//_КонПериод = КонецДня(Горизонт);
Пока _Период <= _КонПериод Цикл
Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда // прошлый день
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
Если _Период = выборка.Дата Тогда
табДок.Присоединить(ОбластьЗаказы);
КонецЕсли;
ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда // текущий день
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
Если _Период = выборка.Дата Тогда
табДок.Присоединить(ОбластьЗаказы);
КонецЕсли;
Иначе
Таблица.Параметры.Дата = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
ТабДок.Вывести(Таблица);
Если _Период = выборка.Дата Тогда
табДок.Присоединить(ОбластьЗаказы);
КонецЕсли;
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
КонецЦикла;
ПоказатьПоменяла запрос,но теперь выводится начиная с 3.02.2019.Как подправить? Помогите пожалуйста..
(42) Я имел ввиду, что даты последовательно будут в колонках, а контрагенты с заказами в строках.
Но, не важно. Вот примерный код для вывода так как вы хотите:
Хотя еще нужно будет добавить объединение ячеек одинаковых дат и контрагентов.
Но, не важно. Вот примерный код для вывода так как вы хотите:
ЗапросЗаказы = Новый Запрос;
ЗапросЗаказы.Текст = "ВЫБРАТЬ
| ПС_ЗаказыДляОтгрузки.Контрагент КАК Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес КАК Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем КАК Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма КАК Сумма,
| ПС_ЗаказыДляОтгрузки.ДеньОтгрузки КАК Дата
|ИЗ
| Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
| ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
|ГДЕ
| НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления
|
|СГРУППИРОВАТЬ ПО
| ПС_ЗаказыДляОтгрузки.Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ,
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма,
| ПС_ЗаказыДляОтгрузки.ДеньОтгрузки"
|УПОРЯДОЧИТЬ ПО
| ПС_ЗаказыДляОтгрузки.ДеньОтгрузки,
| ПС_ЗаказыДляОтгрузки.Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
|ИТОГИ ПО
| ПС_ЗаказыДляОтгрузки.ДеньОтгрузки,
| ПС_ЗаказыДляОтгрузки.Контрагент";
Заказы = ЗапросЗаказы.Выполнить();
Выборка = Заказы.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
НомерСтрокиДата = 6;
НомерСтрокиКонтрагент = 6;
ОбластьСтрока = МакетПечать.ПолучитьОбласть("Шапка");
Пока _Период <= _КонПериод Цикл
Пока Выборка.Следующий() Цикл
Если НачалоДня(Выборка.Дата) = _Период Тогда
ВыборкаКонтрагенты = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКонтрагенты.Следующий() Цикл
СтрокЗаказов = 0;
ВыборкаЗаказы = ВыборкаКонтрагенты.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаЗаказы.Следующий() Цикл
СтрокЗаказов = СтрокЗаказов + 1;
ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, ВыборкаЗаказы);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
КонецЦикла;
Иначе
ОбластьСтрока.Параметры.Дата = _Период;
ТабДок.Вывести(ОбластьСтрока);
КонецЕсли;
КонецЦикла;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
ПоказатьХотя еще нужно будет добавить объединение ячеек одинаковых дат и контрагентов.
(43)
Выводит только 3 одинаковые строчки.......
Процедура ПриОткрытии()
ТабДок=ЭлементыФормы.ПолеТабличногоДокумента1;
МакетПечать=ПолучитьМакет("Печать_Макет");
ТекущийПериод = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(Горизонт);
Шапка=МакетПечать.ПолучитьОбласть("Шапка");
Шапка.Параметры.ДатаНач=_Период;
Шапка.Параметры.ДатаКон=_КонПериод;
ТабДок.Вывести(Шапка);
ЗапросЗаказы = Новый Запрос;
ЗапросЗаказы.Текст = "ВЫБРАТЬ
| ПС_ЗаказыДляОтгрузки.Контрагент КАК Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ,
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес КАК Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем КАК Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма КАК Сумма,
| ПС_ЗаказыДляОтгрузки.ДеньОтгрузки КАК Дата
|ИЗ
| Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
| ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
|ГДЕ
| НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления
|
|СГРУППИРОВАТЬ ПО
| ПС_ЗаказыДляОтгрузки.Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ,
| ПС_ЗаказыДляОтгрузкиЗаказы.Вес,
| ПС_ЗаказыДляОтгрузкиЗаказы.Объем,
| ПС_ЗаказыДляОтгрузкиЗаказы.Сумма,
| ПС_ЗаказыДляОтгрузки.ДеньОтгрузки
|УПОРЯДОЧИТЬ ПО
| ПС_ЗаказыДляОтгрузки.ДеньОтгрузки,
| ПС_ЗаказыДляОтгрузки.Контрагент,
| ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
|ИТОГИ ПО
| ПС_ЗаказыДляОтгрузки.ДеньОтгрузки,
| ПС_ЗаказыДляОтгрузки.Контрагент";
Заказы = ЗапросЗаказы.Выполнить();
Выборка=Заказы.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
//Пока выборка.Следующий() Цикл
//Таблица=МакетПечать.ПолучитьОбласть("Таблица|Дата");
//ОбластьЗаказы=МакетПечать.ПолучитьОбласть("Таблица|Заказы");
НомерСтрокиДата = 6;
НомерСтрокиКонтрагент = 6;
ОбластьСтрока = МакетПечать.ПолучитьОбласть("Таблица");
Пока _Период <= _КонПериод Цикл
Пока Выборка.Следующий() Цикл
Если НачалоДня(Выборка.Дата) = _Период Тогда
ВыборкаКонтрагенты = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКонтрагенты.Следующий() Цикл
СтрокЗаказов = 0;
ВыборкаЗаказы = ВыборкаКонтрагенты.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаЗаказы.Следующий() Цикл
СтрокЗаказов = СтрокЗаказов + 1;
ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, ВыборкаЗаказы);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
КонецЦикла;
Иначе
ОбластьСтрока.Параметры.Дата = _Период;
ТабДок.Вывести(ОбластьСтрока);
КонецЕсли;
КонецЦикла;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
КонецПроцедуры
ПоказатьВыводит только 3 одинаковые строчки.......
(61) Осталось самое сложное, я такого еще не делал. Попробуйте заменить на этот блок:
Пока ВыборкаКонтрагенты.Следующий() Цикл
СтрокЗаказов = 0;
ВыборкаЗаказы = ВыборкаКонтрагенты.Выбрать();
Пока ВыборкаЗаказы.Следующий() Цикл
СтрокЗаказов = СтрокЗаказов + 1;
ОбластьСтрока.Параметры.Заполнить(ВыборкаЗаказы);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
ТабДок.Область(НомерСтрокиКонтрагент, 2, НомерСтрокиКонтрагент + СтрокЗаказов - 1, 2).Объединить();
НомерСтрокиКонтрагент = НомерСтрокиКонтрагент + СтрокЗаказов;
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот