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

Автор Тема: Печать журнала через внешний отчет  (Прочитано 3754 раз)

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

Оффлайн Lin

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-04-17
  • Сайт: 
Здравствуйте.
Есть проблема: необходимо напечатать дополнительный журнал документов в таблицу с помощью внешнего отчета.
В журнале два вида документов: "Акт" и "Накладная".
У акта в таблицу должны выводиться "НомерОснАкта" и "ДатаОснАкта", у накладной - "НомерОснНакл" и "ДатаОснНакл" соответственно, в одни и те же столбцы "Номер документа" и "Дата документа".
Попытка сделать вывод документов через нижеследующую конструкцию ничего не дала, к сожалению: печатается только один документ, в данном случае - "Акт"
Попытка
    Док = СоздатьОбъект ("Документ.Акт");
Исключение
    Попытка
        Док = СоздатьОбъект ("Документ.Накладная");
    КонецПопытки
КонецПопытки
Помогите, пожалуйста, разобраться


Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Странная идея..... Для вывода отчета конструкция "Попытка Исключение" не нужна.

Конструкцию "Попытка Исключение" используют в тех случаях где возможны ошибки программы, и чтобы программа не останавливалась, для этого и используют эту конструкцию чтобы обработать ошибку и продолжить работу алгортима.

Оффлайн Lin

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-04-17
  • Сайт: 
Не буду спорить насчет странности. Я новичок в 1С, и это мое первое задание с программированием. Я просто не особенно понимаю, как реализовать вот этот конкретный участок: с созданием документа вида либо "Акт" либо "Накладная" и как, в зависимости от этого, вывести данные в указанные два столбца. А книги не особенно помогают, к сожалению, как и гугл...
Я сильно извиняюсь, если вопрос "детский", но так хочется разобраться...

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Не буду спорить насчет странности. Я новичок в 1С, и это мое первое задание с программированием. Я просто не особенно понимаю, как реализовать вот этот конкретный участок: с созданием документа вида либо "Акт" либо "Накладная" и как, в зависимости от этого, вывести данные в указанные два столбца. А книги не особенно помогают, к сожалению, как и гугл...
Я сильно извиняюсь, если вопрос "детский", но так хочется разобраться...

В вашем случае нужно использовать конструкцию "Если Иначе", только для это нужно понять какое у вас должно условие выполняться.

Например:

Если  .......   Тогда
  Док = СоздатьОбъект ("Документ.Акт");
Иначе
  Док = СоздатьОбъект ("Документ.Накладная");
КонецЕсли;

// вместо точек должно быть ваше условие

Оффлайн Lin

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-04-17
  • Сайт: 
Но ведь нельзя же запросить у "следующего" документа его данные: синоним, идентификатор, чтобы по их значению создать условие? Или можно?
Еще была крамольная мысль сделать все Акты, потом все Накладные и в конце неизвестным образом отсортировать по дате или какому-нибудь невидимому полю, но в таком случае во-первыъ непонятно, как сортировать, а во-вторых - как проставлять № п/п
Добавлено: 17 Апр 2014, 17:12

А может быть, есть вариант, при котором данные будут считываться из столбцов журнала, а не из документа?

Последний раз редактировалось: Lin; 17 Апр 2014, 17:12. Причина: Объединение сообщений

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Сложно объясняете, но я кажется понял

вот что у вас приблизительно должно быть:

Если Док.Вид() = "Акт" Тогда
 // здесь выводите информацию об Акте
Иначе
 // здесь выводите информацию о накладной
КонецЕсли;


вариант считывания из столбцов журнала в 1с не предусмотрен.

Оффлайн Lin

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-04-17
  • Сайт: 
Спасибо!
А
Док = СоздатьОбъект (Документ.Накладная)
или как?
Извините еще раз за тугодумность((

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Вам нужно написать запрос, который сформирует вам нужную выборку из документов "Акт" и "Накладная",
а потом уже использовать мое условие из примера. но это на пальцах не объяснить.

можно через обычную выборку, но этот вариант медленный, особенно если период выбирается большой,
ну вот пример:

Док = СоздатьОбъект("Документ");
Док.ВыбратьДокументы(ДатаНач,ДатаКон);
Пока Док.ПолучитьДокумент() = 1 Цикл
  ВидДок = Док.Вид();
  Если ВидДок = "Акт" Тогда
   // здесь выводите информацию об Акте
  ИначеЕсли ВидДок = "Накладная" Тогда
   // здесь выводите информацию о накладной
  КонецЕсли;
КонецЦикла;
// где ДатаНач и ДатаКон - это начальная и конечная дата выборки

Оффлайн Lin

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-04-17
  • Сайт: 
Herby, кажется, теперь мне понятно, что именно Вы имеете в виду!) Завтра буду пробовать...
Спасибо огромное, что так терпеливо помогли!)
Добавлено: 18 Апр 2014, 16:24

В целом 1Ске вроде все понравилось, кроме одной строчки
Пока Док.ПолучитьДокумент() = 1 Цикл
Ругается, что документ не выбран
А если я определю документ как Акт или Накладную перед этой строчкой, то и печатать будет только один вид...

Последний раз редактировалось: Lin; 18 Апр 2014, 16:24. Причина: Объединение сообщений

Оффлайн Кошки рулят

  • ***
  • Сообщений: 109
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-01-07
  • Сайт: 
В конфигураторе в отчете запускай конструктор запросов и пощелкай там мышкой ...


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
132 Сообщений
AIFrame AIFrame
126 Сообщений
alexandr_ll
59 Сообщений
pavl_vs
47 Сообщений
alex0402
47 Сообщений
buketov.av buketov.av
43 Сообщений
ilyay ilyay
37 Сообщений
trialex3
24 Сообщений
magnifico61
21 Сообщений
wise wise
15 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal