Версия для печати темы (https://pro1c.org.ua/index.php?s=248b93ec2121b2b0a238143edec41493&showtopic=39977)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Как подключится с одной базы к другой?

Автор: Vidocq05 05.09.17, 9:36

Есть одна файловая база (самописная конфигурация), платформа 8.3 - находится на ноутбуке (Б1). Есть серверная база УТП 1.2, платформа 8.2 (Б2).
Нужно периодически подключатся с Б1 к Б2 и получать данные с Б2 в Б1 и передавать данные с Б1 в Б2. Например: Нажал кнопку в Б1 и получили данные по номенклатуре с Б2. Нажал другую кнопку в Б1 и записались данные по номенклатуре в Б2.
База Б1 находится на ноутбуке, ноутбук перемещается и подключается к разным точкам доступа WI-FI. То есть нужна возможность подключения к Б2 откуда угодно.

Это возможно? Подскажите хотя бы в какую сторону копать.

Автор: Bernet 05.09.17, 9:39

Vidocq05 @ Сегодня, 10:36 * ,
Копай в эту сторону http://pro1c.org.ua/redirect.php?http://v8.1c.ru/overview/Term_000000632.htm

Автор: podcast 05.09.17, 9:40

Vidocq05 @ Сегодня, 10:36 * ,
Если вы можете зайти с любого места в Б2 то можете подключиться, посмотрите COM соединение с другой базой.

Автор: Vidocq05 05.09.17, 11:48

А кто то может написать примерчик, как например получить код всей номенклатуры с Б2 запросом?

Автор: podcast 05.09.17, 12:32

Vidocq05 @ Сегодня, 12:48 * ,
Получение остатков с другой базы.

// Выполняет подключение к базе-приемнику по заданным параметрам.
// Возвращает проинициализированную обработку УниверсальныйОбменДаннымиXML базы-приемника,
// которая будет использоваться для загрузки данных в базу-приемник.
//
// Параметры:
//  Нет.
//
//  Возвращаемое значение:
//  ОбработкаОбъект - УниверсальныйОбменДаннымиXML - обработка базы-приемника для загрузки данных в базу-приемник
//
Функция ВыполнитьПодключениеКИБПриемнику() Экспорт
    
    РезультатПодключения = Неопределено;
    
    СтруктураПодключения = Новый Структура();
    СтруктураПодключения.Вставить("ФайловыйРежим", ТипИнформационнойБазыДляПодключения);
    СтруктураПодключения.Вставить("АутентификацияWindows", Ложь);
    СтруктураПодключения.Вставить("КаталогИБ", КаталогИнформационнойБазыДляПодключения);
    СтруктураПодключения.Вставить("ИмяСервера", ИмяСервераИнформационнойБазыДляПодключения);
    СтруктураПодключения.Вставить("ИмяИБНаСервере", ИмяИнформационнойБазыНаСервереДляПодключения);
    СтруктураПодключения.Вставить("Пользователь", ПользовательИнформационнойБазыДляПодключения);
    СтруктураПодключения.Вставить("Пароль", ПарольИнформационнойБазыДляПодключения);
    СтруктураПодключения.Вставить("ВерсияПлатформы", ВерсияПлатформыИнформационнойБазыДляПодключения);
    
    ОбъектПодключения = ПодключитсяКИнформационнойБазе(СтруктураПодключения);
    
    Если ОбъектПодключения = Неопределено Тогда
        Возврат Неопределено;
    КонецЕсли;
    
    Попытка
        РезультатПодключения = ОбъектПодключения;
    Исключение
        
        Текст = НСтр("ru='При попытке создания обработки УниверсальныйОбменДаннымиXML произошла ошибка: %1';uk='При спробі створення обробки УниверсальныйОбменДаннымиXML сталася помилка: %1'");
        Текст = ПодставитьПараметрыВСтроку(Текст, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
        СообщитьПользователю(Текст);
        РезультатПодключения = Неопределено;
    КонецПопытки;
    
    Возврат РезультатПодключения;
    
КонецФункции
&НаСервере
Процедура СформироватьНаСервере()
    
    Connection = ВыполнитьПодключениеКИБПриемникуНаСервере();
    
    ЗапросУТ=Connection.NewObject("Запрос");
    
    ЗапросУТ.Текст="ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.Номенклатура.Наименование КАК Номенклатура,
    |    ТоварыНаСкладахОстатки.ВНаличииОстаток КАК Остаток,
    |    ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК Артикул
    |ПОМЕСТИТЬ ВТ
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаНачала, НЕ Номенклатура.Артикул ПОДОБНО """") КАК ТоварыНаСкладахОстатки
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    ТоварыПереданныеНаКомиссиюОстатки.АналитикаУчетаНоменклатуры.Номенклатура.Наименование КАК Номенклатура,
    |    ТоварыПереданныеНаКомиссиюОстатки.КоличествоОстаток,
    |    ТоварыПереданныеНаКомиссиюОстатки.АналитикаУчетаНоменклатуры.Номенклатура.Артикул
    |ИЗ
    |    РегистрНакопления.ТоварыПереданныеНаКомиссию.Остатки(&ДатаНачала, НЕ АналитикаУчетаНоменклатуры.Номенклатура.Артикул ПОДОБНО """") КАК ТоварыПереданныеНаКомиссиюОстатки
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВложенныйЗапрос.Номенклатура,
    |    ВложенныйЗапрос.Остаток,
    |    ВложенныйЗапрос.Артикул
    |ИЗ
    |    (ВЫБРАТЬ
    |        ВТ.Номенклатура КАК Номенклатура,
    |        СУММА(ВТ.Остаток) КАК Остаток,
    |        ВТ.Артикул КАК Артикул
    |    ИЗ
    |        ВТ КАК ВТ
    |    
    |    СГРУППИРОВАТЬ ПО
    |        ВТ.Артикул,
    |        ВТ.Номенклатура) КАК ВложенныйЗапрос";
    
    ЗапросУТ.УстановитьПараметр("ДатаНачала", Объект.ДатаФормированияОстатков);
    
    РезультатЗапроса = ЗапросУТ.Выполнить();
КонецПроцедуры

Автор: хакерок 12.09.17, 22:36

Цитата(Vidocq05 @ 05.09.17, 12:48) *
А кто то может написать примерчик, как например получить код всей номенклатуры с Б2 запросом?

вот не плохой примерчик

http://pro1c.org.ua/redirect.php?http://1chelp.net/programming/podklyuchenie-odnoj-bazy-k-drugoj-pri-pomoshhi-com-soedineniya-v-1s-8.html

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua