7.7 Загрузка КБК из Excel

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Timoha, 13 апр 2010.

  1. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Код:
    Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Без итогов;
    |ТекущийЭлемент = Справочник.Спр1.ТекущийЭлемент;
    |КБК= Справочник.Спр1.КБК.КБК;
    |Группировка КБК без групп;
    |Группировка ТекущийЭлемент;
    |"//}}ЗАПРОС;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    
    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка() = 1 Цикл
    // Заполнение полей Сформировать
    Таб.ВывестиСекцию("Сформировать");
    КонецЦикла;
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
    КонецПроцедуры
    
    
    
    В отчете достаточно просто добавить колонки какие надо
    Запрос.ТекущийЭлемент.Налогоплательщик, Запрос.ТекущийЭлемент.Сумма, Запрос.ТекущийЭлемент.Дата
  2. TopicStarter Overlay
    Timoha
    Offline

    Timoha

    Регистрация:
    13 апр 2010
    Сообщения:
    43
    Симпатии:
    0
    Баллы:
    1
    Благодарю
  3. TopicStarter Overlay
    Timoha
    Offline

    Timoha

    Регистрация:
    13 апр 2010
    Сообщения:
    43
    Симпатии:
    0
    Баллы:
    1
    Видно вы неправильно поняли, необходима выбор из 2 справочника. Делал вот так, но отчет выдаеться пустым, что нужно исправить?

    Код:
    Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ОбрабатыватьДокументы все;
    |Обрабатывать НеПомеченныеНаУдаление; 
    |СПР1 = Справочник.СПР1.ТекущийЭлемент;
    |НаименованиеПлательщика = Справочник.СПР1.НаименованиеПлательщика;
    |ИНН = Справочник.СПР1.ИНН;
    |КПП = Справочник.СПР1.КПП; 
    |ДатаДокум = Справочник.СПР1.ДатаДокум;
    |КБК = Справочник.СПР1.КБК;  
    |Функция СуммаЗачислено = Сумма(СПР1.СуммаЗачислено);
    |Функция СуммаСписано = Сумма(СПР1.СуммаСписано);
    |Группировка КБК;
    |Условие(КБК = Выз111); 
    |"//}}ЗАПРОС
    
    ;
    // Если ошибка в запросе, то выход из процедуры
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    
    // Подготовка к заполнению выходных форм данными запроса
    
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Если (Запрос.ДатаДокум>=ВыбНачПериода)и(Запрос.ДатаДокум<=ВыбКонПериода) тогда
    Пока Запрос.Группировка(1) = 1 Цикл 
    
    
    // Заполнение полей НаименованиеПлательщика
    
    Таб.ВывестиСекцию("НаименованиеПлательщика");
    
    КонецЦикла;  
    КонецЕсли;
    // Заполнение полей "Итого"
    
    Таб.ВывестиСекцию("Итого");
    // Вывод заполненной формы
    
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
    КонецПроцедуры
    
    

    ПОЯСНЕНИЕ что такое Выз111
    Код:
    Процедура Уст()
    Выз111 = Выз112.КБК; 
    КонецПроцедуры
    
    
    Выз112 это выбор справочника СПР2
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Пустой потому что не срабатывает условие

    Выз111 Я так понимаю строка (реквизит спр2)
    Что есть КБК в спр1 - это строка или элемент справочника спр2
    Если Строка, КБК в спр1 и спр2 должны быть одинаковой длины
    Иначе вставьте в условие
    Код:
    |Условие(СокрЛП(КБК) = СокрЛП(Выз111)); 
    
    
    Если КБК в спр1 это элемент справочника спр1 - условие не выполнится НИКОГДА, т.к. разные типы данных. В этом случае надо так:
    Код:
    |Условие(СокрЛП(КБК.КБК) = СокрЛП(Выз111)); 
    //КБК.КБК вот так это уже строка....
    
    
  5. TopicStarter Overlay
    Timoha
    Offline

    Timoha

    Регистрация:
    13 апр 2010
    Сообщения:
    43
    Симпатии:
    0
    Баллы:
    1
    Начало срабатывать условие, но выдает только 1 значение. Хотя имееться допустим 10 данных кбк
  6. TopicStarter Overlay
    Timoha
    Offline

    Timoha

    Регистрация:
    13 апр 2010
    Сообщения:
    43
    Симпатии:
    0
    Баллы:
    1
    Код который выложил работает, но выдает почему то только 1 кбк, что нужно сделать чтоб выдавались все кбк соответствующие условию
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    У тебя условие "=". Оно тебе и выдается!

    Условие (<?>);
    Синтаксис:
    Условие(<ЛогическоеВыражение>);
    Назначение:
    Назначить условие включения информации в запрос.
    Параметры:
    <ЛогическоеВыражение> - логическое выражение языка.
    Замечание:
    В логическом выражении могут участвовать внутренние и внешние переменные.
    Кроме обычных логических операторов (>, <, =, >=, <=, <>, И, ИЛИ, НЕ) в операторе ''Условие ...'' языка запросов можно использовать дополнительный оператор:
    логический оператор принадлежности.
    Синтаксис:
    В
    Англоязычный синоним:
    In
    Описание:
    Оператор языка запросов ''Условие (А в Б);'' говорит о том, что условие истинно, когда значение А является подмножеством значения Б. Следует особо отметить, что если значение Б пустое (объект не выбран), то условие является истинным, в отличие от оператора ''='' (равно). Если на принадлежность проверяется значение типа элемент справочника, то проверка выполняется с учетом его возможного вхождения в группу справочника. Аналогично, проверка на принадлежность субсчета осуществляется с учетом его возможного вхождения в счет-группу.
    В качестве включающего подмножества логического оператора принадлежности (второй параметр после слова ''в'') может выступать как простое значение, так и список значений. В этом случае проверка выполняется с учетом вышеотмеченных особенностей для каждой строки списка значений.

    ИСПОЛЬЗУЙ ПРАВИЛЬНО!
    ...Проверяй, если условие не задано, не задавай его - выдаст все что есть
  8. TopicStarter Overlay
    Timoha
    Offline

    Timoha

    Регистрация:
    13 апр 2010
    Сообщения:
    43
    Симпатии:
    0
    Баллы:
    1
    Все разобрался, условие было верное, но все равно спс! ошибка была в группировке
Похожие темы
  1. Snickbw
    Ответов:
    2
    Просмотров:
    807
  2. Ivan2014
    Ответов:
    12
    Просмотров:
    1.944
Загрузка...

Поделиться этой страницей