Изменение заголовка печатной формы в зависимости от условий

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

  1. bredis

    bredis Гость

    Платформа 8.1 Задача такова, что бы в печатной форме в зависимости от склада отправителя изменялся формат времени. Условие такое: Если СкладОтправитель = Кондитерский цех тогда и надо вывести формат даты с часами, минутами и секундами, который описан в функции: "Функция СформироватьЗаголовокДокумента1" Иначе выводится стандартный заголовок, который вызывается из общего модуля.
    Мучился, мучился ну никак и подсказать не кому.


    Вот в этом куске загвоздка.
    "00103" Это код Кондитерского цеха в справочнике.
    "Поставщик" это псевдоним реквезита СкладОтправитель.

     
  2. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    не понял. Смотрели в отладчике в какой строке ошибка? Неправильно формируется именно дата или вообще процедура не выполняется?
     
  3. Renat11111

    Renat11111 Well-Known Member

    Регистрация:
    20 апр 2008
    Сообщения:
    123
    Симпатии:
    0
    Шапка = Запрос.Выполнить().Выбрать(); // формируется выборка

    Шапка.Следующий();

    а там где ошибка...... есть только результат запроса.

    Поставщик = Запрос.Выполнить();

    Если
    Поставщик = Справочники.Склады.НайтиПоКоду("00103") тогда
    ОбластьМакета.Параметры.ТекстЗаголовка = СформироватьЗаголовокДокумента1(Шапка, "Накладная на перемещение");

    Иначе
    ОбластьМакета.Параметры.ТекстЗаголовка = РаботаСдиалогами.СформироватьЗаголовокДокумента(Шапка, "Накладная на перемещение");
    КонецЕсли;
     
  4. bredis

    bredis Гость

    Добавил Ваш текст как написано ниже.
    Стала выскакивать служебное сообщение при формировании печатной формы:"Не удалось сформировать внешнюю печатную форму! Поле объекта не обнаружено (Номер)"
    unknown181538 , оработка идёт но проходит только после "иначе" первое условие не выполняется.
     
  5. Renat11111

    Renat11111 Well-Known Member

    Регистрация:
    20 апр 2008
    Сообщения:
    123
    Симпатии:
    0
    Да уж..........

    Поставщик = Запрос.Выполнить().Выбрать(); // выборка запроса
    ПоставщикДок = Поставщик.Следующий();


    Если
    ПоставщикДок = Справочники.Склады.НайтиПоКоду("00103") тогда
    ОбластьМакета.Параметры.ТекстЗаголовка = СформироватьЗаголовокДокумента1(Шапка, "Накладная на перемещение");

    Иначе
    ОбластьМакета.Параметры.ТекстЗаголовка = РаботаСдиалогами.СформироватьЗаголовокДокумента(Шапка, "Накладная на перемещение");
    КонецЕсли;
     
  6. bredis

    bredis Гость

    Всё равно ругается на "Номер".
     
  7. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Можно попробовать отказаться от процедуры сформировать номер написав Шапк.номер+Шапка.дата...
    Можете выложить обработку - интересно стало)
     
  8. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    На грузополучателя ругался...

    Все, что связано с грузополучателем убрал. Я так понял, с ним вы разберетесь.
    "Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();"
    Вот эти строки написаны два раза. Причем во второй раз переменная "Запрос" содержит уже другое значение. Соответственно второй вызов надо просто убрать.
    ПС. Для отладки внешней формы наберите в глобальном поиске "Обработка.Печать()" и поставьте перед этим точку останова.

    А теперь, чтоб работало :
    Если
    СокрЛП(ссылкаНаОбъект.СкладОтправитель.код)="00103" тогда
    Но если все-таки хотите через запрос, разберитесь там с перемнными поставщик и поставщикДок. Поле кода отправителя надо искать в ПоставщикДок.
     
  9. bredis

    bredis Гость

    Спасибо Вам огромное!!! Всё заработало. И С Новым Годом!
     
Загрузка...

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