Вывод На Печать

Тема в разделе "1C и всё что с ней связано", создана пользователем Freeland, 25 дек 2011.

  1. Freeland

    Freeland Гость

    Вечер добрый всем. Ситуация следующая имеется платформа 8.2, конфигурация Бухгалтерия базовая. Создал внешнюю обработку для создания договоров, все замечательно все работает, но есть одно но! Договор формируется из документа счет на оплату,когда он сформировался весь текст отлично отображается, когда захожу в предварительный просмотр вижу следующую картину:
    Текст отображается корректно как я и хочу, перелистываю на следующую страницу, а она пустая, перелистываю следующую там текст который мне нужен, перелистываю на следующую опять пустой лист, перелистываю на 5-ю страницу текст который нужен, а на следующей опять пустота, в итоге вместо трех листов текста имею шесть на печати из которых 3 с нужным текстом и 3 пустых, подскажите куда копать?
    Я предполагаю что возможно он берет из общих модулей то как надо выводить на печать но не чего не могу найти..:( может кто сталкивался и подскажет:)
     
  2. Freeland

    Freeland Гость

    160 просмотров и не кто не в курсе?
     
  3. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    "И нечего так орать" (с) не помню кто сказал.

    по сабжу - предположу, что макет - mxl, чередование текст/пустота - следствие того, что у вас на страницах текст выходит за края одласти печати на бумаге. Не сходите с ума, отформатируйте текст или используйте COM и соединяйтесь с Word'ом.
     
  4. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Типичная проблема.
    Надо в макете выделить и удалить все столбики (штук 100) правее последнего.
     
  5. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Короче, из всего сказанного ранее - ищите на макете пунктирную вертикальную линию. И все колонки между нужным текстом и этой линии - удалить.
     
  6. Freeland

    Freeland Гость

    спасибо за советы сейчас опробую.
     
  7. Freeland

    Freeland Гость

    Вообщем отформатировал правую сторону и все стало на свои места, не подумал об этом, смутило что макет отображался корректно на первых листах.
     
  8. Freeland

    Freeland Гость

    Всем привет! Всех с праздниками прошедшими! Итак столкнулся с проблемой в справочнике Контрагенты, есть вкладка Контакты а там Физ лицо, суть в чем я хочу что бы при формировании договора бралось фио полностью в договор. Пока релизовал через строку, тупо сам ввожу.
    Вот этим методом ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.Све
    денияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ПолноеНаименование")
    могу получить и наименование и инн , а вот как ФИО получить из контактов не где найти не могу, кто чем подскажет?
     
  9. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Поищи в общем модуле управление контактной информацией - там есть функция, которая тебе нужна. Подсказка - подписи в счетах-фактурах и товарняках используют ту-же функцию.
     
  10. Freeland

    Freeland Гость

    спасибо за подсказку ,но я там только вижу свои:

    Руководители = ОбщегоНазначения.ОтветственныеЛица(Шапка.Руководители, Шапка.ДатаДокумента, ПодразделениеОтветственныхЛиц);

    ОбластьМакетаПодвал.Параметры.ФИОРуководителя = Руководители.РуководительПредставление;
    ОбластьМакетаПодвал.Параметры.ФИОГлавБухгалтера = Руководители.ГлавныйБухгалтерПредставление;
    ОбластьМакетаПодвал.Параметры.ДолжностьРуководителя = Руководители.РуководительДолжность;
    а, мне нужны данные конкретного контрагента ,у которого фио стоит основным.
     
  11. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    так всё-таки ФИО или контрагента?

    Можно например так

    ОбщегоНазначения.ПолучитьКонтактноеЛицоКонтрагентаПоДолжности (Документ.Клиент,Справочники.РолиКонтактныхЛиц.Руководитель) Это вернет тебе ссылку на контактное лицо.
    внутри контактного лица контрагента есть ссылка на реквизит с именем контактноеЛицо и типом справочникссылка.контактныеЛица - в нем есть наименование, которое ты в принципе можешь использовать, и есть поля Фамилия, Имя, Отчество.

    Если тебе надо узнать в каких контрагентах данный товарисч участвует как основной тогда так

    выбрать Различные Спр.Владелец из Справочники.КонтактныеЛицаКонтрагентов как Спр Где Спр.КонтактноеЛицо = &КонтактноеЛицо и Спр.Владелец.ОсновноеКонтактноеЛицо = Спр.Ссылка;

    &КонтактноеЛицо - параметр с типом справочникСсылка.КонтактныеЛица
     
  12. Freeland

    Freeland Гость

    Смотри получилось таким образом : СсылкаНаОбъект.Контрагент.ОсновноеКонтактноеЛицо;
    только вот можно реализовать что бы в В одном месте было записно в Род. Падеже, а в другом инициалами в именительном. Спасибо за помощь!
     
  13. Freeland

    Freeland Гость

    а вообще я сделал вот таким образом
    ДанныеФЛ = СсылкаНаОбъект.Контрагент.ОсновноеКонтактноеЛицо;
    ОбластьМакета.Параметры.ЗаказчикФИО =ДанныеФЛ.Фамилия + " " + ДанныеФЛ.Имя ;
    И вот тут я думаю можно как нибудь задать параметр , что бы Имя и Отчество выводились только первые буквы..
     
  14. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Используйте функцию "Лев(параметр1, Параметр2)"
    Параметр1 - строка, которую режим
    Параметр2 - стколько символов отрезаем.

    Лев (Left)
    Синтаксис:
    Лев(<Строка>, <Число символов>)
    Параметры:
    <Строка> (обязательный)
    Тип: Строка. Исходная строка.
    <Число символов> (обязательный)
    Тип: Число. Количество выбираемых символов.
    Возвращаемое значение:
    Тип: Строка. Строка выбранных символов.
    Описание:
    Выбирает первые слева символы строки.
    Пример:
    ИнициалИмени = Лев(Сотрудник.Имя, 1);
    ИнициалОтчества = Лев(Сотрудник.Отчество, 1);
    ПолноеИмя = Сотрудник.Фамилия+" "+ИнициалИмени+"."+ИнициалОтчества+".";

    P.S. а вообще, люди поговаривают, что синтакс-помощник помогает.
     
  15. Freeland

    Freeland Гость

    Синтакс -помощник и вправду помогает:)! Спасибо с инициалами все получилось, вот склонять фамилию и имя , существуют ли какие то универсальные обработки встроенные в базовую конфигурацию.?
     
  16. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Нет, в платформе такого нет. Есть специальные ВК для склонения. Можно заморочиться и написать код на 1С, только исключений у вас может быть вагон и маленькая тележка. Исключения - не склоняемые имена, фамилии отчетсва, сложные отчества (..оглы) и т.п.
    ВК для склонения тут


    Просклонять(ФИО, Падеж, Пол)

    Параметр ФИО должен содержать фамилию, имя и отчество в именительном падеже единственного числа. Строка должна состоять из букв русского алфавита, пробелов и дефисов. Фамилия, имя и отчество должны разделяться пробелами. Двойные и тройные имена и фамилии должны писаться через дефис. Имена и отчества должны быть полными.

    Параметр Падеж - задается числом и может принимать следующие значения от 1 до 6. (1 Именительный, 2 - Родительный, 3 - Дательный, 4 - Винительный, 5 - Творительный, 6 - Предложный)

    Параметр Пол является не обязательным и принимает значения: 0 - авто, 1 - мужской, 2 - женский.

    Функция возвращает результат склонения - строка, содержащая исходное ФИО в заданном падеже. В случае ошибки во входных данных сообщение об ошибке выводится в окно сообщений.
    Приведенный ниже фрагмент кода на встроенном языке 1С загружает компоненту и используя метод компоненты Просклонять, получает форму родительного падежа для ФИО "Сидоров Иван Иванович".

    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Пример</div></div><div class="sp-body"><div class="sp-content">
    Код ( (Unknown Language)):
    Попытка

    // Загружаем внешнюю компоненту
    ЗагрузитьВнешнююКомпоненту("NameDecl.dll");
    Объект = Новый("AddIn.NameDeclension");

    Исключение

    Сообщить("Ошибка загрузки внешней компоненты для склонения ФИО! Функции склонения будут недоступны!" + ОписаниеОшибки());

    КонецПопытки;

    // Определяем ФИО, которые надо просклонять
    ФИО = " Сидоров Иван Иванович";

    // Задаем требуемый падеж
    Падеж = 3;

    // Получаем результат склонения
    Результат = Объект.Просклонять(ФИО, Падеж);
     
  17. Freeland

    Freeland Гость

    Спасибо, можно обращаться на ты:), буду побывать.
     
  18. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Будьте прощее и на жизнь смотрите легше. Создай реквизит строчный "ФИОвРодительномПадеже". Кнопочкой программа запоняет фразу "Директора Петров В.В" а человек правит. При печати вставляем в после слов "в лице".
     
  19. Freeland

    Freeland Гость

    Вообще у меня все так и реализовано:facepalm: Хотел Автоматизировать больше.
     
Загрузка...

Поделиться этой страницей