Имеется следующий код:
Пишет ошибку якобы объект не обнаружен, не могу разобраться:
&НаСервере
Процедура СформироватьНаСервере(ТабДок, СсылкаНаОбъект)
//ДатаНачала = Период.ДатаНачала;
//ДатаОкончания = Период.ДатаОкончания;
//Получить макет
Макет = Отчеты.НачислениеЗПНаВыбор1.ПолучитьМакет("Макет1");
//Получение областей из макета
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапкаТаблицыНач = Макет.ПолучитьОбласть("ШапкаТаблицыНач");
ОбластьСтрокаТаблицыНач = Макет.ПолучитьОбласть("СтрокаТаблицыНач");
ОбластьПодвалНач = Макет.ПолучитьОбласть("ПодвалНач");
ОбластьШапкаТаблицыУд = Макет.ПолучитьОбласть("ШапкаТаблицыУд");
ОбластьСтрокаТаблицыУд = Макет.ПолучитьОбласть("СтрокаТаблицыУд");
ОбластьПодвалУд = Макет.ПолучитьОбласть("ПодвалУд");
//Заполнение параметров и вывод областей в табличный документ
//шапка
ОбластьШапка.Параметры.Организация = Отчет.Организация;
ОбластьШапка.Параметры.Поликлиника = Отчет.Поликлиника;
ОбластьШапка.Параметры.Сотрудник = Отчет.Сотрудник;
ОбластьШапка.Параметры.ПериодДатаНачала = Формат(Отчет.Период.ДатаНачала,"ДФ=dd.MM.yyyy");
ОбластьШапка.Параметры.ПериодДатаКонца = Формат(Отчет.Период.ДатаОкончания,"ДФ=dd.MM.yyyy");
ТабДок.Вывести(ОбластьШапка);
//шапка таблицы Нач
СальдоНачало = 0;
Если Отчет.Организация.Пустая() Тогда
ОргВыбор = "";
Иначе
ОргВыбор = " И Организация = &Организация";
КонецЕсли;
Если Отчет.Поликлиника.Пустая() Тогда
ПоликВыбор = "";
Иначе
ПоликВыбор = " И Поликлиника = &Поликлиника";
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НачисленнаяЗПОстатки.СуммаЗПОстаток КАК СуммаЗПОстаток,
| НачислениеЗПСотрудника.НачисленияЗП.(
| СтоимостьН КАК СуммаДохода,
| КоличествоН КАК ПроцентДохода
| ) КАК НачисленияЗП
|ИЗ
| РегистрНакопления.НачисленнаяЗП.Остатки(&Дата1, Сотрудник = &Сотрудник"+ОргВыбор+ПоликВыбор+") КАК НачисленнаяЗПОстатки,
| Документ.НачислениеЗПСотрудника КАК НачислениеЗПСотрудника";
//| И Организация = &Организация
//| И Поликлиника = &Поликлиника) КАК НачисленнаяЗПОстатки"
Запрос.УстановитьПараметр("Дата1",Отчет.Период.ДатаНачала);
Запрос.УстановитьПараметр("Организация", Отчет.Организация);
Запрос.УстановитьПараметр("Поликлиника", Отчет.Поликлиника);
Запрос.УстановитьПараметр("Сотрудник", Отчет.Сотрудник);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
СальдоНачало = ВыборкаДетальныеЗаписи.СуммаЗПОстаток;
ОбластьШапкаТаблицыНач.Параметры.СуммаДохода = ВыборкаДетальныеЗаписи.СуммаДохода;
ОбластьШапкаТаблицыНач.Параметры.ПроцентДохода = ВыборкаДетальныеЗаписи.ПроцентДохода;
КонецЦикла;
Если СальдоНачало = NULL тогда
СальдоНачало = 0
КонецЕсли;
ОбластьШапкаТаблицыНач.Параметры.СальдоНачало = СальдоНачало;
ТабДок.Вывести(ОбластьШапкаТаблицыНач);
//Строка таблицы Начисления
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НачисленнаяЗПОборотыОбороты.Отделение КАК Отделение,
| НачисленнаяЗПОборотыОбороты.Должность КАК Должность,
| НачисленнаяЗПОборотыОбороты.СуммаЗПОборот КАК СуммаЗПОборот,
| НачисленнаяЗПОборотыОбороты.ВидРасчета КАК ВидРасчета,
| НачисленнаяЗПОборотыОбороты.ПериодМес КАК ПериодМес
|ИЗ
| РегистрНакопления.НачисленнаяЗПОбороты.Обороты(
| &Дата1,
| &Дата2,
| ,
| Сотрудник = &Сотрудник "+ОргВыбор+ПоликВыбор+") КАК НачисленнаяЗПОборотыОбороты
|ГДЕ
| НачисленнаяЗПОборотыОбороты.СуммаЗПОборот >= 0
|
|УПОРЯДОЧИТЬ ПО
| ВидРасчета,
| ПериодМес,
| Отделение,
| Должность,
| СуммаЗПОборот";
Запрос.УстановитьПараметр("Сотрудник", Отчет.Сотрудник);
Запрос.УстановитьПараметр("Организация", Отчет.Организация);
Запрос.УстановитьПараметр("Поликлиника", Отчет.Поликлиника);
Запрос.УстановитьПараметр("Дата1", Отчет.Период.ДатаНачала);
Запрос.УстановитьПараметр("Дата2", Отчет.Период.ДатаОкончания);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
// Обработка результатов запроса
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
//ОбластьСтрокаТаблицыНач.Параметры.Отделение = ""+ВыборкаДетальныеЗаписи.ВидРасчета+" ("+ВыборкаДетальныеЗаписи.Отделение+", "+ВыборкаДетальныеЗаписи.Должность+")";
ОбластьСтрокаТаблицыНач.Параметры.Начисление = ВыборкаДетальныеЗаписи.ВидРасчета;
ОбластьСтрокаТаблицыНач.Параметры.Отделение = ВыборкаДетальныеЗаписи.Отделение;
ОбластьСтрокаТаблицыНач.Параметры.Должность = ВыборкаДетальныеЗаписи.Должность;
ОбластьСтрокаТаблицыНач.Параметры.СуммаНачисления = ВыборкаДетальныеЗаписи.СуммаЗПОборот;
ТабДок.Вывести(ОбластьСтрокаТаблицыНач);
КонецЦикла;
//подвал нач
// Запрос для суммы НачисленияЗП.СуммаН
СуммаНачисленияЗП = 0;
СальдоКонецН = 0;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СУММА(ЕСТЬNULL(НачисленнаяЗПОбороты.СуммаЗППриход, 0)) КАК СуммаНачисленияЗП
|ИЗ
| РегистрНакопления.НачисленнаяЗП.Обороты(
| &Дата1,
| &Дата2,
| ,
| Сотрудник = &Сотрудник "+ОргВыбор+ПоликВыбор+" ) КАК НачисленнаяЗПОбороты";
Запрос.УстановитьПараметр("Сотрудник", Отчет.Сотрудник);
Запрос.УстановитьПараметр("Организация", Отчет.Организация);
Запрос.УстановитьПараметр("Поликлиника", Отчет.Поликлиника);
Запрос.УстановитьПараметр("Дата1", Отчет.Период.ДатаНачала);
Запрос.УстановитьПараметр("Дата2", Отчет.Период.ДатаОкончания);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
СуммаНачисленияЗП = ВыборкаДетальныеЗаписи.СуммаНачисленияЗП;
КонецЕсли;
Если СуммаНачисленияЗП = NULL тогда
СуммаНачисленияЗП = 0
КонецЕсли;
// Расчет СальдоКонецН
СальдоКонецН = СуммаНачисленияЗП;
// Вывод результата
ОбластьПодвалНач.Параметры.СальдоКонецН = СальдоКонецН;
ТабДок.Вывести(ОбластьПодвалНач);
//шапка таблицы Уд
ТабДок.Вывести(ОбластьШапкаТаблицыУд);
//Строка таблицы Уд
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВыплатыОборотыОбороты.Сотрудник КАК Сотрудник,
| ВыплатыОборотыОбороты.Организация КАК Организация,
| ВыплатыОборотыОбороты.Поликлиника КАК Поликлиника,
| ВыплатыОборотыОбороты.Выплата КАК Выплата,
| ВыплатыОборотыОбороты.СуммаЗПОборот КАК СуммаЗПОборот,
| NULL КАК Должность,
| NULL КАК Отделение
|ИЗ
| РегистрНакопления.ВыплатыОбороты.Обороты(
| &Дата1,
| &Дата2,
| ,
| Сотрудник = &Сотрудник "+ОргВыбор+ПоликВыбор+") КАК ВыплатыОборотыОбороты
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НачисленнаяЗПОборотыОбороты.Сотрудник,
| НачисленнаяЗПОборотыОбороты.Организация,
| НачисленнаяЗПОборотыОбороты.Поликлиника,
| НачисленнаяЗПОборотыОбороты.ВидРасчета,
|ВЫБОР
| КОГДА НачисленнаяЗПОборотыОбороты.СуммаЗПОборот < 0
| ТОГДА -1 * НачисленнаяЗПОборотыОбороты.СуммаЗПОборот
| ИНАЧЕ НачисленнаяЗПОборотыОбороты.СуммаЗПОборот
| КОНЕЦ КАК СуммаЗПОборот,
| НачисленнаяЗПОборотыОбороты.Должность,
| НачисленнаяЗПОборотыОбороты.Отделение
|ИЗ
| РегистрНакопления.НачисленнаяЗПОбороты.Обороты(
| &Дата1,
| &Дата2,
| ,
| Сотрудник = &Сотрудник "+ОргВыбор+ПоликВыбор+") КАК НачисленнаяЗПОборотыОбороты
|ГДЕ
| НачисленнаяЗПОборотыОбороты.СуммаЗПОборот <= 0";
Запрос.УстановитьПараметр("Сотрудник", Отчет.Сотрудник);
Запрос.УстановитьПараметр("Организация", Отчет.Организация);
Запрос.УстановитьПараметр("Поликлиника", Отчет.Поликлиника);
Запрос.УстановитьПараметр("Дата1", Отчет.Период.ДатаНачала);
Запрос.УстановитьПараметр("Дата2", Отчет.Период.ДатаОкончания);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьСтрокаТаблицыУд.Параметры.ДолжностьУ = ВыборкаДетальныеЗаписи.Должность;
ОбластьСтрокаТаблицыУд.Параметры.ОтделениеУ = ВыборкаДетальныеЗаписи.Отделение;
ОбластьСтрокаТаблицыУд.Параметры.ВидОперации = ВыборкаДетальныеЗаписи.Выплата;
ОбластьСтрокаТаблицыУд.Параметры.СуммаУдержания = ВыборкаДетальныеЗаписи.СуммаЗПОборот;
ТабДок.Вывести(ОбластьСтрокаТаблицыУд);
КонецЦикла;
//подвал уд
// Запрос для суммы удержаний
СуммаУдержаний = 0;
ЗапросСуммаУдержаний = Новый Запрос;
ЗапросСуммаУдержаний.Текст =
"ВЫБРАТЬ
| НачисленнаяЗПОбороты.СуммаЗПРасход КАК СуммаУ
|ИЗ
| РегистрНакопления.НачисленнаяЗП.Обороты(
| &Дата1,
| &Дата2,
| ,
| Сотрудник = &Сотрудник "+ОргВыбор+ПоликВыбор+") КАК НачисленнаяЗПОбороты";
ЗапросСуммаУдержаний.УстановитьПараметр("Сотрудник", Отчет.Сотрудник);
ЗапросСуммаУдержаний.УстановитьПараметр("Организация", Отчет.Организация);
ЗапросСуммаУдержаний.УстановитьПараметр("Поликлиника", Отчет.Поликлиника);
ЗапросСуммаУдержаний.УстановитьПараметр("Дата1", Отчет.Период.ДатаНачала);
ЗапросСуммаУдержаний.УстановитьПараметр("Дата2", Отчет.Период.ДатаОкончания);
РезультатЗапросаСуммаУдержаний = ЗапросСуммаУдержаний.Выполнить();
ВыборкаСуммаУдержаний = РезультатЗапросаСуммаУдержаний.Выбрать();
Если ВыборкаСуммаУдержаний.Следующий() Тогда
СуммаУдержаний = ВыборкаСуммаУдержаний.СуммаУ;
КонецЕсли;
Если СуммаУдержаний = NULL тогда
СуммаУдержаний = 0
КонецЕсли;
// Подвал уд
СальдоКонецУ = СуммаУдержаний;
СальдоКонец = СальдоНачало + СальдоКонецН - СальдоКонецУ;
ОбластьПодвалУд.Параметры.СальдоКонец = СальдоКонец;
ОбластьПодвалУд.Параметры.СальдоКонецУ = СальдоКонецУ;
ТабДок.Вывести(ОбластьПодвалУд);
КонецПроцедуры
&НаКлиенте
Процедура Сформировать(Команда, СсылкаНаОбъект)
ТабДок = Новый ТабличныйДокумент;
СформироватьНаСервере(ТабДок, СсылкаНаОбъект);
ТабДок.Показать("Печать на выбор");
КонецПроцедуры
ПоказатьПишет ошибку якобы объект не обнаружен, не могу разобраться:
Поле объекта не обнаружено (СуммаДохода)
{Отчет.НачислениеЗПНаВыбор1.Форма.ФормаОтчета.Форма(76)}: ОбластьШапкаТаблицыНач.Параметры.СуммаДохода = ВыборкаДетальныеЗаписи.СуммаДохода;
{Отчет.НачислениеЗПНаВыбор1.Форма.ФормаОтчета.Форма(299)}: СформироватьНаСервере(ТабДок, СсылкаНаОбъект);
{Отчет.НачислениеЗПНаВыбор1.Форма.ФормаОтчета.Форма(76)}: ОбластьШапкаТаблицыНач.Параметры.СуммаДохода = ВыборкаДетальныеЗаписи.СуммаДохода;
{Отчет.НачислениеЗПНаВыбор1.Форма.ФормаОтчета.Форма(299)}: СформироватьНаСервере(ТабДок, СсылкаНаОбъект);
Прикрепленные файлы:
По теме из базы знаний
- Универсальный передаточный документ для Управление торговлей релиза 10.3.21.1 (бета для УТ 10.3.30.2) - печатная форма 2 в 1 альтернатива счету фактуре и расходной накладной.
- QR - кодирование документов БЕЗ изменения печатных форм, с произв. алгоритмами создания QR -кода и обработки (в т.ч прикрепление сканов к документам) для УТ 11 (все), ERP 2, КА 2, Розница 2, УНФ 1.6/3.0, БП 3, ЗУП 3
- Универсальная внешняя печатная форма "Товарный чек" Со скидками / Без скидок для 1С "Штрих-М"
- Массовая рассылка печатных форм любых документов по электронной почте, в Telegram, в каталог или том
- Автоматическое сохранение печатных форм подписанных входящих документов 1С:ЭДО для 1С:Бухгалтерии 3.0 с отметками ЭП при подписании получателем
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот