|
v7: Основы вывода информации | ☑ | ||
---|---|---|---|---|
0
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
|
Группировки где?
Без периода остатки берутся на дату ТА |
|||
2
Wefast
08.06.18
✎
14:12
|
(1) спасибо
|
|||
3
Builder
08.06.18
✎
14:14
|
(2) Вот это что за условие???? Пропустить 40-ю строку???
Пока( Запрос.Группировка(1) = 1) и (ячс <>40) Цикл |
|||
4
Wefast
08.06.18
✎
14:42
|
(3) ограничил вывод 40 строк для отладки. Хз где это в запросе сделать
|
|||
5
Cool_Profi
08.06.18
✎
14:55
|
А где группировка?
Да и за такое "Наименование = Регистр.ОстаткиТоваров.Товар;" - бить линейкой по рукам... |
|||
6
Карст
08.06.18
✎
17:36
|
Запрос.Наименование.ТекущийЭлемент().Код чойто??
Запрос.Наименование.Код ЗЫ хотя я б не стал использовать регулярные названия |
|||
7
Wefast
09.06.18
✎
08:55
|
(5) почему? Надо было Наименование = Регистр.ОстаткиТоваров.Товар.Наименование?
Или именно "наименование" в название поля нельзя использовать? (6) Не заполнялась выходная таблица данными из запроса. И я пробовал разное что в голову приходило. Особого знания как в 7 что работает у меня нет, сталкиваюсь с ней раз в год наверное(так что надеюсь однажды она полностью канет в лету), так что разбираться от и до и после помнить все это нет желания |
|||
8
Cool_Profi
09.06.18
✎
09:02
|
(7) Потому что название поля должно отражать его смысл. У тебя номенклатура, так и назови его так
|
|||
9
Злопчинский
09.06.18
✎
11:18
|
(7) добавлю к (8)
у тебя в запросе переменная запроса "наименование" является ссылкой. А по принятым стандартам отрасли - "наименование" - это строка. Пипл впадает в когнитивный диссонанс (нравится мне это словосочетание ;-) |
|||
10
AliAksA
11.06.18
✎
10:49
|
упс, народ, а что, такое " |с (ТекущаяДата()) по (ТекущаяДата());" прокатывает?
|
|||
11
Карст
13.06.18
✎
12:20
|
(10) если итоги актуальны то запросто, а чо бы и нет ))) более того !!! , открой конструктор запросов в 7-ке , при выборе периода выбери "выражение" и выбери предлагаемые варианты
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |