Вход | Регистрация

1С:Предприятие ::

Метки: 

v7: Основы вывода информации

Я
   Wefast
 
08.06.18 - 10:26
Понадобилось тут из 7 вывести данные в нужном формате.

А конкретно остатки товаров

Делаю

   перем Таб, Запрос, ТекстЗапроса,ячс;            
    
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Таб.ВывестиСекцию("Шапка|Нач");
    Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
    
    Максим = 7;
    Для Счетчик = 1 По Максим Цикл             
        н = Счетчик;
        Таб.ПрисоединитьСекцию("Шапка|Родители");
    КонецЦикла;
    

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(ОстаткиСклад)

    |с (ТекущаяДата()) по (ТекущаяДата());
    |Наименование = Регистр.ОстаткиТоваров.Товар;
    |Остаток = Регистр.ОстаткиТоваров.ОстатокТовара;
    |Код = Регистр.ОстаткиТоваров.Товар.Код;
    |Артикул = Регистр.ОстаткиТоваров.Товар.Артикул;
    |Функция ОстатокКонОст = КонОст(Остаток);
    |"//}}ЗАПРОС

    ;
    // Если ошибка в запросе, то выход из процедуры

    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Сообщить("Все очень плохо");
        Возврат;
    КонецЕсли;
    ячс    =0;
    Пока( Запрос.Группировка(1) = 1) и (ячс <>40) Цикл
        // Заполнение полей ТекущийЭлемент1 

        Если Запрос.Наименование.ЭтоГруппа() = 1 Тогда
            Продолжить;
        КонецЕсли;
        Наименование = Запрос.Наименование.ТекущийЭлемент();
           Код = Наименование.Код;
           Артикул = Наименование.Артикул;
           Остаток = Запрос.Остаток;
        Если Запрос.остаток <> 0 Тогда
            Сообщить(Запрос.Остаток);    
        КонецЕсли;
        
        
        
        Таб.ВывестиСекцию("Строка|Нач");
        род=Запрос.Наименование.ТекущийЭлемент();
        
        ячс = ячс +1;
        Пока род.Родитель.Выбран()=1 цикл
            Таб.ПрисоединитьСекцию("Строка|Родители");
            Род=Род.Родитель;
            
        КонецЦикла;
        //сообщить(Род.Наименование);

    КонецЦикла;
    
    
    

    Таб.Показать("Таблица","");



1) так понимаю для получения остатков обязательно нужно указать дату С и По. Она одна и та же?
2) После запрос без периода что то выводилось. Но Код, Артикул были пустые. Для вывода приходилось делать
Запрос.Наименование.ТекущийЭлемент().Код
 
 
   1Сергей
 
1 - 08.06.18 - 10:30
Группировки где?

Без периода остатки берутся на дату ТА
   Wefast
 
2 - 08.06.18 - 14:12
(1) спасибо
   Builder
 
3 - 08.06.18 - 14:14
(2) Вот это что за условие???? Пропустить 40-ю строку???
Пока( Запрос.Группировка(1) = 1) и (ячс <>40) Цикл
   Wefast
 
4 - 08.06.18 - 14:42
(3) ограничил вывод 40 строк для отладки. Хз где это в запросе сделать
   Cool_Profi
 
5 - 08.06.18 - 14:55
А где группировка?
Да и за такое "Наименование = Регистр.ОстаткиТоваров.Товар;" - бить линейкой по рукам...
   Карст
 
6 - 08.06.18 - 17:36
Запрос.Наименование.ТекущийЭлемент().Код чойто??
Запрос.Наименование.Код
ЗЫ хотя я б не стал использовать регулярные названия
   Wefast
 
7 - 09.06.18 - 08:55
(5) почему? Надо было Наименование = Регистр.ОстаткиТоваров.Товар.Наименование?

Или именно "наименование" в название поля нельзя использовать?

(6) Не заполнялась выходная таблица данными из запроса. И я пробовал разное что в голову приходило.

Особого знания как в 7 что работает у меня нет, сталкиваюсь с ней раз в год наверное(так что надеюсь однажды она полностью канет в лету), так что разбираться от и до и после помнить все это нет желания
   Cool_Profi
 
8 - 09.06.18 - 09:02
(7) Потому что название поля должно отражать его смысл. У тебя номенклатура, так и назови его так
   Злопчинский
 
Ведущий
9 - 09.06.18 - 11:18
(7) добавлю к (8)
у тебя в запросе переменная запроса "наименование" является ссылкой. А по принятым стандартам отрасли - "наименование" - это строка. Пипл впадает в когнитивный диссонанс (нравится мне это словосочетание ;-)
   AliAksA
 
10 - 11.06.18 - 10:49
упс, народ, а что, такое " |с (ТекущаяДата()) по (ТекущаяДата());" прокатывает?
 
  Рекламное место пустует
   Карст
 
11 - 13.06.18 - 12:20
(10) если итоги актуальны то запросто, а чо бы и нет ))) более того !!! , открой конструктор запросов в 7-ке , при выборе периода выбери "выражение"  и выбери предлагаемые варианты


Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует