|
Формирования списка баз через внешнюю обработку | ☑ | ||
---|---|---|---|---|
0
Trixietheflowskigod
18.07.18
✎
08:52
|
Добрый день форум,
Писал обработку для формирования списков баз, но столкнулся с проблемой. Есть Дивизион указывается на форме, в него записывается Текст.ДобавитьСтроку("["+Элемент.Наименование+"] |Connect=Srvr="""+Элемент.Серевер1С+""";Ref="""+Элемент.Код+"""; |Folder=/"+Объект.Дивизион+" |App="+Объект.ТипЗапуска+" |Version="+Объект.Версия1С+""); и вот 3 меня в справочнике 3 базы в одном дивизионе, и когда я формирую он записывает в текстовый файл одно итоже несколько раз то что прошло в цикле последним: [TOO TransМагистраль] Connect=Srvr="10.20.5.21";Ref="TRM"; Folder=/ИЖС АСТАНА App=Толстый клиент Version=8.3.10.2580 [TOO TransМагистраль] Connect=Srvr="10.20.5.21";Ref="TRM"; Folder=/ИЖС АСТАНА App=Толстый клиент Version=8.3.10.2580 [TOO TransМагистраль] Connect=Srvr="10.20.5.21";Ref="TRM"; Folder=/ИЖС АСТАНА App=Толстый клиент Version=8.3.10.2580 Вот весь код: &НаКлиенте Процедура ВывестиПредупреждение(Результат, ДополнительныеПараметры) Экспорт Если Результат = КодВозвратаДиалога.ОК Тогда Возврат; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура Сформировать(Команда) мОрганизации = Новый Массив; ЗапросВСправочник(мОрганизации); ФайлНаДиске = Новый Файл(""+Объект.ПутьСписка+"\"+Объект.Дивизион+"\"+Объект.Дивизион+".v8i"); Если ФайлНаДиске.Существует() Тогда ПереместитьФайл(""+Объект.ПутьСписка+"\"+Объект.Дивизион+"\"+Объект.Дивизион+".v8i",""+Объект.ПутьСписка+"\"+Объект.Дивизион+"\bak\"+Объект.Дивизион+".v8i"); Оповещение = Новый ОписаниеОповещения("ВывестиПредупреждение",ЭтаФорма ); ПоказатьВопрос(Оповещение,"Файл будет перезаписан "+Объект.Дивизион+".v8i", РежимДиалогаВопрос.ОК); КонецЕсли; Текст = Новый ТекстовыйДокумент(); СоздатьКаталог(""+Объект.ПутьСписка+"\"+Объект.Дивизион+""); СоздатьКаталог(""+Объект.ПутьСписка+"\"+Объект.Дивизион+"\bak"); Для Каждого Элемент Из мОрганизации Цикл Текст.ДобавитьСтроку("["+Элемент.Наименование+"] |Connect=Srvr="""+Элемент.Серевер1С+""";Ref="""+Элемент.Код+"""; |Folder=/"+Объект.Дивизион+" |App="+Объект.ТипЗапуска+" |Version="+Объект.Версия1С+""); Текст.Записать(""+Объект.ПутьСписка+"\"+Объект.Дивизион+"\"+Объект.Дивизион+".v8i"); КонецЦикла; КонецПроцедуры &НаСервере Процедура ЗапросВСправочник(мОрганизации) Экспорт сДанные = Новый Структура; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ИнформационныеБазы.Ссылка, | ИнформационныеБазы.Код, | ИнформационныеБазы.Наименование, | ИнформационныеБазы.Серевер1С |ИЗ | Справочник.ИнформационныеБазы КАК ИнформационныеБазы |ГДЕ | ИнформационныеБазы.Дивизион = &Дивизион"; Запрос.УстановитьПараметр("Дивизион", Объект.Дивизион); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл сДанные.Вставить("ИБ", Выборка.Ссылка); сДанные.Вставить("Код", Выборка.Код); сДанные.Вставить("Наименование", Выборка.Наименование); сДанные.Вставить("Серевер1С", Выборка.Серевер1С); мОрганизации.Добавить(сДанные); КонецЦикла; КонецПроцедуры; |
|||
1
Trixietheflowskigod
18.07.18
✎
08:53
|
и вот у меня в справочнике 3 базы в 1 дивизионе, и когда я формирую он записывает в текстовый файл одно и тоже несколько раз то что прошло в цикле последним:
|
|||
2
Deon
18.07.18
✎
09:12
|
Засунь определение структуры:
сДанные = Новый Структура; в тело цикла: Пока Выборка.Следующий() Цикл Ибо ты в цикле мучаешь одну и ту же структуру, меняя в ней значения |
|||
3
Trixietheflowskigod
18.07.18
✎
09:31
|
Спасибо большое, засунул как вы и сказали, все теперь нормально
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |