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