|
v8: Получить остатки по складам в Ут 10 | ☑ | ||
---|---|---|---|---|
0
lesstat
07.12.11
✎
10:11
|
Вопрос вот в чем: откуда можно выдернуть остатки на определенную дату?
И как это будет выглядеть программно(я про дату), если на форме создам поле ввода с типом дата. |
|||
1
ДенисЧ
07.12.11
✎
10:13
|
Из регистра, я так думаю...
|
|||
2
Шапокляк
07.12.11
✎
10:13
|
Из регистров получить, запросом. Дату в запросе указать.
|
|||
3
mirosh
07.12.11
✎
10:30
|
||||
4
mirosh
07.12.11
✎
10:31
|
(3)
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаАктуальности, ) КАК ТоварыНаСкладахОстатки"; Запрос.УстановитьПараметр("ДатаАктуальности", ДатаАктуальности); Результат = Запрос.Выполнить().Выгрузить().Скопировать(); ЭлементыФормы.Результат.СоздатьКолонки(); |
|||
5
rutony
07.12.11
✎
10:34
|
(4) Это только оптовые склады, если у ТС розничные, то это провал
|
|||
6
Asmody
07.12.11
✎
10:36
|
типовых отчётов не хватает?
|
|||
7
mirosh
07.12.11
✎
10:37
|
(5) как получить розничные?
|
|||
8
Asmody
07.12.11
✎
10:39
|
(7) пошукать в другом регистре(ах)
|
|||
9
rutony
07.12.11
✎
10:40
|
(7) К примеру, объединение к запросу (4) данных из регистра ТоварыВРознице
|
|||
10
DmitryPavlik
07.12.11
✎
10:40
|
(6) + 1
|
|||
11
mirosh
07.12.11
✎
11:33
|
(9) спасибо, понятно
|
|||
12
lesstat
07.12.11
✎
12:19
|
(6) это нужно выгружать в ДБФ для загрузки в другую прогу
|
|||
13
lesstat
07.12.11
✎
13:02
|
В чем тут ошибка не подскажете: Вот запрос
Запрос=Новый Запрос; запрос.Текст = "ВЫБРАТЬ | ТоварыОрганизацийОстатки.КоличествоОстаток КАК Количество, | ТоварыОрганизацийОстатки.Склад КАК Склад, | ТоварыОрганизацийОстатки.Номенклатура КАК Номенклатура, | ТоварыОрганизацийОстатки.СерияНоменклатуры КАК СерияНоменклатуры |ИЗ | РегистрНакопления.ТоварыОрганизаций.Остатки(&ДатаОстатков,) КАК ТоварыОрганизацийОстатки | |УПОРЯДОЧИТЬ ПО | Номенклатура, | СерияНоменклатуры, | Склад, | Количество"; Запрос.УстановитьПараметр("датаОстатков", ДатаОстатков); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ......... ДатаОстатков это поле на форме типа Дата Переменная объявлена как Перем ДатаОстатков; ДатаОстатков = ЭтаФорма.ЭлементыФормы.ДатаОстатков; Выдает ошибку:(7, 2)}: Ошибка обработки представления "РегистрНакопления.ТоварыОрганизаций.Остатки:Несоответствие типов (Параметр номер ""1"")" <<?>>РегистрНакопления.ТоварыОрганизаций.Остатки(&ДатаОстатков,) КАК ТоварыОрганизацийОстатки |
|||
14
Кокос
07.12.11
✎
13:07
|
Сумма(ТоварыОрганизацийОстатки.КоличествоОстаток) КАК Количество,
|
|||
15
Кокос
07.12.11
✎
13:08
|
и "количество" из гуппировок убери
|
|||
16
lesstat
07.12.11
✎
13:27
|
(14) Сделал, но ошибку то не убрало
|
|||
17
Кокос
07.12.11
✎
13:29
|
ЭтаФорма.ЭлементыФормы.ДатаОстатков.Значение или как там поле называется не помню. попробуй так
|
|||
18
lesstat
07.12.11
✎
13:40
|
(17) Теперь ругается на
ТоварыОрганизацийОстатки.Склад КАК Склад, | ТоварыОрганизацийОстатки.Номенклатура КАК Номенклатура, | ТоварыОрганизацийОстатки.СерияНоменклатуры КАК СерияНоменклатуры Ошибка: Поле не входит в группу "ТоварыОрганизацийОстатки.Номенклатура" <<?>>ТоварыОрганизацийОстатки.Номенклатура КАК Номенклатура, и так про все 3 отбора |
|||
19
Кокос
07.12.11
✎
13:42
|
|Сгруппировать ПО
| ТоварыОрганизацийОстатки.Номенклатура, | ТоварыОрганизацийОстатки.СерияНоменклатуры, | ТоварыОрганизацийОстатки.Склад перед упорядочиванием добавь. сорь если ошибся в написании. сейчас не на 1с |
|||
20
Кокос
07.12.11
✎
13:42
|
убери нахрен из упорядочивания количество. Сумма(...) поставил?
|
|||
21
lesstat
07.12.11
✎
13:43
|
вот полностью текст
Процедура КнопкаВыполнитьНажатие(Кнопка) // Запись данных справочника в DBF-файл: Перем ДатаОстатков; ДатаОстатков = ЭтаФорма.ЭлементыФормы.ДатаОстатков.Значение; БД = Новый XBase; // проектируется структура таблицы, т.е. имена и типы полей БД.Поля.Добавить("Kolich","N",6,0); // числовое поле Код БД.Поля.Добавить("Name","S",30); // строковое поле Наименование // создание файла с указанной структурой БД.СоздатьФайл("C://1.dbf"); Запрос=Новый Запрос; запрос.Текст = "ВЫБРАТЬ | Сумма(ТоварыОрганизацийОстатки.КоличествоОстаток) КАК Количество, | ТоварыОрганизацийОстатки.Склад КАК Склад, | ТоварыОрганизацийОстатки.Номенклатура КАК Номенклатура, | ТоварыОрганизацийОстатки.СерияНоменклатуры КАК СерияНоменклатуры |ИЗ | РегистрНакопления.ТоварыОрганизаций.Остатки(&ДатаОстатков,) КАК ТоварыОрганизацийОстатки | |УПОРЯДОЧИТЬ ПО | Номенклатура, | СерияНоменклатуры, | Склад"; Запрос.УстановитьПараметр("датаОстатков", ДатаОстатков); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл // создается новая пустая строка таблицы БД.Добавить(); // заполняем поля новой строки БД.Kolich = Выборка.Количество; БД.Name = Выборка.Номенклатура.ПолноеНаименование(); КонецЦикла; // зафиксировать изменения в файле БД.ЗакрытьФайл(); КонецПроцедуры |
|||
22
Кокос
07.12.11
✎
13:44
|
Сгруппировать ПО
в тексте запроса не вижу или "группировка" не помню точно |
|||
23
Кокос
07.12.11
✎
13:44
|
вообще юзай конструктор запросов раз не шаришь в них. ставишь "" две кавычки. левой кнопкой между "" курсор ставишь и выбираешь "Конструктор запросов"
|
|||
24
pscorp
07.12.11
✎
13:50
|
Сотрите Сумму из запроса, эта строчка была правильной. GentleMan перепутал группировку и упорядочивание. должно быть
ТоварыОрганизацийОстатки.КоличествоОстаток КАК Количество, |
|||
25
Кокос
07.12.11
✎
13:53
|
(24) это он перепутал. а без суммы вообще бесмысленный запрос получается.
|
|||
26
pscorp
07.12.11
✎
13:56
|
только если у товара есть остатки по разным сериям или складам, то будет соответственное количество строк в запросе по этому товару, а вы в другую базу выгружаете только наименование и количество.
Тогда действительно лучше использовать группировку. Ее лучше настроить уже из конструктора запроса, щелкнув по нему правой кнопкой и не выбирать тогда склад и серию, раз уж вы их не используете при перекачке. ВЫБРАТЬ СУММА(ТоварыОрганизацийОстатки.КоличествоОстаток) КАК Количество, ТоварыОрганизацийОстатки.Номенклатура КАК Номенклатура ИЗ РегистрНакопления.ТоварыОрганизаций.Остатки(&ДатаОстатков, ) КАК ТоварыОрганизацийОстатки СГРУППИРОВАТЬ ПО ТоварыОрганизацийОстатки.Номенклатура Вот такой текст запроса должен быть по идее. |
|||
27
pscorp
07.12.11
✎
13:58
|
ну и еще точно товары организаций хотите использовать? может Товары на складах?
|
|||
28
Кокос
07.12.11
✎
13:58
|
(26) а что тогда писал "Сотрите Сумму из запроса, эта строчка была правильной?:)
|
|||
29
Кокос
07.12.11
✎
13:58
|
(27) при правильном учете эти регистры часто бывают равны :)
|
|||
30
pscorp
07.12.11
✎
14:02
|
ну запрос-то не из-за нее не работал. А вот что надо получить и в каких разрезах данные хранятся не знаю. Ладно, надеюсь получится, что надо.
|
|||
31
lesstat
07.12.11
✎
14:17
|
теперь все без ошибок, но создается пустой фаил, и уж очень быстро отрабатывает обработка, как будто запрос вообще не выполняется
|
|||
32
Кокос
07.12.11
✎
14:25
|
БД.Записать() вроде забыл. да блин. учи матчасть :)
|
|||
33
lesstat
07.12.11
✎
14:28
|
Спасибо, заработало :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |