7.7 Наверное еще один глупый вопрос.=(

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Aptemii, 30 июн 2009.

  1. TopicStarter Overlay
    Aptemii
    Offline

    Aptemii Опытный в 1С

    Регистрация:
    11 июн 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26
    Код процедуры печати в модуле:
    Код:
    Процедура Печать()
    Спр = СоздатьОбъект("Справочник.Компьютеры");
    Спр.ИспользоватьДату(ИспользоватьДату());
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Печать");
    Таб.ВывестиСекцию("Шапка");
    Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
    Если Спр.ЭтоГруппа() = 1 Тогда
    Таб.ВывестиСекцию("Группа");
    Иначе
    Таб.ВывестиСекцию("Строка");
    КонецЕсли;
    КонецЦикла;
    Таб.ВывестиСекцию("Подвал");
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Печать Компьютеры","");
    КонецПроцедуры
    //}}ПРОЦЕДУРА_ПЕЧАТИ
    
    
    -------------------------------------------------------------------------------
    Подскажите как сделать что бы отбор сделанный в табличной части диалога, учитывался при печати?
    :unsure:
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Используй метод справочника ВыбратьЭлементыПоРеквизиту()
  3. TopicStarter Overlay
    Aptemii
    Offline

    Aptemii Опытный в 1С

    Регистрация:
    11 июн 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26
    Можно немного конкретизировать, а то не могу с ним разобраться.
    Если можно с примером.... :unsure:
  4. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Это надо вопрос конкретизировать, а то не могу с ним разобраться.

    у диалоговых окон не бывает табличной части, возможно имелся в виду форма документа?
    Как должны учитываться?
  5. TopicStarter Overlay
    Aptemii
    Offline

    Aptemii Опытный в 1С

    Регистрация:
    11 июн 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26

    Общая картина выглядит следующим образом, есть справочник сотрудники с реквизитами, справочник отделы с кодом и наименованием, справочник характеристики_ПК с реквизитами и справочник Компьютеры с реквизитами: ФИО из Справочник.Сотрудники, Отдел из Справочник.Отделы и ПК из Справочник.характеристики_ПК.

    В справочник.компьютеры формирую процедуру в табличной форме на печать, ее код:
    Код:
    Процедура Печать()
    Спр = СоздатьОбъект("Справочник.Компьютеры");
    //Спр1 = СоздатьОбъект("Справочник.Отдел");
    Спр.ВыбратьЭлементыПоРеквизиту("Отдел", ВыбОтдел, 1);
    //Спр.ИспользоватьДату(ИспользоватьДату());
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Печать");
    Таб.ВывестиСекцию("Шапка");
    Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
    //Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
    Если Спр.ЭтоГруппа() = 1 Тогда
    Таб.ВывестиСекцию("Группа");
    Иначе
    Таб.ВывестиСекцию("Строка");	
    КонецЕсли;
    КонецЦикла;
    Таб.ВывестиСекцию("Подвал");
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Печать Компьютеры","");
    КонецПроцедуры
    //}}ПРОЦЕДУРА_ПЕЧАТИ   
    
    
    И есть поле ввода, по которому форимируется отбор по отделу, его код:
    Код:
    //При повторном использовании конструктора, внесенные вручную изменения будут потеряны!!!
    ПРоцедура ИзмВыбОтдел()
    
    Если ВыбОтдел.Выбран()=1 ТОгда
    УстановитьОтбор("Отдел", ВыбОтдел);
    КонецЕсли;
    КонецПроцедуры
    
    
    ________________________________________
    Сейчас вопрос стоит следующим боком при выборе отдела в в поле ввода отбор происходит и табличная часть на печать формируется с отбором по отделам, но не могу добиться того, что бы вывести все ха-ки по всем отделам, когда не нужен отбор, т.е. когда поле ввода пусто... :unsure:

    [warn="Внимание!!!!"]!!!!!!!Пользуемся тегами!!!!!!![/warn]
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Используй
    Код:
    УстановитьОтбор("");
    
    
    для отключения отбора
  7. TopicStarter Overlay
    Aptemii
    Offline

    Aptemii Опытный в 1С

    Регистрация:
    11 июн 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26

    Материться
    УстановитьОтбор(""<<?>>);
    {Справочник.Компьютеры.ФормаСписка.ФормаСписка.Модуль(10)}: Недостаточно фактических параметров
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
  9. TopicStarter Overlay
    Aptemii
    Offline

    Aptemii Опытный в 1С

    Регистрация:
    11 июн 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26

    Делаю следующее:

    ПРоцедура ИзмВыбОтдел()

    Если ВыбОтдел.Выбран()=1 ТОгда
    УстановитьОтбор("Отдел", ВыбОтдел);
    Иначе
    УстановитьОтбор("",);
    КонецЕсли;
    КонецПроцедуры

    Выводит пустую форму отчета на печать=(
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Если на печать а не в форму списка тогда

    Спр.ВыбратьЭлементы();
  11. sergey
    Offline

    sergey Курильщик

    Регистрация:
    13 апр 2006
    Сообщения:
    365
    Симпатии:
    0
    Баллы:
    26
    Код:
    Процедура Печать()    
    Спр = СоздатьОбъект("Справочник.Компьютеры");    
    Таб = СоздатьОбъект("Таблица");    
    Таб.ИсходнаяТаблица("Печать");    
    Таб.ВывестиСекцию("Шапка");    
    Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);    
    Если ВыбОтдел.Выбран()=1 ТОгда
    Спр.ВыбратьЭлементыПоРеквизиту("Отдел", ВыбОтдел, 1);    
    Иначе
    Спр.ВыбратьЭлементы();    
    КонецЕсли;
    Пока Спр.ПолучитьЭлемент() = 1 Цикл    
    Если Спр.ЭтоГруппа() = 1 Тогда
    Таб.ВывестиСекцию("Группа");
    Иначе
    Таб.ВывестиСекцию("Строка");
    КонецЦикла;
    Таб.ВывестиСекцию("Подвал");
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Печать Компьютеры","");
    КонецПроцедуры//}}ПРОЦЕДУРА_ПЕЧАТИ   
    
    
    А если попробовать так?
  12. TopicStarter Overlay
    Aptemii
    Offline

    Aptemii Опытный в 1С

    Регистрация:
    11 июн 2009
    Сообщения:
    125
    Симпатии:
    0
    Баллы:
    26
    Спасибо ПАПЫ!=)))
    Все заработало поледним предложеннным способом, только один "КонецЕсли" пропущен, но это мелочи!=)
  13. sergey
    Offline

    sergey Курильщик

    Регистрация:
    13 апр 2006
    Сообщения:
    365
    Симпатии:
    0
    Баллы:
    26
    На коленке, в дороге, с ноутбука... Мог и не такое пропустить ;)

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