|
v7: Выбрать склад в запросе | ☑ | ||
---|---|---|---|---|
0
Rasetsu
02.02.15
✎
10:56
|
Доброго времени суток!
Прошу помощи у опытных программистов, на работе срочно понадобилось сделать отчетик в 1С 7.7 ТиС Нужно сделать фильтр по складу, чтобы выводил только товар который находится на складе "Торговый Зал". Никак не могу разобраться, до этого в 1С не программировал. Сделал так: Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДатаКонца по ДатаКонца; |Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура; |Склад = Регистр.ОстаткиТМЦ.Склад; |Количество = Регистр.ОстаткиТМЦ.Количество; |Функция КоличествоКонОст = КонОст(Количество); |Условие (Склад = 'Торговый Зал'); |Группировка Номенклатура;"; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока (Запрос.Группировка("Номенклатура") = 1) Цикл ТМЦ = Запрос.Номенклатура; Если Запрос.ЭтоГруппа("Номенклатура") = 0 Тогда Кол = Запрос.КоличествоКонОст; глВернутьЦену(ТМЦ,РознЦена,РабочаяДата(),ОбЦена, ЕдИзм, ВалЦены); КонецЕсли; Если ПустоеЗначение(ОбЦена) = 0 Тогда Цена1 = ОбЦена; Иначе Цена1 = 0; КонецЕсли; Т.ДобавитьСтроку(ТМЦ.Код+"^"+ТМЦ.Наименование+"^"+Цена1+" "+ВалЦены); КонецЦикла; Файл="oc_export.csv"; Т.Записать (Файл); Сообщить ("Файл с данными "+Файл+" сохранен в каталоге пользователя"); |
|||
1
DGorgoN
02.02.15
✎
10:59
|
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать) |Период с ДатаКонца по ДатаКонца; |Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура; |Склад = Регистр.ОстаткиТМЦ.Склад; |Количество = Регистр.ОстаткиТМЦ.Количество; |Функция КоличествоКонОст = КонОст(Количество); |Условие (Склад = 'Торговый Зал'); |Группировка Номенклатура;"; |Условие (Склад = 'Торговый Зал');- неправильно |
|||
2
DGorgoN
02.02.15
✎
11:00
|
|Условие (Склад = 'Торговый Зал');- неправильно
заменить на: На форме создать текстовое поле, там выбрать тип: Справочник.МестаХранения (склады) с идент. СкладНаФорме и сделать условие: |Условие (Склад = СкладНаФорме); |
|||
3
Rasetsu
02.02.15
✎
11:03
|
Спасибо, а захардкодить нельзя? Чтобы без форм, так как этот отчет будет выгружатся автоматически без участия пользователя...
|
|||
4
Spyke
02.02.15
✎
11:05
|
(3) Константу добавь
|
|||
5
Rasetsu
02.02.15
✎
11:05
|
Может быть как то так?
Перем ВыбСклад; Выбсклад='Торговый Зал'; |Условие (Склад в ВыбСклад); |
|||
6
Остап Сулейманович
02.02.15
✎
11:07
|
Какой тип будет у переменной Выб склад после этого вот : "Выбсклад='Торговый Зал'"?
|
|||
7
Spyke
02.02.15
✎
11:08
|
(5) Если конфу менять нельзя, то нужно спозиционировать
ВыбСкл = СоздатьОбъект("справочник.Склады"); ВыбСкл.НайтиПоКоду() или ВыбСкл.НайтиПоНаименованию() // Но это если нельзя менять конфу, но так делать можно в крайнем случаи ибо изм кода или наим и ничего работать не будет |
|||
8
Rasetsu
02.02.15
✎
11:11
|
(4) Спасибо:
Константа.ВыбСклад = "Торговый Зал"; А еще в отчет почему то попадают названия групп, хотя по идее должен пропускать... Например: 00003323^ВИДЕОКАМЕРЫ^1345 Руб |
|||
9
kissolo
02.02.15
✎
11:12
|
(8)
Группировка Номенклатура без групп; |
|||
10
Остап Сулейманович
02.02.15
✎
11:19
|
(8) "Константа.ВыбСклад = "Торговый Зал"" - расстрелять без права переписки.
|
|||
11
kissolo
02.02.15
✎
11:22
|
(10) Да уж. Тут, получается, сравнивают элемент спр-ка со строкой...
|
|||
12
Rasetsu
02.02.15
✎
11:35
|
Делаю так:
ВыбСкл = СоздатьОбъект("Справочник.Склады"); ВыбСклад = ВыбСкл.НайтиПоКоду("000002"); |Условие (Склад в ВыбСклад); Отчет не идет, фаил 0 Кб получается. |
|||
13
kissolo
02.02.15
✎
11:49
|
(12)
Условие (Склад = ВыбСклад) если, конечно, ВыбСклад - это элемент, а не группа. |
|||
14
kissolo
02.02.15
✎
11:49
|
(12) И я бы добавил в НайтиПоКоду проверку - а вдруг не находится просто...
|
|||
15
Ёпрст
02.02.15
✎
11:50
|
(12) НайтиПоКоду возвращает ЧИСЛО, если что
|
|||
16
Spyke
02.02.15
✎
11:55
|
|Условие (Склад в ВыбСклад.ТекущийЭлемент());
|
|||
17
Ёпрст
02.02.15
✎
11:58
|
(16) еще хуже
|
|||
18
Builder
02.02.15
✎
11:58
|
(16) Давно заметил, что такие условия отрабатываются криво.
Лучше и надежнее сделать так: 1. на форме поле "ВыбСклад" 2. ПриОткрытии() ВыбСклад.НайтиПоКоду("000002") или ПоНаименованию() 3. Условие (Склад в ВыбСклад); |
|||
19
Rasetsu
02.02.15
✎
12:17
|
Признателен всем за помощь, проблема решилась.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |