Прямой запрос из 1с 8.3 к 1с 7.7 sql

1. olo_lo4 11.11.15 23:13 Сейчас в теме
Есть большое количество баз 7.7, из 8-ки 1-м прямым запросом получаю консолидированные данные из этих баз. Для получения имен таблиц и реквизитов использую сейчас распарсивание файлов DDS.
К сожалению не все реквизиты есть в dds: например, константы, перечисления, пер. реквизиты справочников.

Есть ли какой-то способ распарсить из 1с 8 MD файлы 1с 7.7? или может есть какая-то компонента, типа 1с++, работающая из 1с 8?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. DenisCh 12.11.15 08:42 Сейчас в теме
(1) olo_lo4,
не все реквизиты есть в dds: например, константы



#==TABLE no 2 : Константы
# Name |Descr |Type[A/S/U]|DBTableName|ReUsable
T=1SCONST |Константы |A |1SCONST |1
#-----Fields-------
# Name |Descr |Type|Length|Precision
F=OBJID |ID obj(0-cons ) |C |9 |0
F=ID |ID parameter |C |4 |0
F=DATE |Fix date |D |8 |0
F=PARTNO |no of part |N |3 |0
F=VALUE |valume |C |23 |0
F=DOCID |ID Document |C |9 |0
F=TIME |Time |C |6 |0
F=ACTNO |Action No |N |6 |0
F=LINENO |LineNo |N |4 |0
F=TVALUE | |C |3 |0
Показать



У меня неправильная 7ка?
7. ditp 91 12.11.15 09:19 Сейчас в теме
(4) DenisCh, полагаю, имелось ввиду получение айди конкретной константы/периодического реквизита и т.д.
Из того, что привели вы, никак не понятно, как построить запрос, что бы получить значение, например, константы "ЕдиновременнаяВыплатаБеременным".

(1) Я для аналогичных целей составлял в свое время таблицу вида
база - значение (константа, перечисление, и т.д.) - ид
и предварительно автоматически заполнял ее из 1С 77 с помощью чего то типа

ЗагрузитьВнешнююКомпоненту(каталогиб()+"1CPP.dll");
mdw=СоздатьОбъект("metadatawork");
Для ФФ = 1 По Метаданные.Константа() Цикл
	Сообщить(
		"Константа."+Метаданные.Константа(ФФ).Идентификатор+" - "+mdw.GetMetaDataId(Метаданные.Константа(ФФ))
	);
КонецЦикла;
Для ФФ = 1 По Метаданные.Перечисление() Цикл
	Для ЯЯ = 1 По Метаданные.Перечисление(ФФ).Значение() Цикл
		Сообщить(
			"Перечисление."+Метаданные.Перечисление(ФФ).Идентификатор+"."+Метаданные.Перечисление(ФФ).Значение(ЯЯ)+" - "+mdw.GetMetaDataId(Метаданные.Перечисление(ФФ).Значение(ЯЯ))
		);
	КонецЦикла;
КонецЦикла;
КонецПроцедуры
Показать
8. 1yh1 17.11.15 09:09 Сейчас в теме
(1) olo_lo4, парсить DDS холопотно, лучше view создать как ADirks советует,
вот обработка создаёт VIEW для 1с77 // (с) pvase 2007 http://metaprog.co.ua
С_ справочник
Д_ Документ
ДС ДокументСтроки
Р_ Регистр
РИ_ РегистрИтоги
Прикрепленные файлы:
CreateViewMY.ert
talych; dvk09; ditp; +3 Ответить
9. dvk09 2 18.11.15 11:00 Сейчас в теме
(8) 1yh1, Спасибо. Почитаем.
2. dvk09 2 12.11.15 03:55 Сейчас в теме
А что мешает в скуле сделать свою отдельную таблицу, и в нее заносить (Добавлять, обновлять) все эти данные из 7-чных баз?
Тогда и парсить не придется... Джойнить только. С константами я поступил именно так.
3. ADirks 186 12.11.15 07:26 Сейчас в теме
Для табличек сделай вьюшки с русскими именами, которые генерятся автоматически при первом старте 1С (7.7).
Для перечислений и констант можно сделать функции. Для периодики тоже можно функции попробовать.
После этого можно писать запросы на нормальном русском языке.

пример вьюшки для материалов:

CRE ATE VIEW спрМатериалы AS
SEL ECT
ROW_ID ROW_ID,
ID ID,
IsMark IsMark,
IsFolder IsFolder,
ParentID ParentID,
Code Code,
Code Код,
Descr Descr,
RTrim(Descr) Наименование,
VerStamp VerStamp,
'ID,11,'+' 1EH'+ID РасшифровкаДляОтчетов,
Descr+ID ПорядокСортировки,
SP19976 Артикул,
SP2824 ЕдиницаИзмерения,
SP19977 МинОстаток,
SP18976 ОсновнаяЕдиницаИзмерения,
SP14756 ПолнНаименование,
SP15026 Стоимость,
SP2794 Субсчет,
...
FR OM SC1817 WITH (NoLock)
1yh1; Зеленоград; +2 Ответить
5. dvk09 2 12.11.15 08:53 Сейчас в теме
Сори, я так поступил со значениями перечислений...
6. dvk09 2 12.11.15 08:55 Сейчас в теме
Писал обработку по отправлению СМС по номерам телефонов клиентов из нескольких баз одновременно...
Попытка сэкономить деньги и нервы))
В общем удалась))
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот