Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 13:37

Запрос

Автор deringpavel, 12 мар 2013, 08:49

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

deringpavel

Добрый день. Я новичок в 1С. Сейчас пишу запрос и возникло несколько вопросов.

Ниже приведен мой отчет и расчетный листок по сотруднику. В графе отчета Начислено нужно, чтобы отображалась сумма из колонки Всего начислено расчетного листка.

Текст запроса такой:

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


Где может быть ошибка?

MuI_I_Ika

У вас получается сумма без НДФЛ.

Если брать все полностью как в расчетном листке, то нужно обращаться к регистрам расчета.

Если же надо по быстрому, то соединитесь с регистром накопления по НДФЛ, например, НДФЛРасчетыСБюджетом

deringpavel

ВЫБРАТЬ
                   |   ЗарплатаЗаМесяцОрганизаций.ПериодВзаиморасчетов КАК ПериодВзаиморасчетов,
                   |   СУММА(ЗарплатаЗаМесяцОрганизаций.СуммаВзаиморасчетов) КАК СуммаВзаиморасчетов,
                   |   НДФЛРасчетыСБюджетом.Налог
                   |ИЗ
                   |   РегистрНакопления.ЗарплатаЗаМесяцОрганизаций КАК ЗарплатаЗаМесяцОрганизаций,
                   |   РегистрНакопления.НДФЛРасчетыСБюджетом КАК НДФЛРасчетыСБюджетом
                   |ГДЕ
                   |   ЗарплатаЗаМесяцОрганизаций.Физлицо = &Физлицо
                   |   И ЗарплатаЗаМесяцОрганизаций.ПериодВзаиморасчетов МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, МЕСЯЦ) И НАЧАЛОПЕРИОДА(&ДатаОкончания, МЕСЯЦ)
                   |   И ЗарплатаЗаМесяцОрганизаций.Регистратор ССЫЛКА Документ.НачислениеЗарплатыРаботникамОрганизаций
                   |
                   |СГРУППИРОВАТЬ ПО
                   |   ЗарплатаЗаМесяцОрганизаций.ПериодВзаиморасчетов,
                   |   НДФЛРасчетыСБюджетом.Налог
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |   ПериодВзаиморасчетов




При попытке обращения к реестру отчет выводит миллионные суммы.

Где тут может быть ошибка?

Msoul


ВЫБРАТЬ
ЗарплатаЗаМесяцОрганизацийОбороты.ПериодВзаиморасчетов КАК ПериодВзаиморасчетов,
ЗарплатаЗаМесяцОрганизацийОбороты.СуммаВзаиморасчетовПриход КАК СуммаВзаиморасчетов,
НДФЛРасчетыСБюджетомОбороты.НалогОборот
ИЗ
РегистрНакопления.ЗарплатаЗаМесяцОрганизаций.Обороты(&ДатаНачала, &ДатаОкончания, , Физлицо = &Физлицо) КАК ЗарплатаЗаМесяцОрганизацийОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НДФЛРасчетыСБюджетом.Обороты(&ДатаНачала, &ДатаОкончания, , Физлицо = &Физлицо) КАК НДФЛРасчетыСБюджетомОбороты
ПО ЗарплатаЗаМесяцОрганизацийОбороты.Физлицо = НДФЛРасчетыСБюджетомОбороты.ФизЛицо
И ЗарплатаЗаМесяцОрганизацийОбороты.Организация = НДФЛРасчетыСБюджетомОбороты.Организация

УПОРЯДОЧИТЬ ПО
ПериодВзаиморасчетов

deringpavel

Запрос отправил на исполнение, сумма все равно отражается некорректно.
Добавлено: 13 мар 2013, 13:13


Имеется два регистра накопления, ЗарплатаЗаМесяцОрганизаций и НДФЛРасчетыСБюджетом.

Нужно к начисленной зарплате присоединить НДФЛ.

Msoul

Ну а в чем трудность сложить две колонки таблиц

ЗарплатаЗаМесяцОрганизацийОбороты.СуммаВзаиморасчетовПриход КАК СуммаВзаиморасчетов +
    НДФЛРасчетыСБюджетомОбороты.НалогОборот КАК Сумма

deringpavel

Я все понимаю, нубские вопросы. Но я такой и есть.
Добавлено: 13 мар 2013, 15:35


После выполнения запроса программа пишет, что тип не может быть преобразован к типу Число.

Msoul

Ошибка прям при выполнении запроса?
Или при обработке результата?
Хотелось бы увидеть код "После выполнения запроса"

deringpavel


Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               | ЗарплатаЗаМесяцОрганизацийОбороты.ПериодВзаиморасчетов КАК ПериодВзаиморасчетов,
               | ЗарплатаЗаМесяцОрганизацийОбороты.СуммаВзаиморасчетовПриход КАК СуммаВзаиморасчетов,
               | НДФЛРасчетыСБюджетомОбороты.НалогОборот,
               | ЗарплатаЗаМесяцОрганизацийОбороты.СуммаВзаиморасчетовПриход + НДФЛРасчетыСБюджетомОбороты.НалогОборот КАК Поле1
               |ИЗ
               | РегистрНакопления.ЗарплатаЗаМесяцОрганизаций.Обороты МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, МЕСЯЦ) И НАЧАЛОПЕРИОДА(&ДатаОкончания, МЕСЯЦ)
   | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НДФЛРасчетыСБюджетом.ОборотыМЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, МЕСЯЦ) И НАЧАЛОПЕРИОДА(&ДатаОкончания, МЕСЯЦ)
               | ПО ЗарплатаЗаМесяцОрганизацийОбороты.Физлицо = НДФЛРасчетыСБюджетомОбороты.ФизЛицо
               | И ЗарплатаЗаМесяцОрганизацийОбороты.Организация = НДФЛРасчетыСБюджетомОбороты.Организация
               |
               |УПОРЯДОЧИТЬ ПО
               | ПериодВзаиморасчетов";


ДатаНачала = ЭлементыФормы.НачПериод.Значение;           
ДатаОкончания = ЭлементыФормы.КонПериод.Значение;
Запрос.УстановитьПараметр("Физлицо", Сотрудник.Физлицо);
//Запрос.УстановитьПараметр("ПериодВзаиморасчетов", ЭлементыФормы.Период.Данные);
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);


    Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

Номер = 0;

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

ТабДок.Показать();

// Итого


Область = Макет.ПолучитьОбласть("Итого");
Результат = Запрос.Выполнить();
ВыборкаСумма = Результат.Выбрать();

СуммаИтог = 0;

        Пока ВыборкаСумма.Следующий() Цикл
СуммаИтог = СуммаИтог + ВыборкаСумма.Поле1;
КонецЦикла;

Область.Параметры.Сумма = СуммаИтог;
Табдок.Вывести(Область);

Msoul

На какой строке ошибка выскакивает?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск