Описание сервисов сборка: различия между версиями
Shihov (обсуждение | вклад) Нет описания правки |
Shihov (обсуждение | вклад) Нет описания правки |
||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 282: | Строка 282: | ||
|<syntaxhighlight lang='1c'> | |<syntaxhighlight lang='1c'> | ||
Процедура РазобратьОтвет(ДанныеОтвета) ТаблицаРезультатов = Новый ТаблицаЗначений; ТаблицаРезультатов.Колонки.Добавить("ТипДокумента"); ТаблицаРезультатов.Колонки.Добавить("Документ"); ТаблицаРезультатов.Колонки.Добавить("Результат"); Для Каждого Ответ Из ДанныеОтвета.МассивРезультатов Цикл НовРез = ТаблицаРезультатов.Добавить(); НовРез.ТипДокумента = ТекущееСоответствие.Сборка; НовРез.Документ = НайтиДокумент(Ответ.Документ, ТекущееСоответствие); НовРез.Результат = Ответ.РезультатТранзакции; КонецЦикла; ТаблицаРезультатов.Сортировать("ТипДокумента"); Обработка = РеквизитФормыВЗначение("Объект"); Макет = Обработка.ПолучитьМакет("Макет"); ШапкаТД = Макет.ПолучитьОбласть("Шапка"); ГруппаДок = Макет.ПолучитьОбласть("ГруппаДокументов"); СтрокаДок = Макет.ПолучитьОбласть("СтрокаДокумент"); ТД.Очистить(); ШапкаТД.Параметры.ТипОбъекта = "Документ"; ТД.Вывести(ШапкаТД); ТД.НачатьАвтогруппировкуСтрок(); ТекТип = ""; ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("ТипДокумента"); Для Каждого Рез Из ТаблицаРезультатов Цикл Если ТекТип <> Рез.ТипДокумента Тогда ТекТип = Рез.ТипДокумента; ГруппаДок.Параметры.Заполнить(Рез); ГруппаДок.Параметры.ТипДокумента = ТипВСборке(Рез.ТипДокумента); ПараметрыОтбора.ТипДокумента = Рез.ТипДокумента; ГруппаДок.Параметры.КоличествоЗагружено = ТаблицаРезультатов.НайтиСтроки(ПараметрыОтбора).Количество(); ТД.Вывести(ГруппаДок,1); КонецЕсли; СтрокаДок.Параметры.Заполнить(Рез); ТД.Вывести(СтрокаДок); КонецЦикла; ТД.ЗакончитьАвтогруппировкуСтрок(); ТД.ТолькоПросмотр = Истина; КонецПроцедуры Функция НайтиДокумент(ДокументХ, ТипДокументаСтрокой) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТипДок.Ссылка |ИЗ | Документ.#ТипДок# КАК ТипДок |ГДЕ | ТипДок.Номер ПОДОБНО &Номер | И НАЧАЛОПЕРИОДА(ТипДок.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ)"; Запрос.УстановитьПараметр("Дата", ДокументХ.Дата); Запрос.УстановитьПараметр("Номер", "%"+СокрЛП(ДокументХ.Номер)+"%"); Запрос.Текст = СтрЗаменить(Запрос.Текст,"#ТипДок#",СтрЗаменить(ТипДокументаСтрокой," ","")); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.Ссылка; Иначе Возврат Документы[СтрЗаменить(ТипДокументаСтрокой," ","")].ПустаяСсылка(); КонецЕсли; КонецФункции </syntaxhighlight>Пример вызова XML | Процедура РазобратьОтвет(ДанныеОтвета) ТаблицаРезультатов = Новый ТаблицаЗначений; ТаблицаРезультатов.Колонки.Добавить("ТипДокумента"); ТаблицаРезультатов.Колонки.Добавить("Документ"); ТаблицаРезультатов.Колонки.Добавить("Результат"); Для Каждого Ответ Из ДанныеОтвета.МассивРезультатов Цикл НовРез = ТаблицаРезультатов.Добавить(); НовРез.ТипДокумента = ТекущееСоответствие.Сборка; НовРез.Документ = НайтиДокумент(Ответ.Документ, ТекущееСоответствие); НовРез.Результат = Ответ.РезультатТранзакции; КонецЦикла; ТаблицаРезультатов.Сортировать("ТипДокумента"); Обработка = РеквизитФормыВЗначение("Объект"); Макет = Обработка.ПолучитьМакет("Макет"); ШапкаТД = Макет.ПолучитьОбласть("Шапка"); ГруппаДок = Макет.ПолучитьОбласть("ГруппаДокументов"); СтрокаДок = Макет.ПолучитьОбласть("СтрокаДокумент"); ТД.Очистить(); ШапкаТД.Параметры.ТипОбъекта = "Документ"; ТД.Вывести(ШапкаТД); ТД.НачатьАвтогруппировкуСтрок(); ТекТип = ""; ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("ТипДокумента"); Для Каждого Рез Из ТаблицаРезультатов Цикл Если ТекТип <> Рез.ТипДокумента Тогда ТекТип = Рез.ТипДокумента; ГруппаДок.Параметры.Заполнить(Рез); ГруппаДок.Параметры.ТипДокумента = ТипВСборке(Рез.ТипДокумента); ПараметрыОтбора.ТипДокумента = Рез.ТипДокумента; ГруппаДок.Параметры.КоличествоЗагружено = ТаблицаРезультатов.НайтиСтроки(ПараметрыОтбора).Количество(); ТД.Вывести(ГруппаДок,1); КонецЕсли; СтрокаДок.Параметры.Заполнить(Рез); ТД.Вывести(СтрокаДок); КонецЦикла; ТД.ЗакончитьАвтогруппировкуСтрок(); ТД.ТолькоПросмотр = Истина; КонецПроцедуры Функция НайтиДокумент(ДокументХ, ТипДокументаСтрокой) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТипДок.Ссылка |ИЗ | Документ.#ТипДок# КАК ТипДок |ГДЕ | ТипДок.Номер ПОДОБНО &Номер | И НАЧАЛОПЕРИОДА(ТипДок.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ)"; Запрос.УстановитьПараметр("Дата", ДокументХ.Дата); Запрос.УстановитьПараметр("Номер", "%"+СокрЛП(ДокументХ.Номер)+"%"); Запрос.Текст = СтрЗаменить(Запрос.Текст,"#ТипДок#",СтрЗаменить(ТипДокументаСтрокой," ","")); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.Ссылка; Иначе Возврат Документы[СтрЗаменить(ТипДокументаСтрокой," ","")].ПустаяСсылка(); КонецЕсли; КонецФункции </syntaxhighlight>Пример вызова XML | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> | <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> | ||
| Строка 469: | Строка 468: | ||
Пример ответа XML | Пример ответа XML | ||
<syntaxhighlight lang="xml"> | |||
<syntaxhighlight lang=" | |||
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> | ||
<soap:Body> | <soap:Body> | ||
| Строка 660: | Строка 658: | ||
Описание | Описание | ||
'''Назначение:''' Сервис предназначен для получения документов сборки у которых не установлена галочка выгружен в 1С со статусом частичная или полная из АСП.Склад WMS. | '''Назначение:''' Сервис предназначен для получения документов сборки у которых не установлена галочка выгружен в 1С со статусом частичная или полная из АСП.Склад WMS. | ||
| Строка 672: | Строка 669: | ||
Пример вызова 1C | Пример вызова 1C | ||
<syntaxhighlight lang='1c'> | <syntaxhighlight lang='1c'> | ||
&НаСервере Процедура ВернутьИзСборщика() Прокси = ПолучитьПрокси(); Результат = Прокси.ПолучитьДокументыЗаказНаСборку(); Если Результат<> Неопределено Тогда КоличествоЗагруженно = 0; Для каждого ДокХДТО Из Результат.МассивРезультатов Цикл Документ = Документы.АСП_ЗаказНаСборку.НайтиПоНомеру(ДокХДТО.Документ.Номер, ДокХДТО.Документ.Дата); Если Документ.Пустая() Тогда ДокСсылка = Документы.АСП_ЗаказНаСборку.СоздатьДокумент(); ДокСсылка.Дата = ДокХДТО.Документ.Дата; ДокСсылка.Номер = ДокХДТО.Документ.Номер; Иначе ДокСсылка = Документ.ПолучитьОбъект(); КонецЕсли; ДокСсылка.Склад = Справочники.Склады.НайтиПоКоду(СокрЛП(ДокХДТО.Документ.Склад.Код)); Если ПустаяСтрока(ДокХДТО.Документ.Организация.ИНН) Тогда ДокСсылка.Организация = Справочники.Организации.НайтиПоКоду(ДокХДТО.Документ.Организация.Код); Иначе ДокСсылка.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", ДокХДТО.Документ.Организация.ИНН); КонецЕсли; СообщениеСтатуса = ""; ПеречСтатус = ПолучитьСтатусСборки(ДокХДТО.Документ.Статус); Если ТипЗнч(ПеречСтатус) <> Тип("Строка") Тогда ДокСсылка.СтатусСборки = ПеречСтатус; Иначе СообщениеСтатуса = ("Документ №"+ ДокСсылка.Номер+ " загружен без статуса. "+ ПеречСтатус); КонецЕсли; ДокСсылка.Товары.Очистить(); Для каждого СтрокиТЧ Из ДокХДТО.Документ.Товары Цикл НовСтр = ДокСсылка.Товары.Добавить(); ЗаполнитьЗначенияСвойств(НовСтр,СтрокиТЧ); НовСтр.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(СокрЛП(СтрокиТЧ.Номенклатура.Код)); Если НовСтр.Номенклатура.Пустая() Тогда Сообщить("Номенклатура по данному коду "+ СокрЛП(СтрокиТЧ.Номенклатура.Код)+ " не обнаружена"); Продолжить; КонецЕсли; НовСтр.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоКоду(СокрЛП(СтрокиТЧ.Упаковка.КодЗагрузки)); НовСтр.Производитель = Справочники.Организации.НайтиПоКоду(СокрЛП(СтрокиТЧ.Производитель.Код)); НомерЗаказаСборки = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Номер,СтрЗаменить(СтрокиТЧ.Заказ.Номер,"З_","")); ДатаЗаказаСборка = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Дата,СтрокиТЧ.Заказ.Дата); НовСтр.Заказ = Документы[ТекущееСоответствие.База].НайтиПоНомеру(НомерЗаказаСборки, ДатаЗаказаСборка); Если Не ЗначениеЗаполнено(НовСтр.Заказ) Тогда Сообщить("Заказ не указан в заказе на сборку №"+ СокрЛП(ДокХДТО.Документ.Номер)); Продолжить; КонецЕсли; Если НовСтр.Заказ <> Неопределено И Не НовСтр.Заказ.Пустая() Тогда УстановитьСтатус(НовСтр.Заказ,ДокСсылка.СтатусСборки); КонецЕсли; КонецЦикла; Если ДокСсылка.Товары.Количество()> 0 Тогда ДокСсылка.Записать(); КонецЕсли; Если Не ДокСсылка.Ссылка.Пустая() Тогда КоличествоЗагруженно = КоличествоЗагруженно + 1; Если ДокХДТО.Документ <> Неопределено Тогда СписокДокументов.МассивДокументов.Добавить(ДокХДТО.Документ); КонецЕсли; КонецЕсли; СтрокаДок.Параметры.Документ = Строка(ДокСсылка); СтрокаДок.Параметры.Результат = Строка(ДокХДТО.РезультатТранзакции) + " " + СообщениеСтатуса; ТД.Вывести(СтрокаДок); КонецЦикла; КонецЕсли; КонецПроцедуры </syntaxhighlight>Пример вызова XML | &НаСервере Процедура ВернутьИзСборщика() Прокси = ПолучитьПрокси(); Результат = Прокси.ПолучитьДокументыЗаказНаСборку(); Если Результат<> Неопределено Тогда КоличествоЗагруженно = 0; Для каждого ДокХДТО Из Результат.МассивРезультатов Цикл Документ = Документы.АСП_ЗаказНаСборку.НайтиПоНомеру(ДокХДТО.Документ.Номер, ДокХДТО.Документ.Дата); Если Документ.Пустая() Тогда ДокСсылка = Документы.АСП_ЗаказНаСборку.СоздатьДокумент(); ДокСсылка.Дата = ДокХДТО.Документ.Дата; ДокСсылка.Номер = ДокХДТО.Документ.Номер; Иначе ДокСсылка = Документ.ПолучитьОбъект(); КонецЕсли; ДокСсылка.Склад = Справочники.Склады.НайтиПоКоду(СокрЛП(ДокХДТО.Документ.Склад.Код)); Если ПустаяСтрока(ДокХДТО.Документ.Организация.ИНН) Тогда ДокСсылка.Организация = Справочники.Организации.НайтиПоКоду(ДокХДТО.Документ.Организация.Код); Иначе ДокСсылка.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", ДокХДТО.Документ.Организация.ИНН); КонецЕсли; СообщениеСтатуса = ""; ПеречСтатус = ПолучитьСтатусСборки(ДокХДТО.Документ.Статус); Если ТипЗнч(ПеречСтатус) <> Тип("Строка") Тогда ДокСсылка.СтатусСборки = ПеречСтатус; Иначе СообщениеСтатуса = ("Документ №"+ ДокСсылка.Номер+ " загружен без статуса. "+ ПеречСтатус); КонецЕсли; ДокСсылка.Товары.Очистить(); Для каждого СтрокиТЧ Из ДокХДТО.Документ.Товары Цикл НовСтр = ДокСсылка.Товары.Добавить(); ЗаполнитьЗначенияСвойств(НовСтр,СтрокиТЧ); НовСтр.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(СокрЛП(СтрокиТЧ.Номенклатура.Код)); Если НовСтр.Номенклатура.Пустая() Тогда Сообщить("Номенклатура по данному коду "+ СокрЛП(СтрокиТЧ.Номенклатура.Код)+ " не обнаружена"); Продолжить; КонецЕсли; НовСтр.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоКоду(СокрЛП(СтрокиТЧ.Упаковка.КодЗагрузки)); НовСтр.Производитель = Справочники.Организации.НайтиПоКоду(СокрЛП(СтрокиТЧ.Производитель.Код)); НомерЗаказаСборки = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Номер,СтрЗаменить(СтрокиТЧ.Заказ.Номер,"З_","")); ДатаЗаказаСборка = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Дата,СтрокиТЧ.Заказ.Дата); НовСтр.Заказ = Документы[ТекущееСоответствие.База].НайтиПоНомеру(НомерЗаказаСборки, ДатаЗаказаСборка); Если Не ЗначениеЗаполнено(НовСтр.Заказ) Тогда Сообщить("Заказ не указан в заказе на сборку №"+ СокрЛП(ДокХДТО.Документ.Номер)); Продолжить; КонецЕсли; Если НовСтр.Заказ <> Неопределено И Не НовСтр.Заказ.Пустая() Тогда УстановитьСтатус(НовСтр.Заказ,ДокСсылка.СтатусСборки); КонецЕсли; КонецЦикла; Если ДокСсылка.Товары.Количество()> 0 Тогда ДокСсылка.Записать(); КонецЕсли; Если Не ДокСсылка.Ссылка.Пустая() Тогда КоличествоЗагруженно = КоличествоЗагруженно + 1; Если ДокХДТО.Документ <> Неопределено Тогда СписокДокументов.МассивДокументов.Добавить(ДокХДТО.Документ); КонецЕсли; КонецЕсли; СтрокаДок.Параметры.Документ = Строка(ДокСсылка); СтрокаДок.Параметры.Результат = Строка(ДокХДТО.РезультатТранзакции) + " " + СообщениеСтатуса; ТД.Вывести(СтрокаДок); КонецЦикла; КонецЕсли; КонецПроцедуры </syntaxhighlight>Пример вызова XML | ||
<syntaxhighlight lang="xml"> | |||
<syntaxhighlight lang=" | |||
<?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | ||
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> | <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> | ||
| Строка 899: | Строка 894: | ||
Описание | Описание | ||
'''Назначение:''' Сервис предназначен для получения документов сборки которые зарегистрированы планом обмена из АСП.Склад WMS. | '''Назначение:''' Сервис предназначен для получения документов сборки которые зарегистрированы планом обмена из АСП.Склад WMS. | ||
| Строка 917: | Строка 911: | ||
&НаСервере Процедура ВернутьИзСборщика2() Прокси = ПолучитьПрокси(); Результат = Прокси.ПолучитьДокументыЗаказНаСборку2("П6"); Если Результат<> Неопределено Тогда КоличествоЗагруженно = 0; Для каждого ДокХДТО Из Результат.МассивРезультатов Цикл Документ = Документы.АСП_ЗаказНаСборку.НайтиПоНомеру(ДокХДТО.Документ.Номер, ДокХДТО.Документ.Дата); Если Документ.Пустая() Тогда ДокСсылка = Документы.АСП_ЗаказНаСборку.СоздатьДокумент(); ДокСсылка.Дата = ДокХДТО.Документ.Дата; ДокСсылка.Номер = ДокХДТО.Документ.Номер; Иначе ДокСсылка = Документ.ПолучитьОбъект(); КонецЕсли; ДокСсылка.Склад = Справочники.Склады.НайтиПоКоду(СокрЛП(ДокХДТО.Документ.Склад.Код)); Если ПустаяСтрока(ДокХДТО.Документ.Организация.ИНН) Тогда ДокСсылка.Организация = Справочники.Организации.НайтиПоКоду(ДокХДТО.Документ.Организация.Код); Иначе ДокСсылка.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", ДокХДТО.Документ.Организация.ИНН); КонецЕсли; СообщениеСтатуса = ""; ПеречСтатус = ПолучитьСтатусСборки(ДокХДТО.Документ.Статус); Если ТипЗнч(ПеречСтатус) <> Тип("Строка") Тогда ДокСсылка.СтатусСборки = ПеречСтатус; Иначе СообщениеСтатуса = ("Документ №"+ ДокСсылка.Номер+ " загружен без статуса. "+ ПеречСтатус); КонецЕсли; ДокСсылка.Товары.Очистить(); Для каждого СтрокиТЧ Из ДокХДТО.Документ.Товары Цикл НовСтр = ДокСсылка.Товары.Добавить(); ЗаполнитьЗначенияСвойств(НовСтр,СтрокиТЧ); НовСтр.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(СокрЛП(СтрокиТЧ.Номенклатура.Код)); Если НовСтр.Номенклатура.Пустая() Тогда Сообщить("Номенклатура по данному коду "+ СокрЛП(СтрокиТЧ.Номенклатура.Код)+ " не обнаружена"); Продолжить; КонецЕсли; НовСтр.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоКоду(СокрЛП(СтрокиТЧ.Упаковка.КодЗагрузки)); НовСтр.Производитель = Справочники.Организации.НайтиПоКоду(СокрЛП(СтрокиТЧ.Производитель.Код)); НомерЗаказаСборки = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Номер,СтрЗаменить(СтрокиТЧ.Заказ.Номер,"З_","")); ДатаЗаказаСборка = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Дата,СтрокиТЧ.Заказ.Дата); НовСтр.Заказ = Документы[ТекущееСоответствие.База].НайтиПоНомеру(НомерЗаказаСборки, ДатаЗаказаСборка); Если Не ЗначениеЗаполнено(НовСтр.Заказ) Тогда Сообщить("Заказ не указан в заказе на сборку №"+ СокрЛП(ДокХДТО.Документ.Номер)); Продолжить; КонецЕсли; Если НовСтр.Заказ <> Неопределено И Не НовСтр.Заказ.Пустая() Тогда УстановитьСтатус(НовСтр.Заказ,ДокСсылка.СтатусСборки); КонецЕсли; КонецЦикла; Если ДокСсылка.Товары.Количество()> 0 Тогда ДокСсылка.Записать(); КонецЕсли; Если Не ДокСсылка.Ссылка.Пустая() Тогда КоличествоЗагруженно = КоличествоЗагруженно + 1; Если ДокХДТО.Документ <> Неопределено Тогда СписокДокументов.МассивДокументов.Добавить(ДокХДТО.Документ); КонецЕсли; КонецЕсли; СтрокаДок.Параметры.Документ = Строка(ДокСсылка); СтрокаДок.Параметры.Результат = Строка(ДокХДТО.РезультатТранзакции) + " " + СообщениеСтатуса; ТД.Вывести(СтрокаДок); КонецЦикла; КонецЕсли; КонецПроцедуры </syntaxhighlight>Пример вызова XML | &НаСервере Процедура ВернутьИзСборщика2() Прокси = ПолучитьПрокси(); Результат = Прокси.ПолучитьДокументыЗаказНаСборку2("П6"); Если Результат<> Неопределено Тогда КоличествоЗагруженно = 0; Для каждого ДокХДТО Из Результат.МассивРезультатов Цикл Документ = Документы.АСП_ЗаказНаСборку.НайтиПоНомеру(ДокХДТО.Документ.Номер, ДокХДТО.Документ.Дата); Если Документ.Пустая() Тогда ДокСсылка = Документы.АСП_ЗаказНаСборку.СоздатьДокумент(); ДокСсылка.Дата = ДокХДТО.Документ.Дата; ДокСсылка.Номер = ДокХДТО.Документ.Номер; Иначе ДокСсылка = Документ.ПолучитьОбъект(); КонецЕсли; ДокСсылка.Склад = Справочники.Склады.НайтиПоКоду(СокрЛП(ДокХДТО.Документ.Склад.Код)); Если ПустаяСтрока(ДокХДТО.Документ.Организация.ИНН) Тогда ДокСсылка.Организация = Справочники.Организации.НайтиПоКоду(ДокХДТО.Документ.Организация.Код); Иначе ДокСсылка.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", ДокХДТО.Документ.Организация.ИНН); КонецЕсли; СообщениеСтатуса = ""; ПеречСтатус = ПолучитьСтатусСборки(ДокХДТО.Документ.Статус); Если ТипЗнч(ПеречСтатус) <> Тип("Строка") Тогда ДокСсылка.СтатусСборки = ПеречСтатус; Иначе СообщениеСтатуса = ("Документ №"+ ДокСсылка.Номер+ " загружен без статуса. "+ ПеречСтатус); КонецЕсли; ДокСсылка.Товары.Очистить(); Для каждого СтрокиТЧ Из ДокХДТО.Документ.Товары Цикл НовСтр = ДокСсылка.Товары.Добавить(); ЗаполнитьЗначенияСвойств(НовСтр,СтрокиТЧ); НовСтр.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(СокрЛП(СтрокиТЧ.Номенклатура.Код)); Если НовСтр.Номенклатура.Пустая() Тогда Сообщить("Номенклатура по данному коду "+ СокрЛП(СтрокиТЧ.Номенклатура.Код)+ " не обнаружена"); Продолжить; КонецЕсли; НовСтр.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоКоду(СокрЛП(СтрокиТЧ.Упаковка.КодЗагрузки)); НовСтр.Производитель = Справочники.Организации.НайтиПоКоду(СокрЛП(СтрокиТЧ.Производитель.Код)); НомерЗаказаСборки = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Номер,СтрЗаменить(СтрокиТЧ.Заказ.Номер,"З_","")); ДатаЗаказаСборка = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Дата,СтрокиТЧ.Заказ.Дата); НовСтр.Заказ = Документы[ТекущееСоответствие.База].НайтиПоНомеру(НомерЗаказаСборки, ДатаЗаказаСборка); Если Не ЗначениеЗаполнено(НовСтр.Заказ) Тогда Сообщить("Заказ не указан в заказе на сборку №"+ СокрЛП(ДокХДТО.Документ.Номер)); Продолжить; КонецЕсли; Если НовСтр.Заказ <> Неопределено И Не НовСтр.Заказ.Пустая() Тогда УстановитьСтатус(НовСтр.Заказ,ДокСсылка.СтатусСборки); КонецЕсли; КонецЦикла; Если ДокСсылка.Товары.Количество()> 0 Тогда ДокСсылка.Записать(); КонецЕсли; Если Не ДокСсылка.Ссылка.Пустая() Тогда КоличествоЗагруженно = КоличествоЗагруженно + 1; Если ДокХДТО.Документ <> Неопределено Тогда СписокДокументов.МассивДокументов.Добавить(ДокХДТО.Документ); КонецЕсли; КонецЕсли; СтрокаДок.Параметры.Документ = Строка(ДокСсылка); СтрокаДок.Параметры.Результат = Строка(ДокХДТО.РезультатТранзакции) + " " + СообщениеСтатуса; ТД.Вывести(СтрокаДок); КонецЦикла; КонецЕсли; КонецПроцедуры </syntaxhighlight>Пример вызова XML | ||
<syntaxhighlight lang="xml"> | |||
<syntaxhighlight lang=" | |||
<?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | ||
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> | <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> | ||
| Строка 1098: | Строка 1091: | ||
Пример вызова 1C | Пример вызова 1C | ||
<syntaxhighlight lang='1c'> | <syntaxhighlight lang='1c'> | ||
| Строка 1142: | Строка 1134: | ||
&НаСервере Процедура ВернутьДокументыИзСборщика(ДокументыСборщика) Прокси = ПолучитьПрокси();Фабрика = Прокси.ФабрикаXDTO; СписокДокументов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен,"СписокДокументов")); ДокументыСборщика = ?(Найти(ТекущееСоответствие.Шлюз,"Заказ") = 0,ТекущееСоответствие.Шлюз,"ЗаказНаСборку"); Результат = Прокси.ПолучитьДокументСборки(ДокументыСборщика); Если Результат <> Неопределено Тогда Если Найти(ДокументыСборщика,"ЗаказНаСборку") > 0 Тогда КоличествоЗагруженно = ВернутьЗаказыНаСборку(Результат,СтрокаДок,СписокДокументов,ТекущееСоответствие); ИначеЕсли Найти(ДокументыСборщика,"Перемещение") > 0 Тогда КоличествоЗагруженно = ВернутьПеремещение(Результат,СтрокаДок,ТекущееСоответствие); Иначе Сообщить("Данный документ не настроен для возврата в базу"); Возврат; КонецЕсли; КонецЕсли;Сообщить("Загружено документов: "+Строка(КоличествоЗагруженно)); КонецПроцедуры </syntaxhighlight>Пример вызова XML | &НаСервере Процедура ВернутьДокументыИзСборщика(ДокументыСборщика) Прокси = ПолучитьПрокси();Фабрика = Прокси.ФабрикаXDTO; СписокДокументов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен,"СписокДокументов")); ДокументыСборщика = ?(Найти(ТекущееСоответствие.Шлюз,"Заказ") = 0,ТекущееСоответствие.Шлюз,"ЗаказНаСборку"); Результат = Прокси.ПолучитьДокументСборки(ДокументыСборщика); Если Результат <> Неопределено Тогда Если Найти(ДокументыСборщика,"ЗаказНаСборку") > 0 Тогда КоличествоЗагруженно = ВернутьЗаказыНаСборку(Результат,СтрокаДок,СписокДокументов,ТекущееСоответствие); ИначеЕсли Найти(ДокументыСборщика,"Перемещение") > 0 Тогда КоличествоЗагруженно = ВернутьПеремещение(Результат,СтрокаДок,ТекущееСоответствие); Иначе Сообщить("Данный документ не настроен для возврата в базу"); Возврат; КонецЕсли; КонецЕсли;Сообщить("Загружено документов: "+Строка(КоличествоЗагруженно)); КонецПроцедуры </syntaxhighlight>Пример вызова XML | ||
<syntaxhighlight lang="xml"> | |||
<syntaxhighlight lang=" | |||
<?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | ||
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> | <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> | ||
| Строка 1366: | Строка 1357: | ||
Пример вызова 1C | Пример вызова 1C | ||
<syntaxhighlight lang='1c'> | <syntaxhighlight lang='1c'> | ||
&НаСервере Процедура ВернутьДокументыИзСборщика2(ДокументыСборщика)Прокси = ПолучитьПрокси();Фабрика = Прокси.ФабрикаXDTO;СписокДокументов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен,"СписокДокументов"));ДокументыСборщика = ?(Найти(ТекущееСоответствие.Шлюз,"Заказ") = 0,ТекущееСоответствие.Шлюз,"ЗаказНаСборку");Результат = Прокси.ПолучитьДокументСборки(ДокументыСборщика,"П6");Если Результат <> Неопределено Тогда Если Найти(ДокументыСборщика,"ЗаказНаСборку") > 0 ТогдаКоличествоЗагруженно = ВернутьЗаказыНаСборку(Результат,СтрокаДок,СписокДокументов,ТекущееСоответствие);ИначеЕсли Найти(ДокументыСборщика,"Перемещение") > 0 ТогдаКоличествоЗагруженно = ВернутьПеремещение(Результат,СтрокаДок,ТекущееСоответствие);ИначеСообщить("Данный документ не настроен для возврата в базу");Возврат;КонецЕсли; КонецЕсли;Сообщить("Загружено документов: "+Строка(КоличествоЗагруженно)); КонецПроцедуры </syntaxhighlight>Пример вызова XML | &НаСервере Процедура ВернутьДокументыИзСборщика2(ДокументыСборщика)Прокси = ПолучитьПрокси();Фабрика = Прокси.ФабрикаXDTO;СписокДокументов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен,"СписокДокументов"));ДокументыСборщика = ?(Найти(ТекущееСоответствие.Шлюз,"Заказ") = 0,ТекущееСоответствие.Шлюз,"ЗаказНаСборку");Результат = Прокси.ПолучитьДокументСборки(ДокументыСборщика,"П6");Если Результат <> Неопределено Тогда Если Найти(ДокументыСборщика,"ЗаказНаСборку") > 0 ТогдаКоличествоЗагруженно = ВернутьЗаказыНаСборку(Результат,СтрокаДок,СписокДокументов,ТекущееСоответствие);ИначеЕсли Найти(ДокументыСборщика,"Перемещение") > 0 ТогдаКоличествоЗагруженно = ВернутьПеремещение(Результат,СтрокаДок,ТекущееСоответствие);ИначеСообщить("Данный документ не настроен для возврата в базу");Возврат;КонецЕсли; КонецЕсли;Сообщить("Загружено документов: "+Строка(КоличествоЗагруженно)); КонецПроцедуры </syntaxhighlight>Пример вызова XML | ||
<syntaxhighlight lang="xml"> | |||
<syntaxhighlight lang=" | |||
<?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | ||
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> | <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> | ||
| Строка 1388: | Строка 1377: | ||
Пример ответа XML | Пример ответа XML | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> | ||
| Строка 1536: | Строка 1524: | ||
Описание | Описание | ||
'''Назначение:''' Сервис предназначен для получения активных мобильных устройств из АСП.Склад WMS. | '''Назначение:''' Сервис предназначен для получения активных мобильных устройств из АСП.Склад WMS. | ||
| Строка 1548: | Строка 1535: | ||
Пример вызова 1C | Пример вызова 1C | ||
<syntaxhighlight lang='1c'> | <syntaxhighlight lang='1c'> | ||
&НаСервере Процедура СформироватьСписокМобУстройства() Прокси = ПолучитьПрокси(); Фабрика = Прокси.ФабрикаXDTO; МобУстройства = Прокси.ПолучитьМобильныеУстройства(); ЭлементыФормы.МобильныеУстройства.СписокВыбора.Очистить(); Для Каждого Стр Из МобУстройства.МобильноеУстройство Цикл ЭлементыФормы.МобильныеУстройства.СписокВыбора.Добавить(Стр.Наименование + " :"+ Стр.Код); КонецЦикла; КонецПроцедуры </syntaxhighlight>Пример вызова XML | &НаСервере Процедура СформироватьСписокМобУстройства() Прокси = ПолучитьПрокси(); Фабрика = Прокси.ФабрикаXDTO; МобУстройства = Прокси.ПолучитьМобильныеУстройства(); ЭлементыФормы.МобильныеУстройства.СписокВыбора.Очистить(); Для Каждого Стр Из МобУстройства.МобильноеУстройство Цикл ЭлементыФормы.МобильныеУстройства.СписокВыбора.Добавить(Стр.Наименование + " :"+ Стр.Код); КонецЦикла; КонецПроцедуры </syntaxhighlight>Пример вызова XML | ||
<syntaxhighlight lang="xml"> | |||
<syntaxhighlight lang=" | |||
<?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | ||
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> | <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> | ||
| Строка 1569: | Строка 1554: | ||
Пример ответа XML | Пример ответа XML | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> | ||
| Строка 1623: | Строка 1607: | ||
&НаСервере Процедура УстановитьСтатусВыгружен() Прокси = ПолучитьПрокси(); Фабрика = Прокси.ФабрикаXDTO;СписокДокументов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"СписокДокументов"));Для Каждого Стр Из ТаблицаДок ЦиклЕсли НЕ Стр.Выбран ТогдаПродолжить;КонецЕсли; Док = СформироватьДокумент(Стр.Ссылка, Фабрика);Если Док <> Неопределено ТогдаСписокДокументов.МассивДокументов.Добавить(Док);КонецЕсли;КонецЦикла; Выгружено = Прокси.УстановитьСтатусВыгружен(СписокДокументов); Сообщить("Документов в статусе выгруженно: "+Строка(Выгружено)); КонецПроцедуры </syntaxhighlight>Пример вызова XML | &НаСервере Процедура УстановитьСтатусВыгружен() Прокси = ПолучитьПрокси(); Фабрика = Прокси.ФабрикаXDTO;СписокДокументов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"СписокДокументов"));Для Каждого Стр Из ТаблицаДок ЦиклЕсли НЕ Стр.Выбран ТогдаПродолжить;КонецЕсли; Док = СформироватьДокумент(Стр.Ссылка, Фабрика);Если Док <> Неопределено ТогдаСписокДокументов.МассивДокументов.Добавить(Док);КонецЕсли;КонецЦикла; Выгружено = Прокси.УстановитьСтатусВыгружен(СписокДокументов); Сообщить("Документов в статусе выгруженно: "+Строка(Выгружено)); КонецПроцедуры </syntaxhighlight>Пример вызова XML | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | ||
| Строка 1806: | Строка 1789: | ||
Пример ответа XML | Пример ответа XML | ||
<syntaxhighlight lang=" | |||
<syntaxhighlight lang="xml"> | |||
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> | ||
<soap:Body> | <soap:Body> | ||