Описание сервисов сборка: различия между версиями

Нет описания правки
Нет описания правки
Строка 16: Строка 16:
|
|


<1c>
<syntaxhighlight lang='1c'>


&НаСервере Процедура ПроверитьПодключениеНаСервере() Прокси = ПолучитьПрокси(); Результат = Прокси.ПроверитьПодключение(); Сообщить(Результат); КонецПроцедуры </1c>Пример вызова XML
&НаСервере Процедура ПроверитьПодключениеНаСервере() Прокси = ПолучитьПрокси(); Результат = Прокси.ПроверитьПодключение(); Сообщить(Результат); КонецПроцедуры </syntaxhighlight>Пример вызова XML
|
|


Строка 72: Строка 72:
|
|


<1c>
<syntaxhighlight lang='1c'>


Процедура ВыгрузитьНоменклатуруНаСервере() Прокси = ПолучитьПрокси(); Фабрика = Прокси.ФабрикаXDTO; Запрос = Новый Запрос; Запрос.Текст =  "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | (&ВсяНоменклатура | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Номенклатура)) | И НЕ Номенклатура.ЭтоГруппа"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Запрос.УстановитьПараметр("ВсяНоменклатура", НЕ ЗначениеЗаполнено(Номенклатура)); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Результат = Прокси.СоздатьНоменклатуру(СформироватьНоменклатуру(Выборка.Ссылка,Фабрика)); Сообщить(Результат); КонецЦикла;  КонецПроцедуры </1c>Пример вызова XML
Процедура ВыгрузитьНоменклатуруНаСервере() Прокси = ПолучитьПрокси(); Фабрика = Прокси.ФабрикаXDTO; Запрос = Новый Запрос; Запрос.Текст =  "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | (&ВсяНоменклатура | ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (&Номенклатура)) | И НЕ Номенклатура.ЭтоГруппа"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Запрос.УстановитьПараметр("ВсяНоменклатура", НЕ ЗначениеЗаполнено(Номенклатура)); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Результат = Прокси.СоздатьНоменклатуру(СформироватьНоменклатуру(Выборка.Ссылка,Фабрика)); Сообщить(Результат); КонецЦикла;  КонецПроцедуры </syntaxhighlight>Пример вызова XML
|
|


Строка 170: Строка 170:
|
|


<1c>
<syntaxhighlight lang='1c'>


Процедура ВыгрузитьКонтрагентаНаСервере()    Прокси = ПолучитьПрокси();    Фабрика = Прокси.ФабрикаXDTO;      Запрос = Новый Запрос;    Запрос.Текст =          "ВЫБРАТЬ        | Контрагенты.Ссылка        |ИЗ        | Справочник.Контрагенты КАК Контрагенты        |ГДЕ        | Контрагенты.Ссылка В ИЕРАРХИИ(&Контрагент)        | И НЕ Контрагенты.ЭтоГруппа";          Запрос.УстановитьПараметр("Контрагент", Контрагент);     Выборка = Запрос.Выполнить().Выбрать();          Пока Выборка.Следующий() Цикл        Контрагент = СформироватьКонтрагента(Выборка.Ссылка,Фабрика);        Если ТипЗнч(Контрагент) = Тип("Строка") Тогда            Сообщить(Контрагент);            Продолжить;        КонецЕсли;         Результат = Прокси.СоздатьКонтрагента(Контрагент);    КонецЦикла; КонецПроцедуры </1c>Пример вызова XML
Процедура ВыгрузитьКонтрагентаНаСервере()    Прокси = ПолучитьПрокси();    Фабрика = Прокси.ФабрикаXDTO;      Запрос = Новый Запрос;    Запрос.Текст =          "ВЫБРАТЬ        | Контрагенты.Ссылка        |ИЗ        | Справочник.Контрагенты КАК Контрагенты        |ГДЕ        | Контрагенты.Ссылка В ИЕРАРХИИ(&Контрагент)        | И НЕ Контрагенты.ЭтоГруппа";          Запрос.УстановитьПараметр("Контрагент", Контрагент);     Выборка = Запрос.Выполнить().Выбрать();          Пока Выборка.Следующий() Цикл        Контрагент = СформироватьКонтрагента(Выборка.Ссылка,Фабрика);        Если ТипЗнч(Контрагент) = Тип("Строка") Тогда            Сообщить(Контрагент);            Продолжить;        КонецЕсли;         Результат = Прокси.СоздатьКонтрагента(Контрагент);    КонецЦикла; КонецПроцедуры </syntaxhighlight>Пример вызова XML
|
|


Строка 226: Строка 226:
|
|


<1c>
<syntaxhighlight lang='1c'>


&НаСервере Процедура ВыгрузитьУпаковкуНаСервере()    Прокси = ПолучитьПрокси();    Фабрика = Прокси.ФабрикаXDTO;      Запрос = Новый Запрос;    Запрос.Текст =          "ВЫБРАТЬ        | Упаковки.Ссылка        |ИЗ        | Справочник.УпаковкиЕдиницыИзмерения КАК Упаковки;        Выборка = Запрос.Выполнить().Выбрать();          Пока Выборка.Следующий() Цикл        Упаковка = СформироватьУпаковку(Выборка.Ссылка,Фабрика);        Если ТипЗнч(Упаковка) = Тип("Строка") Тогда            Сообщить(Упаковка);            Продолжить;        КонецЕсли;         Результат = Прокси.СоздатьУпаковку(Упаковка);    КонецЦикла; КонецПроцедуры </1c>Пример вызова XML
&НаСервере Процедура ВыгрузитьУпаковкуНаСервере()    Прокси = ПолучитьПрокси();    Фабрика = Прокси.ФабрикаXDTO;      Запрос = Новый Запрос;    Запрос.Текст =          "ВЫБРАТЬ        | Упаковки.Ссылка        |ИЗ        | Справочник.УпаковкиЕдиницыИзмерения КАК Упаковки;        Выборка = Запрос.Выполнить().Выбрать();          Пока Выборка.Следующий() Цикл        Упаковка = СформироватьУпаковку(Выборка.Ссылка,Фабрика);        Если ТипЗнч(Упаковка) = Тип("Строка") Тогда            Сообщить(Упаковка);            Продолжить;        КонецЕсли;         Результат = Прокси.СоздатьУпаковку(Упаковка);    КонецЦикла; КонецПроцедуры </syntaxhighlight>Пример вызова XML
|
|


Строка 284: Строка 284:
|
|


<1c>
<syntaxhighlight lang='1c'>


Процедура ГрупповаяОбработкаДокументов() Прокси = ПолучитьПрокси(); Фабрика = Прокси.ФабрикаXDTO; СписокДокументов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен,"СписокДокументов"));       хМобильноеУстройство = Неопределено; Если ЗначениеЗаполнено(МобильныеУстройства) Тогда МобУстройства = СтрРазбить(МобильныеУстройства,":"); хМобильноеУстройство = Фабрика.Создать(Фабрика.Тип(ПространствоИмен,"МобильноеУстройство")); хМобильноеУстройство.Наименование = МобУстройства[0]; хМобильноеУстройство.Код = МобУстройства[1]; КонецЕсли;  КоличествоВыгружено = 0; Для Каждого Стр Из ТаблицаДок Цикл Если НЕ Стр.Выбран Тогда Продолжить; КонецЕсли; Док = СформироватьДокумент(Стр.Ссылка, Фабрика); Если Док <> Неопределено Тогда  СписокДокументов.МассивДокументов.Добавить(Док); КоличествоВыгружено = КоличествоВыгружено + 1; КонецЕсли; КонецЦикла; Если СписокДокументов.МассивДокументов.Количество()>0 Тогда  ДанныеОтвета = Прокси.ЗагрузитьДокументы(СписокДокументов, Ложь, хМобильноеУстройство); Сообщить("Отправлено на выгрузку документов: "+КоличествоВыгружено); РазобратьОтвет(ДанныеОтвета); КонецЕсли; КонецПроцедуры </1c>Пример разбора ответа 1С
Процедура ГрупповаяОбработкаДокументов() Прокси = ПолучитьПрокси(); Фабрика = Прокси.ФабрикаXDTO; СписокДокументов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен,"СписокДокументов"));       хМобильноеУстройство = Неопределено; Если ЗначениеЗаполнено(МобильныеУстройства) Тогда МобУстройства = СтрРазбить(МобильныеУстройства,":"); хМобильноеУстройство = Фабрика.Создать(Фабрика.Тип(ПространствоИмен,"МобильноеУстройство")); хМобильноеУстройство.Наименование = МобУстройства[0]; хМобильноеУстройство.Код = МобУстройства[1]; КонецЕсли;  КоличествоВыгружено = 0; Для Каждого Стр Из ТаблицаДок Цикл Если НЕ Стр.Выбран Тогда Продолжить; КонецЕсли; Док = СформироватьДокумент(Стр.Ссылка, Фабрика); Если Док <> Неопределено Тогда  СписокДокументов.МассивДокументов.Добавить(Док); КоличествоВыгружено = КоличествоВыгружено + 1; КонецЕсли; КонецЦикла; Если СписокДокументов.МассивДокументов.Количество()>0 Тогда  ДанныеОтвета = Прокси.ЗагрузитьДокументы(СписокДокументов, Ложь, хМобильноеУстройство); Сообщить("Отправлено на выгрузку документов: "+КоличествоВыгружено); РазобратьОтвет(ДанныеОтвета); КонецЕсли; КонецПроцедуры </syntaxhighlight>Пример разбора ответа 1С
|<1c>
|<syntaxhighlight lang='1c'>
Процедура РазобратьОтвет(ДанныеОтвета) ТаблицаРезультатов = Новый ТаблицаЗначений; ТаблицаРезультатов.Колонки.Добавить("ТипДокумента"); ТаблицаРезультатов.Колонки.Добавить("Документ"); ТаблицаРезультатов.Колонки.Добавить("Результат"); Для Каждого Ответ Из ДанныеОтвета.МассивРезультатов Цикл          НовРез = ТаблицаРезультатов.Добавить(); НовРез.ТипДокумента = ТекущееСоответствие.Сборка; НовРез.Документ = НайтиДокумент(Ответ.Документ, ТекущееСоответствие); НовРез.Результат = Ответ.РезультатТранзакции; КонецЦикла; ТаблицаРезультатов.Сортировать("ТипДокумента"); Обработка = РеквизитФормыВЗначение("Объект"); Макет = Обработка.ПолучитьМакет("Макет"); ШапкаТД = Макет.ПолучитьОбласть("Шапка"); ГруппаДок = Макет.ПолучитьОбласть("ГруппаДокументов"); СтрокаДок = Макет.ПолучитьОбласть("СтрокаДокумент"); ТД.Очистить(); ШапкаТД.Параметры.ТипОбъекта = "Документ"; ТД.Вывести(ШапкаТД); ТД.НачатьАвтогруппировкуСтрок(); ТекТип = ""; ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("ТипДокумента"); Для Каждого Рез Из ТаблицаРезультатов Цикл Если ТекТип <> Рез.ТипДокумента Тогда ТекТип = Рез.ТипДокумента; ГруппаДок.Параметры.Заполнить(Рез); ГруппаДок.Параметры.ТипДокумента = ТипВСборке(Рез.ТипДокумента); ПараметрыОтбора.ТипДокумента = Рез.ТипДокумента; ГруппаДок.Параметры.КоличествоЗагружено = ТаблицаРезультатов.НайтиСтроки(ПараметрыОтбора).Количество(); ТД.Вывести(ГруппаДок,1); КонецЕсли; СтрокаДок.Параметры.Заполнить(Рез); ТД.Вывести(СтрокаДок); КонецЦикла; ТД.ЗакончитьАвтогруппировкуСтрок(); ТД.ТолькоПросмотр = Истина; КонецПроцедуры  Функция НайтиДокумент(ДокументХ, ТипДокументаСтрокой) Запрос = Новый Запрос; Запрос.Текст =  "ВЫБРАТЬ | ТипДок.Ссылка |ИЗ | Документ.#ТипДок# КАК ТипДок |ГДЕ | ТипДок.Номер ПОДОБНО &Номер | И НАЧАЛОПЕРИОДА(ТипДок.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ)"; Запрос.УстановитьПараметр("Дата", ДокументХ.Дата); Запрос.УстановитьПараметр("Номер", "%"+СокрЛП(ДокументХ.Номер)+"%"); Запрос.Текст = СтрЗаменить(Запрос.Текст,"#ТипДок#",СтрЗаменить(ТипДокументаСтрокой," ","")); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда  Возврат Выборка.Ссылка; Иначе  Возврат Документы[СтрЗаменить(ТипДокументаСтрокой," ","")].ПустаяСсылка(); КонецЕсли; КонецФункции  </1c>Пример вызова XML
Процедура РазобратьОтвет(ДанныеОтвета) ТаблицаРезультатов = Новый ТаблицаЗначений; ТаблицаРезультатов.Колонки.Добавить("ТипДокумента"); ТаблицаРезультатов.Колонки.Добавить("Документ"); ТаблицаРезультатов.Колонки.Добавить("Результат"); Для Каждого Ответ Из ДанныеОтвета.МассивРезультатов Цикл          НовРез = ТаблицаРезультатов.Добавить(); НовРез.ТипДокумента = ТекущееСоответствие.Сборка; НовРез.Документ = НайтиДокумент(Ответ.Документ, ТекущееСоответствие); НовРез.Результат = Ответ.РезультатТранзакции; КонецЦикла; ТаблицаРезультатов.Сортировать("ТипДокумента"); Обработка = РеквизитФормыВЗначение("Объект"); Макет = Обработка.ПолучитьМакет("Макет"); ШапкаТД = Макет.ПолучитьОбласть("Шапка"); ГруппаДок = Макет.ПолучитьОбласть("ГруппаДокументов"); СтрокаДок = Макет.ПолучитьОбласть("СтрокаДокумент"); ТД.Очистить(); ШапкаТД.Параметры.ТипОбъекта = "Документ"; ТД.Вывести(ШапкаТД); ТД.НачатьАвтогруппировкуСтрок(); ТекТип = ""; ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("ТипДокумента"); Для Каждого Рез Из ТаблицаРезультатов Цикл Если ТекТип <> Рез.ТипДокумента Тогда ТекТип = Рез.ТипДокумента; ГруппаДок.Параметры.Заполнить(Рез); ГруппаДок.Параметры.ТипДокумента = ТипВСборке(Рез.ТипДокумента); ПараметрыОтбора.ТипДокумента = Рез.ТипДокумента; ГруппаДок.Параметры.КоличествоЗагружено = ТаблицаРезультатов.НайтиСтроки(ПараметрыОтбора).Количество(); ТД.Вывести(ГруппаДок,1); КонецЕсли; СтрокаДок.Параметры.Заполнить(Рез); ТД.Вывести(СтрокаДок); КонецЦикла; ТД.ЗакончитьАвтогруппировкуСтрок(); ТД.ТолькоПросмотр = Истина; КонецПроцедуры  Функция НайтиДокумент(ДокументХ, ТипДокументаСтрокой) Запрос = Новый Запрос; Запрос.Текст =  "ВЫБРАТЬ | ТипДок.Ссылка |ИЗ | Документ.#ТипДок# КАК ТипДок |ГДЕ | ТипДок.Номер ПОДОБНО &Номер | И НАЧАЛОПЕРИОДА(ТипДок.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ)"; Запрос.УстановитьПараметр("Дата", ДокументХ.Дата); Запрос.УстановитьПараметр("Номер", "%"+СокрЛП(ДокументХ.Номер)+"%"); Запрос.Текст = СтрЗаменить(Запрос.Текст,"#ТипДок#",СтрЗаменить(ТипДокументаСтрокой," ","")); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда  Возврат Выборка.Ссылка; Иначе  Возврат Документы[СтрЗаменить(ТипДокументаСтрокой," ","")].ПустаяСсылка(); КонецЕсли; КонецФункции  </syntaxhighlight>Пример вызова XML
|
|


Строка 681: Строка 681:
|
|


<1c>
<syntaxhighlight lang='1c'>


&НаСервере Процедура ВернутьИзСборщика() Прокси = ПолучитьПрокси(); Результат = Прокси.ПолучитьДокументыЗаказНаСборку(); Если Результат<> Неопределено Тогда КоличествоЗагруженно = 0; Для каждого ДокХДТО Из Результат.МассивРезультатов Цикл Документ = Документы.АСП_ЗаказНаСборку.НайтиПоНомеру(ДокХДТО.Документ.Номер, ДокХДТО.Документ.Дата); Если Документ.Пустая() Тогда ДокСсылка = Документы.АСП_ЗаказНаСборку.СоздатьДокумент(); ДокСсылка.Дата = ДокХДТО.Документ.Дата; ДокСсылка.Номер = ДокХДТО.Документ.Номер; Иначе ДокСсылка = Документ.ПолучитьОбъект(); КонецЕсли; ДокСсылка.Склад = Справочники.Склады.НайтиПоКоду(СокрЛП(ДокХДТО.Документ.Склад.Код)); Если ПустаяСтрока(ДокХДТО.Документ.Организация.ИНН) Тогда  ДокСсылка.Организация = Справочники.Организации.НайтиПоКоду(ДокХДТО.Документ.Организация.Код); Иначе  ДокСсылка.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", ДокХДТО.Документ.Организация.ИНН); КонецЕсли; СообщениеСтатуса = ""; ПеречСтатус = ПолучитьСтатусСборки(ДокХДТО.Документ.Статус);  Если ТипЗнч(ПеречСтатус) <> Тип("Строка") Тогда ДокСсылка.СтатусСборки = ПеречСтатус; Иначе СообщениеСтатуса = ("Документ №"+ ДокСсылка.Номер+ " загружен без статуса. "+ ПеречСтатус); КонецЕсли; ДокСсылка.Товары.Очистить(); Для каждого СтрокиТЧ Из ДокХДТО.Документ.Товары Цикл НовСтр = ДокСсылка.Товары.Добавить(); ЗаполнитьЗначенияСвойств(НовСтр,СтрокиТЧ); НовСтр.Номенклатура =  Справочники.Номенклатура.НайтиПоКоду(СокрЛП(СтрокиТЧ.Номенклатура.Код)); Если НовСтр.Номенклатура.Пустая() Тогда  Сообщить("Номенклатура по данному коду "+ СокрЛП(СтрокиТЧ.Номенклатура.Код)+ " не обнаружена"); Продолжить;  КонецЕсли; НовСтр.ЕдиницаИзмерения =  Справочники.ЕдиницыИзмерения.НайтиПоКоду(СокрЛП(СтрокиТЧ.Упаковка.КодЗагрузки)); НовСтр.Производитель =  Справочники.Организации.НайтиПоКоду(СокрЛП(СтрокиТЧ.Производитель.Код)); НомерЗаказаСборки = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Номер,СтрЗаменить(СтрокиТЧ.Заказ.Номер,"З_","")); ДатаЗаказаСборка  = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Дата,СтрокиТЧ.Заказ.Дата); НовСтр.Заказ   =  Документы[ТекущееСоответствие.База].НайтиПоНомеру(НомерЗаказаСборки, ДатаЗаказаСборка); Если Не ЗначениеЗаполнено(НовСтр.Заказ) Тогда Сообщить("Заказ не указан в заказе на сборку №"+ СокрЛП(ДокХДТО.Документ.Номер)); Продолжить; КонецЕсли;  Если НовСтр.Заказ <> Неопределено И Не НовСтр.Заказ.Пустая() Тогда УстановитьСтатус(НовСтр.Заказ,ДокСсылка.СтатусСборки); КонецЕсли; КонецЦикла; Если ДокСсылка.Товары.Количество()> 0 Тогда ДокСсылка.Записать(); КонецЕсли; Если Не ДокСсылка.Ссылка.Пустая() Тогда  КоличествоЗагруженно = КоличествоЗагруженно + 1; Если ДокХДТО.Документ <> Неопределено Тогда  СписокДокументов.МассивДокументов.Добавить(ДокХДТО.Документ); КонецЕсли; КонецЕсли; СтрокаДок.Параметры.Документ = Строка(ДокСсылка); СтрокаДок.Параметры.Результат = Строка(ДокХДТО.РезультатТранзакции) + " " + СообщениеСтатуса; ТД.Вывести(СтрокаДок); КонецЦикла; КонецЕсли; КонецПроцедуры </1c>Пример вызова XML
&НаСервере Процедура ВернутьИзСборщика() Прокси = ПолучитьПрокси(); Результат = Прокси.ПолучитьДокументыЗаказНаСборку(); Если Результат<> Неопределено Тогда КоличествоЗагруженно = 0; Для каждого ДокХДТО Из Результат.МассивРезультатов Цикл Документ = Документы.АСП_ЗаказНаСборку.НайтиПоНомеру(ДокХДТО.Документ.Номер, ДокХДТО.Документ.Дата); Если Документ.Пустая() Тогда ДокСсылка = Документы.АСП_ЗаказНаСборку.СоздатьДокумент(); ДокСсылка.Дата = ДокХДТО.Документ.Дата; ДокСсылка.Номер = ДокХДТО.Документ.Номер; Иначе ДокСсылка = Документ.ПолучитьОбъект(); КонецЕсли; ДокСсылка.Склад = Справочники.Склады.НайтиПоКоду(СокрЛП(ДокХДТО.Документ.Склад.Код)); Если ПустаяСтрока(ДокХДТО.Документ.Организация.ИНН) Тогда  ДокСсылка.Организация = Справочники.Организации.НайтиПоКоду(ДокХДТО.Документ.Организация.Код); Иначе  ДокСсылка.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", ДокХДТО.Документ.Организация.ИНН); КонецЕсли; СообщениеСтатуса = ""; ПеречСтатус = ПолучитьСтатусСборки(ДокХДТО.Документ.Статус);  Если ТипЗнч(ПеречСтатус) <> Тип("Строка") Тогда ДокСсылка.СтатусСборки = ПеречСтатус; Иначе СообщениеСтатуса = ("Документ №"+ ДокСсылка.Номер+ " загружен без статуса. "+ ПеречСтатус); КонецЕсли; ДокСсылка.Товары.Очистить(); Для каждого СтрокиТЧ Из ДокХДТО.Документ.Товары Цикл НовСтр = ДокСсылка.Товары.Добавить(); ЗаполнитьЗначенияСвойств(НовСтр,СтрокиТЧ); НовСтр.Номенклатура =  Справочники.Номенклатура.НайтиПоКоду(СокрЛП(СтрокиТЧ.Номенклатура.Код)); Если НовСтр.Номенклатура.Пустая() Тогда  Сообщить("Номенклатура по данному коду "+ СокрЛП(СтрокиТЧ.Номенклатура.Код)+ " не обнаружена"); Продолжить;  КонецЕсли; НовСтр.ЕдиницаИзмерения =  Справочники.ЕдиницыИзмерения.НайтиПоКоду(СокрЛП(СтрокиТЧ.Упаковка.КодЗагрузки)); НовСтр.Производитель =  Справочники.Организации.НайтиПоКоду(СокрЛП(СтрокиТЧ.Производитель.Код)); НомерЗаказаСборки = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Номер,СтрЗаменить(СтрокиТЧ.Заказ.Номер,"З_","")); ДатаЗаказаСборка  = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Дата,СтрокиТЧ.Заказ.Дата); НовСтр.Заказ   =  Документы[ТекущееСоответствие.База].НайтиПоНомеру(НомерЗаказаСборки, ДатаЗаказаСборка); Если Не ЗначениеЗаполнено(НовСтр.Заказ) Тогда Сообщить("Заказ не указан в заказе на сборку №"+ СокрЛП(ДокХДТО.Документ.Номер)); Продолжить; КонецЕсли;  Если НовСтр.Заказ <> Неопределено И Не НовСтр.Заказ.Пустая() Тогда УстановитьСтатус(НовСтр.Заказ,ДокСсылка.СтатусСборки); КонецЕсли; КонецЦикла; Если ДокСсылка.Товары.Количество()> 0 Тогда ДокСсылка.Записать(); КонецЕсли; Если Не ДокСсылка.Ссылка.Пустая() Тогда  КоличествоЗагруженно = КоличествоЗагруженно + 1; Если ДокХДТО.Документ <> Неопределено Тогда  СписокДокументов.МассивДокументов.Добавить(ДокХДТО.Документ); КонецЕсли; КонецЕсли; СтрокаДок.Параметры.Документ = Строка(ДокСсылка); СтрокаДок.Параметры.Результат = Строка(ДокХДТО.РезультатТранзакции) + " " + СообщениеСтатуса; ТД.Вывести(СтрокаДок); КонецЦикла; КонецЕсли; КонецПроцедуры </syntaxhighlight>Пример вызова XML
|
|


Строка 922: Строка 922:
|
|


<1c>
<syntaxhighlight lang='1c'>


&НаСервере Процедура ВернутьИзСборщика2() Прокси = ПолучитьПрокси(); Результат = Прокси.ПолучитьДокументыЗаказНаСборку2("П6"); Если Результат<> Неопределено Тогда КоличествоЗагруженно = 0; Для каждого ДокХДТО Из Результат.МассивРезультатов Цикл Документ = Документы.АСП_ЗаказНаСборку.НайтиПоНомеру(ДокХДТО.Документ.Номер, ДокХДТО.Документ.Дата); Если Документ.Пустая() Тогда ДокСсылка = Документы.АСП_ЗаказНаСборку.СоздатьДокумент(); ДокСсылка.Дата = ДокХДТО.Документ.Дата; ДокСсылка.Номер = ДокХДТО.Документ.Номер; Иначе ДокСсылка = Документ.ПолучитьОбъект(); КонецЕсли; ДокСсылка.Склад = Справочники.Склады.НайтиПоКоду(СокрЛП(ДокХДТО.Документ.Склад.Код)); Если ПустаяСтрока(ДокХДТО.Документ.Организация.ИНН) Тогда  ДокСсылка.Организация = Справочники.Организации.НайтиПоКоду(ДокХДТО.Документ.Организация.Код); Иначе  ДокСсылка.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", ДокХДТО.Документ.Организация.ИНН); КонецЕсли; СообщениеСтатуса = ""; ПеречСтатус = ПолучитьСтатусСборки(ДокХДТО.Документ.Статус);  Если ТипЗнч(ПеречСтатус) <> Тип("Строка") Тогда ДокСсылка.СтатусСборки = ПеречСтатус; Иначе СообщениеСтатуса = ("Документ №"+ ДокСсылка.Номер+ " загружен без статуса. "+ ПеречСтатус); КонецЕсли; ДокСсылка.Товары.Очистить(); Для каждого СтрокиТЧ Из ДокХДТО.Документ.Товары Цикл НовСтр = ДокСсылка.Товары.Добавить(); ЗаполнитьЗначенияСвойств(НовСтр,СтрокиТЧ); НовСтр.Номенклатура =  Справочники.Номенклатура.НайтиПоКоду(СокрЛП(СтрокиТЧ.Номенклатура.Код)); Если НовСтр.Номенклатура.Пустая() Тогда  Сообщить("Номенклатура по данному коду "+ СокрЛП(СтрокиТЧ.Номенклатура.Код)+ " не обнаружена"); Продолжить;  КонецЕсли; НовСтр.ЕдиницаИзмерения =  Справочники.ЕдиницыИзмерения.НайтиПоКоду(СокрЛП(СтрокиТЧ.Упаковка.КодЗагрузки)); НовСтр.Производитель =  Справочники.Организации.НайтиПоКоду(СокрЛП(СтрокиТЧ.Производитель.Код)); НомерЗаказаСборки = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Номер,СтрЗаменить(СтрокиТЧ.Заказ.Номер,"З_","")); ДатаЗаказаСборка  = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Дата,СтрокиТЧ.Заказ.Дата); НовСтр.Заказ   =  Документы[ТекущееСоответствие.База].НайтиПоНомеру(НомерЗаказаСборки, ДатаЗаказаСборка); Если Не ЗначениеЗаполнено(НовСтр.Заказ) Тогда Сообщить("Заказ не указан в заказе на сборку №"+ СокрЛП(ДокХДТО.Документ.Номер)); Продолжить; КонецЕсли;  Если НовСтр.Заказ <> Неопределено И Не НовСтр.Заказ.Пустая() Тогда УстановитьСтатус(НовСтр.Заказ,ДокСсылка.СтатусСборки); КонецЕсли; КонецЦикла; Если ДокСсылка.Товары.Количество()> 0 Тогда ДокСсылка.Записать(); КонецЕсли; Если Не ДокСсылка.Ссылка.Пустая() Тогда  КоличествоЗагруженно = КоличествоЗагруженно + 1; Если ДокХДТО.Документ <> Неопределено Тогда  СписокДокументов.МассивДокументов.Добавить(ДокХДТО.Документ); КонецЕсли; КонецЕсли; СтрокаДок.Параметры.Документ = Строка(ДокСсылка); СтрокаДок.Параметры.Результат = Строка(ДокХДТО.РезультатТранзакции) + " " + СообщениеСтатуса; ТД.Вывести(СтрокаДок); КонецЦикла; КонецЕсли; КонецПроцедуры </1c>Пример вызова XML
&НаСервере Процедура ВернутьИзСборщика2() Прокси = ПолучитьПрокси(); Результат = Прокси.ПолучитьДокументыЗаказНаСборку2("П6"); Если Результат<> Неопределено Тогда КоличествоЗагруженно = 0; Для каждого ДокХДТО Из Результат.МассивРезультатов Цикл Документ = Документы.АСП_ЗаказНаСборку.НайтиПоНомеру(ДокХДТО.Документ.Номер, ДокХДТО.Документ.Дата); Если Документ.Пустая() Тогда ДокСсылка = Документы.АСП_ЗаказНаСборку.СоздатьДокумент(); ДокСсылка.Дата = ДокХДТО.Документ.Дата; ДокСсылка.Номер = ДокХДТО.Документ.Номер; Иначе ДокСсылка = Документ.ПолучитьОбъект(); КонецЕсли; ДокСсылка.Склад = Справочники.Склады.НайтиПоКоду(СокрЛП(ДокХДТО.Документ.Склад.Код)); Если ПустаяСтрока(ДокХДТО.Документ.Организация.ИНН) Тогда  ДокСсылка.Организация = Справочники.Организации.НайтиПоКоду(ДокХДТО.Документ.Организация.Код); Иначе  ДокСсылка.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", ДокХДТО.Документ.Организация.ИНН); КонецЕсли; СообщениеСтатуса = ""; ПеречСтатус = ПолучитьСтатусСборки(ДокХДТО.Документ.Статус);  Если ТипЗнч(ПеречСтатус) <> Тип("Строка") Тогда ДокСсылка.СтатусСборки = ПеречСтатус; Иначе СообщениеСтатуса = ("Документ №"+ ДокСсылка.Номер+ " загружен без статуса. "+ ПеречСтатус); КонецЕсли; ДокСсылка.Товары.Очистить(); Для каждого СтрокиТЧ Из ДокХДТО.Документ.Товары Цикл НовСтр = ДокСсылка.Товары.Добавить(); ЗаполнитьЗначенияСвойств(НовСтр,СтрокиТЧ); НовСтр.Номенклатура =  Справочники.Номенклатура.НайтиПоКоду(СокрЛП(СтрокиТЧ.Номенклатура.Код)); Если НовСтр.Номенклатура.Пустая() Тогда  Сообщить("Номенклатура по данному коду "+ СокрЛП(СтрокиТЧ.Номенклатура.Код)+ " не обнаружена"); Продолжить;  КонецЕсли; НовСтр.ЕдиницаИзмерения =  Справочники.ЕдиницыИзмерения.НайтиПоКоду(СокрЛП(СтрокиТЧ.Упаковка.КодЗагрузки)); НовСтр.Производитель =  Справочники.Организации.НайтиПоКоду(СокрЛП(СтрокиТЧ.Производитель.Код)); НомерЗаказаСборки = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Номер,СтрЗаменить(СтрокиТЧ.Заказ.Номер,"З_","")); ДатаЗаказаСборка  = ?(СтрокиТЧ.Заказ = Неопределено,ДокХДТО.Документ.Дата,СтрокиТЧ.Заказ.Дата); НовСтр.Заказ   =  Документы[ТекущееСоответствие.База].НайтиПоНомеру(НомерЗаказаСборки, ДатаЗаказаСборка); Если Не ЗначениеЗаполнено(НовСтр.Заказ) Тогда Сообщить("Заказ не указан в заказе на сборку №"+ СокрЛП(ДокХДТО.Документ.Номер)); Продолжить; КонецЕсли;  Если НовСтр.Заказ <> Неопределено И Не НовСтр.Заказ.Пустая() Тогда УстановитьСтатус(НовСтр.Заказ,ДокСсылка.СтатусСборки); КонецЕсли; КонецЦикла; Если ДокСсылка.Товары.Количество()> 0 Тогда ДокСсылка.Записать(); КонецЕсли; Если Не ДокСсылка.Ссылка.Пустая() Тогда  КоличествоЗагруженно = КоличествоЗагруженно + 1; Если ДокХДТО.Документ <> Неопределено Тогда  СписокДокументов.МассивДокументов.Добавить(ДокХДТО.Документ); КонецЕсли; КонецЕсли; СтрокаДок.Параметры.Документ = Строка(ДокСсылка); СтрокаДок.Параметры.Результат = Строка(ДокХДТО.РезультатТранзакции) + " " + СообщениеСтатуса; ТД.Вывести(СтрокаДок); КонецЦикла; КонецЕсли; КонецПроцедуры </syntaxhighlight>Пример вызова XML
|
|


Строка 1108: Строка 1108:
|
|


<1c>
<syntaxhighlight lang='1c'>


&НаСервере Процедура ЗарегистрироватьОтгрузку(ДокЗаказ)    Прокси = ПолучитьПрокси(); Фабрика = Прокси.ФабрикаXDTO; хДокумент = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"Документ")); хДокумент.Номер = ДокЗаказ.Номер; хДокумент.Дата = ДокЗаказ.Дата; Результат = Прокси.ЗарегистрироватьОтгрузку(хДокумент);    Сообщить(Результат); КонецПроцедуры </1c>Пример вызова XML
&НаСервере Процедура ЗарегистрироватьОтгрузку(ДокЗаказ)    Прокси = ПолучитьПрокси(); Фабрика = Прокси.ФабрикаXDTO; хДокумент = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"Документ")); хДокумент.Номер = ДокЗаказ.Номер; хДокумент.Дата = ДокЗаказ.Дата; Результат = Прокси.ЗарегистрироватьОтгрузку(хДокумент);    Сообщить(Результат); КонецПроцедуры </syntaxhighlight>Пример вызова XML
|
|


Строка 1147: Строка 1147:
|
|


<1c>
<syntaxhighlight lang='1c'>


&НаСервере Процедура ВернутьДокументыИзСборщика(ДокументыСборщика) Прокси = ПолучитьПрокси();    Фабрика = Прокси.ФабрикаXDTO; СписокДокументов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен,"СписокДокументов")); ДокументыСборщика = ?(Найти(ТекущееСоответствие.Шлюз,"Заказ") = 0,ТекущееСоответствие.Шлюз,"ЗаказНаСборку"); Результат = Прокси.ПолучитьДокументСборки(ДокументыСборщика); Если Результат <> Неопределено Тогда Если Найти(ДокументыСборщика,"ЗаказНаСборку") > 0 Тогда  КоличествоЗагруженно = ВернутьЗаказыНаСборку(Результат,СтрокаДок,СписокДокументов,ТекущееСоответствие); ИначеЕсли Найти(ДокументыСборщика,"Перемещение") > 0 Тогда КоличествоЗагруженно = ВернутьПеремещение(Результат,СтрокаДок,ТекущееСоответствие); Иначе  Сообщить("Данный документ не настроен для возврата в базу"); Возврат; КонецЕсли; КонецЕсли;    Сообщить("Загружено документов: "+Строка(КоличествоЗагруженно)); КонецПроцедуры </1c>Пример вызова XML
&НаСервере Процедура ВернутьДокументыИзСборщика(ДокументыСборщика) Прокси = ПолучитьПрокси();    Фабрика = Прокси.ФабрикаXDTO; СписокДокументов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен,"СписокДокументов")); ДокументыСборщика = ?(Найти(ТекущееСоответствие.Шлюз,"Заказ") = 0,ТекущееСоответствие.Шлюз,"ЗаказНаСборку"); Результат = Прокси.ПолучитьДокументСборки(ДокументыСборщика); Если Результат <> Неопределено Тогда Если Найти(ДокументыСборщика,"ЗаказНаСборку") > 0 Тогда  КоличествоЗагруженно = ВернутьЗаказыНаСборку(Результат,СтрокаДок,СписокДокументов,ТекущееСоответствие); ИначеЕсли Найти(ДокументыСборщика,"Перемещение") > 0 Тогда КоличествоЗагруженно = ВернутьПеремещение(Результат,СтрокаДок,ТекущееСоответствие); Иначе  Сообщить("Данный документ не настроен для возврата в базу"); Возврат; КонецЕсли; КонецЕсли;    Сообщить("Загружено документов: "+Строка(КоличествоЗагруженно)); КонецПроцедуры </syntaxhighlight>Пример вызова XML
|
|


Строка 1378: Строка 1378:
|
|


<1c>
<syntaxhighlight lang='1c'>


&НаСервере Процедура ВернутьДокументыИзСборщика2(ДокументыСборщика)    Прокси = ПолучитьПрокси();    Фабрика = Прокси.ФабрикаXDTO;    СписокДокументов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен,"СписокДокументов"));    ДокументыСборщика = ?(Найти(ТекущееСоответствие.Шлюз,"Заказ") = 0,ТекущееСоответствие.Шлюз,"ЗаказНаСборку");          Результат = Прокси.ПолучитьДокументСборки(ДокументыСборщика,"П6");    Если Результат <> Неопределено Тогда         Если Найти(ДокументыСборщика,"ЗаказНаСборку") > 0 Тогда              КоличествоЗагруженно = ВернутьЗаказыНаСборку(Результат,СтрокаДок,СписокДокументов,ТекущееСоответствие);        ИначеЕсли Найти(ДокументыСборщика,"Перемещение") > 0 Тогда            КоличествоЗагруженно = ВернутьПеремещение(Результат,СтрокаДок,ТекущееСоответствие);        Иначе              Сообщить("Данный документ не настроен для возврата в базу");            Возврат;        КонецЕсли;     КонецЕсли;    Сообщить("Загружено документов: "+Строка(КоличествоЗагруженно)); КонецПроцедуры </1c>Пример вызова XML
&НаСервере Процедура ВернутьДокументыИзСборщика2(ДокументыСборщика)    Прокси = ПолучитьПрокси();    Фабрика = Прокси.ФабрикаXDTO;    СписокДокументов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен,"СписокДокументов"));    ДокументыСборщика = ?(Найти(ТекущееСоответствие.Шлюз,"Заказ") = 0,ТекущееСоответствие.Шлюз,"ЗаказНаСборку");          Результат = Прокси.ПолучитьДокументСборки(ДокументыСборщика,"П6");    Если Результат <> Неопределено Тогда         Если Найти(ДокументыСборщика,"ЗаказНаСборку") > 0 Тогда              КоличествоЗагруженно = ВернутьЗаказыНаСборку(Результат,СтрокаДок,СписокДокументов,ТекущееСоответствие);        ИначеЕсли Найти(ДокументыСборщика,"Перемещение") > 0 Тогда            КоличествоЗагруженно = ВернутьПеремещение(Результат,СтрокаДок,ТекущееСоответствие);        Иначе              Сообщить("Данный документ не настроен для возврата в базу");            Возврат;        КонецЕсли;     КонецЕсли;    Сообщить("Загружено документов: "+Строка(КоличествоЗагруженно)); КонецПроцедуры </syntaxhighlight>Пример вызова XML
|
|


Строка 1560: Строка 1560:
|
|


<1c>
<syntaxhighlight lang='1c'>


&НаСервере Процедура СформироватьСписокМобУстройства() Прокси = ПолучитьПрокси(); Фабрика = Прокси.ФабрикаXDTO; МобУстройства = Прокси.ПолучитьМобильныеУстройства(); ЭлементыФормы.МобильныеУстройства.СписокВыбора.Очистить(); Для Каждого Стр Из МобУстройства.МобильноеУстройство Цикл ЭлементыФормы.МобильныеУстройства.СписокВыбора.Добавить(Стр.Наименование + " :"+ Стр.Код); КонецЦикла; КонецПроцедуры </1c>Пример вызова XML
&НаСервере Процедура СформироватьСписокМобУстройства() Прокси = ПолучитьПрокси(); Фабрика = Прокси.ФабрикаXDTO; МобУстройства = Прокси.ПолучитьМобильныеУстройства(); ЭлементыФормы.МобильныеУстройства.СписокВыбора.Очистить(); Для Каждого Стр Из МобУстройства.МобильноеУстройство Цикл ЭлементыФормы.МобильныеУстройства.СписокВыбора.Добавить(Стр.Наименование + " :"+ Стр.Код); КонецЦикла; КонецПроцедуры </syntaxhighlight>Пример вызова XML
|
|


