Прямая запись справочников 1С MS SQL

Форум 1С: Одинэс.Ру

Найти!

Прямая запись справочников 1С MS SQL

Один дурак
13.07.2009 - 03:30
Ищу инструкции по прямой записи правочников непосредственно в таблицы MS SQL, минуя движок V7.  Наверняка многим приходилось "обманывать" 1С и делать прямые инзерты в таблицы. Мне необходимо, чтоб все выглядело так, как будто элемент справочника введен из оболочки 1С, т.е. был правильно сформирован UID и так далее. Необходимо также, чтоб вставки "извне" движка не блокировали работу пользователей, а позволяли работать папраллельно интерактивным юзерам, и некому сервису, который и будет заниматься пополнением справочника со стороны.
 
Натолкните, плиз на такие инструкции или примеры.
Заранее благодарен  
К списку тем 1 > К списку форумов

Re: Прямая запись справочников 1С MS SQL

Дятeл
1 - 13.07.2009 - 03:41
Зачем, если не секрет?

Re: Прямая запись справочников 1С MS SQL

USSR
2 - 13.07.2009 - 03:47
Натолкнуть можно, но как бы не подтолкнуть. Что за сервис, откуда справочники? Подкачивай их штатными средствами и по крайне мере одной болезни избежишь (геморроя). Справочники редко бывают "плоскими", поэтому создание одного элемента - это не просто вставка записи в одну таблицу.
Ты видимо не 1с-ник
А так Т-SQL, что еще то? INSERT, SELECT MAX(), 10->36, 36->10.  

Re: Прямая запись справочников 1С MS SQL

Один дурак
3 - 13.07.2009 - 03:47
(1)Есть необходимость. На моем предприятии справочник Контрагенты, договоры первично вводятсяя в совершенно отдельной от 1С системе. В настоящий момент я пользуюсь загрузкой, запускаемой из 1С. Это скучно и неинтересно.

Re: Прямая запись справочников 1С MS SQL

Дятeл
4 - 13.07.2009 - 03:50
скучно и не интересно...
будет весело :)

Re: Прямая запись справочников 1С MS SQL

Один дурак
5 - 13.07.2009 - 03:51
(USSR)Я видимо 1С-ник. с очень большим стажем. До такой степени большим, что на желтые заставки уже надоело смотреть. По поводу "накосячить" вы предупреждаете совершенно справедливо. Не хочу косячить, поэтому ищу серьезную доку. Можно конечно же подглядеть действия движка в профайлере. Логика там угадывается, но ведь ктонибудь давно уже разложил все по полочкам. Именно такой труд я и ищу

Re: Прямая запись справочников 1С MS SQL

USSR
6 - 13.07.2009 - 04:06
(5)я не вижу необходимости веселья при загрузке контрагентов. Как раз сейчас все сделано правильно.Можно отменить заставку при загрузке 1С. Я очень не советую Вам делать то, что Вы задумали. В данном случае это будет еще и малограмотно. Элемент справочника штатными средствами пишется очень быстро и никого не тормозит.
Если очень чешется, то пойдите на форумы 1С++ и SQL.RU. А заодно и прикупите вазелина

Re: Прямая запись справочников 1С MS SQL

Один дурак
7 - 13.07.2009 - 04:21
(6) У меня и не было желания как-то особенно радоваться загружая контрагентов. В данный момент я пытаюсь оценить оставить ли мне все как есть - 7 лет загрузка идет штатными средствами 1С (обработкой под управлением движка V7 через ADODB). Единственное, что мне не нравится - это тот момент, что даже если я вообще все сделаю автоматом на уровне движка, все равно будет нужно держать или запускать по времени "дежурную" сессию 1С. Еще раз уверяю Вас, что ни в коем случае не стану пороть ерунду, не будучи тысячу раз убежден, что это не нанесет вреда системе
 
Спасибо за советы и за вазелин

Re: Прямая запись справочников 1С MS SQL

Reaper
8 - 13.07.2009 - 05:26
0-Один дурак > Мужик, ты не обижайся, но идея бредовая. Я тебе конечно прямо тут и сейчас скажу в какую сторону копать до обеда, но учти, что ребята про вазелин тебе не со зла говорили, а искренне пытались облегчить страдания смазкой органа, который пострадает.
 
Итак, начнем с того, что все операции с базой, который производит движок не генерируются "на лету" а вполне себе доступно записаны в хранимых процедурах MS SQL. Таким образом все, что тебе надо для избавления от сессии 1С - это в правильном порядке с правильными параметрами вызвать несколько хранимых процедур. При желании можно вообще процедуры переработать. Какие за что отвечают - тебе подскажут отладчик+профайлер. Успехов тебе конечно, но будь осторожен, и почитай учебники с сайта 1С++ - там подробно описывается структура таблиц. Так как ты оперируешь справочником "Контрагенты" - наверняка придется писать и периодику и, возможно, длинные строки, что уже является банхаммером. Да еще и подчиненные справочники. Пилите, Шура. Если вдруг что получится - пишите, нам будет интересно узнать о ваших успехах.

Re: Прямая запись справочников 1С MS SQL

USSR
9 - 13.07.2009 - 05:34
(8)+1 в справочник "Контрагенты" есть еще и строки неограниченной длины :)

Re: Прямая запись справочников 1С MS SQL

VZ
10 - 13.07.2009 - 06:42
Что, формирование ID и контроль уникальности возложен на хранимые процедуры? Правда-правда?

Re: Прямая запись справочников 1С MS SQL

Один дурак
11 - 13.07.2009 - 06:51
Еще раз спасибо.
Мне вполне достаточно Ваших мнений, чтоб принять решение в пользу того или иного варианта

Re: Прямая запись справочников 1С MS SQL

Reaper
12 - 13.07.2009 - 07:17
10-VZ > У меня ни одной базы под рукой, а что, я напутал? Ну так в чем проблема - процедура возвращающая максимальный идентификатор есть 100%. Берем его, переводим из системы с основанием 35 в привычную десятичную, плюсуем 1, переводим назад под основание 35 и получаем следующий идентификатор.

Re: Прямая запись справочников 1С MS SQL

Uho
13 - 13.07.2009 - 07:18
(0) часто ли контры обновляются? Может при открытии формы списка/формы выбора обновлять?

Re: Прямая запись справочников 1С MS SQL

VZ
14 - 13.07.2009 - 07:51
(12) Да, собственно, я просто не уверен, что движок отдал это на откуп хранимой процедуре ;) Ведь тот же движок работает и с ДБФ-базой, где никакоих хранимых процедур нет вообще. В существовании двух разных механизмов верится с трудом ;)
Потому "правда-правда?" есть не ирония, а недоверчивость :))

Re: Прямая запись справочников 1С MS SQL

USSR
15 - 13.07.2009 - 08:02
Именно так в хранимках и написано: SELECT MAX(...) Только система 36-ричная :))
(14) Движок все-таки научен понимать формат базы )

Re: Прямая запись справочников 1С MS SQL

Reaper
16 - 13.07.2009 - 08:06
15-USSR > звиняюсь, потерял единичку - давненько я на TSQL стишков не писал ;) опыт конечно не пропьешь, но практики не хватает...

Re: Прямая запись справочников 1С MS SQL

Reaper
17 - 13.07.2009 - 08:08
Надо ветку кстати запрятать подальше от антикризисных одноэснегов. А то ведь взяли и открыли страшный секрет формирования идентификаторов. Все равно, что гранату посреди улицы оставить...

Re: Прямая запись справочников 1С MS SQL

Один дурак
18 - 13.07.2009 - 08:43
Не такой уэж это и секрет. Стоит только спросить у Гугля.
Формированием нового UID целиком занимается платформа V7/

Re: Прямая запись справочников 1С MS SQL

VZ
19 - 13.07.2009 - 08:59
(18) Не забывай: selectmax должен быть применен внутри транзакции записи. Иначе получишь неуникальность id...
Все же лучше отдать запись самому движку, благо он может быть вызван как сом-сервер.
Но слово "интересно" применительно к чужому имуществу ответственные люди не применяют...

Re: Прямая запись справочников 1С MS SQL

Ёпрст
20 - 13.07.2009 - 09:18
вот...для раздумий...
http://www.1cpp.ru/forum/YaBB.pl?num=1242320801/0
можно прочитать начало и конец
:)

Re: Прямая запись справочников 1С MS SQL

USSR
21 - 13.07.2009 - 10:35
(20)Я осилил только начало. Я недавно, в апреле загружал из фоксовой задачи 60000 наименований, естественно и единицы и все стальное. Цены импортировал отдельной обработкой. Никаких проблем, штатным образом, но сначала из DBF тянул запросами
В другой задаче, пришлось отказаться от прямой вставки в DBF из-за проблемы индексов с русскими буквами. Под SQL все отлично

Re: Прямая запись справочников 1С MS SQL

VZ
22 - 13.07.2009 - 10:42
(20, 21) В ответе #10 полный результат. Что, вообще-то следовало ожидать, глядя на его код.
К списку тем 1 > К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
© 2009 Форум 1С: Одинэс.Ру
В основу сайта был положен архив форума «Территория 1С»