|
Перебор всех документов как в 77. Какой аналог?
| ☑ |
0
Кокос
18.02.13
✎
13:46
|
Вот такой код на 7рке:
Докс = СоздатьОбъект("Документ");
Докс.ВыбратьДокументы();
Пока Докс.ПолучитьДокумент() = 1 Цикл
Докс.НомерДок = "РА"+Сред(Докс.НомерДок,3);
Докс.ЗАписать();
КонецЦикла;
Как его написать на 8рке также коротко? Там вроде глобального менеджера всех документов нет... Может както через метаданные?
|
|
1
Cube
18.02.13
✎
13:47
|
Нет такого. Тебе зачем?
|
|
2
Кокос
18.02.13
✎
13:48
|
лениво все документы в БП30 перебирать. надо добавить новое юрлицо. ну и старое опрефиксить
|
|
3
Wobland
18.02.13
✎
13:48
|
(1) префикс проставить
|
|
4
Джинн
18.02.13
✎
13:48
|
А зачем их все перебирать? Практическая цель?
На заре 8 версии в инете способов перебора пачки были.
|
|
5
Кокос
18.02.13
✎
13:51
|
(4) префиксы :) а так я думаю можно через метаданные.
|
|
6
Cube
18.02.13
✎
13:53
|
(5) Покури НайтиПоСсылкам()
|
|
7
GANR
18.02.13
✎
13:55
|
// формируем текст запроса
// ко всем видам документов
ТекстЗапроса = "";
Для Каждого ОбъектМетаданных Из Метаданные.Документы Цикл
Если ТекстЗапроса <> "" Тогда
ТекстЗапроса = ТекстЗапроса + "
|ОБЪЕДИНИТЬ ВСЕ";
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "ВЫБРАТЬ
| Ссылка
|ИЗ
| " + ОбъектМетаданных.ПолноеИмя();
КонецЦикла;
// выполняем запрос
Запрос = Новый Запрос(ТекстЗапроса);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
// обрабатываем результат запроса
Пока Выборка.Следующий() Цикл
ОбъектПоСсылке = Выборка.Ссылка.ПолучитьОбъект();
...
ОбъектПоСсылке.Записать();
КонецЦикла
|
|
8
Cube
18.02.13
✎
13:56
|
(7) Так можно на ошибку в 255 таблиц налететь ненароком...
|
|
9
GANR
18.02.13
✎
13:57
|
(8) с 2005 версии MS SQL это ограничение снято, вроде
|
|
10
GANR
18.02.13
✎
13:58
|
ТекстЗапроса = ТекстЗапроса + "
|ВЫБРАТЬ
| Ссылка
|ИЗ
| " + ОбъектМетаданных.ПолноеИмя();
иначе (7) не запашет
|
|
11
Кокос
18.02.13
✎
14:00
|
Спасибо!
|
|