Строка 1630: Строка 1630:
|
|


<1c>
<syntaxhighlight lang='1c'>


&НаСервере Процедура УстановитьСтатусВыгружен() Прокси = ПолучитьПрокси(); Фабрика = Прокси.ФабрикаXDTO;    СписокДокументов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"СписокДокументов"));          Для Каждого Стр Из ТаблицаДок Цикл        Если НЕ Стр.Выбран Тогда            Продолжить;        КонецЕсли;         Док = СформироватьДокумент(Стр.Ссылка, Фабрика);        Если Док <> Неопределено Тогда              СписокДокументов.МассивДокументов.Добавить(Док);        КонецЕсли;    КонецЦикла; Выгружено = Прокси.УстановитьСтатусВыгружен(СписокДокументов); Сообщить("Документов в статусе выгруженно: "+Строка(Выгружено)); КонецПроцедуры </1c>Пример вызова XML
&НаСервере Процедура УстановитьСтатусВыгружен() Прокси = ПолучитьПрокси(); Фабрика = Прокси.ФабрикаXDTO;    СписокДокументов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"СписокДокументов"));          Для Каждого Стр Из ТаблицаДок Цикл        Если НЕ Стр.Выбран Тогда            Продолжить;        КонецЕсли;         Док = СформироватьДокумент(Стр.Ссылка, Фабрика);        Если Док <> Неопределено Тогда              СписокДокументов.МассивДокументов.Добавить(Док);        КонецЕсли;    КонецЦикла; Выгружено = Прокси.УстановитьСтатусВыгружен(СписокДокументов); Сообщить("Документов в статусе выгруженно: "+Строка(Выгружено)); КонецПроцедуры </syntaxhighlight>Пример вызова XML
|
|


Строка 1848: Строка 1848:
|
|


<1c>
<syntaxhighlight lang='1c'>


&НаСервере Процедура ПроверитьПодключениеНаСервере() Прокси = ПолучитьПрокси(); Результат = Прокси.ПолучитьНастройкиОбработки(); ТаблицыНастроек = "СоответствиеДокументов,СоответствиеНом,СоответствиеКонтрагентов,СоответствиеОрганизации,СоответствиеСкладов,ВидыКиХС,ВидыКиПО"; Для Каждого Имя Из СтрРазделить(ТаблицыНастроек,",") Цикл Если ЗначениеЗаполнено(Результат[Имя]) Тогда ТекНастройки.Вставить(Имя,Результат[Имя]); КонецЕсли; КонецЦикла; КонецПроцедуры </1c>ЗагрузитьНастройкиОбработкиОписание
&НаСервере Процедура ПроверитьПодключениеНаСервере() Прокси = ПолучитьПрокси(); Результат = Прокси.ПолучитьНастройкиОбработки(); ТаблицыНастроек = "СоответствиеДокументов,СоответствиеНом,СоответствиеКонтрагентов,СоответствиеОрганизации,СоответствиеСкладов,ВидыКиХС,ВидыКиПО"; Для Каждого Имя Из СтрРазделить(ТаблицыНастроек,",") Цикл Если ЗначениеЗаполнено(Результат[Имя]) Тогда ТекНастройки.Вставить(Имя,Результат[Имя]); КонецЕсли; КонецЦикла; КонецПроцедуры </syntaxhighlight>ЗагрузитьНастройкиОбработкиОписание
|'''Назначение:''' Сервис предназначен для сохранения настроек правил для обработки выгрузки в АСП.Склад WMS.'''Параметры:'''
|'''Назначение:''' Сервис предназначен для сохранения настроек правил для обработки выгрузки в АСП.Склад WMS.'''Параметры:'''
* Настройки(Тип: [[3_сборка:сборка_выгрузка:описание_типов_сборка|НастройкиОбработки]]) - Структура, в которой содержатся скомпонованные настройки обработки по вкладкам.
* Настройки(Тип: [[3_сборка:сборка_выгрузка:описание_типов_сборка|НастройкиОбработки]]) - Структура, в которой содержатся скомпонованные настройки обработки по вкладкам.
Строка 1862: Строка 1862:
|
|


<1c>
<syntaxhighlight lang='1c'>


&НаСервере
&НаСервере
Строка 1874: Строка 1874:
   КонецЕсли;   
   КонецЕсли;   
КонецПроцедуры
КонецПроцедуры
</1c>
</syntaxhighlight>
[[Category:сборка выгрузка]]
[[Category:сборка выгрузка]]


<vote type=1 />
<vote type=1 />