7.7 вывод таблицы на лист

Тема в разделе "Типовые решения "1С:Предприятие 7.7"", создана пользователем AD1986, 24 ноя 2012.

  1. TopicStarter Overlay
    AD1986
    Offline

    AD1986 Опытный в 1С

    Регистрация:
    8 фев 2011
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    Добрый день подскажите как решить проблему.У меня етсь расчетный листок который печатаеться на лист можно выбра месяц с какого по какой и выводит за каждый месяц листки к примеру за 12 месяцев. Проблема вот в чем я хочу вывести в строку 6 листков, но проблема такая что каждый расчетный листок она выводит на следующея строчку и на лист помещаеться 2 таких листка. подскажите каким образом можно подсчитать кол-во столбцов или кол-во выводимых таблиц в одну строку. заранее оромное спасибо.
    Код:
    Перем Сотрудник;
    Перем Колич;
    Перем Остаток;
    Перем Начис;
    Перем Сумма1;
    Перем Сумма2;
    Перем БухИтоги1;
    
    Перем пНачМес;
    Перем пКонМес;
    Перем Сум1;
    Перем Сум2;
    Перем Сум3;
    Перем Но;
    Перем Номм;  
    Перем Дети,Подразделение,Должность,Начисл,Неоплата,Тариф,ПоКонтр;
    Перем СуммаКПННГ,СуммаПНСНГ,СуммаЛьг,СуммаМП;
    Перем Датт; 
    Перем Сумм3;
    //======================================================================
    Процедура ПриИзмененииЧекЗаПериод()
    Форма.ВыбНачПериода.Доступность(чекЗаПериод);
    Форма.ВыбКонПериода.Доступность(чекЗаПериод);
    Форма.Дат.Доступность(1-чекЗаПериод);
    Форма.кнВыбПериод.Доступность(чекЗаПериод);
    
    Если чекЗаПериод = 1 Тогда
    ВыбКонПериода = ?(ВыбКонПериода = Дата(0), ТекущаяДата(), ВыбКонПериода);
    ВыбНачПериода = ?(ВыбНачПериода = Дата(0), НачГода(ВыбКонПериода), ВыбНачПериода);
    КонецЕсли;
    
    КонецПроцедуры // ПриИзмененииЧекЗаПериод
    Процедура ПриОткрытии()
    //{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА(Сформировать)
    //{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА
    ФлагДвух=1;
    чекЗаПериод = 0;
    ПриИзмененииЧекЗаПериод();
    КонецПроцедуры
    Процедура Сформировать()
    ДнейОтработ=0;
    Ит = СоздатьОбъект("БухгалтерскиеИтоги");
    Ит.ИспользоватьСубконто(ВидыСубконто.Сотрудники,, 1);
    Ит.ВыполнитьЗапрос(НачМесяца(Дат),КонМесяца(Дат), "ДН", , , 2,, "К");
    Ит.ВыбратьСубконто(ВидыСубконто.Сотрудники);
    Пока Ит.ПолучитьСубконто(ВидыСубконто.Сотрудники) = 1 Цикл
    // Оборот дебетовый;
    ДнейОтработ = Ит.ДО("К");
    КонецЦикла;
    КонецПроцедуры
    //}}БУХГАЛТЕРСКИЙ ЗАПРОС
    Процедура Проверка()
    Если Число(Всех)=1 Тогда
    Форма.Подр.Доступность(0);
    Форма.Подр.Видимость(0); 
    Форма.Подразд.Доступность(0);
    Форма.Подразд.Видимость(0);
    Иначе
    Форма.Подр.Доступность(1);
    Форма.Подр.Видимость(1); 
    Форма.Подразд.Доступность(1);
    Форма.Подразд.Видимость(1);
    КонецЕсли;
    КонецПроцедуры
    Процедура ОргВыборки()
    Начис=СоздатьОбъект("Справочник.ВидыНачЗП");
    Начис.ПорядокКодов();
    КонецПроцедуры
    
    Процедура УстНачЗнач()
    Ит=0;
    Кв=0;
    Сум1=0;
    Сум2=0;
    Сум3=0;
    i=1;
    р=1;
    КонецПроцедуры
    
    Процедура Печать(выбДата = 0, выбТаб = 0)
    Ит=СоздатьОбъект("БухгалтерскиеИтоги");
    УстНачЗнач();
    ОргВыборки();
    КолЭкз=2;
    
    
    Если выбТаб = 0 Тогда
    Таб=СоздатьОбъект("Таблица");		   
    Если Число(ФлагДвух)=1 Тогда 
    Таб.ИсходнаяТаблица("Таблица1");
    Иначе
    Таб.ИсходнаяТаблица("Таблица");
    КонецЕсли;
    Иначе
    Таб = выбТаб;
    КонецЕсли;
    
    
    ВременаяДата = ?(выбДата = 0, Дат, выбДата);
    
    пНачМес=НачМесяца(ВременаяДата);
    пКонМес=КонМесяца(ВременаяДата);
    Номм=1;
    Но=0;
    Призн=0;
    Флаги=0; 
    Мес=СоздатьОбъект("Справочник.Календари");
    Мес.НайтиПоРеквизиту("ДатаМес",КонМесяца(ВременаяДата),1);
    Месяц=Мес.ТекущийЭлемент();
    Часы=Месяц.Колво;										
    ДнейОтраб=0;
    Если ""+СокрЛП(Сотрудники)<>"" Тогда
    БухИтоги.ИспользоватьСубконто(ВидыСубконто.Сотрудники,Сотрудники,2,0);	 
    Иначе
    БухИтоги.ИспользоватьСубконто(ВидыСубконто.Сотрудники,,1,0);   
    КонецЕсли;
    БухИтоги.ИспользоватьСубконто(ВидыСубконто.ЗарплатаНач,,1,0);
    БухИтоги.ИспользоватьСубконто(ВидыСубконто.ДатаНачисленияЗП,,1,0);
    БухИтоги.ВыполнитьЗапрос(НачМесяца(ВременаяДата),КонМесяца(ВременаяДата),СчетПоКоду("70.1"),,,1,,5);
    БухИтоги.ВыбратьСубконто(1,,,,,"полноеНаименование()");
    Пока (БухИтоги.ПолучитьСубконто(1)=1) Цикл
    ДатаРасчета=КонМесяца(ВременаяДата);
    ФлагПрохода=Перечисление.Булево.Да;
    Если Число(Всех)=0 Тогда
    Если (""+СокрЛП(БухИтоги.Субконто(1).Подразделение.Получить(ДатаРасчета).ПолныйКод())<>""+СокрЛП(Подразд.ПолныйКод())) Тогда
    ФлагПрохода=Перечисление.Булево.Нет;
    Если (Подразд.ЭтоГруппа()=1)  и (""+СокрЛП(БухИтоги.Субконто(1).Подразделение.Получить(ДатаРасчета).Родитель.ПолныйКод())=""+СокрЛП(Подразд.ПолныйКод())) Тогда
    ФлагПрохода=Перечисление.Булево.Да;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    Если ФлагПрохода=Перечисление.Булево.Да Тогда
    Сотрудник=СокрЛП(БухИтоги.Субконто(1));
    Табл=СокрЛП(БухИтоги.Субконто(1).ТабельныйНомер);  
    Подразделение=БухИтоги.Субконто(1).Подразделение.Получить(ДатаРасчета).ПолноеНаименование();
    Должность=""+СокрЛП(БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета));
    Тариф=0;
    ПоКонтр=0;
    ПоКонтр=БухИтоги.Субконто(1).Тариф.Получить(ДатаРасчета);
    Если БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ОкладМес.Получить(ДатаРасчета)<>0 Тогда
    Если БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ВидОплат.Код ="3" Тогда 
    Если БухИтоги.Субконто(1).БезКонтракта=1 Тогда
    Тариф=Окр(Константа.СтавкаПервогоРазряда.Получить(ДатаРасчета)*БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ТарифКоэф*БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ПовКоэф*((100+БухИтоги.Субконто(1).ПроцПовыш)/100),0,1);
    Иначе 
    Тариф=Окр(Константа.СтавкаПервогоРазряда.Получить(ДатаРасчета)*БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ТарифКоэф*БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ПовКоэф*((120+БухИтоги.Субконто(1).ПроцПовыш)/100),0,1);
    КонецЕсли;
    // Тариф=Окр(Константа.СтавкаПервогоРазряда.Получить(ДатаРасчета)*БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ТарифКоэф*БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ПовКоэф*((120+БухИтоги.Субконто(1).ПроцПовыш)/100),0,1);
    Иначе
    Если БухИтоги.Субконто(1).БезКонтракта=1 Тогда
    Тариф=Окр(Константа.СтавкаПервогоРазрядаРабочие.Получить(ДатаРасчета)*БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ТарифКоэф*БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ПовКоэф*((100+БухИтоги.Субконто(1).ПроцПовыш)/100),0,1);
    Иначе
    Тариф=Окр(Константа.СтавкаПервогоРазрядаРабочие.Получить(ДатаРасчета)*БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ТарифКоэф*БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ПовКоэф*((120+БухИтоги.Субконто(1).ПроцПовыш)/100),0,1);
    //  Тариф=Окр(БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ОкладМес.Получить(ДатаРасчета),0,1);
    КонецЕсли;
    КонецЕсли;
    Иначе
    Тариф=Окр(БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).Оклад.Получить(ДатаРасчета),0,1);
    Если БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ПовКоэф<>0 Тогда
    Тариф=Окр(Тариф*БухИтоги.Субконто(1).Должность.Получить(ДатаРасчета).ПовКоэф,0,1);
    КонецЕсли;
    
    КонецЕсли;
    
    Дети=0;
    Дети=Число(БухИтоги.Субконто(1).Иждивенцы.Получить(ВременаяДата));
    Сум1=0;
    Сум2=0;
    Сум3=0;
    Остаток=0;
    Сум3=БухИтоги.СКК()-БухИтоги.СКД(); 
    СумПрПер=0;
    СумПрПер=БухИтоги.КО();
    Остаток=БухИтоги.СНК()-БухИтоги.СНД();
    Неоплата="";
    Если Остаток<0 Тогда
    Неоплата="Долг на начало месяца составляет "+(-Остаток)+"рублей";
    ИначеЕсли Остаток>0 Тогда
    КонецЕсли;
    I=I+1;
    Если (Сум3<>0) или (Остаток<>0) или (БухИтоги.КО()<>0) или (БухИтоги.ДО()<>0) Тогда
    СуммаКПН=0;СуммаПН=0;СуммаЛьг=0;СуммаМП=0; 
    СуммаКПН=БухИтоги.Субконто(1).СмКПН.Получить(ДатаРасчета);
    СуммаПН=БухИтоги.Субконто(1).СПН.Получить(ДатаРасчета);
    СуммаЛьг=БухИтоги.Субконто(1).СЛГ.Получить(ДатаРасчета)+БухИтоги.Субконто(1).СуммаЛьготы.Получить(НачМесяца(ДатаРасчета))-БухИтоги.Субконто(1).СуммаЛьготы.Получить(ДатаРасчета);
    СуммаСоц=БухИтоги.Субконто(1).СуммаЛьготы.Получить(ДатаРасчета);
    СуммаМП=БухИтоги.Субконто(1).СМП.Получить(ДатаРасчета)+БухИтоги.Субконто(1).СуммаМП.Получить(ДатаРасчета); 
    Ит.ИспользоватьСубконто(ВидыСубконто.Сотрудники,БухИтоги.Субконто(1),2);
    Ит.ВыполнитьЗапрос(НачМесяца(ВременаяДата),КонМесяца(ВременаяДата), "ДН", , ,1,, "К");
    ДнейОтраб=Ит.ДО("К");
    Но=Но+1;
    Если число(Но)>3 Тогда
    Таб.НоваяСтраница();
    Но=1;
    КонецЕсли;
    
    Таб.ВывестиСекцию("Шапка");
    Номм=Номм+13;
    Сум1=0;
    n=0;
    Начис1="";
    БухИтоги.ВыбратьСубконто(2);
    Пока (БухИтоги.ПолучитьСубконто(2)=1) Цикл
    Начисл=СокрЛП(БухИтоги.Субконто(2).КрНаим);	
    Начис=БухИтоги.Субконто(2); 
    Если СокрЛП(Начис)<>"" Тогда
    Если Начис.ЭтоГруппа()=0 Тогда
    Если ""+Лев(СокрЛП(Начис.ПолныйКод()),1)="1" Тогда
    n=n+1;
    Сумма1=0;
    Сумма2=0;
    Колич=0;  
    
    БухИтоги.ВыбратьСубконто(3);
    Пока (БухИтоги.ПолучитьСубконто(3)=1) Цикл;
    Если БухИтоги.КО("С")<>0 Тогда
    Сумма1=0;
    Датт=Прав(БухИтоги.Субконто(3),5);
    Сумма1=Сумма1+БухИтоги.КО("С");
    Колич=Колич+БухИтоги.КО("К");
    Сум1=Сум1+Сумма1;
    Р=Р+1;
    Таб.ВывестиСекцию("Строка1");
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    Таб.ВывестиСекцию("Строка2");
    Номм=Номм+1;
    n=0;
    Начис1="";
    БухИтоги.ВыбратьСубконто(2);
    Пока (БухИтоги.ПолучитьСубконто(2)=1) Цикл
    Начисл=СокрЛП(БухИтоги.субконто(2).КрНаим); 
    Начис1=БухИтоги.Субконто(2); 
    Если СокрЛП(Начис1)<>"" Тогда
    Если Начис1.ЭтоГруппа()=0 Тогда
    Если ""+Лев(СокрЛП(Начис1.ПолныйКод()),1)="2" Тогда
    n=n+1;
    Сумма1=0;
    Колич=0;
    Сумма1=Сумма1+БухИтоги.ДО("С");
    Колич=Колич+БухИтоги.ДО("К");
    // Датт=Прав(БухИтоги.Субконто(3),5);
    Если  (""+(СокрЛП(Начис1.ПолныйКод()))="2/9") или
    (""+(СокрЛП(Начис1.ПолныйКод()))="2/17") или (""+(СокрЛП(Начис1.ПолныйКод()))="2/18") Тогда 
    Иначе
    СумПрПер=СумПрПер-БухИтоги.ДО("С");   
    //Сообщить(БухИтоги.ДО("С")) 
    Сум2=Сум2+Сумма1;
    Р=Р+1;
    Если Сумма1<>0 Тогда
    Таб.ВывестиСекцию("Строка3");
    КонецЕсли;
    КонецЕсли;
    
    КонецЕсли;
    КонецЕсли;   
    КонецЕсли;  
    КонецЦикла;
    Таб.ВывестиСекцию("Строка4");
    Таб.ВывестиСекцию("Подвал");	
    См1=0;
    См2=0;
    Сум3=Окр(Сум3,0,1);
    Сумм3=0;
    //текущий месяц
    См1=Окр(СумПрПер,0,1); 
    //предыдущие месяцы
    См2=Окр((Сум3-СумПрПер),0,1);
    Если См2<0 Тогда
    См1=Сум3;
    См2=0;
    КонецЕсли;  
    Датт=ВременаяДата;
    Если См1>0 Тогда
    Сумм3=См1;		
    Датт=ВременаяДата;
    Таб.ВывестиСекцию("Сальдо");  
    КонецЕсли;
    Если См2>0 Тогда   
    ///проверка   
    Датт=Дата(НачМесяца(ВременаяДата)-1);
    i=0;
    Пока (См2>0) и (i<6) Цикл
    i=i+1;
    Ит.ИспользоватьСубконто(ВидыСубконто.Сотрудники,БухИтоги.Субконто(1),2);   
    Ит.ИспользоватьСубконто(ВидыСубконто.ЗарплатаНач,,1,0);  
    Ит.ВыполнитьЗапрос(НачМесяца(Датт),КонМесяца(Датт),СчетПоКоду("70.1"),,,1,,5);
    Нач=Ит.КО();
    Ит.ВыбратьСубконто(2);
    Пока (Ит.ПолучитьСубконто(2)=1) Цикл
    Начис1=Ит.Субконто(2); 
    Если Начис1.ЭтоГруппа()=0 Тогда
    Если ""+Лев(СокрЛП(Начис1.ПолныйКод()),1)="2" Тогда 
    Если  (""+(СокрЛП(Начис1.ПолныйКод()))="2/9") или
    (""+(СокрЛП(Начис1.ПолныйКод()))="2/17") или (""+(СокрЛП(Начис1.ПолныйКод()))="2/18") Тогда 
    Иначе
    Нач=Нач-Ит.ДО();
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;   
    Нач=Окр(Нач,0,1);
    Если Нач>=См2 Тогда
    Сумм3=См2;
    См2=0;
    Иначе
    Сумм3=Нач;
    См2=См2-Нач;
    КонецЕсли;				   
    Если Сумм3>0 Тогда
    Таб.ВывестиСекцию("Сальдо");  
    КонецЕсли;
    Датт=Дата(НачМесяца(Датт)-1);
    КонецЦикла;
    КонецЕсли;   
    Если См2>0 Тогда
    Таб.ВывестиСекцию("Сальдо");  
    КонецЕсли;  
    Таб.ВывестиСекцию("Хвост");  
    КонецЕсли;		  
    КонецЕсли;
    КонецЦикла;
    
    
    Если выбТаб = 0 Тогда
    Таб.ПараметрыСтраницы(2,100,,0,0,0,0,0,0,1,,);
    Таб.Опции(0,0,0,0);
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Печать ");
    КонецЕсли;
    
    КонецПроцедуры 
    //{{БУХГАЛТЕРСКИЙ ЗАПРОС(Сформировать)
    //Данный фрагмент построен конструктором.
    //При повторном использовании конструктора, внесенные вручную изменения будут потеряны!!!
    //{{ Схема номер 6
    //{{ ДтКт 1111110
    //{{ БезТаблицы
    
    //======================================================================
    Процедура СформироватьЗаПериод()
    
    Если (ВыбНачПериода = Дата(0)) или (ВыбКонПериода = Дата(0)) Тогда
    Предупреждение("Не верно задан период", 5);
    Возврат;
    КонецЕсли;
    
    Если ВыбКонПериода < ВыбНачПериода Тогда
    Предупреждение("Не верно задан период", 5);
    Возврат;
    КонецЕсли;
    
    Если Сотрудники.Выбран() = 0 Тогда
    Предупреждение("Не выбран сотрудник", 5);
    Возврат;
    КонецЕсли;
    
    Таб=СоздатьОбъект("Таблица");		   
    Если Число(ФлагДвух)=1 Тогда 
    Таб.ИсходнаяТаблица("Таблица1");
    Иначе
    Таб.ИсходнаяТаблица("Таблица");
    КонецЕсли;
    
    ВремДата = ВыбНачПериода;
    Пока ВремДата < ВыбКонПериода Цикл
    Печать(ВремДата, Таб);
    ВремДата = ДобавитьМесяц(ВремДата, 1);
    КонецЦикла;
    
    Таб.ПараметрыСтраницы(2,5,,,,,,,,1,,);
    Таб.Опции(0,0,0,0);
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Расчетные листы '"+Сотрудники+"' за " + ПериодСтр(ВыбНачПериода, ВыбКонПериода));
    
    КонецПроцедуры // СформироватьЗаПериод
    //======================================================================
    Процедура Выполнить()
    Если чекЗаПериод = 0 Тогда
    Печать();
    Иначе
    СформироватьЗаПериод();
    КонецЕсли;
    КонецПроцедуры // Выполнить
    
    Текст=0;
    Дат=ТекущаяДата();
    
    Начис=СоздатьОбъект("Справочник.ВидыНачЗП");	   
    Начис1=СоздатьОбъект("Справочник.ВидыНачЗП");
    Кодды="12";
    Начис.НайтиПоКоду(Кодды);
    Начис10="";
    Начис10=Начис.ТекущийЭлемент();
    Сум15=0;   
    
    
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    есть же опция "по ширине листа". Сколько нужно - столько и будет

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