Добрый день, помогите решить проблему, есть внешняя обработка с выгрузкой в xml, с сохранением файла на локальный диск и отправкой на ftp, выполняется по кнопке "сформировать", её нужно переделать в регламентное задание и выполнять по расписанию,
создаю модуль в общих модулях и соответственно регл. задание, там выбираю мою процедуру, галочку на использование и задаю расписание, но процедура не срабатывает, конфа не типовая, наверно даже сильно переписана из какой-то другой, называется УПН (продажа недвижимости), в чем может быть проблема?
создаю модуль в общих модулях и соответственно регл. задание, там выбираю мою процедуру, галочку на использование и задаю расписание, но процедура не срабатывает, конфа не типовая, наверно даже сильно переписана из какой-то другой, называется УПН (продажа недвижимости), в чем может быть проблема?
Процедура ВыгрузкаXML() Экспорт
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("\\clsdtc2\files\VigrS1C\OH.xml");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("Выгрузка1С");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Дата", Дата(2020,10,10));
Запрос.Текст = "ВЫБРАТЬ
| ВводВторичныхОбъектов.ОбъектСтроительства КАК Корпус,
| ВводВторичныхОбъектовВторичныеОбъекты.Объект.Подъезд КАК Секция,
| ВводВторичныхОбъектовВторичныеОбъекты.Объект.Ссылка КАК НомерНежилогоПомещения,
| ВводВторичныхОбъектовВторичныеОбъекты.Объект.ПорядковыйНомерНаПлощадке КАК ПорядковыйНомерНаПлощадке,
| ВводВторичныхОбъектовВторичныеОбъекты.Объект.Этаж КАК Этаж,
| ВводВторичныхОбъектовВторичныеОбъекты.ПриведеннаяПлощадь КАК Площадь,
| ВводВторичныхОбъектов.ОбъектСтроительства.СрокСдачи КАК СрокВводаВЭксплуатацию,
| СтатусыВторичныхОбъектовСрезПоследних.Статус КАК Статус,
| ВводВторичныхОбъектовВторичныеОбъекты.Объект,
| ВводВторичныхОбъектовВторичныеОбъекты.Объект.КоличествоКомнат КАК Комнат,
| ВводВторичныхОбъектовВторичныеОбъекты.Объект.Тип,
| ВводВторичныхОбъектовВторичныеОбъекты.Ссылка
|ИЗ
| РегистрСведений.СтатусыВторичныхОбъектов.СрезПоследних КАК СтатусыВторичныхОбъектовСрезПоследних
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВводВторичныхОбъектов.ВторичныеОбъекты КАК ВводВторичныхОбъектовВторичныеОбъекты
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВводВторичныхОбъектов КАК ВводВторичныхОбъектов
| ПО ВводВторичныхОбъектовВторичныеОбъекты.Ссылка = ВводВторичныхОбъектов.Ссылка
| ПО СтатусыВторичныхОбъектовСрезПоследних.Объект.Ссылка = ВводВторичныхОбъектовВторичныеОбъекты.Объект.Ссылка
|ГДЕ
| ВводВторичныхОбъектов.Дата > &Дата";
Выгрузка = Запрос.Выполнить().Выгрузить();
Для Каждого Строка ИЗ Выгрузка ЦИКЛ
RegExp = Новый COMОбъект("VBScript.RegExp");
RegExp.IgnoreCase = Истина;
RegExp.Global = Истина;
RegExp.MultiLine = Истина;
RegExp.Pattern = "[^0-9]";
Корп = RegExp.Replace(Строка.Корпус.Наименование, "");
ЗаписьXML.ЗаписатьНачалоЭлемента("ОбъектНедвижимости");
СтрокаТипОН = Лев(Строка.ПорядковыйНомерНаПлощадке, 2);
Кладовые = Прав(Строка.Корпус.Наименование, 8);
Если СтрокаТипОН = "НП" ТОГДА
ЗаписьXML.ЗаписатьАтрибут("ТипОН", "НП");
ЗаписьXML.ЗаписатьАтрибут("id", Корп+Строка.Секция+""+Строка.НомерНежилогоПомещения.Наименование);
ИначеЕсли Кладовые = "кладовые" ТОГДА
ЗаписьXML.ЗаписатьАтрибут("ТипОН", "Кладовая");
ЗаписьXML.ЗаписатьАтрибут("id", Корп+Строка.Секция+""+Строка.НомерНежилогоПомещения.Наименование+"к");
Иначе
ЗаписьXML.ЗаписатьАтрибут("ТипОН", "Квартира");
ЗаписьXML.ЗаписатьАтрибут("id", Корп+Строка.Секция+""+Строка.НомерНежилогоПомещения.Наименование);
Если Строка.Комнат > 0 ТОГДА
ЗаписьXML.ЗаписатьАтрибут("Комнат", Строка(Формат(Строка.Комнат)));
ИначеЕсли Строка.Комнат = 0 ТОГДА
ЗаписьXML.ЗаписатьАтрибут("Комнат", "Студия");
КонецЕсли;
КонецЕсли;
ЗаписьXML.ЗаписатьАтрибут("Корпус", Корп);
ЗаписьXML.ЗаписатьАтрибут("Секция", Строка.Секция);
ЗаписьXML.ЗаписатьАтрибут("НомерНежилогоПомещения", Строка.НомерНежилогоПомещения.Наименование);
ЗаписьXML.ЗаписатьАтрибут("Этаж", Строка(Формат(Строка.Этаж)));
ЗаписьXML.ЗаписатьАтрибут("Площадь", Строка(Формат(Строка.Площадь)));
ЗаписьXML.ЗаписатьАтрибут("СрокВводаВЭксплуатацию", Строка(Формат(Строка.СрокВводаВЭксплуатацию,"ДФ=dd.MM.yy; ДЛФ=D")));
ЗапросЦена = Новый Запрос;
ЗапросЦена.УстановитьПараметр("ОН", Строка.Объект);
ЗапросЦена.УстановитьПараметр("К", Строка.Корпус);
ЗапросЦена.Текст = "ВЫБРАТЬ
| УстановкаЦен.Объект.Ссылка КАК Корпус,
| УстановкаЦенВторичныеОбъекты.Цена КАК Цена,
| УстановкаЦенВторичныеОбъекты.Скидка,
| УстановкаЦенВторичныеОбъекты.ЦенаСоСкидкой,
| УстановкаЦенВторичныеОбъекты.Объект
|ИЗ
| Документ.УстановкаЦен.ВторичныеОбъекты КАК УстановкаЦенВторичныеОбъекты
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.УстановкаЦен КАК УстановкаЦен
| ПО УстановкаЦенВторичныеОбъекты.Ссылка = УстановкаЦен.Ссылка
|ГДЕ
| УстановкаЦен.Объект = &К
| И УстановкаЦенВторичныеОбъекты.Объект.Ссылка = &ОН";
ВыгрузкаЦена = ЗапросЦена.Выполнить().Выгрузить();
Для Каждого Стр ИЗ ВыгрузкаЦена ЦИКЛ
ЗаписьXML.ЗаписатьАтрибут("Стоимость", Строка(Формат(Стр.Цена)));
ЗаписьXML.ЗаписатьАтрибут("СтоимостьСоСкидкой", Строка(Формат(Стр.ЦенаСоСкидкой)));
КонецЦикла;
ЗаписьXML.ЗаписатьАтрибут("Статус", Строка(Формат(Строка.Статус)));
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();
ФТПХост = "***";
ФТППорт = "21";
ФТППользователь = "***";
ФТППароль = "***";
Файл = "OH.xml";
ФТПКаталог = "***";
ФТП = Новый FTPСоединение(ФТПХост,ФТППорт, ФТППользователь, ФТППароль);
ФТП.УстановитьТекущийКаталог(ФТПКаталог);
ФТП.Записать("\\clsdtc2\files\VigrS1C\OH.xml",СокрЛП(Файл));
КонецПроцедуры
ПоказатьНайденные решения
1. Чтобы регламентное задание начало выполняться, ему или надо поставить галку "Предопределенное", или добавить в список регламентных заданий в соответствующей обработке управления регламентными заданиями.
2. Если вызвать эту процедуру общего модуля из какой-нить внешней обработки, то все отрабатывает? Вы в своей обработке внешней сделайте еще одну команду и вызовите в ней эту процедуру.
2. Если вызвать эту процедуру общего модуля из какой-нить внешней обработки, то все отрабатывает? Вы в своей обработке внешней сделайте еще одну команду и вызовите в ней эту процедуру.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
1. Чтобы регламентное задание начало выполняться, ему или надо поставить галку "Предопределенное", или добавить в список регламентных заданий в соответствующей обработке управления регламентными заданиями.
2. Если вызвать эту процедуру общего модуля из какой-нить внешней обработки, то все отрабатывает? Вы в своей обработке внешней сделайте еще одну команду и вызовите в ней эту процедуру.
2. Если вызвать эту процедуру общего модуля из какой-нить внешней обработки, то все отрабатывает? Вы в своей обработке внешней сделайте еще одну команду и вызовите в ней эту процедуру.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот