|
v7: Оптимизация РегОстатки.СводныйОстаток | ☑ | ||
---|---|---|---|---|
0
Масянька
18.10.17
✎
09:50
|
Доброе утро!
ТиС 7.7. В справочнике "Номенклатура" (форма для подбора) реализовано следующее: в колонке "Остаток" выводится остаток по фирме (в целом, без учета склада) и в правом нижнем углу окошко с остатками по складам, на форме функция, в которой получаются остатки по складам для текущей номенклатуры (используется РегОстатки.СводныйОстаток()). Замечены тормоза (не критичны, но есть). Вопрос: есть вариант оптимизировать? Спасибо. |
|||
1
пипец
18.10.17
✎
10:49
|
прямой запрос )))
|
|||
2
Масянька
18.10.17
✎
10:54
|
(1) А ты уверен (на 200%), что тормоза уйдут?
|
|||
3
aka AMIGO
18.10.17
✎
10:55
|
(1) Припарка.. не поможет. Проверено.
Только смириться с тормозами. Я приручил клиента, употребляет нормально :) |
|||
4
aka AMIGO
18.10.17
✎
10:56
|
+3 правда, сделал доп.колонку "Остатки"
|
|||
5
Ёпрст
18.10.17
✎
10:56
|
(0) можно, даже штатно.
Покажи скриншот |
|||
6
Ёпрст
18.10.17
✎
10:57
|
(2) я- да, на 300%
|
|||
7
Масянька
18.10.17
✎
11:01
|
(5) http://pastenow.ru/bf75af89c41089f595b3d1ee2ae16015
(6) Да, не освоила я их :( |
|||
8
Масянька
18.10.17
✎
11:01
|
(3) (4) Предложила убрать (табличку с остатками) - возмутились. А сама - задумалась :(
|
|||
9
Ёпрст
18.10.17
✎
11:02
|
(7)
штатно,так, например: при открытии формы, выгрузитьИтоги в ТЗ (лучше в ИТЗ) далше, в форме списка - поиск в этой тз и показ. |
|||
10
Ёпрст
18.10.17
✎
11:02
|
по кнопке, можешь обновлять останки.
|
|||
11
Ёпрст
18.10.17
✎
11:03
|
Тормозов не будет, от слова совсем.
|
|||
12
aka AMIGO
18.10.17
✎
11:04
|
(0) сколько позиций в Номенклатуре?
У меня ок.15тысяч, добавлены колонки "Свободно, Остаток, Резерв", более того, вычисляется наличие аналогов Артикулов - это желтый треугольник во второй колонке: https://i.paste.pics/64563e1621fff6fdc96ac2d669e5b5c4.png И тормозов особых не заметно |
|||
13
Масянька
18.10.17
✎
11:04
|
(9) О! Попробую. Спасибо.
|
|||
14
Масянька
18.10.17
✎
11:10
|
(12) Я уже проверила - если убрать функцию на форме - летает. А так подтормаживает. Не критично, но интересно ведь :)
|
|||
15
Масянька
18.10.17
✎
14:09
|
(11) Ты сильно указкой не лупи, но - не ищет по двум:
ИндексТабОстатков.ДобавитьИндекс("Поиск", "Номенклатура, Склад"); СписокДляПоиска = СоздатьОбъект("СписокЗначений"); СписокДляПоиска.ДобавитьЗначение(ТекНоменклатура); СписокДляПоиска.ДобавитьЗначение(СкладОсновной); Ост = ИндексТабОстатков.НайтиСтроку("Поиск", СписокДляПоиска, , 1); Сообщить("№ - " + Ост + ", основной - " + ИндексТабОстатков.Количество); СписокДляПоиска = СоздатьОбъект("СписокЗначений"); СписокДляПоиска.ДобавитьЗначение(ТекНоменклатура); СписокДляПоиска.ДобавитьЗначение(СкладСписание); Ост = ИндексТабОстатков.НайтиСтроку("Поиск", СписокДляПоиска, , 1); Сообщить("№ - " + Ост + ", списание - " + ИндексТабОстатков.Количество); А по одному - ищет... |
|||
16
Масянька
18.10.17
✎
14:10
|
+ (15) ТекНоменклатура - строка справ.
СкладОсновной - ссылка на справ. склады. |
|||
17
Джинн
18.10.17
✎
14:14
|
(9) Тогда форма будет очень долго открываться. Это не панацея.
|
|||
18
Смотрящий
18.10.17
✎
14:21
|
(0) Получение остатков по складам для текущей номенклатуры убрать как отдельную функцию; вставить ее код в получение остатво без учета складов
|
|||
19
Масянька
18.10.17
✎
15:15
|
(11) Я тебя обожаю!!!!!!!!!!
|
|||
20
Ёпрст
18.10.17
✎
16:16
|
(19) это хорошо. Получилось ?
|
|||
21
Ёпрст
18.10.17
✎
16:17
|
(15) для итз нужно * пихать в индекс
|
|||
22
Ёпрст
18.10.17
✎
16:18
|
(17) выгрузитьИтоги с фильтрами, почти мгновенно. ПриОткрытии будет незаметно
|
|||
23
Масянька
18.10.17
✎
16:28
|
(20) Да.
Я довольна. Пользователи - пищат. Спасибо! |
|||
24
Злопчинский
18.10.17
✎
21:04
|
(23) это ровно до того времени пок аво время открытой формы подбора не произойжет случая сильного изменения остатков. манагер ориентируется на устаревшей цифры, по факту - часть товара уже забрал другой манагер. Это принципиально с высоколиквидным товаром с малыми запасами, например. Но, имхо, вполне нормальная плата за простоту решения.
|
|||
25
АЛьФ
19.10.17
✎
10:34
|
2(24) Такие случаи всяко на этапе проведения разруливаются. Т.к. два менеджера даже с обновленными остатками могут одновременно подобрать один и тот же остаток. А вот в момент проведения один из них получит отлуп. Так что с кэшем в тз нормальное решение.
|
|||
26
Злопчинский
19.10.17
✎
11:35
|
(25) Это понятно. Но частенько - раз идет ручной подбор - манагер в это время еще и с клиентом на телефоне висит. и вроде все, утрясли 100 штук товара, а тут раз во время проведения - отлуп... ну нехорошо это... ;-)
|
|||
27
Ёпрст
19.10.17
✎
12:08
|
(26) там кнопка обновить есть
|
|||
28
Масянька
19.10.17
✎
12:11
|
(26) Ой. Да хватит уже.
|
|||
29
VladZ
19.10.17
✎
12:14
|
(28) Нужно говорить: "Ой, всё!" :)
|
|||
30
Ёпрст
19.10.17
✎
12:18
|
(28) если у тя типовая тис (или на основе её) переделай открытие документов, ышо быстрее будет
|
|||
31
Масянька
19.10.17
✎
12:26
|
(30) В данном случае, у меня все замечательно. :)
А что касается остатков - се ля ви. |
|||
32
Ёпрст
19.10.17
✎
12:35
|
(31) подбора партий, случаем, не ведёте ?
Там тоже нужно штатный механизм выкинуть к едрени фени, ну это так, на всякий |
|||
33
Злопчинский
19.10.17
✎
13:17
|
(32) а что сиподбором партий принципиально не так?
|
|||
34
Ёпрст
19.10.17
✎
13:48
|
(33)дык всё не так. Если б пользовался, не спрашивал бы, а переделал. А у тя по-ходу автоподбор партий стоит , ты и не паришься
|
|||
35
Масянька
19.10.17
✎
13:51
|
(32) Коню понятно :)
Еще бы и единицы выкинуть - никак руки/ноги не дойдут. |
|||
36
Ёпрст
19.10.17
✎
14:16
|
(35) А че с единицами ?
На счет подбора партий, открывается не форма списка справочника с отбором, а своя форма обработки для подбора с ТЗ/ТП на форме. Это в разы быстрее, чем форма списка справочника с отбором. |
|||
37
Ёпрст
19.10.17
✎
14:16
|
туда и останки показать можно, при желании
|
|||
38
Масянька
19.10.17
✎
14:36
|
(36) Тут есть задумка: при приходе/расходе пересчет (из упаковок в штуки и пр.), хранение и показ (в отчетах)...
Пока - варится... |
|||
39
Злопчинский
19.10.17
✎
19:07
|
(34) ну там я помню, что вроде показываются все партии - используется форма списка справочника. у меня юзали это когда фармацевтика была - там работали строго по партиям с полу-ручным подбором - неудобно было весь список нафиг не нужен.
типа так? |
|||
40
Ёпрст
19.10.17
✎
19:08
|
(39) да.
|
|||
41
Злопчинский
19.10.17
✎
19:08
|
(36) во, ты и написал
в самописной WMS для ОХ у меня так и делается при необходимости ручного подбора |
|||
42
Ёпрст
19.10.17
✎
19:08
|
если партий много, установка отбора тормозит безбожно
|
|||
43
Злопчинский
19.10.17
✎
19:18
|
(38) если я правильно вангую, то скорее всего это либо нафиг не нужно, либо нужно ну в очень спец.случаях.
у меня все учитывается в штуках (базовые). хранится все в заводских коробах и упаковках. Вопросов типа "а сколько мы можем отгрузить коробок" или "а скольо коробок на остатке" - не возникает, если у меня 5487 штук, а размер коробки = 24 шт, то составляет 5487/24 = 228.625, это значит что в реале на складе будет 225 коробок, вскрыто единовременно не более 2 заводских коробок... и так - по иерархи упаковок - оценивается при необходимости запас. сборщикам на складе - нужное количество для отбора выдается разложенное по иерархии упаковок - надо собрать клиенту 275 штук, это значит надо взять (коробка = 24 штуки, в коробке 4 блока по 6 штук) = 11кор (11*24=264) + 1блок (6 шт)+5шт. Этого вполне хватает для нормальной беспроблемной работы. сборщик может вообще все количество набрать блоками/штуками - главное - нужное количество штук4 чтобы было. . вымороченным клиентам (сетям и пр) = заказы приходят в количестве кратном упаковкам. И на отборе стоит флаг на соотв.отбо "строго кратно упаковками" - то есть тут сборщик штуками не может набрать, только именно упаковками. . такой организации работы со штуками/упаковками - вполне хватает, без всяких дополнительных заморочек усложнения учета единиц. . вот как-то так. |
|||
44
Злопчинский
19.10.17
✎
19:20
|
(42) я с отборами в штатных формах вообще стараюсь не работать. если нужен отбор - фильтрую и вываливаю списком-тз/сз
|
|||
45
Масянька
24.10.17
✎
15:31
|
(42) Прямые запросы, прямые запросы...
Почему: ТекстЗапроса = " |SELECT | $Рег.Фирма as [Фирма $Справочник.Фирмы], | $Рег.Номенклатура as [Номенклатура $Справочник.Номенклатура], | $Рег.Количество as Количество |FROM | $РегистрИтоги.ОстаткиТоваров as Рег |WHERE | $Рег.Фирма = ? AND | $Рег.Номенклатура = ? AND | $Рег.Склад = ? "; RS.Подготовить(ТекстЗапроса); RS.ПостроитьПараметры(); RS.УстПараметр(1, глПользователь.ОсновнаяФирма); RS.УстПараметр(2, ТекущийЭлемент()); RS.УстПараметр(3, СкладОсновной); Возврат RS.ВыполнитьСкалярный(); ругается: RS.УстПараметр(1, глПользователь.ОсновнаяФирма); {Справочник.Номенклатура.ФормаСписка.ДляПодбора.Модуль(334)}: Недопустимое значение индекса параметра |
|||
46
Ёпрст
24.10.17
✎
15:33
|
(45) у тя скуль ?
|
|||
47
Масянька
24.10.17
✎
15:34
|
(46) 7.7 для Sql, базы dbf.
|
|||
48
Ёпрст
24.10.17
✎
15:35
|
ну и выполнитьСкалярный тут нельзя применять. У тя же запрос возвратит не одно значение
|
|||
49
Масянька
24.10.17
✎
15:35
|
(46) Ты только линейку убери подальше :(
|
|||
50
Ёпрст
24.10.17
✎
15:35
|
(47) :))
Для дбф тем более этот синтаксис не применим |
|||
51
Масянька
24.10.17
✎
15:36
|
(50) А какой применим?
|
|||
52
Масянька
24.10.17
✎
15:36
|
(48) Так он не доходит до выполнить.
|
|||
53
Ёпрст
24.10.17
✎
15:36
|
ну и запрос, в корне не верен.
|
|||
54
Масянька
24.10.17
✎
15:37
|
(53) Давай по очереди.
Какой применим? |
|||
55
Ёпрст
24.10.17
✎
15:37
|
(51) нужно использовать или оледб или 1sqlite
|
|||
56
Масянька
24.10.17
✎
15:40
|
(55) А можно подробнее...
|
|||
57
Ёпрст
24.10.17
✎
15:45
|
На вот, примерчик, мот поможет
https://cloud.mail.ru/public/AeJK/71o1vuzd1 |
|||
58
Ёпрст
24.10.17
✎
15:45
|
Хотя, если тебе так уж нужон параметизированный запрос, то тут токма скульлайт
|
|||
59
Масянька
24.10.17
✎
16:11
|
(58) У меня есть 1sqlite.dll.
А как с ним работать? |
|||
60
Ёпрст
24.10.17
✎
16:19
|
(59) к этой вк есть als и chm
|
|||
61
Ёпрст
24.10.17
✎
16:19
|
+
на форуме 1cpp куча веток с примерами |
|||
62
Ёпрст
24.10.17
✎
16:19
|
и обсуждением
|
|||
63
Масянька
24.10.17
✎
17:57
|
(62) Извини, задергали.
А что лучше будет в данном контексте (остатки по номенклатуре по складу) для dbf? |
|||
64
ManyakRus
24.10.17
✎
22:53
|
надо использовать дополнительный класс "ПоставщикДанных.Справочник"
тогда можно все данные получать одним запросом, он получает только видимые на экране данные. |
|||
65
Масянька
25.10.17
✎
11:49
|
(62) А как дату задать?
Select Рег.Номенклатура [Номенклатура :Справочник.Номенклатура], Рег.Склад [Склад :Справочник.Склады], Рег.Количество From [РегистрИтоги.ОстаткиТМЦ] as Рег WHERE Рег.period = ('01.10.2017') Group by Рег.Номенклатура,Рег.Склад В dbf стоит "01.10.2017". |
|||
66
Ёпрст
25.10.17
✎
11:53
|
(65) я ж тебе пример дал :)
Там универсально, независимо от того, какая выставлена периодичность хранения останков. |
|||
67
Масянька
25.10.17
✎
11:54
|
(66) Твой пример для меня силён...
Сижу, ковыряю консоль... |
|||
68
Ёпрст
25.10.17
✎
11:55
|
+
тебе нужно понимать, какие останки ты хочешь видеть, на ТА или на произвольный момент времени. Если на ТА, то просто берются останки с таблички RG по последней дате периодичности итогов. Если на любую дату, то берется предыдущая дата хранения останков и прибавляется оборот с RA с даты пердыдущей периодичности до нужной тебе даты. |
|||
69
Ёпрст
25.10.17
✎
11:56
|
+68 берутся итоги с предудыщей даты + оборот с RA
|
|||
70
Масянька
25.10.17
✎
11:56
|
(68) Останки хочу на дату подбора. В перспективе.
В консоли без даты - хрень полная получается. |
|||
71
Ёпрст
25.10.17
✎
11:59
|
почитай, на ночь
http://www.mista.ru/articles1c/hare/article.47.html http://www.script-coding.com/v77tables.html http://www.mista.ru/articles1c/hare/article.11.html http://www.mista.ru/articles1c/hare/article.12.html http://www.1cpp.ru/forum/YaBB.pl?num=1148038411 http://www.1cpp.ru/forum/YaBB.pl?num=1184317705 |
|||
72
Масянька
25.10.17
✎
16:00
|
(71) С остатками на начало получилось.
С движениями - нет. Причем, не ругается собака... Молча пусто. SELECT Движения.Номенклатура As [Номенклатура :Справочник.Номенклатура], Движения.Склад As [Склад :Справочник.Склады], Движения.Количество As Количество -- Движения.Количество * (1 - Движения.debkred * 2) As Количество FROM [Регистр.ОстаткиТМЦ] As Движения WHERE Движения.IDDOC >= '20171001' And Движения.IDDOC <= '20171023' -- and Движения.Количество > 0 GROUP BY Движения.Номенклатура, Движения.Склад ORDER BY Движения.Номенклатура |
|||
73
Ёпрст
25.10.17
✎
16:19
|
(72) iddoc - это внутренний идентификатор документа.
Нужно date фильтровать :) |
|||
74
Масянька
25.10.17
✎
16:26
|
(73) Уже разобралась... Тебя пока дождешься - родишь :))))
Но - тебе ОГРОМНОЕ спасибо! |
|||
75
Масянька
25.10.17
✎
16:29
|
(73) Кстати, первая строка после select - там будет просто строка с наименованием или полноценная ссылка (со всеми вытекающими последствиями)?
|
|||
76
Ёпрст
25.10.17
✎
16:52
|
(75) ссылка, ты же метапарсеру задаешь тип вот тут:
[Номенклатура :Справочник.Номенклатура] |
|||
77
Масянька
25.10.17
✎
16:55
|
(76) А почему квадратные скобки используются?
|
|||
78
Ёпрст
25.10.17
✎
16:56
|
(77) просто указание метапарсеру
|
|||
79
Ёпрст
25.10.17
✎
16:56
|
что нужно полю присвоить определенный алияс (псевдоним) и привести к такому-то типу
|
|||
80
Масянька
25.10.17
✎
16:56
|
(78) Я тебя обожаю!!! Спасибо!!!
|
|||
81
Масянька
25.10.17
✎
16:57
|
(79) Про алиас - и коню понятно. Вот про метапарсер была мысль, но лучше уточнить.
|
|||
82
Злопчинский
25.10.17
✎
20:54
|
(76) а нафига там приводить к типу в последнем масянькином примере?
Ведь Движения.Номенклатура и без приведения уже будет ссылкой ???? Или я не прав? |
|||
83
Aleksey
25.10.17
✎
21:01
|
(82) Нет это будет строка, т.е. по сути id объекта в виде строки
|
|||
84
Злопчинский
25.10.17
✎
21:07
|
(83) а что из себя представляет ссылка тогда?
|
|||
85
Aleksey
25.10.17
✎
21:20
|
(84) ссылка содержит вид. Т.е. по строке 248 нельзя однозначно сказать, что это ссылка на "веник" или ссылка на контрагента Иванова
|
|||
86
Злопчинский
25.10.17
✎
21:24
|
(85) а в регистре ОстаткиТМЦ.Номенклатура - в измерении ссылка или ид?
|
|||
87
Aleksey
25.10.17
✎
21:46
|
(86) да кто же его помнит как оно в типовой. У меня конкретный ID (указан конкретный тип и вид Справочник.Номенклатура).
Если в конфигураторе в типе значения указать просто "справочник" то будет храниться вид + ID |
|||
88
Злопчинский
25.10.17
✎
23:11
|
(87) если в типовой тип измерения Номенклатура есть Справочник.Номенклатура
? |
|||
89
Aleksey
26.10.17
✎
00:05
|
(88) ну ты как маленький
http://www.script-coding.com/v77tables.html |
|||
90
Aleksey
26.10.17
✎
00:06
|
1.1.1. Хранение ID объекта
ID может иметь 3 представления (уровня) в зависимости от длины (количества значащих символов): 9 символов – определен тип и вид объекта (например «Справочник.Клиенты»), в ID включается только порядковый номер в 36-ричной системе исчисления. Под порядковый номер отводятся первые 6 символов, последние 3 символа зарезервированы под код базы УРБД. 13 символов – определен только тип объекта, вид не задан (например «Справочник»). Первые 4 символа – идентификатор вида (как он задан в метаданных), последующие 9 символов – по аналогии с предыдущим пунктом. 23 символа – не определен тип и вид объекта. В таком случае в первых 2 символах хранится тип объекта (будет рассмотрен ниже), следующие 13 символов формируются аналогично предыдущему пункту. В некоторых случаях, при указании неопределенного типа объекта (длина ID кода 23 символа) создается дополнительное поле с символом «T» вначале (например, если в справочнике задан реквизит SP235 как неопределенный, то в таблице справочника будет создано еще одно поле TSP235). |
|||
91
Aleksey
26.10.17
✎
00:17
|
Соответственно если задан конкретный справочник (Справочник.Номенклатура), то данные хранятся как 9 символов (6 под сам ID объект в 36-ричном формате + 3 символа по УРБД как оно задано в конфигураторе)
Т.е. прямой запрос вернет строку " 248 " (ну или " 248FIL" если создан в урбд копии у которой код FIL) Если там просто справочник/документ, то будет что то типа " N57 5BTJC ", где N57 это ID вида, а 5BTJC - 9-ти значный ID объекта |
|||
92
Ёпрст
26.10.17
✎
08:00
|
(82) ну ты это, попробуй, что вернёт без типизации и вопрос, сам собой отпадёт
|
|||
93
tgu82
26.10.17
✎
09:16
|
(12) У меня тоже так сделано. Но если хотят, флагом переключают показывать это или нет. Малость тормозит но не всегда
|
|||
94
Масянька
26.10.17
✎
13:58
|
(92) Почем расхода нет:
SELECT Движения.Номенклатура As [Номенклатура :Справочник.Номенклатура], Движения.Склад As [Склад :Справочник.Склады], CASE WHEN (DEBKRED = 1) THEN Движения.Количество ELSE 0 END As Расход, CASE WHEN (DEBKRED = 0) THEN Движения.Количество ELSE 0 END As Приход FROM [Регистр.ОстаткиТМЦ] As Движения INNER Join [Журнал] Жур ON Жур.iddoc = Движения.iddoc and Жур.date BETWEEN '20171001' And '20171025' GROUP BY Движения.Номенклатура, Движения.Склад ORDER BY Движения.Номенклатура А приход есть. |
|||
95
Масянька
26.10.17
✎
14:20
|
+(94) Получилось! :)))
|
|||
96
Масянька
26.10.17
✎
14:55
|
Вопрос по регистрам (dbf):
стандартный отчет "Ведомость по остаткам" показывает: нач. ост приход расход кон. ост 15 11 21 5 запрос: SELECT Остатки.Номенклатура As [Номенклатура :Справочник.Номенклатура], Остатки.Склад As [Склад :Справочник.Склады], Остатки.Количество As Количество FROM [РегистрИтоги.ОстаткиТМЦ] As Остатки WHERE Остатки.PERIOD = '20171001' And Остатки.Количество > 0 GROUP BY Остатки.Номенклатура, Остатки.Склад ORDER BY Остатки.Номенклатура выдает - Количество - 5. Лезу в dbf и вижу 01.10.17 - 5, 01.09.17 - 15. Вопрос: так как же получить остатки на нач. периода? Стандартный "Остатки ТМЦ" показывает тоже 15. |
|||
97
Масянька
26.10.17
✎
15:37
|
Проверила - за сентябрь движений нет.
Переиндексила БД. Результат - тот же: в отчете - 15, в запросе - 5. |
|||
98
aka AMIGO
26.10.17
✎
15:46
|
(97) Склады совпадают?
|
|||
99
aka AMIGO
26.10.17
✎
15:48
|
Может, попробовать из запроса убрать склад?
|
|||
100
Масянька
26.10.17
✎
15:48
|
(98) Хороший вопрос...
Не знаю, как сказать... 2 записи (в dbf). По одному - 0, по другому - 5 (это если смотреть 01.10.2017). Если на 01.09.2017: 15 и 1. |
|||
101
Масянька
26.10.17
✎
15:50
|
(99) ИМХО, дело не в запросе. Я же в запросе явно указываю дату. И в dbf (на эту дату) именно те цифры, которые в запросе.
|
|||
102
aka AMIGO
26.10.17
✎
15:52
|
(101) я имел в виду GROUP BY
Остатки.Номенклатура |
|||
103
Масянька
26.10.17
✎
15:54
|
(102) Тоже самое (5).
|
|||
104
aka AMIGO
26.10.17
✎
15:56
|
Ну, и последнее, поискал в ветке: Пересчет итогов никто вроде не советовал?
Бывало у меня такое. |
|||
105
Масянька
26.10.17
✎
15:57
|
(104) В конфигураторе - все галки - ничего не изменилось.
Это у меня поломатая БД? |
|||
106
aka AMIGO
26.10.17
✎
16:00
|
(105) Ну, необычно ведет себя - не значит, что поломатая.
Бывали глюки необъяснимые. Извини, Масянька, не горазд я на идеи, все закончились.. |
|||
107
aka AMIGO
26.10.17
✎
16:01
|
Оператор Сводного остатка скопипасть сюда, пожалуйста..
|
|||
108
Масянька
26.10.17
✎
16:01
|
(106) Причем, по нескольким позициям посмотрела: на 01.10.2017 лежат тек. остатки.
|
|||
109
Масянька
26.10.17
✎
16:01
|
(107) Чего? Переведи...
|
|||
110
aka AMIGO
26.10.17
✎
16:04
|
Типа Ост = Регистры.ТвойРегистр.СводныйОстаток(ТвояНоменклатура,[Измерения, желательно пустые],"Остаток[илиКакойТамРеквизитВРегистре]);
|
|||
111
aka AMIGO
26.10.17
✎
16:05
|
* илиКакойТамРеквизитВРегистре = илиКакойТамРесурсВРегистре
|
|||
112
Масянька
26.10.17
✎
16:07
|
(110) (111) Так я в консоли делаю.
|
|||
113
aka AMIGO
26.10.17
✎
16:09
|
(112) Ммм.. понятно..
А то у меня в ФормеСписка есть колонка СвободныйОстаток с формулой Функция ОстатокТовараНаСкладе() //*ВМ@MyCompany, 28-08-2014 14:21:58 Возврат Формат(Регистр.ОстаткиТоваров.Остаток(ТекущийЭлемент(),Склад,"ОстатокТовара") - Регистр.ЧугунныйРезерв.СводныйОстаток(ТекущийЭлемент(),,Склад,"Количество"),"Ч15.3"); ///ВМ@MyCompany, 28-08-2014 14:21:58 КонецФункции А внизу окна списка - маркер "Показывать остаток на складе" |
|||
114
Масянька
26.10.17
✎
16:10
|
(113) Я пока в консоли запросы пытаюсь делать.
|
|||
115
aka AMIGO
26.10.17
✎
16:11
|
(114) Я понял уже.. Ладушки, не буду мешать.
|
|||
116
Масянька
26.10.17
✎
16:26
|
А я правильно понимаю, что если надо остатки на ТА, то прямым запросом (1cqlite, dbf) достаточно взять остатки на начало тек. месяца? Или не правильно?
|
|||
117
Ёпрст
26.10.17
✎
16:38
|
(116) на начало периодичности хранения останков.
|
|||
118
Ёпрст
26.10.17
✎
16:39
|
Не у всех стоит месяц. У нас , к примеру 5 дней всегда было.
Это если че, самы быстрый способ для получения итогов и записи движений в регистры. |
|||
119
Ёпрст
26.10.17
✎
16:40
|
в (96) ты всего лишь берешь итоги на начало месяца.
Нужно к ним прибавить движения , будет тебе остаток |
|||
120
Масянька
26.10.17
✎
16:43
|
(119) Дык, почему: в стандартных отчетах на начало месяца - 15, а мне запрос выдает 5? Да, и в dbf лежит 5.
|
|||
121
Aleksey
26.10.17
✎
16:47
|
(120) а начальные остатки по отчету + обороты совпадают с конечными?
|
|||
122
Aleksey
26.10.17
✎
16:48
|
(116)
Запрос.Подставлять("ДатаТА", НачМесяца(ПолучитьДатуТА())); |
|||
123
Масянька
26.10.17
✎
16:49
|
(121) Обороты (другим запросом) один в один. А вот остатки (этим запросом) - дают конечный (сегодняшний) остаток.
Вот и думаю - на фига мне обороты? |
|||
124
opus70
26.10.17
✎
17:00
|
самый простой способ поменять порядок регистров в 1с очень эффективно помогает
|
|||
125
Масянька
26.10.17
✎
17:05
|
(124) Хватит мне тут кидать! У меня и так голова прямоугольная уже :)
|
|||
126
Ёпрст
26.10.17
✎
17:35
|
(123) больше кода. Отсюда не видно чего ты там проверяешь
|
|||
127
Ёпрст
26.10.17
✎
17:35
|
и остаток на наччало<>остаток на конец
|
|||
128
Ёпрст
26.10.17
✎
17:35
|
если че.
|
|||
129
Ёпрст
26.10.17
✎
17:35
|
:)
|
|||
130
Ёпрст
26.10.17
✎
17:36
|
(120) а на конец месяца сколько ? :)
|
|||
131
Масянька
26.10.17
✎
17:40
|
(130) Вот этот запрос:
SELECT Остатки.Номенклатура As [Номенклатура :Справочник.Номенклатура], Остатки.Склад As [Склад :Справочник.Склады], Остатки.Количество As Количество FROM [РегистрИтоги.ОстаткиТМЦ] As Остатки WHERE Остатки.PERIOD = '20171001' And Остатки.Количество > 0 GROUP BY Остатки.Номенклатура, Остатки.Склад -- Остатки.Номенклатура ORDER BY Остатки.Номенклатура в консоли показывает тек. остаток. |
|||
132
Ёпрст
26.10.17
✎
17:45
|
(131) And Остатки.Количество > 0 это лишнее
|
|||
133
Ёпрст
26.10.17
✎
17:46
|
ну и
SUM(Остатки.Количество) Количество |
|||
134
Масянька
26.10.17
✎
17:46
|
(132) А без этого пустые выводит.
Ну, дык, зачем обороты-то? |
|||
135
Изучаю1С8
26.10.17
✎
17:46
|
А чего 1cqlite по дефолту не на ТА остатки показывает если дату не указывать?
|
|||
136
Ёпрст
26.10.17
✎
17:47
|
Жалко, что 1sqlite не ругается на неверный синтаксис, как t-sql или fox
|
|||
137
Ёпрст
26.10.17
✎
17:47
|
(135) конечно нет
|
|||
138
Масянька
26.10.17
✎
17:47
|
(133) Без разницы - тоже самое.
(136) А что неправильно? |
|||
139
Изучаю1С8
26.10.17
✎
17:47
|
Вообще прямойзапрос класс бы уже освоила там синтаксис что для дфб что для скуля один
|
|||
140
Ёпрст
26.10.17
✎
17:48
|
(134) че ?
|
|||
141
Изучаю1С8
26.10.17
✎
17:48
|
и мануал есть нормальный
|
|||
142
Масянька
26.10.17
✎
17:50
|
(141) Кинь мануалом.
|
|||
143
Масянька
26.10.17
✎
17:51
|
(140) То! Если убрать - выводит пустые кол-ва по складу (другому).
|
|||
144
Ёпрст
26.10.17
✎
17:52
|
(138) нет агрегатной функции к числовым полям , которые есть в селект листе и которых нет в указании в group by
|
|||
145
Изучаю1С8
26.10.17
✎
17:52
|
||||
146
Изучаю1С8
26.10.17
✎
17:53
|
||||
147
Масянька
26.10.17
✎
17:54
|
(145) Спасибо. С dbf будет работать?
|
|||
148
Изучаю1С8
26.10.17
✎
17:54
|
(147) да также через лайт, но синтаксис одинаковый
|
|||
149
Ёпрст
26.10.17
✎
17:54
|
Биомать, а ?
SELECT Остатки.Номенклатура As [Номенклатура :Справочник.Номенклатура], Остатки.Склад As [Склад :Справочник.Склады], sum(Остатки.Количество) As Количество FROM [РегистрИтоги.ОстаткиТМЦ] As Остатки WHERE Остатки.PERIOD = :НачПериод GROUP BY Остатки.Номенклатура, Остатки.Склад ..... мд = СоздатьОбъект("MetaDataWork"); НачПериод = мд.ПолучитьНачПериода(НачДата);//начало периода Запрос.Подставлять("НачПериод",НачПериод); |
|||
150
Ёпрст
26.10.17
✎
17:55
|
Если че, класс тебе не поможет.
|
|||
151
Ёпрст
26.10.17
✎
17:55
|
Всё равно, что доверить мотоцикл человеку, который на велосипеде не умеет ездить
|
|||
152
Изучаю1С8
26.10.17
✎
17:56
|
Класс более универсальный, запросы почти как на 1С8.
|
|||
153
Изучаю1С8
26.10.17
✎
17:56
|
Или базу на скуль потом перенесет, запросы переписывать придется? а так все будет работать за редким исключением.
|
|||
154
Масянька
26.10.17
✎
17:56
|
(149) Я в консоли ковыряю.
(150) Почему? (151) Ой, можно подумать, что ты ни разу с велика не падал. |
|||
155
Изучаю1С8
26.10.17
✎
17:57
|
Только поставщик поменяется.
|
|||
156
Масянька
26.10.17
✎
17:57
|
(153) Скуль платный. Начальство не ведется.
|
|||
157
Ёпрст
26.10.17
✎
17:57
|
Если че, в (149) - это останки на ТА, если НачДата в одной периодичности с ТА
|
|||
158
Изучаю1С8
26.10.17
✎
17:58
|
(156) Есть бесплатные версии.
|
|||
159
Масянька
26.10.17
✎
17:58
|
(158) Например...
|
|||
160
Изучаю1С8
26.10.17
✎
17:59
|
(159) SQL Express ограничение 10 гигов
|
|||
161
Изучаю1С8
26.10.17
✎
18:01
|
Хотя там вроде 1 гиг предел по памяти еще, может не вариант для тебя.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |