|
Не выходят данные на печатную форму из документа ВедомостьНаВыплатуЗарплатыВБанк | ☑ | ||
---|---|---|---|---|
0
dubov
25.08.24
✎
16:56
|
Добрый день!
Новичок в 1С программировании, прошу подсказать что не так делаю и как исправить. ЗУП 3.1 документ ВедомостьНаВыплатуЗарплатыВБанк нужно создать печатную форму. Все создал. Но при подключении не видит данные по физическому лицу. Подскажите что не так? Код ниже. Функция ПечатьВедомостьНаВыплатуЗарплатыВБанк(МассивОбъектов, ОбъектыПечати) Экспорт Менеджер = Документы[МассивОбъектов[0].Метаданные().Имя]; ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеестрВедомостиНаВыплатуЗарплатыВБанкОбмен"; Макет = ПолучитьМакет("ПФ_MXL_РеестрВедомостиНаВыплатуЗарплатыВБанкОбмен"); НастройкиПечатныхФорм = ЗарплатаКадрыПовтИсп.НастройкиПечатныхФорм(); ВалютаУчета = ЗарплатаКадры.ВалютаУчетаЗаработнойПлаты(); // получаем данные для печати ВыборкаШапок = Менеджер.ВыборкаДляПечатиШапки(МассивОбъектов); ВыборкаСтрок = Менеджер.ВыборкаДляПечатиТаблицы(МассивОбъектов); ПервыйДокумент = Истина; Пока ВыборкаШапок.Следующий() Цикл // Документы нужно выводить на разных страницах. Если Не ПервыйДокумент Тогда ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ПервыйДокумент = Ложь; //Запомним номер строки, с которой начали выводить текущий документ. НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1; // Подсчитываем количество страниц документа - для корректного разбиения на страницы. ВсегоСтрокДокумента = ВыборкаСтрок.Количество(); //ОбластьМакетаШапкаДокумента = Макет.ПолучитьОбласть("ШапкаДокумента"); ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка"); // Массив с двумя строками - для разбиения на страницы. ВыводимыеОбласти = Новый Массив(); ВыводимыеОбласти.Добавить(ОбластьМакетаСтрока); ////ВыводимыеОбласти.Добавить(ОбластьМакетаИтогПоСтранице); //ТабличныйДокумент.Вывести(ОбластьМакетаШапкаДокумента); ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ТабличныйДокумент.Вывести(ОбластьМакетаШапка); ВыведеноСтраниц = 1; ВыведеноСтрок = 0; ИтогоНаСтранице = 0; Итого = 0; // Выводим данные по строкам документа. НомерСтроки = 0; ВыборкаСтрок.Сбросить(); Пока ВыборкаСтрок.НайтиСледующий(ВыборкаШапок.Ссылка, "Ведомость") Цикл //НомерСтроки = НомерСтроки + 1; ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаСтрок); ОбластьМакетаСтрока.Параметры.ТабельныйНомер = ВыборкаСтрок.ИНН; ОбластьМакетаСтрока.Параметры.ИнформацияПоОрганизации = ""; ОбластьМакетаСтрока.Параметры.ЗарплатныйПроект=""; ЗапросНаш = Новый запрос; ЗапросНаш.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.Организация КАК Организация, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект КАК ЗарплатныйПроект |ИЗ | РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам |ГДЕ | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.Организация = &Организация | И ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо.Ссылка В (&МассивСсылок)"; ЗапросНаш.УстановитьПараметр("Организация",ВыборкаШапок.Ссылка.Организация); ЗапросНаш.УстановитьПараметр("ФизическоеЛицо",ВыборкаСтрок.СоставФизическоеЛицо); РезультатНаш = ЗапросНаш.Выполнить().Выбрать(); Пока РезультатНаш.Следующий() Цикл ОбластьМакетаСтрока.Параметры.ЗарплатныйПроект= РезультатНаш.ЗарплатныйПроект; КонецЦикла; ОбластьМакетаСтрока.Параметры.Фамилия = ВыборкаСтрок.Фамилия; ОбластьМакетаСтрока.Параметры.Имя = ВыборкаСтрок.Имя; ОбластьМакетаСтрока.Параметры.Отчество = ВыборкаСтрок.Отчество; ОбластьМакетаСтрока.Параметры.НаименованиеУслуги = "Услуги по обслуживанию банкоматов и постерминалов"; //ДРЮ //Начало вывод ДополнительныеРеквизиты.Значение "ИнформацияПоОрганизации" из(Приемы на работу)+ ЗарплатныйПроект Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ПриемНаРаботуДополнительныеРеквизиты.Значение КАК Проект, | ПриемНаРаботуДополнительныеРеквизиты.Свойство КАК Свойство, | ПриемНаРаботу.Организация КАК Организация, | ПриемНаРаботу.ФизическоеЛицо КАК ФизическоеЛицо, | ПриемНаРаботу.Ссылка КАК Ссылка1 |ПОМЕСТИТЬ ДопРеквизитЗначение |ИЗ | Документ.ПриемНаРаботу.ДополнительныеРеквизиты КАК ПриемНаРаботуДополнительныеРеквизиты | ПРАВОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботу КАК ПриемНаРаботу | ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО ПриемНаРаботу.ФизическоеЛицо = ФизическиеЛица.Ссылка | И ПриемНаРаботу.Руководитель = ФизическиеЛица.Ссылка | ПО ПриемНаРаботуДополнительныеРеквизиты.Ссылка = ПриемНаРаботу.Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВедомостьНаВыплатуЗарплатыВКассу.Организация КАК Организация, | ВедомостьНаВыплатуЗарплатыВКассуФизическиеЛица.ФизическоеЛицо КАК ФизическоеЛицо, | ВедомостьНаВыплатуЗарплатыВКассу.Ссылка КАК Ссылка |ПОМЕСТИТЬ ФизЛицаИзВедомасти |ИЗ | Документ.ВедомостьНаВыплатуЗарплатыВКассу.ФизическиеЛица КАК ВедомостьНаВыплатуЗарплатыВКассуФизическиеЛица | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВедомостьНаВыплатуЗарплатыВКассу КАК ВедомостьНаВыплатуЗарплатыВКассу | ПО ВедомостьНаВыплатуЗарплатыВКассуФизическиеЛица.Ссылка = ВедомостьНаВыплатуЗарплатыВКассу.Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект КАК ЗарплатныйПроект, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.Организация КАК Организация, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.НомерЛицевогоСчета КАК НомерЛицевогоСчета |ПОМЕСТИТЬ Лиц |ИЗ | РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | ДопРеквизитЗначение.ФизическоеЛицо КАК ФизическоеЛицо, | ЕСТЬNULL(ДопРеквизитЗначение.Проект, Лиц.ЗарплатныйПроект) КАК ИнформацияПоОрганизации |ИЗ | ДопРеквизитЗначение КАК ДопРеквизитЗначение | ЛЕВОЕ СОЕДИНЕНИЕ ФизЛицаИзВедомасти КАК ФизЛицаИзВедомасти | ЛЕВОЕ СОЕДИНЕНИЕ Лиц КАК Лиц | ПО ФизЛицаИзВедомасти.ФизическоеЛицо = Лиц.ФизическоеЛицо | ПО ДопРеквизитЗначение.Организация = ФизЛицаИзВедомасти.Организация | И ДопРеквизитЗначение.ФизическоеЛицо = ФизЛицаИзВедомасти.ФизическоеЛицо |ГДЕ | ФизЛицаИзВедомасти.Организация = &Организация"; //| И ФизЛицаИзВедомасти.ФизическоеЛицо = &ФизическоеЛицо"; Запрос.УстановитьПараметр("Организация",ВыборкаШапок.Ссылка.Организация); //Запрос.УстановитьПараметр("ФизическоеЛицо",ВыборкаСтрок.сотрудник.ФизическоеЛицо); РезультатЗапроса = Запрос.Выполнить().Выбрать(); РезультатЗапроса.Следующий(); ОбластьМакетаСтрока.параметры.ИнформацияПоОрганизации = РезультатЗапроса.ИнформацияПоОрганизации; //ДРЮ //Конец вывод ДополнительныеРеквизиты.Значение "ИнформацияПоОрганизации" из(Приемы на работу)+ ЗарплатныйПроект ТабличныйДокумент.Вывести(ОбластьМакетаСтрока); КонецЦикла; // по строкам документа Если ВыведеноСтрок > 0 Тогда ////ОбластьМакетаИтогПоСтранице.Параметры.ИтогоНаСтранице = ИтогоНаСтранице; КонецЕсли; ВыводимыеОбласти = Новый Массив(); ВыводимыеОбласти.Добавить(ОбластьМакетаСтрока); Для Сч = 1 По ОбластьМакетаСтрока.Параметры.Количество() Цикл ОбластьМакетаСтрока.Параметры.Установить(Сч - 1,""); КонецЦикла; ОбластьМакетаСтрока.Параметры.Фамилия = " "; ОбластьМакетаСтрока.Параметры.Имя = " "; ОбластьМакетаСтрока.Параметры.Отчество = " "; Пока ОбщегоНазначения.ПроверитьВыводТабличногоДокумента(ТабличныйДокумент, ВыводимыеОбласти) Цикл ТабличныйДокумент.Вывести(ОбластьМакетаСтрока); КонецЦикла; КонецЦикла; // по документам Возврат ТабличныйДокумент; КонецФункции |
|||
1
Мультук
25.08.24
✎
17:53
|
(0)
1) Вот это запрос, тут два параметра "МассивСсылок" и "Организация" Организация заполняется А "МассивСсылок" - ? 2) И что в ЗУП нет вменяемой ведомости ? 3) ФизическоеЛицо -- это уже ссылка. И ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо ЗапросНаш = Новый запрос; ЗапросНаш.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.Организация КАК Организация, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект КАК ЗарплатныйПроект |ИЗ | РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам |ГДЕ | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.Организация = &Организация | И ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо.Ссылка В (&МассивСсылок)"; ЗапросНаш.УстановитьПараметр("Организация",ВыборкаШапок.Ссылка.Организация); ЗапросНаш.УстановитьПараметр("ФизическоеЛицо",ВыборкаСтрок.СоставФизическоеЛицо); P.S. Текста много. Весь не читал, не стал себе портить настроение |
|||
2
Мультук
25.08.24
✎
17:55
|
(0)
По секрету, эту функцию можно вызвать из модуля, в форме И отладке смотреть, а что там происходит. |
|||
3
osa1C
25.08.24
✎
18:15
|
(0) Тебе надо для начала подружиться с консолью запросов и научится писать запросы так, чтобы они собирали нужные данные при этом не попадали в цикл. От этого говно кода глаза кровью слезятся, поэтому тут его никто разбирать не будет. Два запроса в внутри двух циклов - это жесть!!!
Ну а по твоему вопросу могу лишь посоветовать посмотреть на параметры запроса с физическим лицом, вставить этот запрос в консоль запросов и посмотреть какие ошибки он выдаст. | И ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо.Ссылка В (&МассивСсылок)"; ЗапросНаш.УстановитьПараметр("Организация",ВыборкаШапок.Ссылка.Организация); ЗапросНаш.УстановитьПараметр("ФизическоеЛицо",ВыборкаСтрок.СоставФизическоеЛицо); РезультатНаш = ЗапросНаш.Выполнить().Выбрать(); Где установка параметра &МассивСсылок ??? |
|||
4
dubov
25.08.24
✎
19:08
|
Организация заполняется. А вот при вызове результата ЗапросНаш.УстановитьПараметр("ФизическоеЛицо",ВыборкаСтрок.СоставФизическоеЛицо); Данные не выводятся параметры.
|
|||
5
dubov
25.08.24
✎
19:10
|
(3) Если бы понимал что ни так то не обратился бы. А т.к. еще не все понимаю и обратился за помощью.
|
|||
6
dubov
25.08.24
✎
19:11
|
(1) Им нужна именно такая((( Стандартные для пользователей не подходят.
|
|||
7
dubov
25.08.24
✎
19:13
|
Попробовал изменить Запрос.УстановитьПараметр не помогло.
ВыборкаСтрок.Сбросить(); Пока ВыборкаСтрок.НайтиСледующий(ВыборкаШапок.Ссылка, "Ведомость") Цикл //НомерСтроки = НомерСтроки + 1; ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаСтрок); //ОбластьМакетаСтрока.Параметры.НомерСтроки = НомерСтроки; ОбластьМакетаСтрока.Параметры.ТабельныйНомер = ВыборкаСтрок.ИНН; ОбластьМакетаСтрока.Параметры.ИнформацияПоОрганизации = ""; ОбластьМакетаСтрока.Параметры.ЗарплатныйПроект=""; ЗапросНаш = Новый запрос; ЗапросНаш.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.Организация КАК Организация, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.НомерЛицевогоСчета КАК НомерЛицевогоСчета, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.БанковскийСчет КАК БанковскийСчет, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект КАК ЗарплатныйПроект |ИЗ | РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам |ГДЕ | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо = &ФизическоеЛицо | И ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.Организация = &Организация"; ЗапросНаш.УстановитьПараметр("Организация",ВыборкаШапок.Ссылка.Организация); ЗапросНаш.УстановитьПараметр("ФизическоеЛицо",ВыборкаСтрок.сотрудник.ФизическоеЛицо); РезультатНаш = ЗапросНаш.Выполнить().Выбрать(); Пока РезультатНаш.Следующий() Цикл ОбластьМакетаСтрока.Параметры.ЗарплатныйПроект= РезультатНаш.ЗарплатныйПроект; КонецЦикла; ОбластьМакетаСтрока.Параметры.Фамилия = ВыборкаСтрок.Фамилия; ОбластьМакетаСтрока.Параметры.Имя = ВыборкаСтрок.Имя; ОбластьМакетаСтрока.Параметры.Отчество = ВыборкаСтрок.Отчество; ОбластьМакетаСтрока.Параметры.НаименованиеУслуги = "Услуги по обслуживанию банкоматов и постерминалов"; //ДРЮ //Начало вывод ДополнительныеРеквизиты.Значение "ИнформацияПоОрганизации" из(Приемы на работу)+ ЗарплатныйПроект Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ПриемНаРаботуДополнительныеРеквизиты.Значение КАК Проект, | ПриемНаРаботуДополнительныеРеквизиты.Свойство КАК Свойство, | ПриемНаРаботу.Организация КАК Организация, | ПриемНаРаботу.ФизическоеЛицо КАК ФизическоеЛицо, | ПриемНаРаботу.Ссылка КАК Ссылка1 |ПОМЕСТИТЬ ДопРеквизитЗначение |ИЗ | Документ.ПриемНаРаботу.ДополнительныеРеквизиты КАК ПриемНаРаботуДополнительныеРеквизиты | ПРАВОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботу КАК ПриемНаРаботу | ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО ПриемНаРаботу.ФизическоеЛицо = ФизическиеЛица.Ссылка | И ПриемНаРаботу.Руководитель = ФизическиеЛица.Ссылка | ПО ПриемНаРаботуДополнительныеРеквизиты.Ссылка = ПриемНаРаботу.Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВедомостьНаВыплатуЗарплатыВБанк.Ссылка КАК Ссылка, | ВедомостьНаВыплатуЗарплатыВБанк.Организация КАК Организация, | ВедомостьНаВыплатуЗарплатыВБанкФизическиеЛица.ФизическоеЛицо КАК ФизическоеЛицо |ПОМЕСТИТЬ ФизЛицаИзВедомасти |ИЗ | Документ.ВедомостьНаВыплатуЗарплатыВБанк.ФизическиеЛица КАК ВедомостьНаВыплатуЗарплатыВБанкФизическиеЛица | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВедомостьНаВыплатуЗарплатыВБанк КАК ВедомостьНаВыплатуЗарплатыВБанк | ПО ВедомостьНаВыплатуЗарплатыВБанкФизическиеЛица.Ссылка = ВедомостьНаВыплатуЗарплатыВБанк.Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект КАК ЗарплатныйПроект, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.Организация КАК Организация, | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.НомерЛицевогоСчета КАК НомерЛицевогоСчета |ПОМЕСТИТЬ Лиц |ИЗ | РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | ДопРеквизитЗначение.ФизическоеЛицо КАК ФизическоеЛицо, | ЕСТЬNULL(ДопРеквизитЗначение.Проект, Лиц.ЗарплатныйПроект) КАК ИнформацияПоОрганизации |ИЗ | ДопРеквизитЗначение КАК ДопРеквизитЗначение | ЛЕВОЕ СОЕДИНЕНИЕ ФизЛицаИзВедомасти КАК ФизЛицаИзВедомасти | ЛЕВОЕ СОЕДИНЕНИЕ Лиц КАК Лиц | ПО ФизЛицаИзВедомасти.ФизическоеЛицо = Лиц.ФизическоеЛицо | ПО ДопРеквизитЗначение.Организация = ФизЛицаИзВедомасти.Организация | И ДопРеквизитЗначение.ФизическоеЛицо = ФизЛицаИзВедомасти.ФизическоеЛицо |ГДЕ | ФизЛицаИзВедомасти.Организация = &Организация | И ФизЛицаИзВедомасти.ФизическоеЛицо = &ФизическоеЛицо"; Запрос.УстановитьПараметр("Организация",ВыборкаШапок.Ссылка.Организация); Запрос.УстановитьПараметр("ФизическоеЛицо",ВыборкаСтрок.сотрудник.ФизическоеЛицо); РезультатЗапроса = Запрос.Выполнить().Выбрать(); РезультатЗапроса.Следующий(); ОбластьМакетаСтрока.параметры.ИнформацияПоОрганизации = РезультатЗапроса.ИнформацияПоОрганизации; |
|||
8
dubov
25.08.24
✎
19:15
|
Ругается что не поля ИНН, и т.д. Суммы выводи, организацию, зарплатный проект выводит, если закоментить ФизическоеЛицо и Установить параметр. Не понимаю что не так.
|
|||
9
craxx
25.08.24
✎
19:35
|
(7) За такие запросы в цикле я бы лично убивал из рогатки.
|
|||
10
dubov
25.08.24
✎
19:45
|
(9) Так объясните тогда как верно.
|
|||
11
dubov
25.08.24
✎
19:45
|
Делаю как умею на настоящий момент
|
|||
12
dubov
26.08.24
✎
00:47
|
Всем спасибо! Вопрос решен. Спасибо за критику, действительно намудрил с запросами и циклами, 1 запрос = 1 цикл и код стал куда меньше. Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |