Добрый день!
Только начинаю изучать механизмы КД, подскажите, пожалуйста, возможно ли сделать с помощью КД следующий обмен:
1. Напрямую подключиться к БД
2. Сформировать определенный запрос
3. Сформировать документы по данным из запроса
4. Проверить по регистрам значения
5. Записать/провести документы
И отдельный момент, можно ли из БД 1С таким же образом:
1. Напрямую подключиться к БД
2. Определенным запросом залить данные в базу SQL (заранее выбрав данные в запросе на уровне 1С)
Спасибо!
Только начинаю изучать механизмы КД, подскажите, пожалуйста, возможно ли сделать с помощью КД следующий обмен:
1. Напрямую подключиться к БД
2. Сформировать определенный запрос
3. Сформировать документы по данным из запроса
4. Проверить по регистрам значения
5. Записать/провести документы
И отдельный момент, можно ли из БД 1С таким же образом:
1. Напрямую подключиться к БД
2. Определенным запросом залить данные в базу SQL (заранее выбрав данные в запросе на уровне 1С)
Спасибо!
По теме из базы знаний
- Настройка PostgreSQL 11.5 и 1C: Предприятие 8.3.16 на Windows Server 2008R2
- Синхронизация БИТ:СКУД 8 с Parsec.Net 2.5
- Очищение "предупреждений", возникающих при синхронизации
- Синхронизация справочников или импорт данных через HTTP-сервис
- Обслуживание индексов MS SQL Server: как, когда и, главное, зачем?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Вторая база, как я понял - не 1С. КД в этом случае - не вариант.
Но у вас, как я понял, и задача несложная - решается написанием простых обработок обмена с нуля.
Вот пришлось как-то глубокую интеграцию с развесистой внешней системой делать с конвертацией по ссылкам - так пришлось для этого на коленке урезанный аналог КД изобретать. После такого на КД смотришь с нежностью.
Но у вас, как я понял, и задача несложная - решается написанием простых обработок обмена с нуля.
Вот пришлось как-то глубокую интеграцию с развесистой внешней системой делать с конвертацией по ссылкам - так пришлось для этого на коленке урезанный аналог КД изобретать. После такого на КД смотришь с нежностью.
Лично я делаю вывод, что автор нафантазировал в постановке задачи. Особенно пугает фраза о "прямом обращении к БД SQL". Закрадывается мысль, что имеется в виду не то, о чем подумает большинство аудитории.
Может все проще? В базе-приемнике провести документ в зависимости от чего-то?
Предлагаю, изложить саму суть задачи в таком стиле:
- есть 2 базы
- в базе-приемнике до записи документа запросить что-то
- вроде как создать еще какие-то документы.
Может все проще? В базе-приемнике провести документ в зависимости от чего-то?
Предлагаю, изложить саму суть задачи в таком стиле:
- есть 2 базы
- в базе-приемнике до записи документа запросить что-то
- вроде как создать еще какие-то документы.
(6) Добрый день!
- Есть 2 базы, 1С и SQL
- В базу SQL нужно периодически грузить данные из 1С (в определенные таблицы) - по расписанию максимально автоматизированно
- Из базы SQL в базу 1С, на основании данных из некоторых таблиц (запрос на уровне SQL сделают нужные выборку полей) - в базе 1С создать документы с табличными частями и заполнить данными из SQL.
- Провести созданные документы в 1С
Какие архитектуры такого взаимодействия возможны?
Спасибо!
- Есть 2 базы, 1С и SQL
- В базу SQL нужно периодически грузить данные из 1С (в определенные таблицы) - по расписанию максимально автоматизированно
- Из базы SQL в базу 1С, на основании данных из некоторых таблиц (запрос на уровне SQL сделают нужные выборку полей) - в базе 1С создать документы с табличными частями и заполнить данными из SQL.
- Провести созданные документы в 1С
Какие архитектуры такого взаимодействия возможны?
Спасибо!
(16) Зря. Но варианты есть, правда без КД.
Если конфа не на замке, то можно воспользоваться Внешними источниками данных, создав подключение прямо к sql, и средствами 1с читать из нее и писать в нее.
Если трогать конфу нельзя, то никто еще не отменял старый добрый ADO, с помощью которого и делать все дела.
В обоих вариантах пишутся свои обработки по переливке данных в нужную сторону.
Если конфа не на замке, то можно воспользоваться Внешними источниками данных, создав подключение прямо к sql, и средствами 1с читать из нее и писать в нее.
Если трогать конфу нельзя, то никто еще не отменял старый добрый ADO, с помощью которого и делать все дела.
В обоих вариантах пишутся свои обработки по переливке данных в нужную сторону.
(16)
(17) + Теоретически, конечно, извратиться можно.
Типа база 1С будет и источником и приемником, а при выгрузке лезть в SQL.
Но большого смысла это не имеет, т.к. это мало чем будет отличаться от написания ручного обмена.
Хотя... Можно попробовать прикрутить и неоптимизированную выгрузку справочников по ссылкам, например.
Типа будет ПКО на документ, где на вход данные внешнего запроса, а в ПКС ссылочного реквизита на входе будет айдишник внешнего справочника, данные по которому будут высасываться в его ПКО по этому конкретному айдишнику. Для не слишком больших объемов данных должно быть приемлемо. В этом случае может прикольно получиться :)
ЗЫ. О чем-то похожем я в свое время размышлял, но объемы данных были большие и нужна была именно оптимизированная выгрузка по ссылкам, поэтому пришлось свой велосипед писать.
(17) + Теоретически, конечно, извратиться можно.
Типа база 1С будет и источником и приемником, а при выгрузке лезть в SQL.
Но большого смысла это не имеет, т.к. это мало чем будет отличаться от написания ручного обмена.
Хотя... Можно попробовать прикрутить и неоптимизированную выгрузку справочников по ссылкам, например.
Типа будет ПКО на документ, где на вход данные внешнего запроса, а в ПКС ссылочного реквизита на входе будет айдишник внешнего справочника, данные по которому будут высасываться в его ПКО по этому конкретному айдишнику. Для не слишком больших объемов данных должно быть приемлемо. В этом случае может прикольно получиться :)
ЗЫ. О чем-то похожем я в свое время размышлял, но объемы данных были большие и нужна была именно оптимизированная выгрузка по ссылкам, поэтому пришлось свой велосипед писать.
в метаданных создать внешние источники и читать/писать
или
или
СтрокаПодключения = "
|DRIVER={SQL Server};
|SERVER=...;
|DATABASE=...;
|User ID=sa;
|PASSWORD=...;";
Connection = Новый COMОбъект("ADODB.Connection");
Command = Новый COMОбъект("ADODB.Command");
Command.Prepared = Истина;
Command.CommandType = 1;
Попытка
Connection.Open(СокрЛП(СтрокаПодключения));
Command.ActiveConnection = Connection;
Исключение
Сообщить("Ошибка подключения к SQL-серверу " + ТекущаяДатаСеанса());
Сообщить(ОписаниеОшибки());
Connection = Неопределено;
Command = Неопределено;
КонецПопытки;
// и читать/писать
Показать
(26) "делать его конечно не буду."
Недоумеваю: чего проще написать и отладить обмен через ADODB. Лично для меня было тяжело написать в первый раз, от незнания. Потом думаешь: "Как просто!".
Недоумеваю: чего проще написать и отладить обмен через ADODB. Лично для меня было тяжело написать в первый раз, от незнания. Потом думаешь: "Как просто!".
Соединение = Новый COMОбъект("ADODB.Connection");
Соединение.ConnectionString = "Provider=SQLOLEDB.1;Password=???;Persist Security Info=True;User ID=????;Initial Catalog=?????;Data Source=RDP\SQLEXPRESS";
Попытка
Соединение.Open();
Исключение
#Если Клиент Тогда
Предупреждение("Не удалось соединиться с базой данных!");
Сообщить(ОписаниеОшибки());
#КонецЕсли
Возврат;
КонецПопытки;
Соединение.Execute("DELETE FROM Clients .....");
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот