7.7 сознание сопротивляется

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем komrad, 3 ноя 2010.

  1. TopicStarter Overlay
    komrad
    Offline

    komrad

    Регистрация:
    3 ноя 2010
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Друзья, мое сознание сопротивляется. Некоторое время назад я создавал базы данных на Access и писал приложения для этих баз на Delphi.
    Код в приложении работает напрямую с таблицами базы, и опять же напрямую обращения идут к необходимым полям - тут все просто и понятно.
    Сейчас я имею 1С и базу на SQL Server 2005, с которыми я доселе не работал. И вот что не понятно: требуется создавать в 1С некие обработки. Например для работы со справочником должно использоваться обращение "Справочник.Покупатели".

    Напрашиваются вопросы:
    А как же сами таблицы физической базы? От нее на уровне разработки под 1С вообще можно абстрагироваться? Если это так - то понятна задача автоматизации и упрощения разработки проекта.

    Т.е. если нет задачи интеграции с другими базами, то программисту нет дела до реализации самой БД?

    Но если, предусмотрен экспот/импорт данных с другими БД, в ход вступают хранимые процедуры? При этом в конфигурации 1С уже установлено дополнение для взаимодействия с БД "Оптимум ДП" и процессы экспорта/импорта осуществляют хранимые процедуры, которые при установке этого самого дополнения прописались то ли в типовую конфигурацию, то ли в БД. В общем не могу понять, что откуда растет. Заранее благодарен.
  2. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Этим все сказано, теоретически, можно работать напрямую, это (если Вы работаете с 7.7.), даст прирост производительности, но это запрещено лицензионной политикой.
    В 8.1+ врят ли Вы получите вообще какой-нибудь прирост производительности работая на физическом уровне, но понимание структуры физических таблиц поможет Вам правильно расставлять индексы, строить запросы и т.д.
    ЗЫ При выходе 8.0 разработчики признались, что 7.7. не умеет работать с SQL сервером :). Для нее даже есть отдельный проект 1С++, который позволяет делать прямые запросы к БД.
  3. TopicStarter Overlay
    komrad
    Offline

    komrad

    Регистрация:
    3 ноя 2010
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Выходит, чтобы экспортировать данные из 1С будет вызвана хранимая процедура, находящаяся в БД сервера, которую создать без понимания физической реализации БД невозможно? Т.е. 1С 7.7 вызовет процедуру, а что там будет твориться это не компетенция 1С 7.7?
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Можете использовать щтатные методы, но вам никто не запрещает использовать и прямые запросы на языке SQL
  5. TopicStarter Overlay
    komrad
    Offline

    komrad

    Регистрация:
    3 ноя 2010
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Чуть конкретнее. Разбираю листинг модуля:
    Создается набор записей -

    DECLARE Cur CURSOR LOCAL FAST_FORWARD FOR
    (SELECT
    СпрФл.ID+'М', СпрФл.CODE, СпрФл.DESCR,
    $СпрФл.ПрефиксМенеджера, $СпрП.ОсновнаяФирма+'Ф'
    FROM $Справочник.ФизЛица as СпрФл (NOLOCK)
    INNER JOIN $Справочник.Пользователи as СпрП ON $СпрП.Физлицо=СпрФл.ID
    WHERE СпрФл.ISFOLDER=2 AND СпрФл.ISMARK=0 AND СпрФл.DESCR<>'' AND
    $СпрФл.Экспорт=1)
    OPEN Cur

    Затем производится построчный перебор набора записей, и вызов хранимой процедуры с параметрами текущей строки набора записей -

    FETCH NEXT FROM Cur INTO @Ид, @Код, @Наименование, @Префикс, @Фирма
    WHILE @@FETCH_STATUS=0
    EXEC [Путь].dbo.DMT_Set_AgentEx @Ид, 1, @Наименование, @Наименование, Префикс, @Ид, ''

    И вот что, мне не ясно: набор записей создается обращением к объектам 1С(но в справочнике Справочник.ФизЛица нет атрибута ISFOLDER) .

    $СпрФл.ПрефиксМенеджера - атрибут есть в справочнике
    СпрФл.ISFOLDER=2 - нет в справочнике
    Знак доллара? Где тут граница объектов 1С и объектов БД?

    Хранимая процедура откуда вызывается? Из того сервера, куда нам нужно данные транслировать? При этом при загрузке формы есть код где описано подключение к удаленному серверу как я понимаю(этот код аналогичен Delphi) :

    Путь = СОКРЛП(Константа.НекаяБаза) ;
    RS = СоздатьОбъект("ODBCRecordset");
    ВыбДата = ТекущаяДата() ;
    стр = "Provider=SQLOLEDB;Data Source=НекийСервер;User Id=X; Password=X;Initial Catalog=НекийКаталог" ;
    ОлеДБ = СоздатьОбъект("OLEDBData") ;
    ОлеДБ.ПрисоединитьИБ(КаталогИБ(), стр) ;
    RS2 = ОлеДБ.СоздатьКоманду() ;

    Может я и сам отвечаю на свои вопросы :angry: , догадка - это не есть уверенность, сами понимаете.
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Зачем такой огород городите?
    Какая перд вами стоит задача в 1с?
  7. poiuy
    Offline

    poiuy Опытный в 1С

    Регистрация:
    12 окт 2010
    Сообщения:
    170
    Симпатии:
    0
    Баллы:
    26
    ISFOLDER=1 для элементов
    ISFOLDER=2 для групп справочника
  8. TopicStarter Overlay
    komrad
    Offline

    komrad

    Регистрация:
    3 ноя 2010
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Задача такая - организовать передачу требуемых данных из базы 1С в базу "Оптимум". Например, информации по торговым точкам. Сейчас эта передача организована и работает, но будут создаваться и другие трансляции данных.
    Вот я читаю код и не пойму, какие данные откуда исходят. Вроде из 1С, а воде из базы с которой эта самая 1С работает...
    повторюсь -

    СпрФл.ПрефиксМенеджера - атрибут есть в справочнике
    СпрФл.ISFOLDER=2 - атрибута нет в справочнике
    Знак доллара? Где тут граница объектов 1С и объектов БД?
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Обмен идет посредством команд-текстовых файлов.
    Все подробнейше описано внутри документации в т.ч. структура таблиц обмена. Вам скинуть мануил по "Оптимум"?
  10. TopicStarter Overlay
    komrad
    Offline

    komrad

    Регистрация:
    3 ноя 2010
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Если вы про delta chm-файл, то он у меня есть. Это уже реализация, я пытаюсь понять общие принципы обмена данными, со стороны 1С.
    Если бы я писал программу на Делфи, я бы взял у программиста НЕКОЙ базы данных описание процедуры, вызвал бы ее, затолкал в нее нужные и ПОНЯТНЫЕ мне данные из МОЕЙ базы. Данные я бы взял из конкретной таблицы, из конкретного поля с конкретным идентификатором.

    В в sql-конструкции кода, который я предоставил меня смутило вот что - я беру нужные мне данные из справочника: $СпрФл.ПрефиксМенеджера, $СпрП.ОсновнаяФирма, но при этом указаны непонятные мне якобы поля справочника СпрФл.ISFOLDER=2 AND СпрФл.ISMARK=0 AND СпрФл.DESCR.

    Вы поймите, что 1C чужеродная для меня среда. Получается, что 1С это некая надстройка над физической БД, то она имеет кроме "чисто данных", еще и какие-то служебные данные, которые не поддаются моему восприятию. Да и одними мануалами не обойдешься, если опыта нет, а совет нужен.
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Связи с оптимум и 1с поддерживается через специальную обработку 1с запускаемую по таймеру (в моем случае). В ней СТАНДАРТНЫМИ средствами получаем данные (например о контрагентах) и скармливаем ее оптимум ч/з текстовый файл. Подобным же образом получаем ответ (заявки например). Правила описаны... Штатно создаем документы опять же средствами 1с (поэтому и не нужно вникать - зачем в данном случае знать устройство поршневой группы когда требуется поставить готовый собранных блок в кузов автомобиля) А что там творится внутри оптимум - мне не интересно. В любом случае есть монитор через который можно глянуть
  12. TopicStarter Overlay
    komrad
    Offline

    komrad

    Регистрация:
    3 ноя 2010
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Общие принципы интеграции ....
    ......
    Для импорта данных из КИС в "ОПТИМУМ ДП" используются хранимые процедуры с префиксом DMT_Set
    Для экспорта данных из "ОПТИМУМ ДП" в КИС используются хранимые процедуры с префиксом DMT_Get

    Может я что-то недопонимаю, но по-моему, в моем случае это не текстовые файлы.
  13. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Совершенно верно. Префикс-имя процедуры/действия

    Это ТЕКСТОВЫЕ файлы - гляньте хотя бы FARом
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    ШТАТНО 1с кроме текста и DBF ничего читать не умеет)))))))
  15. TopicStarter Overlay
    komrad
    Offline

    komrad

    Регистрация:
    3 ноя 2010
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Может быть дело в том, что данная конфигурация не типовая и работает с SQL Server 2005?
  16. poiuy
    Offline

    poiuy Опытный в 1С

    Регистрация:
    12 окт 2010
    Сообщения:
    170
    Симпатии:
    0
    Баллы:
    26
    ISFOLDER системное поле, есть только в справочниках где количество уровней больше 1, т.е. в таких можно создать группу (папку) элементов
    ISFOLDER=1 - это элемент справочника
    ISFOLDER=2 - это группа (папка) в справочнике куда складываются элементы

    DESCR еще одно системное поле, есть только в справочниках где длина наименования <> 0, содержит наименование :)

    ISMARK тож системное, содержит признак пометки на удаление группы или элемента справочника
  17. TopicStarter Overlay
    komrad
    Offline

    komrad

    Регистрация:
    3 ноя 2010
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Картина с текстом запроса, прояснилась. Благодарю.
  18. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
  19. TopicStarter Overlay
    komrad
    Offline

    komrad

    Регистрация:
    3 ноя 2010
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Спасибо за ссылку на спасибо! :)
  20. TopicStarter Overlay
    komrad
    Offline

    komrad

    Регистрация:
    3 ноя 2010
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Бухгалтерский угодник, возвращаюсь снова к хранимым процедурам...
    Как я понял вы имеете ввиду, что хранимые процедуры лежат на сервере, где находится БД Оптимум в виде текстовых файлов. так? А как же тогда то, что БД Оптимум основана на SQL Server 2005?

    Из мануала...
    Серверная база данных ОПТИМУМ
    База данных в формате Microsoft SQL Server, содержащая таблицы и хранимые процедуры. Для работы с базой данных используется программа АРМ "Менеджер".

Поделиться этой страницей