|
Не отрабатывает процедура в цикле | ☑ | ||
---|---|---|---|---|
0
Малый Тихон
30.10.15
✎
13:07
|
Добрый день!
Столкнулся с такой проблемой: Есть простая обработка с кодом: &НаСервере Процедура ПрочиститьВсеНормыНаСервере() СоединениеДругаяБаза = ПолучитьПодключение(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | МаршрутныеКартыВыходныеИзделия.Ссылка КАК МК |ИЗ | Справочник.МаршрутныеКарты.ВыходныеИзделия КАК МаршрутныеКартыВыходныеИзделия |ГДЕ | НЕ МаршрутныеКартыВыходныеИзделия.Ссылка.ЭтоГруппа"; Запрос.УстановитьПараметр("Ссылка",Объект.МК); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выгрузить(); ВыборкаДетальныеЗаписи.Индексы.Добавить("МК"); сч=0; Для каждого стр из ВыборкаДетальныеЗаписи Цикл сч=сч+1; Попытка ЗагрузитьНормыНаСервере(СоединениеДругаяБаза,стр.МК.ссылка); исключение Сообщить(сч); Сообщить(""+стр.МК.ссылка+"//"+ОписаниеОшибки()); Продолжить; КонецПопытки; КонецЦикла; КонецПроцедуры МК=МКДляИзменения.ПолучитьОбъект(); ///получаем чертежный номер из МК ЧН=МК.ВыходныеИзделия[0].Номенклатура.Наименование; //делаем запрос к базе нарядов, выгружаем в ТЧ ЗапросКЕРП=СоединениеДругаяБаза.NewObject("Запрос"); ЗапросКЕРП.Текст="ВЫБРАТЬ | НоменклатураНормыНоменклатуры.Цех.Наименование КАК Цех, | НоменклатураНормыНоменклатуры.Участок.Наименование КАК Участок, | НоменклатураНормыНоменклатуры.Операция.КодОперации КАК НомерОперации, | НоменклатураНормыНоменклатуры.Операция.Наименование КАК НаименованиеОперации, | НоменклатураНормыНоменклатуры.ШифрПрофессии.Наименование КАК ШифрПрофессии, | НоменклатураНормыНоменклатуры.ВидОплаты.Наименование КАК ВидОплаты, | НоменклатураНормыНоменклатуры.ВидОборудования.Наименование КАК ВидОборудования, | НоменклатураНормыНоменклатуры.ВидНорм.Наименование КАК ВидНорм, | НоменклатураНормыНоменклатуры.ВидТарифа.Наименование КАК ВидТарифа, | НоменклатураНормыНоменклатуры.УровеньМеханики.Наименование КАК УровеньМеханики, | НоменклатураНормыНоменклатуры.РазрядРаботы.Наименование КАК РазрядРаботы, | НоменклатураНормыНоменклатуры.НормаВремени, | НоменклатураНормыНоменклатуры.НормаВремениТехнологич, | НоменклатураНормыНоменклатуры.ВидИзменения |ИЗ | Справочник.Номенклатура.НормыНоменклатуры КАК НоменклатураНормыНоменклатуры |ГДЕ | НоменклатураНормыНоменклатуры.Ссылка.ЧертежныйНомер = &ЧертежныйНомер"; ЗапросКЕРП.УстановитьПараметр("ЧертежныйНомер",СоединениеДругаяБаза.ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(ЧН))); РезультатКЕРП=ЗначениеИзСтрокиВнутр(СоединениеДругаяБаза.ЗначениеВСтрокуВнутр(ЗапросКЕРП.Выполнить().Выгрузить())); ТабЗнач = Новый ТаблицаЗначений; ТабЗнач.Колонки.Добавить("Свойство"); ТабЗнач.Колонки.Добавить("Значение"); Для каждого стр из РезультатКЕРП Цикл ///заполняем нормы ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("ВидРабот", ПолучитьОперациюПоКоду(МК.ссылка,стр.НомерОперации)); НайденныеСтроки = мк.Трудозатраты.НайтиСтроки(ПараметрыОтбора); для каждого стр1 из НайденныеСТроки цикл стр1.Количество=стр.НормаВремени; ТабЗнач.Очистить(); НоваяСтрока = ТабЗнач.Добавить(); НоваяСтрока.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ШифрПрофессии"); НоваяСтрока.Значение = стр.ШифрПрофессии; НоваяСтрока = ТабЗнач.Добавить(); НоваяСтрока.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ВидОплаты"); НоваяСтрока.Значение = стр.ВидОплаты; НоваяСтрока = ТабЗнач.Добавить(); НоваяСтрока.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ВидОборудования"); НоваяСтрока.Значение = стр.ВидОборудования; НоваяСтрока = ТабЗнач.Добавить(); НоваяСтрока.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ВидНорм"); НоваяСтрока.Значение = стр.ВидНорм; НоваяСтрока = ТабЗнач.Добавить(); НоваяСтрока.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ВидТарифа"); НоваяСтрока.Значение = стр.ВидТарифа; НоваяСтрока = ТабЗнач.Добавить(); НоваяСтрока.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("УровеньМеханики"); НоваяСтрока.Значение = стр.УровеньМеханики; НоваяСтрока = ТабЗнач.Добавить(); НоваяСтрока.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("РазрядРаботы"); НоваяСтрока.Значение = стр.РазрядРаботы; НоваяСтрока = ТабЗнач.Добавить(); НоваяСтрока.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Участок"); НоваяСтрока.Значение = стр.РазрядРаботы; УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(стр1.Операция.ссылка, ТабЗнач); ТабЗнач.Очистить(); конеццикла; КонецЦикла; МК.Записать(); если в первой процедуре поставить условие на конкретный элемент справочника тогда все проходит нормально, а в цикле нет. Не пойму в чем подвох. |
|||
1
Малый Тихон
30.10.15
✎
13:09
|
Извиняюсь не все скопировал: Вместо
МК=МКДляИзменения.ПолучитьОбъект(); нужно &НаСервере Процедура ЗагрузитьНормыНаСервере(СоединениеДругаяБаза,МКДляИзменения) МК=МКДляИзменения.ПолучитьОбъект(); |
|||
2
DmitriyDI
30.10.15
✎
13:09
|
посмотир отладчиком мб результат запроса пустой?
|
|||
3
Mirnin
30.10.15
✎
13:12
|
Запрос.Текст =
"ВЫБРАТЬ | МаршрутныеКартыВыходныеИзделия.Ссылка КАК МК |ИЗ | Справочник.МаршрутныеКарты.ВыходныеИзделия КАК МаршрутныеКартыВыходныеИзделия |ГДЕ | НЕ МаршрутныеКартыВыходныеИзделия.Ссылка.ЭтоГруппа"; Запрос.УстановитьПараметр("Ссылка",Объект.МК); Есть подозрение, что запрос получает совсем не то, что задумывалось. Параметра "Ссылка" нет. |
|||
4
Малый Тихон
30.10.15
✎
13:13
|
(2)-нет. не пустой, я же пишу-на одном элементе все нормально
(3)-код остался когда пробовал с одним элементом |
|||
5
hhhh
30.10.15
✎
13:33
|
ЗапросКЕРП.УстановитьПараметр("ЧертежныйНомер",СоединениеДругаяБаза.ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(ЧН)));
бред, пиши ЗапросКЕРП.УстановитьПараметр("ЧертежныйНомер",ЧН); примитивные типы просто передаются. |
|||
6
Малый Тихон
30.10.15
✎
13:35
|
похоже перемудрил, сейчас попробую, спасибо
|
|||
7
GROOVY
30.10.15
✎
13:36
|
Никогда не понимал, зачем люди из выборки делают ТЗ, и ничего с ней не делают.
|
|||
8
Малый Тихон
30.10.15
✎
14:02
|
не взлетает
|
|||
9
Малый Тихон
30.10.15
✎
14:05
|
не пойму почему не работает-если по одному элементу срабатывает то в цикле тоже должно работать, только ссылку пуляй в процедуру и все....
|
|||
10
Малый Тихон
30.10.15
✎
14:53
|
Нет ни у кого мыслей?
|
|||
11
Малый Тихон
30.10.15
✎
15:20
|
Кто нибудь:) пока не сделаю домой нельзя уходить:)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |