7.7 Формирование формы Т-2 по всем сотрудникам на одном листе

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем skygge, 15 сен 2009.

  1. TopicStarter Overlay
    skygge
    Offline

    skygge

    Регистрация:
    15 сен 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Люди подскажите как можно распечатать форму Т-2 по всем сотрудникам в одном окне...
    Если делать так:::
    Код:
    //******************************************* 
    Процедура Сформировать() 
    Сотр = СоздатьОбъект("Справочник.Сотрудники"); 
    Сотр.ВыбратьЭлементы(0); 
    Пока Сотр.ПолучитьЭлемент() = 1 Цикл 
    Если Сотр.ЭтоГРуппа() = 1 Тогда 
    Продолжить; 
    КонецЕсли; 
    Если Сотр.ОсновнойЭлемент <> Сотр.ТекущийЭлемент() Тогда 
    Продолжить; 
    КонецЕсли; 
    Если Сотр.ПометкаУдаления() = 1 Тогда 
    Продолжить; 
    КонецЕсли; 
    ДатаОтчета = ТекущаяДата(); 
    ПериодыРаботы = глПолучитьПериодыРаботы(Сотр.ТекущийЭлемент()); 
    Если ПериодыРаботы.РазмерСписка()>1 Тогда 
    Период = ""; 
    ПериодыРаботы.ВыбратьЗначение(Период,,,,1); 
    ДатаОтчета = Дата(Прав(Период,8)); 
    КонецЕсли; 
    ТекстСтажРабочий = глСтажРаботыНаПредприятии(Сотр.ТекущийЭлемент(),ДатаОтчета)+ " на: "+ДатаОтчета; 
    Если ПустоеЗначение(ДатаОтчета)=0 Тогда 
    СЗ = СоздатьОбъект("СписокЗначений"); 
    СЗ.Установить("Сотрудник",Сотр.ТекущийЭлемент()); 
    СЗ.Установить("ДатаАктуальности",ДатаОтчета); 
    СЗ.Установить("ТолькоПросмотр",1); 
    СЗ.Установить("Контекст",Контекст); 
    СЗ.Установить("РабочийСтаж",ТекстСтажРабочий); 
    ОткрытьФорму("Отчет.ФормаТ2"+"#"+Сотр.Код,СЗ); 
    КонецЕсли; 
    КонецЦикла; 
    
    
    КонецПроцедуры 
    
    

    То получается что каждая форма Т-2 вылезает в отдельном окне. как этого избежать чтобы форма формировалась в одном окне по всем сотрудникам...
    P.S. Очень нужно... ХЕЛП

    [warn="Внимание!!!"]Пользуйтесь тегами[/warn]
  2. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    в цикле заполнять таблицу значений вместо списка... потом уже из таблицы заполнять отчет
  3. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    конкретно данный код тут ни при чем, нужно дорабатывать как эту часть, так и Отчет "ФормаТ2".
  4. TopicStarter Overlay
    skygge
    Offline

    skygge

    Регистрация:
    15 сен 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Что именно нужно дорабатывать в отчете и в коде?
  5. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Вывод всех сотруднико в цикле. (каков вопрос - таков и ответ)
  6. TopicStarter Overlay
    skygge
    Offline

    skygge

    Регистрация:
    15 сен 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Причем здесь сотрудники в цикле? Вопрос был в другом как можно вывести все личные карточки формы Т-2 в одном окне.. Если пользоваться обработкой которую я привел выше все карточки выводятся все хорошо.... , НО каждая из них выводится в отдельном окне.. КАК сделать чтобы вывести в одно окно? Вопрос был в этом а не про цикл ;)
  7. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Переделать довольно просто. Передавай не список а ТаблицуЗначений (в качестве колонки - список значений, заполненных в твоей обработке). Добавь Т-2 секцию. В цикле выбирай строки, заполняй, выводи секцию - будет все на одном листе
  8. TopicStarter Overlay
    skygge
    Offline

    skygge

    Регистрация:
    15 сен 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1

    У таблицы для ввода нет секций!!!! И это не правильно будет вылетать по ошибке что поле агрегатного объекта не найдено вывестисекцию!!


    Вот ошибка которая будет
    Таблица.ВывестиСекцию("Шапка");
    {C:\DOCUMENTS AND SETTINGS\*****\РАБОЧИЙ СТОЛ\Т-2.ERT(339)}: Поле агрегатного объекта не обнаружено (ВывестиСекцию)
  9. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Секцию можно ДОБАВИТЬ
  10. TopicStarter Overlay
    skygge
    Offline

    skygge

    Регистрация:
    15 сен 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    А смысл?
    Зачем ее добавлять если вывести ее мы не можем?

    Получается как в таблице для ввода нет таких функций для вывода секций у нее нет таких параметров для работы с секциями... Ладно вопрос такой можно ли скопировать всю таблицу в другую таблицу?
  11. Бухгалтерский угодник
    Offline

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

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

    skygge

    Регистрация:
    15 сен 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Да
  13. TopicStarter Overlay
    skygge
    Offline

    skygge

    Регистрация:
    15 сен 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Может кто еще подскажет что можно сделать?
  14. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Можно - в цикле если известна область
  15. TopicStarter Overlay
    skygge
    Offline

    skygge

    Регистрация:
    15 сен 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Когда нибудь видел как работает стандартная форма вывода Т-2?
    в двух словах...
    1. Это таблица для ввода данных (я думаю ты знаешь что это такое :unsure: )
    2. Существуют некие переменные в этой таблице котрые заполняются через СЗ путем загрузки и выгрузки..
    3. Некоторые поля заполняются через область...

    это если в двух словах..

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

    Может кто подскажет может я не в ту степь смотрю...
    Да можно сделать, перевести эту таблицу в обыкновенную, не в таблицу ввода, но придется тогда весь механизм заново делать (чего не хочется). Может кто делал что то подобное или нет.. Может есть какая то возможность скопировать программно всю таблицу в другую... Жду любого совета (дельного конечно) :smile:
  16. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Это ты не понял. Я прекрасно знаю что такое Т-2. Размер таблицы ты знаешь. Что тебе мешает используя метод область и читая ее атрибуты присвоить их другой таблице?

    Подобным способом писал конвертор XLS в MXL - работает
  17. TopicStarter Overlay
    skygge
    Offline

    skygge

    Регистрация:
    15 сен 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Приведи пример
  18. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Код:
    ОблВ.Текст=ОблИз.Текст;
    ОблВ.Шрифт(ОблИз.Шрифт());
    
    
    и.т. если тебе нужны все парамеры - перечислять здесь не буду
    Значения для определения областей (ячейки) задаешь в двойном цикле (строки/столбцы).
  19. TopicStarter Overlay
    skygge
    Offline

    skygge

    Регистрация:
    15 сен 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Ну вот допустим мне нужно из одной таблицы в другую т.е. я пишу
    Код:
    Таб.Область(1,1,235,13).Текст = Таблица.Область(1,1,235,13).Текст;
    
    
    Типа так чтоли?
  20. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Удобнее
    Код:
    ОблИз= Таб.Область(1,1,2,2);
    
    
    Ты же переносишь не только значение ячейки

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