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

Как обратиться к счету (результат проводки) в запросе? БП2.0

Автор EkaterinaM, 19 сен 2014, 17:48

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

EkaterinaM

Добрый день!
Доделываю работу после ушедшего программиста. И не получается в запросе правильно обратиться к дебетовому счету в документе.
1С8.2 Бухгалтерия нетиповая с нестандартным планом счетов. Внешняя обработка РегламентированныйОтчетНДС. Формирование раздела 7.

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

Ключевое условие, которое здесь не срабатывает, это:
                  |      КОГДА НДСЗаписиКнигиПродажОбороты.СчетФактура.СчетДт = &сч6223
                  |         ТОГДА ""1010266""
                  |      ИНАЧЕ ""1010812""

Отчет заполняется и не ругается, но всегда случается событие, которое "ИНАЧЕ". Знаю, что есть документы с Дебетовым счетом 62.23. Получается, что выводится не то, что требуется. Причем в запросе внутри счета-фактуры мне нужно вытащить СчетДТ из документа-основания "РеализацияУслугТоваров". Что я делаю не так? И как правильно обратиться в запросе к Дебетовому счету?

roman_se.kz

А нет возможности обратиться не к НДСЗаписиКнигиПродажОбороты.СчетФактура.СчетДт, а к НДСЗаписиКнигиПродажОбороты.СчетДт?

TreeDogNight

Напишите ещё текст где устанавливаете параметры

EkaterinaM

Цитата: roman_se.kz от 19 сен 2014, 19:20НДСЗаписиКнигиПродажОбороты.СчетДт
Спасибо, но "ошибка, поле не найдено".

Цитата: TreeDogNight от 20 сен 2014, 09:59Напишите ещё текст где устанавливаете параметры

Давайте лучше весь исходник процедуры опубликую :-)
Процедура ЗаполнитьАвтоРаздел7()
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Организация", мСписокОрганизаций);
   Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(мДатаНачалаПериодаОтчета));
   Запрос.УстановитьПараметр("КонецПериода",  КонецДня(мДатаКонцаПериодаОтчета));
   Запрос.УстановитьПараметр("СУчетомКорректировок", Не ВидДокумента = 0);
   Запрос.УстановитьПараметр("КонецПериодаУчитываемыхКорректировок", ?(НЕ ЗначениеЗаполнено(ДатаПодписи), ДатаПодписи, КонецДня(ДатаПодписи)));
   
   // События   
   СобытиеРеализация = Новый СписокЗначений;
   СобытиеРеализация.Добавить(Перечисления.СобытияПоНДСПродажи.Реализация);
   СобытиеРеализация.Добавить(Перечисления.СобытияПоНДСПродажи.Оплата);
   СобытиеРеализация.Добавить(Перечисления.СобытияПоНДСПродажи.НДССкорректирован);
   Запрос.УстановитьПараметр("СобытиеРеализация", СобытиеРеализация);
   
   СобытиеПолученАванс = Новый СписокЗначений;
   СобытиеПолученАванс.Добавить(Перечисления.СобытияПоНДСПродажи.ПолученАванс);
   Запрос.УстановитьПараметр("СобытиеПолученАванс", СобытиеПолученАванс);
   
   СобытиеНачисленНДС = Новый СписокЗначений;
   СобытиеНачисленНДС.Добавить(Перечисления.СобытияПоНДСПродажи.НДСНачисленКУплате);
   СобытиеНачисленНДС.Добавить(Перечисления.СобытияПоНДСПродажи.НДССкорректирован);
   Запрос.УстановитьПараметр("СобытиеНачисленНДС", СобытиеНачисленНДС);
   
   СобытиеВосстановлениеНДС = Новый СписокЗначений;
   СобытиеВосстановлениеНДС.Добавить(Перечисления.СобытияПоНДСПродажи.ВосстановлениеНДС);
   Запрос.УстановитьПараметр("СобытиеВосстановлениеНДС", СобытиеВосстановлениеНДС);
   
   СобытиеПредъявленКВычетуНДС = Новый СписокЗначений;
   СобытиеПредъявленКВычетуНДС.Добавить(Перечисления.СобытияПоНДСПокупки.ПредъявленНДСКВычету);
   СобытиеПредъявленКВычетуНДС.Добавить(Перечисления.СобытияПоНДСПокупки.ВосстановленНДС);
   Запрос.УстановитьПараметр("СобытиеПредъявленКВычетуНДС", СобытиеПредъявленКВычетуНДС);
   
   // Виды ценностей
   ВидыЦенностейНеРеализация = Новый СписокЗначений;
   ВидыЦенностейНеРеализация.Добавить(Перечисления.ВидыЦенностей.СМРСобственнымиСилами);
   ВидыЦенностейНеРеализация.Добавить(Перечисления.ВидыЦенностей.АвансыПолученные);
   ВидыЦенностейНеРеализация.Добавить(Перечисления.ВидыЦенностей.НалоговыйАгентАренда);
   ВидыЦенностейНеРеализация.Добавить(Перечисления.ВидыЦенностей.НалоговыйАгентРеализацияИмущества);
   ВидыЦенностейНеРеализация.Добавить(Перечисления.ВидыЦенностей.НалоговыйАгентИностранцы);
   ВидыЦенностейНеРеализация.Добавить(Перечисления.ВидыЦенностей.НалоговыйАгентКомитент);
   
   ВидыЦенностейСтр010_040 = Новый СписокЗначений;
   Для Каждого ВидЦенности Из Перечисления.ВидыЦенностей Цикл
      Если ВидыЦенностейНеРеализация.НайтиПоЗначению(ВидЦенности) = Неопределено Тогда
         ВидыЦенностейСтр010_040.Добавить(ВидЦенности);
      КонецЕсли;
   КонецЦикла;

   Запрос.УстановитьПараметр("ВидыЦенностейСтр010_040", ВидыЦенностейСтр010_040);
   
   ВидыЦенностейСтр060 = Новый СписокЗначений;
   ВидыЦенностейСтр060.Добавить(Перечисления.ВидыЦенностей.СМРСобственнымиСилами);
   Запрос.УстановитьПараметр("ВидыЦенностейСтр060", ВидыЦенностейСтр060);
   
   ВидыЦенностейСтр070 = Новый СписокЗначений;
   ВидыЦенностейСтр070.Добавить(Перечисления.ВидыЦенностей.АвансыПолученные);
   Запрос.УстановитьПараметр("ВидыЦенностейСтр070", ВидыЦенностейСтр070);
   
   ВидыЦенностейСтр080 =  Новый СписокЗначений;
   ВидыЦенностейСтр080.Добавить(Перечисления.ВидыЦенностей.СуммыСвязанныеСРасчетамиПоОплате);
   Запрос.УстановитьПараметр("ВидыЦенностейСтр080", ВидыЦенностейСтр080);
   
   ВидыЦенностейСтр110 =  Новый СписокЗначений;
   ВидыЦенностейСтр110.Добавить(Перечисления.ВидыЦенностей.АвансыВыданные);
   Запрос.УстановитьПараметр("ВидыЦенностейСтр110", ВидыЦенностейСтр110);
   
   ВидыЦенностейСтр140 =  Новый СписокЗначений;
   ВидыЦенностейСтр140.Добавить(Перечисления.ВидыЦенностей.СМРПодрядные);
   Запрос.УстановитьПараметр("ВидыЦенностейСтр140", ВидыЦенностейСтр140);
   
   ВидыЦенностейСтр150 =  Новый СписокЗначений;
   ВидыЦенностейСтр150.Добавить(Перечисления.ВидыЦенностей.АвансыВыданные);
   Запрос.УстановитьПараметр("ВидыЦенностейСтр150", ВидыЦенностейСтр150);
   
   ВидыЦенностейСтр160 =  Новый СписокЗначений;
   ВидыЦенностейСтр160.Добавить(Перечисления.ВидыЦенностей.СМРСобственнымиСилами);
   Запрос.УстановитьПараметр("ВидыЦенностейСтр160", ВидыЦенностейСтр160);
   
   ВидыЦенностейСтр180 =  Новый СписокЗначений;
   ВидыЦенностейСтр180.Добавить(Перечисления.ВидыЦенностей.ТаможенныеПлатежи);
   ВидыЦенностейСтр180.Добавить(Перечисления.ВидыЦенностей.ТаможенныеПлатежиОС);
   Запрос.УстановитьПараметр("ВидыЦенностейСтр180", ВидыЦенностейСтр180);
   
   ВидыЦенностейСтр200 =  Новый СписокЗначений;
   ВидыЦенностейСтр200.Добавить(Перечисления.ВидыЦенностей.АвансыПолученные);
   Запрос.УстановитьПараметр("ВидыЦенностейСтр200", ВидыЦенностейСтр200);
   
   ВидыЦенностейСтр210 =  Новый СписокЗначений;
   ВидыЦенностейСтр210.Добавить(Перечисления.ВидыЦенностей.НалоговыйАгентАренда);
   ВидыЦенностейСтр210.Добавить(Перечисления.ВидыЦенностей.НалоговыйАгентИностранцы);
   ВидыЦенностейСтр210.Добавить(Перечисления.ВидыЦенностей.НалоговыйАгентРеализацияИмущества);
   Запрос.УстановитьПараметр("ВидыЦенностейСтр210", ВидыЦенностейСтр210);
   
   ВидыЦенностейСтр130 = Новый СписокЗначений;
   Для Каждого ВидЦенности Из Перечисления.ВидыЦенностей Цикл
      Если ВидыЦенностейСтр150.НайтиПоЗначению(ВидЦенности) = Неопределено
         И ВидыЦенностейСтр160.НайтиПоЗначению(ВидЦенности) = Неопределено
         И ВидыЦенностейСтр180.НайтиПоЗначению(ВидЦенности) = Неопределено
         И ВидыЦенностейСтр200.НайтиПоЗначению(ВидЦенности) = Неопределено
         И ВидыЦенностейСтр210.НайтиПоЗначению(ВидЦенности) = Неопределено Тогда
         ВидыЦенностейСтр130.Добавить(ВидЦенности);
      КонецЕсли;
    КонецЦикла;                           

   Запрос.УстановитьПараметр("сч6223", ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("62.23"));

   // Ставки НДС
   Запрос.УстановитьПараметр("СтавкаБезНДС",     Перечисления.СтавкиНДС.БезНДС);
   
   Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
   Запрос.Текст = "ВЫБРАТЬ
                  |   ВЫБОР
                  |      КОГДА НДСЗаписиКнигиПродажОбороты.СчетФактура.СчетДт = &сч6223
                  |         ТОГДА ""1010266""
                  |      ИНАЧЕ ""1010812""
                  |   КОНЕЦ КАК П000700001001,
                  |   НДСЗаписиКнигиПродажОбороты.Событие,
                  |   НДСЗаписиКнигиПродажОбороты.СтавкаНДС,
                  |   НДСЗаписиКнигиПродажОбороты.ВидЦенности,
                  |   НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот,
                  |   НДСЗаписиКнигиПродажОбороты.НДСОборот
                  |ПОМЕСТИТЬ НДСЗаписиКнигиПродажОбороты
                  |ИЗ
                  |   РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(
                  |         &НачалоПериода,
                  |         &КонецПериода,
                  |         ,
                  |         Организация В (&Организация)
                  |            И НЕ ЗаписьДополнительногоЛиста) КАК НДСЗаписиКнигиПродажОбороты";
               
               
   Запрос.Выполнить();
   
   Запрос.Текст = "ВЫБРАТЬ
                  |   П000700001001,
                  |   СУММА(ВЫРАЗИТЬ(ВЫБОР
                  |            КОГДА НДСЗаписиКнигиПродажОбороты.Событие В (&СобытиеРеализация)
                  |                  И НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкаБезНДС)
                  |               ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
                  |         КОНЕЦ КАК ЧИСЛО(15, 2))) КАК П000700001002
                  |ИЗ
                  |   НДСЗаписиКнигиПродажОбороты КАК НДСЗаписиКнигиПродажОбороты
                  |
                  |СГРУППИРОВАТЬ ПО П000700001001
                  |
                   |";
   
   тз7 = Запрос.Выполнить().Выгрузить();
    й = 0;
    Для каждого стр Из тз7 Цикл
        й = й + 1;
        Для каждого Колонка Из тз7.Колонки Цикл
            Если Колонка.Имя = "П000700001002" Тогда
                Если ЗначениеЗаполнено(стр[Колонка.Имя] ) Тогда
                    Значение = Окр(стр[Колонка.Имя], 0, 1);
                КонецЕсли;
            Иначе   
                Значение = стр[Колонка.Имя];
            КонецЕсли;
          РегламентированнаяОтчетность.роУстановитьЗначениеПоказателя(ЭтаФорма, Колонка.Имя+"_"+й, Значение);
        КонецЦикла;        
    КонецЦикла;

TreeDogNight

Измените
ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("62.23")
на
ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.23")


EkaterinaM


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

Рейтинг@Mail.ru

Поиск