Версия для печати темы (https://pro1c.org.ua/index.php?s=75b11f2ba2e45bb9c942de1251e658b9&showtopic=67083)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Не работает выборка документов

Автор: 4andriy 23.09.22, 12:41

при выборке документов така ошибка:

Цитата
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{: СуммаБезНДС = Документ.РасходнаяНакладная. <<?>> СуммаБезНДС;
Запрос[7] : Неверно заданный путь 'СуммаБезНДС'
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{: СуммаСНДС = Документ.РасходнаяНакладная. <<?>> СуммаСНДС;
Запрос[8] : Неверно заданный путь 'СуммаСНДС'
СУММАБЕЗНДС<<?>>
Переменная не определена (СУММАБЕЗНДС)
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{: Функция СуммаБезНДС_ = Сумма(СуммаБезНДС <<?>> );
Запрос[9] : Ошибка в выражении 'СуммаБезНДС'
СУММАСНДС<<?>>
Переменная не определена (СУММАСНДС)
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{: Функция СуммаСНДС_ = Сумма(СуммаСНДС <<?>> );
Запрос[10] : Ошибка в выражении 'СуммаСНДС'
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{: Условие(Фирма в ВыбФирма <<?>> );
Запрос[14] : Ошибка в условии
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{: Условие(Контрагент в список <<?>> );
Запрос[15] : Ошибка в условии

Автор: denis84 23.09.22, 13:32

4andriy @ Сегодня, 13:41 * ,
Это сами ошибки! Запрос сам покажите.

Автор: 4andriy 23.09.22, 13:52

denis84 @ Сегодня, 14:32 * ,

//======================================================================
Процедура ЗаповнитиТаблицю()
    
    СтворитиСтруктуруТаблиці();
    
    ВидДок = спВидиДокументів.ПолучитьЗначение(спВидиДокументів.ТекущаяСтрока());
    
    ТекстЗапроса = "
    |Период с НачДата по КонДата;
    |ДатаДок = Документ.*.ДатаДок;
    |НомерДок = Документ.*.НомерДок;
    |Фирма = Документ.*.Фирма;
    |Контрагент = Документ.*.Контрагент;";
    Если ВидДок = "Приложение2" Тогда
        ТекстЗапроса = ТекстЗапроса + "
        |ИзмСуммыБезНДС = Документ.Приложение2.ИзмСуммыБезНДС;
        |ИзмНДС = Документ.Приложение2.ИзмНДС;
        |Функция СуммаБезНДС_ = Сумма(ИзмСуммыБезНДС);
        |Функция НДС_ = Сумма(ИзмНДС);
        |Функция СуммаСНДС_ = Сумма(ИзмСуммыБезНДС+ИзмНДС);";
    Иначе
        ТекстЗапроса = ТекстЗапроса + "
        |СуммаБезНДС = Документ.*.СуммаБезНДС;
        |СуммаСНДС = Документ.*.СуммаСНДС;
        |Функция СуммаБезНДС_ = Сумма(СуммаБезНДС);
        |Функция СуммаСНДС_ = Сумма(СуммаСНДС);";
        Если (ВидДок = "Т_РасходнаяНакладная") или (ИдентификаторКонфигурации = "UOUTK") Тогда
            ТекстЗапроса = ТекстЗапроса + "
            |Функция НДС_ = Сумма(СуммаСНДС-СуммаБезНДС);";
        Иначе
            ТекстЗапроса = ТекстЗапроса + "
            |НДС = Документ.*.НДС;
            |Функция НДС_ = Сумма(НДС);";
        КонецЕсли;
    КонецЕсли;
    
    ТекстЗапроса = ТекстЗапроса + "
    |Группировка Документ;
    |Условие(Фирма в ВыбФирма);
    |Условие(Контрагент в список);";    
    
    Если НеПоказуватиЗареєстровані = 1 Тогда
        Если (ВидДок = "НалоговаяНакладная") или (ВидДок = "Приложение2") Тогда
            ТекстЗапроса = ТекстЗапроса + "
            |ЕРНН = Документ.*.ЕРНН;
            |Условие(ЕРНН = 0);";
        КонецЕсли;
    КонецЕсли;
            
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "*", ВидДок);
    Запрос = СоздатьОбъект("Запрос");
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    
    табл.УдалитьСтроки();
    
    НомерСтроки = 0;
    Пока Запрос.Группировка(1) = 1 Цикл
        НомерСтроки = НомерСтроки + 1;
        табл.НоваяСтрока();
        табл.ДатаДокумента = Запрос.ДатаДок;
        табл.НомерДокумента = Запрос.НомерДок;
        табл.Контрагент = Запрос.Контрагент;
        табл.КонтрагентИНН = табл.Контрагент.ИНН;
        табл.СуммаБезНДС = Запрос.СуммаБезНДС_;
        табл.НДС = Запрос.НДС_;
        табл.СуммаСНДС = Запрос.СуммаСНДС_;
        табл.Документ = Запрос.Документ;
        Если Метаданные.Документ(табл.Документ.Вид()).РеквизитШапки("ЕРНН").Выбран() = 1 Тогда
            табл.ЕРНН = ?(табл.Документ.ЕРНН = 1,2,1);
            табл.Пометка = ?(табл.ЕРНН = 2,1,2);
        Иначе
            табл.Пометка = 2;
        КонецЕсли;
        табл.ДокИД = РозрахуватиДокИД(Запрос.Документ);
        табл.Результат = "Документ з бази 1С";
        
        Для і = 1 По спРекв.РазмерСписка() Цикл
            Если спРекв.Пометка(і) = 0 Тогда
                Продолжить;
            КонецЕсли;
            табл.УстановитьЗначение(НомерСтроки, спРекв.ПолучитьЗначение(і), табл.Документ.ПолучитьАтрибут(спРекв.ПолучитьЗначение(і)));
        КонецЦикла;
        
    КонецЦикла;
    
    ЗаповнитиСтатусиДокументів(1);
    
    Если Форма.Закладки.ТекущаяСтрока() = 1 Тогда
        Форма.Закладки.ТекущаяСтрока(2);
        Форма.ИспользоватьСлой("Загальний, Таблиця", 2);
    КонецЕсли;
    
КонецПроцедуры

Автор: denis84 23.09.22, 15:44

4andriy @ Сегодня, 14:52 * ,
исходя из ошибок, то получается. Что у вас в расходной накладной нет реквизита "СуммаБезНДС" и далее по тексту.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua