Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 07:30
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Макет  (Прочитано 1677 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн 441

  • *
  • Сообщений: 16
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-20
  • Сайт: 
  • Профессия: Программист 1С
Макет
« Первое сообщение: 15 Сен 2014, 11:35 »
Добрый день!Подскажите ,пожалуйста.Я делаю макет, в котором пытаюсь вывести данные по заказам поставщикам и данные оплаты этих заказов .
проблема в том,что если Заказ поставщику оплачивался двумя документами оплаты то отчет выглядит так
 ЗП1 -СуммаЗП1- ДокументОплаты1 - СуммаДокумента1
 ЗП1 -СуммаЗП1- ДокументОплаты2 - СуммаДокумента2 .
Хочется ,чтобы это выглядело так , пример :
 ЗП1 -СуммаЗП1- ДокументОплаты1 - СуммаДокумента1.
        -                 - ДокументОплаты2 - СуммаДокумента2.

Т.к. там еще много данных в макете,в том числе документы поступления товаров и услуг ,которых так же к одному заказу относятся по несколько штук и которые также нужно выводить и в результате получается много дублирующейся и ненужной информации, как в моём примере.
Не подскажете ,как можно было бы избежать этого и получить необходимый вид макета.
Заранее спасибо.


Оффлайн TreeDogNight

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 28
  • КПД: 14%
  • Регистрация: 2013-10-16
    • Skype: treedognight3
  • Сайт: www.avars.uz
  • Профессия: Программист 1С
Re: Макет
« Ответ #1: 15 Сен 2014, 12:28 »
Создай вертикальные области, и получай пересечения областей. Выводи сначала область, которая должна быть в одном экзэмпляре, а остальные выводи в цикле.
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

Оффлайн 441

  • *
  • Сообщений: 16
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-20
  • Сайт: 
  • Профессия: Программист 1С
Re: Макет
« Ответ #2: 15 Сен 2014, 13:01 »
Извините, а можно немного поподробнее объяснить ,как получить пересечения областей.

Оффлайн TreeDogNight

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 28
  • КПД: 14%
  • Регистрация: 2013-10-16
    • Skype: treedognight3
  • Сайт: www.avars.uz
  • Профессия: Программист 1С
Re: Макет
« Ответ #3: 15 Сен 2014, 13:43 »
Макет.ПолучитьОбласть("ГоризонтальнаяОбласть|ВертикальнаяОбласть")
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

Оффлайн 441

  • *
  • Сообщений: 16
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-20
  • Сайт: 
  • Профессия: Программист 1С
Re: Макет
« Ответ #4: 15 Сен 2014, 14:10 »
Извините,а можно какой-нибудь пример.
Я не понимаю.
Сначала нужно получить горизонтальную область,потом вертикальную, а потом пересечение?
И как можно вывести область ,которая будет в одном экземпляре без цикла? Если документов тысячи. Каждый документ должен выводиться с ,допустим, тремя документами оплаты.
Я пытаюсь вывести просто даже номера документов заказа поставщику и дату, он мне выводит почему - то по пять одинаковых дат и номеров документов

Оффлайн TreeDogNight

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 28
  • КПД: 14%
  • Регистрация: 2013-10-16
    • Skype: treedognight3
  • Сайт: www.avars.uz
  • Профессия: Программист 1С
Re: Макет
« Ответ #5: 15 Сен 2014, 14:21 »
Можете выложить сюда свой код и скрин макета.
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

Оффлайн 441

  • *
  • Сообщений: 16
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-20
  • Сайт: 
  • Профессия: Программист 1С
Re: Макет
« Ответ #6: 15 Сен 2014, 14:45 »
Да ,конечно .Вот код :
Процедура ОбновитьОтчет()
   
   Если НЕ ЗначениеЗаполнено(ДатаНачала) Или НЕ ЗначениеЗаполнено(ДатаОкончания) Тогда
      Предупреждение("Не выбран период!");
      Возврат;
   КонецЕсли;
   мТабДок = ЭлементыФормы.Результат;

   мТабДок.Очистить();

   Макет = ЭтотОбъект.ПолучитьМакет("Макет");


   ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
   мТабДок.Вывести(ОбластьМакета);

   ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТЧ");
   мТабДок.Вывести(ОбластьМакета);

   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Дата1", НачалоДня(ДатаНачала));
   Запрос.УстановитьПараметр("Дата2", КонецДня(ДатаОкончания));
   Запрос.УстановитьПараметр("Контрагент", Контрагент);

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

а вот макет из конфигуратора.

Оффлайн TreeDogNight

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 28
  • КПД: 14%
  • Регистрация: 2013-10-16
    • Skype: treedognight3
  • Сайт: www.avars.uz
  • Профессия: Программист 1С
Re: Макет
« Ответ #7: 15 Сен 2014, 15:16 »
Для читаемости кода на форуме используй тег "[сode][/сode]". Сейчас посмотрю код..
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

Оффлайн 441

  • *
  • Сообщений: 16
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-20
  • Сайт: 
  • Профессия: Программист 1С
Re: Макет
« Ответ #8: 15 Сен 2014, 15:19 »
Хорошо,учту.
Спасибо за помощь.

Оффлайн freez1301

  • ***
  • Сообщений: 130
  • РЕПУТАЦИЯ: 8
  • КПД: 6%
  • Регистрация: 2014-04-25
  • Сайт: 
  • Профессия: Ученик 1С
Re: Макет
« Ответ #9: 17 Сен 2014, 09:03 »
в УТ товарный чек сделан именно таким образом. можно подсмотреть там (я про области)


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
alex0402
50 Сообщений
AIFrame
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 122
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal