Как писать напрямую в таблицы 1С #600236


#0 by sergdi
SQL версия 8.2 Есть ли такая возможность - писать напрямую в таблицы 1С ? Где можно посмотреть ? Если делать через COM соединение то иногда транзакция длится в 1С очень долго, во внешней программе транзакция отменяется по таймауту и происходит рассогласование данных.
#1 by Господин ПЖ
лучше не рисковать...
#2 by rotting
от все так говорят, может кто-то напишет как это сделать???
#3 by Fragster
insert into _Reference34...
#4 by Fragster
а вообще - зачем ты так делаешь? не проще ли посмотреть, почему в 1с "очень долго"?
#5 by Serginio1
Смотри ПолучитьСтруктуруХраненияБазыДанных
#6 by ptrtss
Дык долго длится оно наверное не просто так, а вычисляет что-то, думает
#7 by Stim
автомобиль медленно едет. как крутить двигатель напрямую, через педали?
#8 by Господин ПЖ
Insert... читайте BOL там все есть
#9 by ptrtss
>> Смотри ПолучитьСтруктуруХраненияБазыДанных Да, глянь, так ты быстрее выбросишь эту мысль из головы
#10 by ботаникус
проблема будет сгенерировать первичный ключ (читай ссылку). или не проблема?
#11 by Fragster
а в чем проблема?склеить тип и попереставлять буковки в типовом GUID?
#12 by КМ155
что-то мешает запустить профайлер и увидеть как ?
#13 by sergdi
Почему долго неясно. Ошибка редко возникает. А кто-нибудь делал реально напрямую.
#14 by ботаникус
а как попереставлять, чтобы не попасть в существующий?
#15 by ComPAS
использовать стандартные средства SQL select NEWID Создает уникальное значение типа uniqueidentifier.
#16 by Fragster
делаешь правильный гуид средствами языка, в котором висишь, проверяешь, есть ли такой,, если есть - делаешь следующий и т.д. средства для генерации гуида есть почти везде
#17 by Serginio1
Реально делаю но на регистры сведений справочники
#18 by Serginio1
Например
#19 by Fragster
напрямую читал только, ибо нефиг. прямая запись не спасет от того, что в БД есть свои "триггеры", т.е. алгоритмы, вызываемые при записи, и при прямой записи они не будут вызваны, соответственно, привести может к труднообъяснимым глюкам
#20 by Serginio1
#21 by ComPAS
чтобы фигня всякая не писалась тут, о которой ты понятия не имеешь, и не вводить в заблуждение остальных, запусти профайлер на базу и посмотри что происходит со скулем при любых твоих действиях с базой
#22 by Fragster
все возможные случаи ты никогда не рассмотришь. Например в конфигурации при ком соединении задается параметр сеанса, который проверяется в ПриЗаписи и влияет на результат... или, например, дата запрета редактирования, которая при прямой записи документа/регистра не будет проверяться и т.п.
#23 by NcSteel
Так нельзя делать !
#24 by ComPAS
отделяй котлеты от мух. если ты пишешь напрямую в БД, то будь любезен и рамки очерти своих действий.
#25 by Fragster
в общем случае невозможно подготовить и проиграть все тест кейсы, по этому я против написания напрямую в БД, тем более, что преимуществ по скорости, если копипастить запрос из профайлера, не будет (издержки на ком прослойку незначительны, как правило)
#26 by ComPAS
если нет желания, то согласен. у нормального человека его и быть не должно, иначе бы он работал в отделе разработки 1С :) а выигрыш по скорости и нагрузке будет обязательно, если оптимизировать под свою конкретную задачу, которая, видимо, возникла у не на пустом месте. в некоторых, очень частных случаях, это оправдано и очень редко - единственно приемлимый вариант. и вообще, по жизни - всё возможно.
#27 by NcSteel
Не видел еще задач где требуется такая оптимизация !
#28 by МихаилМ
только учтите за историю существования упп 1.2 менялись 3 раза имена таблиц и раз 20 имена колонок проще грамотно написать обмен: минимизировать блокировки, уменьшить размер записываемых данных в 1 транзакции , запись без валидации , запись раздельно фактов и артифактов, запись в буфер с последующей обработкой. нестандартный доступ  - крайняя мера. тк возратают риски -> стоимость владения есть куча методов в рамках платформы. так что сначала примените методы ускорения опять же, если Вас стремительно переедет каток, кто будет поддерживать сей механизм.
#29 by NcSteel
Обычно в сторону прямых запросов идут либо авантюристы , либо дурачье. Методов оптимизации достаточно и без прямых запросов.
#30 by France
ващет, наскоко помню,  в последних версиях 1Сы есть механизм доступа до любых баз...
#31 by ComPAS
не будь так категоричен. если ты не видел ёжика, это не значит, что его не существует.
#32 by France
если статистику поднимем, то поймем что большая часть адекватных специалистов в й с являюся дурачьем... либо авантюристами..
#33 by NcSteel
Видел очень многое. И по Миллион документов в месяц. И базы по 500 гигов.
#34 by NcSteel
Сколько видел грамотных спецов (топ уровня) они не являлись не такие.
#35 by NcSteel
ТОлько на чтение. Причем читать базы 1с запрещено лицензией
#36 by Fragster
то, что лицензия противоречит ГК, 1с не смущает?
#37 by France
чо?
#38 by NcSteel
Перевод: Сколько видел грамотных спецов (топ уровня) они с головой дружен и избегают авантюр.
#39 by NcSteel
Я не юрист, но с лицензией покупая 1с соглашаешься. Так что будь любезен.
#40 by n koretsky
бэкап сделал?
#41 by Feanor
бэкапы для трусов!
#42 by Gamm
Постоянно использую прямые запросы к БД для копирования, удаления данных. Без этого первоначальное создание образа занимает сутки вместо 10 минут. Пожалуй готов быть авантюристом и дурачьем с такими результатами. Лицензия 1С запрещает доступ без использования платформы, но можно запускать стандартные механизмы ADO из под сеанса 1С - тогда с лицензией все в порядке.
#43 by NcSteel
Образ создается средствами скуля - путем копирования базы . Причем тут прямые запросы не понятно .
#44 by NcSteel
2. подключаться через ADO к база 1с тоже запрещено лицензией. Данная тема была хорошо обсосана на партнерском форуме неким Гилевым.
#45 by Serginio1
Ну ну. Ты сильно заблуждаешься. Когда нужно обновление миллиона записей одновременно стандартные средства работают очень долго. Вообще большой минус в 1С при работе с набором регистров то что не делается Merge а сначало удаление а затем запись. И затраты на создание индексов и удаление сильно все тормозит. А по одной записи обновлять ооочень долго.
#46 by Serg_1960
Я делал однажды. Не от хорошей жизни пришлось. Может найду сейчас эту ветку...
#47 by sda553
мне пришлось научиться. Когда вначале были базы с одинаковым справочником товаров в нескольких филиалах, а потом вдруг решили делать обмен документами и понадобилось этот справочник объединить за всю историю
#48 by Irbis
А как писать криво?
#49 by sda553
В о т Т ак                как           то!
#50 by Serg_1960
Посты 10,13 и 15 из
#51 by aleks-id
go
#52 by ВопросыЗадающий
Добрый вечер. Есть отчет в СКД. Как мне вывести доп. колонку с данными в него, которых нет в запросе. Например, есть сумма, также итог по колонке с этой суммой. Мне требуется выдать еще одну колонку, равную итоговой колонке, но результат делится на количество колонок запроса. Причем разместить эту колонку мне нужно не как самую последнюю, а как вторую, то есть следующую сразу за итоговой.
#53 by ВопросыЗадающий
сорри, не туда
#54 by NcSteel
Переписывал 15 миллионов  записей и прошло все без особых проблем.
#55 by Адинэснег
Пью кофе утром. Не просыпаюсь. Как ставить его в вену? В каких пропорциях и с чем его разводить? Поделитесь опытом
#56 by NcSteel
Без сахара пей.
#57 by Serginio1
И за сколько. У меня 1 миллион при апдейтах порядка 2-4 минут. Если много инсертов и делетэ то от 10 до 30. И сколько же ты свои 15 миллионов обновлял средствами 1с?
#58 by ComPAS
видимо, весьма крут)) в таком случае должен знать, что такое булк инсерт (который просто отсутствует в 1С) и каким образом эффективно (ключевое слово - эффективно) решать задачи онлайн-репликации в базу 1С по плохим каналам связи потоковых данных с распределённой сети источников, например, с оборудования. ну, и, соответственно, одно из требований - использование модели полного бэкапирования базы sql (наверняка знаешь в чём её отличие?). ты же решал такие нетиповые задачи интеграции и кастомизации? :) зы: "как-нибудь" мы все умеем :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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