Имя: Пароль:
1C
1С v8
Разделение одного документа на много при печати
0 LehhaK
 
25.05.12
13:35
Помогите, умы великие, подавану юному постичь мастерство конфигурирования, дабы стать джедаем истинным....
Итак:
1С 8.2.14.540
1С:ТОиР
Есть документ НарядНаВыполнениеРабот, в котором указывается Объект ремонта(в табличной части) и работы, связанные с этим ремонтом(в дереве значений). И объектов ремонта и работ в одном наряде может быть великое множество (читать: дофига) При выводе на печать печатается столько документов, сколько объектов ремонта в наряде, что крайне не желательно, ибо при печати наряда на неделю выходит по 15-20 документов, и выдавать их каждый под роспись..ну, вы понимаете. Есть идея выводить все объекты ремонта и связанные работы одним печатным документом.
Внимание, вопрос: что же надо поменять и, главное, где, чтобы разбиение на несколько печатных документов не происходило? Буду очень признателен за помощь

Функция ПечатьНаряда(Наряд,РемонтОборудования,ВернутьТабличныйДокумент = Ложь) Экспорт
   
   ТабДок = Новый ТабличныйДокумент;
   Макет = ЭтотОбъект.ПолучитьМакет("НарядНаВыполнениеРемонтныхРабот");
   
   Шапка = Макет.ПолучитьОбласть("ШапкаДокумента");
   Шапка.Параметры.Организация = Наряд.Организация;
   //Шапка.Параметры.ПодразделениеОрганизации = Наряд.ПодразделениеОрганизации;
   Шапка.Параметры.ПодразделениеОрганизации = Наряд.Подразделение;
   Шапка.Параметры.Номер = Наряд.Номер;
   Шапка.Параметры.Дата = Наряд.Дата;

   ТабДок.Вывести(Шапка);
   
   ШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
   ТабДок.Вывести(ШапкаТаблицы);
   
   СтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаблицы");
   
   ДатаНачала = РемонтОборудования.ДатаНачала;
   ДатаОкончания = РемонтОборудования.ДатаОкончания;
   //СтрокаТаблицы.Параметры.НачалоРабот = ?(НЕ ЗначениеЗаполнено(Наряд.ДатаНачалаРабот),Наряд.Дата,Формат(Наряд.ДатаНачалаРабот,"ДФ=dd.MM.yyyy"));
   //СтрокаТаблицы.Параметры.ДатаОкончанияРабот = ?(НЕ ЗначениеЗаполнено(Наряд.ДатаОкончанияРабот),Наряд.Дата,Формат(Наряд.ДатаОкончанияРабот,"ДФ=dd.MM.yyyy"));      
   СтрокаТаблицы.Параметры.НачалоРабот = ?(НЕ ЗначениеЗаполнено(ДатаНачала),Наряд.Дата,Формат(ДатаНачала,"ДФ=dd.MM.yyyy"));
   СтрокаТаблицы.Параметры.ДатаОкончанияРабот = ?(НЕ ЗначениеЗаполнено(ДатаОкончания),Наряд.Дата,Формат(ДатаОкончания,"ДФ=dd.MM.yyyy"));      
   СтрокаТаблицы.Параметры.Ответственный = Наряд.ОтветственныйПроизводительРабот.Наименование;
   СтрокаТаблицы.Параметры.Допускающий = Наряд.Допускающий.Наименование;
   ТабДок.Вывести(СтрокаТаблицы);
     
   ШапкаТаблицыИсполнители = Макет.ПолучитьОбласть("ШапкаТаблицыИсполнители");
   //форма = наряд.получитьформу();
   //ОР = форма.элементыформы.ОбъектРемонта.Значение;  
   ОР = РемонтОборудования.ОбъектРемонта;
   ШапкаТаблицыИсполнители.Параметры.ОбъектРемонта =  торо_ЗаполнениеДокументов.ПолучитьПредоставленияОРДляПечати(ОР);  
   ТабДок.Вывести(ШапкаТаблицыИсполнители);          
   
   СтрокаТаблицыИсполнители = Макет.ПолучитьОбласть("СтрокаТаблицыИсполнители");
   
   ТЗ = Наряд.Исполнители.Выгрузить(, "Сотрудник");
   ТЗ.Свернуть("Сотрудник");
   
   Для Каждого Стр Из ТЗ Цикл
       СтрокаТаблицыИсполнители.Параметры.Исполнитель = Стр.Сотрудник;
       ТабДок.Вывести(СтрокаТаблицыИсполнители);
   КонецЦикла;
   
   ШапкаТаблицыРабот = Макет.ПолучитьОбласть("ШапкаТаблицыРабот");
   ТабДок.Вывести(ШапкаТаблицыРабот);
   
   СтрокаТаблицыРабот = Макет.ПолучитьОбласть("СтрокаТаблицыРабот");
   
   ТЗ = Наряд.РемонтныеРаботы.Выгрузить(Новый Структура("РемонтыОборудования_ID", РемонтОборудования.ID) , "РемонтнаяРабота");
   ТЗ.Свернуть("РемонтнаяРабота");
   
   Для Каждого Стр Из ТЗ Цикл
       Если ТипЗнч(Стр.РемонтнаяРабота) = Тип("СправочникСсылка.ТехнологическиеОперации") Тогда
           СтрокаТаблицыРабот.Параметры.Работа = Стр.РемонтнаяРабота;
           ТабДок.Вывести(СтрокаТаблицыРабот);
       КонецЕсли;
   КонецЦикла;
   
   Подвал = Макет.ПолучитьОбласть("ПодвалДокумента");
   ТабДок.Вывести(Подвал);
   
   Если Не ВернутьТабличныйДокумент Тогда
       ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
       ТабДок.АвтоМасштаб = Истина;
       ТабДок.ТолькоПросмотр = Истина;
       ТабДок.ОтображатьСетку = Ложь;
       ТабДок.ОтображатьЗаголовки = Ложь;

       ТабДок.Показать("Наряд на выполнение ремонтных работ №" + Наряд.Номер + " от " + Наряд.Дата);      
   Иначе
       Возврат ТабДок;
   КонецЕсли;
КонецФункции
1 DrShad
 
25.05.12
13:37
сколько?
2 LehhaK
 
25.05.12
13:38
(1) Магистр Йодо денег не брал...
3 Wobland
 
25.05.12
13:40
(0) как это пишется, не знаешь ты. приходи лет через 20, когда проникнешь в суть правописания слова "падаван"
4 Wobland
 
25.05.12
13:40
(2) и Йоду ты совсем не уважаешь
5 LehhaK
 
25.05.12
13:41
(3) Ты жив, Йодо!!!
6 LehhaK
 
25.05.12
13:43
(4) Прсти, мастер :))
7 Wobland
 
25.05.12
13:44
(5) wiki:Йода - через А. измышления твои пойду читать сейчас вот только
8 LehhaK
 
25.05.12
13:46
(7) Звездный воин из меня еще *уевее, чем 1Сник)))
9 Wobland
 
25.05.12
13:46
(0) ТОиР - звучит как песня. менять, однако, нужно код, а где? пожалуй, в модуле объекта. не видно ничего отсюда
10 Wobland
 
25.05.12
13:48
печатной формы алгоритм формирования необходимо заменить на свой
11 LehhaK
 
25.05.12
13:48
(9) Что нужно мастеру дабы узреть источник Зла?
12 LehhaK
 
25.05.12
13:49
(10) Это уже К.О.?!)
13 Wobland
 
25.05.12
13:50
(11) не нужно ничего мне, источник зла такой же, как у всех. тебе лишь остаётся взять клавиатуру, убрать всё лишнее и написать своё
14 DrShad
 
25.05.12
13:50
(11) бабки нужны
15 Капитан О
 
25.05.12
13:50
(12) да ты, похоже, сам всё понял. я просто промолчал
16 DrShad
 
25.05.12
13:51
(13) это уже больше на Шекспира похоже
17 Wobland
 
25.05.12
13:52
язык Шекспира с 1С не стоит смешивать, друзья ;)
18 LehhaK
 
25.05.12
13:52
(13) Спасибо, мастер. Я уйду на Фудзияму и буду медитировать, покуда просветление не коснется моего заблудшего разума...
19 DrShad
 
25.05.12
13:53
(18) прощай
20 LehhaK
 
25.05.12
13:53
(19) Я вернусь просветленным!!!
21 LehhaK
 
25.05.12
14:00
...так-то, конечно, вы мне офигенно помогли...
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший