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