Имя: Пароль:
1C
1C 7.7
v7: Прямой запрос SQL из Delphi к данным базы 1С 7.7
,
0 Vitekkkk
 
12.07.12
10:46
Добрый день!
Помогите пожалуйста с такой проблемой:
Не могу составить запрос к таблицам MS SQL2005 базы 1C 7.7

Суть запроса такова:
Нужно по выбранному пользователем ВидуНоменклатуры Собрать остатки номенклатуры на текущую Дату.
Т.е. из РегистрМПЗ нужно как то вытащить данные актуальные только на текущую дату.
Помогите пожалуйста!!!

В файле 1Cv7.DDS посмотрел какие таблицы содержат необходимые мне данные:

1. Справочник Номенклатура - SC4089
#-----Fields-------
# Name |Descr |Type|Length|Precision
F=ROW_ID |Row ID |I |0 |0
F=ID |ID object |C |9 |0
F=PARENTID |ID parent obj |C |9 |0
F=CODE |object code |C |6 |0
F=DESCR |object description |C |50 |0
F=ISFOLDER |Is Line - Folder |Y |0 |0
F=ISMARK |Object is Marked for|L |0 |0
F=VERSTAMP |Version stamp |I |0 |0
F=SP43594 |(P)БазоваяНоменклату|C |9 |0
F=SP4095 |(P)Валюта |C |9 |0
F=SP41421 |(P)ВидДолга |C |9 |0
F=SP17067 |(P)ВидНоменклатуры |C |9 |0
F=SP47846 |(P)ВидТары |C |9 |0
F=SP46126 |(P)ВключатьВПрайсЛис|N |1 |0
F=SP15056 |(P)ГТД |C |9 |0
F=SP4093 |(P)ЕдиницаИзмерения |C |9 |0
F=SP55847 |(P)ЕдиницаИзмеренияП|C |9 |0
F=SP43595 |(P)ИспользоватьБазов|N |1 |0
F=SP19715 |(P)МинОстаток |N |13 |3
F=SP18977 |(P)ОсновнаяЕдиницаИз|C |9 |0
F=SP41346 |(P)ОсновноеНазначени|C |9 |0
F=SP45137 |(P)ПризнакВТ |N |1 |0
F=SP41345 |(P)ПризнакПередачиВЭ|N |1 |0
F=SP43038 |(P)СегментАссортимен|C |9 |0
F=SP14847 |(P)СтранаПроисхожден|C |30 |0
F=SP41344 |(P)СчетУчета |C |9 |0
F=SP41377 |(P)ТипНоменклатуры |C |9 |0
F=SP51022 |(P)Утиль |N |1 |0
F=SP55443 |(P)УчетВШт |N |1 |0
F=SP42975 |(P)ШтрихКод |C |13 |0
F=SP55444 |(P)Оболочка |C |9 |0
F=SP55445 |(P)СкидкаНаПотерюВес|N |1 |0
F=SP55446 |(P)Комитент |C |9 |0
F=SP55447 |(P)ДоговорКомитента |C |9 |0
F=SP55448 |(P)СрокИзготовления |N |5 |0
F=SP55721 |(P)КлассификаторНоме|C |9 |0
F=SP55848 |(P)ЧасВыработки |C |10 |0
F=SP55849 |(P)КодОКП |C |25 |0
F=SP55850 |(P)УсловияХранения |C |20 |0
F=SP56336 |(P)МассоваяДоляБелка|C |20 |0
F=SP56337 |(P)МассоваяДоляЖира |C |20 |0
F=SP56338 |(P)МассоваяДоляХлори|C |20 |0
F=SP56339 |(P)ВидПотребитТары |C |9 |0
F=SP56371 |(P)ШифрВФоксе |C |21 |0
F=SP56372 |(P)ПозицияПоПрейскур|N |5 |0
F=SP56879 |(P)КлассификаторНоме|C |9 |0
F=SP56895 |(P)ЯвляетсяАналогомП|N |1 |0
F=SP56920 |(P)ВидЗатратРазделка|C |9 |0
F=SP56921 |(P)ВНормахУказываютс|N |1 |0
F=SP56922 |(P)НенормируемаяЗатр|N |1 |0
F=SP56896 |(P)_Идентификатор |C |40 |0
F=SP56827 |(P)КоэфВкг |N |9 |5
F=SP58149 |(P)Замороженное |N |1 |0
F=SP58150 |(P)ВесЕдТранспортной|N |11 |5
F=SP58173 |(P)КоэфВуб |N |6 |5
F=SP58668 |(P)ВидНоменклатурыДл|C |9 |0
F=SP20247 |(P)Комментарий |M |0 |0
F=SP4090 |(P)ПолнНаименование |M |0 |0
F=SP55722 |(P)ТекстЛистаВкладыш|M |0 |0

2. Справочник ВидыНоменклатуры - SC16718
#-----Fields-------
# Name |Descr |Type|Length|Precision
F=ROW_ID |Row ID |I |0 |0
F=ID |ID object |C |9 |0
F=PARENTID |ID parent obj |C |9 |0
F=CODE |object code |C |7 |0
F=DESCR |object description |C |60 |0
F=ISFOLDER |Is Line - Folder |Y |0 |0
F=ISMARK |Object is Marked for|L |0 |0
F=VERSTAMP |Version stamp |I |0 |0
F=SP50893 |(P)РаспределятьКосве|C |9 |0

3. Регистр УчетМПЗ - RG3824
#-----Fields-------
# Name |Descr |Type|Length|Precision
F=PERIOD |Period Registr |D |0 |0
F=SP41379 |(P)ТипНоменклатуры |C |9 |0
F=SP3990 |(P)Номенклатура |C |9 |0
F=SP3826 |(P)МестоХранения |C |9 |0
F=SP3827 |(P)Количество |N |14 |3
F=SP55695 |(P)КоличествоВШт |N |14 |3
F=SP41329 |(P)Сумма |N |14 |2
1 Ёпрст
 
12.07.12
10:54
select

рег.SP3990
sum(рег.SP3827)
FROM
  RG3824 рег
WHERE
 period  = :ВыбДата
2 Ёпрст
 
12.07.12
10:55
зпт там в селект + дату в нужном формате..
+ лефтджоин к справочнику МПЦ для взятия descr у номенклатуры..
3 vah1
 
12.07.12
10:55
долго думал?
ЗЫ о потерянном времени
4 viktor_vv
 
12.07.12
10:58
(2)+ ВыбДата начало месяца.
5 Ёпрст
 
12.07.12
10:59
(4) ошибаешься.
ВыбДата - последнее начало периодичности хранения останков. И далеко не у всех период хранения останков - месяц.
6 viktor_vv
 
12.07.12
11:02
(5) Ну это да, привык таки к месяцу. Просто он мог туда пихать свою текущую дату.
7 Vitekkkk
 
12.07.12
11:50
Если мне нужны остатки на сегодня допустим. Мне устанавливать не Текущую дату? а какую?
8 Vitekkkk
 
12.07.12
11:50
Начало дня?
9 Vitekkkk
 
12.07.12
11:53
Ёпрст4 как подскажи пожалуйста как мне перевести Date в формат '00.00.00 0:00:00'
10 ДенисЧ
 
12.07.12
11:55
(9) кто на дельфях пишет - ты или Ёпрст? :-)
Ищи в справке форматирование дат...
11 Ёпрст
 
12.07.12
12:08
например так:
Convert(DateTime,'20120701',112)
Закон Брукера: Даже маленькая практика стоит большой теории.