![]() |
![]() |
|
Фоновые задания | ☑ | ||
---|---|---|---|---|
0
pepers
25.12.16
✎
11:36
|
Добрый день.
Сделал фоновое задание отладил его внешней обработкой все работает, помещаю код в общий модуль не работает. В обработке два запроса первым запросом получаем выборки для второго запроса. Если первый запрос пустой тогда фоновое задание отрабатывает корректно, но если есть значения в первом запросе то второй запрос не отрабатывается, либо параметры не передаются га сервер. Подскажите что делаю не так? |
|||
1
Галахад
гуру
25.12.16
✎
11:40
|
Наверное где-то в коде ошибка. :-)
|
|||
2
pepers
25.12.16
✎
11:45
|
Код процедуры выглядит вот так
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | Neva_НастройкиДляФонЗаданий.АдресСервера, | Neva_НастройкиДляФонЗаданий.БазаНаСервере, | Neva_НастройкиДляФонЗаданий.Номенклатура.Ссылка КАК Номенклатура, | Neva_НастройкиДляФонЗаданий.Номенклатур КАК НоменклатурФ |ИЗ | РегистрСведений.Neva_НастройкиДляФонЗаданий КАК Neva_НастройкиДляФонЗаданий"; ТЗ = Запрос.Выполнить().Выгрузить(); //Пока выборка.Следующий()цикл // ВыборкаНоменклатура = выборка.Номенклатура; //КонецЦикла; СоединениеSQL = Новый ComObject("ADODB.Connection"); СоединениеSQL.ConnectionString ="DRIVER=SQL Server;SERVER="+тз[0].АдресСервера+";Trusted_connection=yes;DATABASE="+тз[0].БазаНаСервере+";UseProcForPrepare=0"; СоединениеSQL.Open(); //Исключение //КонецПопытки; Если тз[0].НоменклатурФ = Истина тогда попытка СтрокаВыгрузки = ""; СтрокаВыгрузки = "<Справочник_Номенклатура>"; ТЗВыгрузка = новый ТаблицаЗначений; ТЗВыгрузка.Колонки.Добавить("Первый"); ТЗВыгрузка.Колонки.Добавить("Код"); ТЗВыгрузка.Колонки.Добавить("Артикул"); ТЗВыгрузка.Колонки.Добавить("guid_Родителя"); ТЗВыгрузка.Колонки.Добавить("Наименование"); ТЗВыгрузка.Колонки.Добавить("ЕдиницаИзмерения"); ТЗВыгрузка.Колонки.Добавить("guid_НоменклатурнаяГруппа"); ТЗВыгрузка.Колонки.Добавить("guid"); ТЗВыгрузка.Колонки.Добавить("НаименованиеПолное"); ТЗВыгрузка.Колонки.Добавить("guidСтатьяБДР"); ТЗВыгрузка.Колонки.Добавить("ПометкаУдаления"); ТЗВыгрузка.Колонки.Добавить("Последний"); ПараметрУсловие = "" ; СтрокаСсылки = Справочники.Номенклатура.НайтиПоНаименованию(тз[0].Номенклатура).Ссылка; Если СтрокаСсылки = Справочники.Номенклатура.ПустаяСсылка() тогда ПараметрУсловие = "" ; ИначеЕсли СтрокаСсылки.Этогруппа тогда ПараметрУсловие = " ГДЕ Номенклатура.Ссылка В ИЕРАРХИИ(&Ссылка)" иначе ПараметрУсловие = " ГДЕ Номенклатура.Ссылка = &Ссылка"; КонецЕсли; Запрос = Новый Запрос; ТекстЗапроса = "ВЫБРАТЬ | Инт_ДополнительныеСвойстваСрезПоследних.Значение КАК СтатьяПДР, | Инт_КлассификаторыЭлементы1.Ссылка КАК СтатьяПДРСсылка, | ВложенныйЗапрос.Код КАК Код, | ВложенныйЗапрос.Артикул КАК Артикул, | ВложенныйЗапрос.Родитель КАК Родитель, | ВложенныйЗапрос.ЭтоГруппа КАК ЭтоГруппа, | ВложенныйЗапрос.Наименование КАК Наименование, | ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ВложенныйЗапрос.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа, | ВложенныйЗапрос.Ссылка КАК Ссылка |ИЗ | (ВЫБРАТЬ | Номенклатура.Код КАК Код, | Номенклатура.Артикул КАК Артикул, | Номенклатура.ЭтоГруппа КАК ЭтоГруппа, | Номенклатура.Наименование КАК Наименование, | Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения, | Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа, | Номенклатура.Ссылка КАК Ссылка, | Номенклатура.Родитель КАК Родитель | ИЗ | Справочник.Номенклатура КАК Номенклатура " +ПараметрУсловие+" ) КАК ВложенныйЗапрос | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Инт_ДополнительныеСвойства.СрезПоследних(&ТекДата, Параметр.Наименование = &ПараметрПДР) КАК Инт_ДополнительныеСвойстваСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Инт_КлассификаторыЭлементы КАК Инт_КлассификаторыЭлементы1 | ПО Инт_ДополнительныеСвойстваСрезПоследних.Значение = Инт_КлассификаторыЭлементы1.Ссылка | ПО ВложенныйЗапрос.Ссылка = Инт_ДополнительныеСвойстваСрезПоследних.Элемент"; Запрос.УстановитьПараметр("ТекДата", КонецДня(ТекущаяДата())); Запрос.УстановитьПараметр("ПараметрПДР", "Статья БДР"); Запрос.УстановитьПараметр("Ссылка",СтрокаСсылки); Запрос.Текст = ТекстЗапроса; Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() цикл Стр = ТЗВыгрузка.Добавить(); Если ВыборкаДетальныеЗаписи.ЭтоГруппа тогда Стр.Первый = "<ЭтоГруппа "; пЕдиницаИзмерения = ""; пАртикул = ""; пНоменклатурнаяГруппа = ""; иначе Стр.Первый = "<Элемент "; пЕдиницаИзмерения = Строка(ВыборкаДетальныеЗаписи.ЕдиницаИзмерения); пАртикул = Строка(ВыборкаДетальныеЗаписи.Артикул); пНоменклатурнаяГруппа = Строка(ВыборкаДетальныеЗаписи.НоменклатурнаяГруппа.Ссылка.УникальныйИдентификатор()); КонецЕсли; Если Строка(ВыборкаДетальныеЗаписи.СтатьяПДРСсылка)<>"" тогда пguidСтатьяБДР = Строка(ВыборкаДетальныеЗаписи.СтатьяПДРСсылка.УникальныйИдентификатор()) иначе пguidСтатьяБДР = ""; КонецЕсли; Стр.Код = Строка(ВыборкаДетальныеЗаписи.Код); Стр.Артикул = пАртикул; Стр.guid_Родителя = Строка(ВыборкаДетальныеЗаписи.Родитель.Ссылка.УникальныйИдентификатор()); Стр.Наименование = Строка(ВыборкаДетальныеЗаписи.Наименование); Стр.ЕдиницаИзмерения = пЕдиницаИзмерения; Стр.guid_НоменклатурнаяГруппа = пНоменклатурнаяГруппа; Стр.guid = Строка(ВыборкаДетальныеЗаписи.Ссылка.УникальныйИдентификатор()); Стр.НаименованиеПолное = Строка(ВыборкаДетальныеЗаписи.Ссылка.НаименованиеПолное); Стр.guidСтатьяБДР = пguidСтатьяБДР; Стр.ПометкаУдаления = Строка(ВыборкаДетальныеЗаписи.Ссылка.ПометкаУдаления); Стр.Последний = "1"; КонецЦикла; Если не тз[0].Номенклатура.ЭтоГруппа тогда Стр = ТЗВыгрузка.Добавить(); Стр.Первый = "<ЭтоГруппа "; пЕдиницаИзмерения = ""; пАртикул = ""; пНоменклатурнаяГруппа = ""; пguidСтатьяБДР = ""; Стр.Код = Строка(СтрокаСсылки.Родитель.Код); Стр.Артикул = пАртикул; Стр.guid_Родителя = Строка(СтрокаСсылки.Родитель.Родитель.Ссылка.УникальныйИдентификатор()); Стр.Наименование = Строка(СтрокаСсылки.Родитель.Наименование); Стр.ЕдиницаИзмерения = пЕдиницаИзмерения; Стр.guid_НоменклатурнаяГруппа = пНоменклатурнаяГруппа; Стр.guid = Строка(СтрокаСсылки.Родитель.Ссылка.УникальныйИдентификатор()); Стр.НаименованиеПолное = Строка(СтрокаСсылки.Родитель.НаименованиеПолное); Стр.guidСтатьяБДР = пguidСтатьяБДР; Стр.ПометкаУдаления = Строка(СтрокаСсылки.Родитель.Ссылка.ПометкаУдаления); Стр.Последний = "1"; КонецЕсли; СтрокаВыгрузки = СтрокаВыгрузки+ПолучитьСтрокуВыгрузки(ТЗВыгрузка); СтрокаВыгрузки = СтрокаВыгрузки +"</Справочник_Номенклатура>"; /////Запусуаем хранимую процедуру/////////////// cmdADO = Новый COMОбъект ("ADODB.Command"); cmdADO.ActiveConnection = СоединениеSQL; cmdADO.CommandTimeout = 0; cmdADO.CommandType = 4; cmdADO.CommandText = "srv.Download_Nomenclature"; Param1 = cmdADO.CreateParameter("@Reference", 203, 1, СтрДлина(СтрокаВыгрузки), СтрокаВыгрузки); cmdADO.Parameters.Append(Param1); НаборЗаписей = cmdADO.Execute(); lRetCode = cmdADO.Parameters(0).Value; ///Закончили выгрузку//////////////// СтрокаСообщения = "Выгружен справочник Номенклатура"; //Сообщить(СтрокаСообщения); Исключение СтрокаСообщения = "Справочник Номенклатура выгружен с ошибкой"+Символы.ПС+ОписаниеОшибки(); Сообщить(СтрокаСообщения); КонецПопытки; КонецЕсли; |
|||
3
h-sp
25.12.16
✎
12:07
|
(2) ну отлдчиком пройдите, в каком месте ошибка
|
|||
4
pepers
25.12.16
✎
13:20
|
косяк в этом месте, Если СтрокаСсылки = Справочники.Номенклатура.ПустаяСсылка() тогда
ПараметрУсловие = "" ; ИначеЕсли СтрокаСсылки.Этогруппа тогда ПараметрУсловие = " ГДЕ Номенклатура.Ссылка В ИЕРАРХИИ(&Ссылка)" иначе ПараметрУсловие = " ГДЕ Номенклатура.Ссылка = &Ссылка"; КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |