Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 16:05
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: ЗУП внешняя печатная к документу "Зарплата к выплате организации"  (Прочитано 3280 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kuza_87

  • *
  • Сообщений: 25
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-05-10
  • Сайт: 
  • Профессия: Программист 1С
День добрый. Написал внешнюю обработку - печатная форма для документа зарплата к выплате.вот код:


Функция ПечатьРеестр() Экспорт
   Запрос=Новый Запрос;

         Запрос.Текст = "ВЫБРАТЬ
      |   ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо КАК Физлицо,
      |   ЗарплатаКВыплатеОрганизацийЗарплата.Сумма КАК Сумма,
      |   ЕСТЬNULL(РаботникиОрганизацийСрезПоследних.Сотрудник.ПодразделениеОрганизации, ДоговорНаВыполнениеРаботСФизЛицом.ПодразделениеОрганизации) КАК СотрудникПодразделениеОрганизации,
      |   РаботникиОрганизацийСрезПоследних.Период КАК Период,
      |   ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Номер КАК Номер,
      |   ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Дата КАК Дата
      |ИЗ
      |   Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата
      |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период, ) КАК РаботникиОрганизацийСрезПоследних
      |      ПО ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо = РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо
      |      ЛЕВОЕ СОЕДИНЕНИЕ Документ.ДоговорНаВыполнениеРаботСФизЛицом КАК ДоговорНаВыполнениеРаботСФизЛицом
      |      ПО ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо = ДоговорНаВыполнениеРаботСФизЛицом.ФизЛицо
      |ГДЕ
      |   ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка = &Ссылка
      |
      |УПОРЯДОЧИТЬ ПО
      |ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо.Наименование,
      |Период УБЫВ
      |ИТОГИ ПО
      |   Физлицо,
      |   Сумма";
            
   Запрос.Параметры.Вставить("Период",СсылкаНаОбъект.Дата);
   Запрос.Параметры.Вставить("Ссылка",СсылкаНаОбъект.Ссылка);  //ЗНАЧЕНИЕ(Документ.ЗарплатаКВыплатеОрганизаций.ПустаяСсылка)
   РезультатЗапроса=Запрос.Выполнить();
   Выборка=РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);//ПоГруппировкам/Прямой
   //ТЗ=РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);//ПоГруппировкам/Прямой
   //ТЗ.ВыбратьСтроку();
   
   
   //формирование табличного документа с печатной формой
   ТабДокумент = Новый ТабличныйДокумент;
   ТабДокумент.ПолеСлева = 0;
   ТабДокумент.ПолеСправа = 0;
   ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗарплатаКВыплатеОрганизаций_Реестр";
   
   Макет = ПолучитьМакет("Реестр");
   
   ОбластьМакетаЗаголовок      = Макет.ПолучитьОбласть("Заголовок");
   ОбластьМакетаШапка         = Макет.ПолучитьОбласть("Шапка");
   ОбластьМакетаСтрока         = Макет.ПолучитьОбласть("Строка");
   ОбластьМакетаПодвал       = Макет.ПолучитьОбласть("Подвал");
   
   ТабДокумент.Вывести(ОбластьМакетаЗаголовок);
   ОбластьМакетаШапка.Параметры.Номер = СсылкаНаОбъект.Номер;
   ОбластьМакетаШапка.Параметры.Дата = СсылкаНаОбъект.Дата;
   ОбластьМакетаШапка.Параметры.КакВыплачено = СсылкаНаОбъект.СпособВыплаты;
   ТабДокумент.Вывести(ОбластьМакетаШапка);

   //добавляем массив для разбиения на страницы
   
    ВыводимыеОбласти = Новый Массив();
   ВыводимыеОбласти.Добавить(ОбластьМакетаСтрока);
   
   //заполняем строки
   Пока Выборка.Следующий()Цикл
      ВыборкаСумма = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
      Пока ВыборкаСумма.Следующий()Цикл
      ВыборкаПодразделение = ВыборкаСумма.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
      Если ВыборкаПодразделение.Следующий() тогда    
      ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаПодразделение);
      иначе ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаСумма);
      
       КонецЕсли;
      // разбиение на страницы
      //ВыведеноСтрок = ВыведеноСтрок + 1;
      
   // Проверим, уместится ли строка на странице или надо открывать новую страницу
      ВывестиПодвалЛиста = Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти);
      
      
      
      Если ВывестиПодвалЛиста Тогда
         
         ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
         ТабДокумент.Вывести(ОбластьМакетаШапка);
         //ВыведеноСтраниц = ВыведеноСтраниц + 1;
         КонецЕсли;
      
            ТабДокумент.Вывести(ОбластьМакетаСтрока);
   
    КонецЦикла;
   КонецЦикла;
         
   ВыводимыеОбласти = Новый Массив();
   ВыводимыеОбласти.Добавить(ОбластьМакетаСтрока);
   ВыводимыеОбласти.Добавить(ОбластьМакетаПодвал);
   
   
   //Пока ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти, Ложь) Цикл
   //   ТабДокумент.Вывести(ОбластьМакетаСтрока);
   //КонецЦикла;
   
   
   ТабДокумент.Вывести(ОбластьМакетаПодвал);
   
   Возврат ТабДокумент;

КонецФункции
Функция Печать () Экспорт
   Возврат   ПечатьРеестр();
   
КонецФункции


там в принципе всё просто, простенький макет для реестра. Расчётчики попросили меня сделать группировку по службам. Я сказал что это не возможно, т.к. в ЗУП. В версии платформы 7.7 программа называлась Зарплата и кадры (ЗиК).Программа содержит ...">ЗИК-е у сотрудника был реквизит "служба", а в ЗУП-е его нет. В большинстве случаев службой в нашей организации является родитель подразделения из справочника, но иногда служба - это 2, 3 а иногда и 4-й родитель. Поэтому я захотел просто сделать группировку по подразделениям. Но у меня это не получилось, т.к. при выполнении запроса у людей данные берутся из регистра сведений, и если были перемещения, то появляется несколько одинаковых строк (см. вложение под названием "Запрос").
Чтобы в печатной форме они не отображались я написал в коде следующее:

//заполняем строки
   Пока Выборка.Следующий()Цикл
      ВыборкаСумма = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
      Пока ВыборкаСумма.Следующий()Цикл
      ВыборкаПодразделение = ВыборкаСумма.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
      Если ВыборкаПодразделение.Следующий() тогда    
      ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаПодразделение);
      иначе ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаСумма);
      
       КонецЕсли;
      // разбиение на страницы
      //ВыведеноСтрок = ВыведеноСтрок + 1;
      
   // Проверим, уместится ли строка на странице или надо открывать новую страницу
      ВывестиПодвалЛиста = Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти);
      
      
      
      Если ВывестиПодвалЛиста Тогда
         
         ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
         ТабДокумент.Вывести(ОбластьМакетаШапка);
         //ВыведеноСтраниц = ВыведеноСтраниц + 1;
         КонецЕсли;
      
            ТабДокумент.Вывести(ОбластьМакетаСтрока);
   
    КонецЦикла;
   КонецЦикла;

Когда я делай в запросе группировку по подразделениям - люди дублируются.
Вопрос. Как можно сделать так чтобы они не дублировались


Оффлайн kuza_87

  • *
  • Сообщений: 25
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-05-10
  • Сайт: 
  • Профессия: Программист 1С
Я сккрин прикрепил


Теги:
 

Обмен данными Зарплата 8 (бюджет)-Бухгалтерия 8 (бюджет)

Автор VanillaРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 3226
Последний ответ 14 Дек 2009, 11:16
от Vanilla
Некорректно отображается печатная форма счета нового счета фактуры

Автор blue_stormРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 6139
Последний ответ 01 Фев 2012, 17:29
от blue_storm
Печатная форма договора контрагента по шаблону Word с выгрузкой в MS Word для УП

Автор VinttnivРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3635
Последний ответ 10 Фев 2012, 07:42
от cska-fanat-kz
Как автоматизировать ввод документов по отклонениям от рабочего времени в программе 1С Зарплата и Управление Персоналом

Автор MuI_I_IkaРаздел Зарплата и управление персоналом

Ответов: 0
Просмотров: 2978
Последний ответ 29 Июл 2014, 10:43
от MuI_I_Ika
Зарплата и управление персоналом 3.0 отпуск без сохранения оплаты в карточке Т-2, данных по отпуску нет.

Автор zbaРаздел Пользователям "1С - Предприятие 8"

Ответов: 4
Просмотров: 8634
Последний ответ 03 Сен 2014, 10:09
от zba

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
47 Сообщений
oleg-x
44 Сообщений
andron81_81
44 Сообщений
BuhRust
33 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 255
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal