таблица регистра 1С77 как внешний источник данных #767582


#0 by woha
Помогите, пожалуйста разобраться. Можно ли подключив таблицу 1с77 регистра (остатки) как внешний источник, получать по нему оперативные остатки (без движений)? Если да, то подскажите как? Ловил профайлером запрос 1С77 по остаткам, но не могу разобраться с периодом ТА. Спасибо.
#1 by Ёпрст
просто берешь останки из таблички RG по максимальному периоду. Всё собственна.
#2 by ДенисЧ
если оперативные, то никакой период не нужен. просто из rg дёргай
#3 by hunter76
прямой запрос из 7.7 по регистрам + в SQL сделать функцию для получения на основании этого запроса остатков и / или движений.
#4 by Ёпрст
на вот, ознакомься, там и запросы готовые имеются ниже .
#5 by Zhuravlik
#6 by woha
Прямой юзаю, но понимаю что я не могу потом сопоставить остатки полученные запросом с товарами, которые тоже использую как внешний источник данных.
#7 by woha
Спасибо буду смотреть.
#8 by woha
Спасибо буду смотреть.
#9 by FN
сделай вьюху сразу со всеми сопоставлениями
#10 by Serginio1
#11 by woha
Спасибо, это обязательно попробую. Как по мне, то это самый простой вариант.
#12 by Mikeware
так он такой и есть. самый простой и самый быстрый
#13 by Mikeware
+ хотя если кто-нибудь полезет в будущее - можешь и огрести косяков
#14 by woha
будущее не страшно.
#15 by Mikeware
остатки из будущего будут...
#16 by woha
можно сделать одним запросом по группе ТМЦ или нужно в цикле по каждому ТМЦ отдельно?
#17 by woha
в моем варианте это даже хорошо.
#18 by Ёпрст
да всё одним запросом
#19 by Ёпрст
в rg уже валяются готовые итоги по всем наборам измерений
#20 by woha
Спрашиваю не случайно, по тому как профайлер словил кучу однотипных запросов (по каждому товару отдельно) когда выполнил стандартный запрос 1С по остаткам на дату ТА
#21 by woha
не могу понять как использовать функцию максимум чтобы по максимальному периоду вытянуть остатки
#22 by Ёпрст
select * from rg123 where period = (select max(period) from rg123)
#23 by Mikeware
ну ему еще (наверное) нужно будет соединение с таблицей номенклатуры (а то и складов) - у него наверняка синхронизация по кодам... соответсвия между названиями ресурсов-зимерений в пофигураторе, и таблицами - смотри в файле dds
#24 by Ёпрст
это ужо детали :)
#25 by woha
я не использую прямы запросы. пробую через внешние источники данных.
#26 by woha
|    Период"; 1С так не хочет. ругается на второй ВЫБРАТЬ.
#27 by Ёпрст
ВЫБРАТЬ МАКСИМУМ(Остатки.Период) ИЗ ВнешнийИсточникДанных.Торговля77.Таблица.РегистрОстатки КАК Остатки работатет ? Только, как ты потом будешь синхрить со снеговиком ? По кодам ?
#28 by woha
Вся база 1С8 не имеет ничего своего. Она живет за счет данных 1С77. Просто публикует это все через web.
#29 by woha
Так работает.
#30 by Ёпрст
ну помести это во временную, и потом пихай в условие запроса исходного, хз, как там внешние источники работают - не пользуюсь
#31 by woha
Сделал два запроса: в первом получаю период и передаю его во второй как параметр. Но странная штука получается, некоторые товары имеют по несколько записей с одним и тем же периодом но разными остатками.
#32 by Ёпрст
ну или так, работает ? |ГДЕ ну ясен пень, номенклатура то поди, не единственное измерение в регистре
#33 by woha
Огромное человеческое спасибо. Разобрался, правда это еще не все подводные камни.
#34 by Serginio1
Проще тогда уж использовать Asp.Net MVC А если хочешь на 8 то 1С++ и через рс.Отладка; получаешь текс запроса который и используешь
#35 by woha
С этим "А если хочешь на 8 то 1С++ и через рс.Отладка" уже возился не один день. проблема в том что оле 1С77 сохранить нельзя при каждом вызове сервера нужно делать новую инициализацию.
#36 by woha
"А если хочешь на 8 то 1С++ и через рс.Отладка;" - тогда уж лучше ToySQL правда не знаю можно ли его загрузить в 1С8 а так он без оле может подключиться к любой внешней базе 1С77 которая живет на MSSQL
#37 by Serginio1
Зачем тебе оле1С77? Через рс.Отладка ты получаешь текст запроса, который можешь использовать через ADO
#38 by Serginio1
Вернее ты можешь использовать и через внешние источник данных. Смыл в том, что ты получаешь нормальные аллиасы полей
#39 by woha
- я таким путем получил почти все что нужно.
#40 by Serginio1
Это все понятно. Кстати наткнулся на то, что Max(Период) не работал. Наши умельцы перекинули дату та на новый период, а затем вернули обратно static DateTime ПолучитДатуТА(System.Data.SqlClient.SqlConnection sqlClient)         {                 string ТекстЗапроса = @"SELECT CURDATE  FROM _1SSYSTEM (NOLOCK)";         }
#41 by woha
"SELECT CURDATE  FROM _1SSYSTEM (NOLOCK)" - в профайлере такой запрос частенько видел
#42 by woha
Всем спасибо. Остатки работают. С временной таблицей не получилось (пишет про разные источники) но это не страшно.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С